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

Pages: [1] 2 3 ... 21
1
Quote
The images showcasing Cloud’s design, which have been shown during the Visual Works presentation are from the theme park ride at Universal Studios Japan, and not straight from Final Fantasy VII Remake.

2
General discussion / Re: Final Fantasy 8 in Unity?
« on: 2018-07-09 10:28:12 »
when you forget to clear object collections (and textures) when changing stages:

it produces actually very cool effects.

3
General discussion / Re: Final Fantasy 8 in Unity?
« on: 2018-07-06 08:24:57 »
World of Final Fantasy has fully modelled Balamb hall (with some 'artistic' addons):

extremely good for reference purpouses and floor texture

Vista is also there:


Textured in UE4 if I didn't mess up some materials (the model has changed text [translated english to rubbish made-up language] and logo is different):

4
I had similar issue when I used DgVoodoo interceptor for FF8 from 2000 when debugging with IDA. The fixed that worked for me was starting the game and not touching single button. Just click start/run app and completely leave any input. Also make sure to unplug any gamepads. They tend to have "priority" on input. Also take a look at device manager of you have some shady/broken virtual gamepad or input method. FF8 works on DirectInput and collects available input devices from OS.

5
Are you able to do the same but for DLS DirectMusic?

6
Got it working- I had an error in palette code. There are no Type 1 or type 2, everything is type 2.
When there's only 16 palettes and remaining 8 are null, then the palette pointer is not exceeding 8.
also skip rendering if pixel =0 because it's transparency driven. I'm missing mixing parameters/states

7
Mod organizer got release some times ago- looks like C# WPF application- and in fact it is. 64 bit build- free to download for everyone, even if you don't own FFXV directly from Steam. Mod organizer is not protected and you can easily decompile full source code via ILSpy including archive tool with .EARC builder algorithm including debug strings:
Code: [Select]
if (!File.Exists(temp_earc))
{
Console.WriteLine(temp_earc + " が出力されていない");
return -1;
}

UPDATE:
Nope, no archive building, everything it does is calling an exe in a thread to:
%REBLACK_ROOT%"), "luminous\\sdk\\tools\\Backend\\AssetConverterFramework\\BuildCoordinator\\bin\\tonberry.exe"


Code: [Select]
string fullName = Directory.GetParent(tonberry_FullPath).FullName;
string text = additional_args + " --force --protect --encrypt --server " + ebex + "@";
CommandProcess.Execute(tonberry_FullPath, text, out num, null, fullName, null, true);

8
Hello everyone! I'm trying to implement my own MIM+MAP algorithm, yet the wiki page is quiet chaotic. Myst6re's Deling source code helped a bit, yet I face some issues:

-When does exactly the stage is type 1 or type 2? Are there really two types? In Wiki and Deling source code we see that types are distinguishable by .MIM filesize, yet I wasn't really able to find 401408 bytes .MIM
Anyway, I treat every single field like a type2. However, there's something odd:
I took two different stages and tried to render it:


Please ignore black spots, I didn't implement blending.
Both the stages have EQUAL .MIM filesize; How do I know when to use palettes 0-8, or when 8-16?
What am I missing?

9
I managed to somewhat break the camera structure. I updated http://wiki.ffrtt.ru/index.php/FF8/FileFormat_X#Camera_data

Case study:
a0stg101.x - balamb plains:

0x5D8 - camera start [via code]
02 00 is skipped
08 00 is pointer to camera settings
20 00 is pointer to camera animation

Let's jump to camera animation as it's the most important part here.

We will end up at 0x32. This is sub-section. We will work with pointers relatively to this position.
You'll get a ushort for number of camera animations - in this example it's 7. [a0stg101.x have 7 sets, therefore 7*8 animations, but a0stg000 or a0stg001 don't remember but they have only one!, so 1*8 animations!]

Now, when the game starts and encounter is loaded it magically resolves which animation to use to show the enemy well. You can of course break at getting camera anim index code and change the register so the camera will present the enemy like it's T-rex showing only one mosquitoe (I don't remember that fly name on Balamb's plain).

So, we are at pointers indicator, the engine now:
EAX + ECX*2 + 02, where:
-EAX - absolute memory pointer to 07 00 or 08 00 as said above;
-ECX - the camera index that it got from from static memory (pointer to pointer to some packed binary values)
02 - size of numberOfAnimations

Let's jump to last animation now:
considering 07 00 in our file is now offset 0x00:
(7-1)*2+2 = 0xE //because 00 means first index, so 7th index is in fact 6*2

Now get ushort pointer at 0xE= 0x1F10;
We will get to 0x1F10. Engine now reads 8 pointers, like in this case first pointer is 08 00 and next is 48 00. Now it calculates it by pointer*2. So first pointer actually starts at 0x16, second at 0x48*2=0x90.

UPDATE3:
grab the useful breakpoint:
0x5035AB (Newest steam english).

UPDATE4:
Engine camera animation parsing at: sub_503C8F
checking for FFFF: 00503C7B:
cmp ax, 0xFFFF, where ax is *(019399E2) (cameraSet 1+ anim 5)

Operands are bit operated...

There:

10
Scripting and Reverse Engineering / Re: .SGT audio
« on: 2018-06-25 12:48:31 »
I though about other way of doing these things- why not just wrap DirectMusic?
I found this:
https://sourceforge.net/projects/directmidinet/?source=typ_redirect

It's a C# wrapper of C++ wrapper of original DirectXMusic

Sample bootstrap code:
Code: [Select]
            string pt = Memory.FF8DIR + "/../Music/dmusic/004s-run.sgt";
            CDirectMusic cdm = new CDirectMusic();
            cdm.Initialize();
            CDLSLoader loader = new CDLSLoader();
            loader.Initialize();
            CSegment segment;
            loader.LoadSegment(pt, out segment);
            CAPathPerformance path = new CAPathPerformance();
            path.Initialize(cdm, null, null, DMUS_APATH.DYNAMIC_3D, 128);
            CPortPerformance cport = new CPortPerformance();
            cport.Initialize(cdm, null, null);
            COutputPort outport = new COutputPort();
            outport.Initialize(cdm);

            uint dwPortCount = 0;
            INFOPORT infoport;
            do
                outport.GetPortInfo(++dwPortCount, out infoport);
            while (( infoport.dwFlags & DMUS_PC.SOFTWARESYNTH)==0);

            outport.SetPortParams(0, 0, 0, SET.REVERB | SET.CHORUS, 44100);
            outport.ActivatePort(infoport);

            cport.AddPort(outport, 0, 1);

            segment.Download(cport);
            cport.PlaySegment(segment);

I need to find the way to put .DLS in it, as the audio lacks some instruments, but it plays so great at another thread*

*looks like I need to make it FIXED as the memory relocation either kills the DirectMusic or whole application due to memory access violation
**Looks like the memory is moving only when reference pointer is nulled. Just make sure to set all available DirectMusic members as static and whole class as static to pin them.


Code for DLS support:
Code: [Select]
string pt = Memory.FF8DIR + "/../Music/dmusic/013s-battle2.sgt";
            cdm = new CDirectMusic();
            cdm.Initialize();
            loader = new CDLSLoader();
            loader.Initialize();
            loader.LoadSegment(pt, out segment);
            ccollection = new CCollection();
            loader.LoadDLS(Memory.FF8DIR + "/../Music/dmusic/FF8.dls",out ccollection );
            uint dwInstrumentIndex = 0;
            INSTRUMENTINFO iInfo;
            while (ccollection.EnumInstrument(++dwInstrumentIndex, out iInfo) == S_OK)
            {
                Debug.WriteLine(iInfo.szInstName);
            }

            path = new CAPathPerformance();
            path.Initialize(cdm, null, null, DMUS_APATH.DYNAMIC_3D, 128);
            cport = new CPortPerformance();
            cport.Initialize(cdm, null, null);
            outport = new COutputPort();
            outport.Initialize(cdm);

            uint dwPortCount = 0;
            INFOPORT infoport;
            do
                outport.GetPortInfo(++dwPortCount, out infoport);
            while ((infoport.dwFlags & DMUS_PC.SOFTWARESYNTH) == 0);

            outport.SetPortParams(0, 0, 0, SET.REVERB | SET.CHORUS, 44100);
            outport.ActivatePort(infoport);

            cport.AddPort(outport, 0, 1);

            for (int i = 0; i < dwInstrumentIndex; i++)
            {
                ccollection.GetInstrument(out instrument, i);
                outport.DownloadInstrument(instrument);
            }


            outport.DownloadInstrument(instrument);
            segment.Download(cport);
            //GCHandle.Alloc(cdm, GCHandleType.Pinned);
            //GCHandle.Alloc(loader, GCHandleType.Pinned);
            //GCHandle.Alloc(segment, GCHandleType.Pinned);
            //GCHandle.Alloc(path, GCHandleType.Pinned);
            //GCHandle.Alloc(cport, GCHandleType.Pinned);
            //GCHandle.Alloc(outport, GCHandleType.Pinned);
            //GCHandle.Alloc(infoport, GCHandleType.Pinned);

            cport.PlaySegment(segment);


Full class with DLS support for collection based on static for GC:
Code: [Select]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using DirectMidi;
using System.Runtime.InteropServices;
using System.Diagnostics;

namespace FF8
{
    static class init_debugger_Audio
    {
        public static CDirectMusic cdm;
        public static CDLSLoader loader;
        public static CSegment segment;
        public static CAPathPerformance path;
        public static CPortPerformance cport;
        public static COutputPort outport;
        public static CCollection ccollection;
        public static CInstrument instrument;
        public static CInstrument[] instruments;


        public const int S_OK = 0x00000000;


        internal static void DEBUG()
        {

            PlayMusic();
            //FileStream fs = new FileStream(pt, FileMode.Open, FileAccess.Read);
            //BinaryReader br = new BinaryReader(fs);
            //string RIFF = Encoding.ASCII.GetString(br.ReadBytes(4));
            //if (RIFF != "RIFF") throw new Exception("NewDirectMusic::NOT RIFF");
            //uint eof = br.ReadUInt32();
            //if (fs.Length != eof + 8) throw new Exception("NewDirectMusic::RIFF length/size indicator error");
            //string dmsg = Encoding.ASCII.GetString(br.ReadBytes(4));
            //var SegmentHeader = GetSGTSection(br);
            //var guid = GetSGTSection(br);
            //var list = GetSGTSection(br);
            //var vers = GetSGTSection(br);
            //var list_unfo = GetSGTSection(br);
            //string UNFO = SGT_ReadUNAM(list_unfo).TrimEnd('\0');
            //var trackList = GetSGTSection(br);
            //List<byte[]> Tracks = ProcessTrackList(trackList.Item2);
            //byte[] sequenceTrack = Tracks[2];
            //PseudoBufferedStream pbs = new PseudoBufferedStream(sequenceTrack);
            //pbs.Seek(44, PseudoBufferedStream.SEEK_BEGIN);
            //string seqt = Encoding.ASCII.GetString(BitConverter.GetBytes(pbs.ReadUInt()));
        }

        internal static void update()

        {

        }

        unsafe private static void PlayMusic()
        {
            string pt = Memory.FF8DIR + "/../Music/dmusic/013s-battle2.sgt";
            cdm = new CDirectMusic();
            cdm.Initialize();
            loader = new CDLSLoader();
            loader.Initialize();
            loader.LoadSegment(pt, out segment);
            ccollection = new CCollection();
            loader.LoadDLS(Memory.FF8DIR + "/../Music/dmusic/FF8.dls",out ccollection );
            uint dwInstrumentIndex = 0;
            INSTRUMENTINFO iInfo;
            while (ccollection.EnumInstrument(++dwInstrumentIndex, out iInfo) == S_OK)
            {
                Debug.WriteLine(iInfo.szInstName);
            }
            instruments = new CInstrument[dwInstrumentIndex];

            path = new CAPathPerformance();
            path.Initialize(cdm, null, null, DMUS_APATH.DYNAMIC_3D, 128);
            cport = new CPortPerformance();
            cport.Initialize(cdm, null, null);
            outport = new COutputPort();
            outport.Initialize(cdm);

            uint dwPortCount = 0;
            INFOPORT infoport;
            do
                outport.GetPortInfo(++dwPortCount, out infoport);
            while ((infoport.dwFlags & DMUS_PC.SOFTWARESYNTH) == 0);

            outport.SetPortParams(0, 0, 0, SET.REVERB | SET.CHORUS, 44100);
            outport.ActivatePort(infoport);

            cport.AddPort(outport, 0, 1);

            for (int i = 0; i < dwInstrumentIndex; i++)
            {
                ccollection.GetInstrument(out instruments[i], i);
                outport.DownloadInstrument(instruments[i]);
            }
            segment.Download(cport);
            //GCHandle.Alloc(cdm, GCHandleType.Pinned);
            //GCHandle.Alloc(loader, GCHandleType.Pinned);
            //GCHandle.Alloc(segment, GCHandleType.Pinned);
            //GCHandle.Alloc(path, GCHandleType.Pinned);
            //GCHandle.Alloc(cport, GCHandleType.Pinned);
            //GCHandle.Alloc(outport, GCHandleType.Pinned);
            //GCHandle.Alloc(infoport, GCHandleType.Pinned);

            cport.PlaySegment(segment);
        }

@UPDATE:
segment.ConnectToDls takes CCollection

11
Scripting and Reverse Engineering / Re: .SGT audio
« on: 2018-06-25 12:16:00 »
I began to work with it by myself. It's hard to find any documentation about .SGT file, but I made it to split the file content into five tracks. I'm working with 0004s-run.sgt (Run from FFVIII):

Looks like every track have header like this:
TRACK HEADER:
Code: [Select]
const char[8] DMTKrekh
uint size
byte[size] UNKNOWN

UNKNOWN:
Code: [Select]
byte[24] UNKNOWN
char[4] modeIndicator1
char[4] modeIndicator2

Some tracks have modeIndicator1 filled and modeIndicator2 nulled, and some have modeIndicator1 nulled and modeIndicator2 filled.



Track#1:
Code: [Select]
TRACKHEADER 44 bytes
LIST->cord (in my example 156 bytes + 8 ('cord' and size uint))
Chords data?

Track#2:
Code: [Select]
TRACKHEADER 44 bytes
tetr (in my example 20 bytes + 8 ('tetr' and size uint))
No idea, looks quite empty

Track#3:
Code: [Select]
TRACKHEADER 44 bytes
seqt (in my example 14460 bytes + 8 ('seqt' and size uint))
---evtl (in my example 60664 bytes + 8)
---curl (in my example 83780 bytes + 8)
This needs to be the main sequence, what evtl and curl are?
FOUND IT!
https://msdn.microsoft.com/en-us/library/ms900331.aspx

Track#4:
Code: [Select]
TRACKHEADER 44 bytes
tims (in my example 20 bytes + 8 ('tims' and size uint))
No idea, looks quite empty

Track#5:
Code: [Select]
TRACKHEADER 44 bytes
RIFF CONTAINER -> DMBT -> LIST; LIST; LIST; UNFO ("Band1"); (...) Inname ("FF8 Instruments File * FF8.dls")
Probably set-up of DLS/ bands/ instruments, lot of sub-cointainers with 'LIST' indicator.


@UPDATE:
Yeah, like I found the SGT chunks documentation:
https://msdn.microsoft.com/en-us/library/ms900553.aspx
-but some pages are in JP only https://msdn.microsoft.com/ja-jp/cc354074(ja-jp)

Python, track 2/ tetr, last 8 bytes:
Code: [Select]
>struct.unpack('d', '0000000000405f40'.decode('hex'))[0]
125.0


dmusicf.h found at:
https://github.com/tycho/arc/blob/master/contrib/DirectX/include/dmusicf.h

Sequence:
Code: [Select]
typedef struct _DMUS_IO_SEQ_ITEM
{
    MUSIC_TIME    mtTime;
    MUSIC_TIME    mtDuration;
    DWORD         dwPChannel;
    short         nOffset;
    BYTE          bStatus;
    BYTE          bByte1;
    BYTE          bByte2;
} DMUS_IO_SEQ_ITEM;


typedef struct _DMUS_IO_CURVE_ITEM
{
    MUSIC_TIME  mtStart;
    MUSIC_TIME  mtDuration;
    MUSIC_TIME  mtResetDuration;
    DWORD       dwPChannel;
    short       nOffset;
    short       nStartValue;
    short       nEndValue;
    short       nResetValue;
    BYTE        bType;
    BYTE        bCurveShape;
    BYTE        bCCData;
    BYTE        bFlags;
} DMUS_IO_CURVE_ITEM;

12
Hoarding again through the FF executables I found the .dotemu references. Quickly found out it's a game porting studio. Here's the interview:
https://squarebd1.wordpress.com/2016/01/27/my-interview-with-dotemu-the-studio-behind-many-recent-final-fantasy-ports/

From my personal experience working in commercial gamedev industry, porting game is usually hacking it on your own to make it working with current gen (in case of retro games there's almost never a source code, just an ISO). However, dotemu actually said the dev department of SE did in fact provide support for their game, which happens quite rare. We can't talk about source code for sure, but I think they actually remembered how things go and for example how to use AF3DN.P for memory injection and passed that info to dotemu.

13
Scripting and Reverse Engineering / .SGT audio
« on: 2018-06-24 11:59:50 »
I'm currently on hunt to implement .SGT playing. I got many needed information like how is RIFF container with DMSG built, like here: http://www.vgmpf.com/Wiki/index.php?title=SGT
It's part of DirectMusic that was a part of Dx8, yet I've seen the FMOD works with .SGT and .DLS media. I grabbed FMOD, made the wrappers working and tested with .MP3 and .MID files work flawless yet on .SGT it throws ERR_FORMAT like it doesn't know how to play .SGT (yet it loads .DLS bank properly). I browsed the web and found the FMUSIC of FMOD is capable of playing .SGT, but it's like 14 years ago and no such thing as FMUSIC exists anymore. Therefore- is any of you aware of any library that supports playing .SGT? Or converting to .MID or almost anything else I can use on good license and is capable of storing the data in memory only? I'm trying to implement an audio playing working on real files instead of re-converting them (or at least not leaving any trash behind). I'm working with Dx11, so I can't just grab the old DirectMusic from dx8

Working C# example in my last post!

Basically C# wrapper of C++ wrapper of Dx8 DirectMusic

14
Troubleshooting / Re: Urgent help needed
« on: 2018-04-29 20:58:59 »
You can grab needed librarier from Microsoft package:
http://www.microsoft.com/en-US/download/details.aspx?id=40784

Make sure to download both- x86 and 86-64 packages.

15
Maybe something bad happened to him?

16
Great job on recovering wiki to other host, thanks Albeoris!

17
FF8 Tools / Re: [FF8] Chocobo World Savegame Editor
« on: 2018-03-08 15:38:47 »
Copy the chocorpg from my documents to i.e. Desktop, edit it there and move back again. This kind of error applies only to MyDocument folder located at system drive.

18
Misc. Tools / Re: [FFXV PC] Hammerhead, EARC archiver
« on: 2018-03-08 13:59:15 »
Glorious! I hated the BMS script repacking. Thanks!

19
General discussion / Re: Final Fantasy 8 in Unity?
« on: 2018-02-28 19:02:04 »
I'm not going to lie, I did every single visualization directly in Unreal Engine except the full Balamb Garden that I did in Unity, and as I do prefer UE4 over Unity, so yeah, I'm with you. 😁

20
Remember that you can do majority of things via simple C functions- fopen, fread, ftell.
Check FF7 imports to see what you can do.

I'm not at FF7 at all, but normally try to look for a code cave to input your asm code. Example as you wrote WM module stores file at 0x75938C, so try to break at C_00675511 and find the pointer to this location. This might be possibly an argument that gets passed every time. Note this pointer to code cave uint and get an filename from C_006759D2.
Now using sprintf import build a filepath to your working directory (thankfully the path is relative, so no need to deal with working directory grabbing)- if fopen returns -1 to EAX it means file doesn't exists (normally) so do CMP EAX, 0xFFFFFFFF and JE NormalFF7OpeningRoutine back to C_006759D2. If not, then fread by he count to buffer location read from the breakpoint and... return to all the way back up to original caller. Sorry I can't help you more... :/

But i don't know C.  And to be frank, I ferning hate C.  I hate it with a passion. 


21
General discussion / Re: Who's excited to mod FFXV?
« on: 2018-02-18 15:21:57 »
Yeah, XV is going to be extremely easy to mod due to the fact on how's it built. It has visual scripting, node based properties and you can freely edit the levels as they are just as in every other game engine. Cameras, actions are also not hardcoded, so everything is grabbed directly from files. That means a dedicated modder may be able to easily total convert the game to completely different genre. Unfortunately, file structures are ZLIB'bed + custom structure based on nodes, so we would need official modding tools for that.

22
Quest unpacked, names:

Code: [Select]
entities_.benchmark_demo.nodes_.[1]
entities_.benchmark_demo.nodes_.[3]
entities_.benchmark_demo.nodes_.[4]
entities_.benchmark_demo.nodes_.[5]
entities_.benchmark_demo.nodes_.[6]
entities_.benchmark_demo.nodes_.[7]
entities_.benchmark_demo.nodes_.[9]
entities_.benchmark_demo.nodes_.[11]
entities_.benchmark_demo.nodes_.[12]
entities_.benchmark_demo.nodes_.[13]
entities_.benchmark_demo.nodes_.[16]
entities_.benchmark_demo.nodes_.[18]
entities_.benchmark_demo.nodes_.[19]
entities_.benchmark_demo.nodes_.[20]
entities_.benchmark_demo.nodes_.[21]
entities_.benchmark_demo.nodes_.[22]
entities_.benchmark_demo.nodes_.[23]
entities_.benchmark_demo.nodes_.[24]
entities_.benchmark_demo.nodes_.[25]
entities_.benchmark_demo.nodes_.[26]
entities_.benchmark_demo.nodes_.[28]
entities_.benchmark_demo.nodes_.[29]
entities_.benchmark_demo.nodes_.[30]
entities_.benchmark_demo.nodes_.[32]
entities_.benchmark_demo.nodes_.[34]
entities_.benchmark_demo.nodes_.[35]
entities_.benchmark_demo.nodes_.[37]
entities_.benchmark_demo.nodes_.[39]
entities_.benchmark_demo.nodes_.[41]
entities_.benchmark_demo.nodes_.[42]
entities_.benchmark_demo.nodes_.[43]
entities_.benchmark_demo.nodes_.[44]
entities_.benchmark_demo.nodes_.[45]
entities_.benchmark_demo.nodes_.[47]
entities_.benchmark_demo.nodes_.[48]
entities_.benchmark_demo.nodes_.[49]
entities_.benchmark_demo.nodes_.[51]
entities_.benchmark_demo.nodes_.[52]
entities_.benchmark_demo.nodes_.[53]
entities_.benchmark_demo.nodes_.[54]
entities_.benchmark_demo.nodes_.[56]
entities_.benchmark_demo.nodes_.[59]
entities_.benchmark_demo.nodes_.[60]
entities_.benchmark_demo.nodes_.[61]
entities_.benchmark_demo.nodes_.[62]
entities_.benchmark_demo.nodes_.[63]
entities_.benchmark_demo.nodes_.[66]
entities_.benchmark_demo.nodes_.[67]
entities_.benchmark_demo.nodes_.[70]
entities_.benchmark_demo.nodes_.[71]
entities_.benchmark_demo.nodes_.[72]
entities_.benchmark_demo.nodes_.[74]
entities_.benchmark_demo.nodes_.[75]
entities_.benchmark_demo.nodes_.[76]
entities_.benchmark_demo.nodes_.[77]
entities_.benchmark_demo.nodes_.[78]
entities_.benchmark_demo.nodes_.[79]
entities_.benchmark_demo.nodes_.[84]
entities_.benchmark_demo.nodes_.[86]
entities_.benchmark_demo.nodes_.[96]
entities_.benchmark_demo.nodes_.[100]
entities_.benchmark_demo.nodes_.[101]
entities_.benchmark_demo.nodes_.[102]
entities_.benchmark_demo.nodes_.[103]
entities_.benchmark_demo.nodes_.[104]
entities_.benchmark_demo.nodes_.[105]
entities_.benchmark_demo.nodes_.[108]
entities_.benchmark_demo.nodes_.[110]
entities_.benchmark_demo.nodes_.[111]
entities_.benchmark_demo.nodes_.[112]
entities_.benchmark_demo.nodes_.[113]
entities_.benchmark_demo.nodes_.[114]
entities_.benchmark_demo.nodes_.[115]
entities_.benchmark_demo.nodes_.[116]
entities_.benchmark_demo.nodes_.[117]
entities_.benchmark_demo.nodes_.[118]
entities_.benchmark_demo.nodes_.[119]
entities_.benchmark_demo.nodes_.[120]
entities_.benchmark_demo.nodes_.[121]
entities_.benchmark_demo.nodes_.[122]
entities_.benchmark_demo.nodes_.[123]
entities_.benchmark_demo.nodes_.[124]
entities_.benchmark_demo.nodes_.[125]
entities_.benchmark_demo.nodes_.[127]
entities_.benchmark_demo.nodes_.[128]
entities_.benchmark_demo.nodes_.[129]
entities_.benchmark_demo.nodes_.[130]
entities_.benchmark_demo.nodes_.[131]
entities_.benchmark_demo.nodes_.[133]
entities_.benchmark_demo.nodes_.[134]
entities_.benchmark_demo.nodes_.[135]
entities_.benchmark_demo.nodes_.[136]
entities_.benchmark_demo.nodes_.[137]
entities_.benchmark_demo.nodes_.[138]
entities_.benchmark_demo.nodes_.[139]
entities_.benchmark_demo.nodes_.[140]
entities_.benchmark_demo.nodes_.[141]
entities_.benchmark_demo.nodes_.[144]
entities_.benchmark_demo.nodes_.[145]
entities_.benchmark_demo.nodes_.[146]
entities_.benchmark_demo.nodes_.[147]
entities_.benchmark_demo.nodes_.[152]
entities_.benchmark_demo.nodes_.[153]
entities_.benchmark_demo.nodes_.[155]
entities_.benchmark_demo.nodes_.[156]
entities_.benchmark_demo.nodes_.[157]
entities_.benchmark_demo.nodes_.[159]
entities_.benchmark_demo.nodes_.[160]
entities_.benchmark_demo.nodes_.[162]
entities_.benchmark_demo.nodes_.[164]
entities_.benchmark_demo.nodes_.[165]
entities_.benchmark_demo.nodes_.[166]
entities_.benchmark_demo.nodes_.[167]
entities_.benchmark_demo.nodes_.[171]
entities_.benchmark_demo.nodes_.[173]
entities_.benchmark_demo.nodes_.[174]
entities_.benchmark_demo.nodes_.[175]
entities_.benchmark_demo.nodes_.[177]
entities_.benchmark_demo.nodes_.[179]
entities_.benchmark_demo.nodes_.[180]
entities_.benchmark_demo.nodes_.[181]
entities_.benchmark_demo.nodes_.[182]
entities_.benchmark_demo.nodes_.[183]
entities_.benchmark_demo.nodes_.[184]
entities_.benchmark_demo.nodes_.[185]
entities_.benchmark_demo.nodes_.[186]
entities_.benchmark_demo.nodes_.[187]
entities_.benchmark_demo.nodes_.[188]
entities_.benchmark_demo.nodes_.[189]
entities_.benchmark_demo.nodes_.[191]
entities_.benchmark_demo.nodes_.[195]
entities_.benchmark_demo.nodes_.[196]
entities_.benchmark_demo.nodes_.[197]
entities_.benchmark_demo.nodes_.[198]
entities_.benchmark_demo.nodes_.[200]
entities_.benchmark_demo.nodes_.[205]
entities_.benchmark_demo.nodes_.[206]
entities_.benchmark_demo.nodes_.[210]
entities_.benchmark_demo.nodes_.[211]
entities_.benchmark_demo.nodes_.[212]
entities_.benchmark_demo.nodes_.[213]
entities_.benchmark_demo.nodes_.[214]
entities_.benchmark_demo.nodes_.[215]
entities_.benchmark_demo.nodes_.[216]
entities_.benchmark_demo.nodes_.[219]
entities_.benchmark_demo.nodes_.[222]
entities_.benchmark_demo.nodes_.[224]
entities_.benchmark_demo.nodes_.[226]
entities_.benchmark_demo.nodes_.[227]
entities_.benchmark_demo.nodes_.[229]
entities_.benchmark_demo.nodes_.[231]
entities_.benchmark_demo.nodes_.[232]
entities_.benchmark_demo.nodes_.[233]
entities_.benchmark_demo.nodes_.[234]
entities_.benchmark_demo.nodes_.[235]
entities_.benchmark_demo.nodes_.[236]
entities_.benchmark_demo.nodes_.[237]
entities_.benchmark_demo.nodes_.[238]
entities_.benchmark_demo.nodes_.[239]
entities_.benchmark_demo.nodes_.[245]
entities_.benchmark_demo.nodes_.[248]
entities_.benchmark_demo.nodes_.[249]
entities_.benchmark_demo.nodes_.[250]
entities_.benchmark_demo.nodes_.[251]
entities_.benchmark_demo.nodes_.[252]
entities_.benchmark_demo.nodes_.[253]
entities_.benchmark_demo.nodes_.[254]
entities_.benchmark_demo.nodes_.[255]
entities_.benchmark_demo.nodes_.[256]
entities_.benchmark_demo.nodes_.[257]
entities_.benchmark_demo.nodes_.[258]
entities_.benchmark_demo.nodes_.[259]
entities_.benchmark_demo.nodes_.[260]
entities_.benchmark_demo.nodes_.[261]
entities_.benchmark_demo.nodes_.[262]
entities_.benchmark_demo.nodes_.[263]
entities_.benchmark_demo.nodes_.[264]
entities_.benchmark_demo.nodes_.[265]
entities_.benchmark_demo.nodes_.[266]
entities_.benchmark_demo.nodes_.[267]
entities_.benchmark_demo.nodes_.[269]
entities_.benchmark_demo.nodes_.[270]
entities_.benchmark_demo.nodes_.[272]
entities_.benchmark_demo.nodes_.[275]
entities_.benchmark_demo.nodes_.[276]
entities_.benchmark_demo.nodes_.[277]
entities_.benchmark_demo.nodes_.[278]
entities_.benchmark_demo.nodes_.[279]
entities_.benchmark_demo.nodes_.[280]
entities_.benchmark_demo.nodes_.[281]
entities_.benchmark_demo.nodes_.[282]
entities_.benchmark_demo.nodes_.[283]
entities_.benchmark_demo.nodes_.[284]
entities_.benchmark_demo.nodes_.[285]
entities_.benchmark_demo.nodes_.[286]
entities_.benchmark_demo.nodes_.[287]
entities_.benchmark_demo.nodes_.[288]
entities_.benchmark_demo.nodes_.[289]
entities_.benchmark_demo.nodes_.[290]
entities_.benchmark_demo.nodes_.[291]
entities_.benchmark_demo.nodes_.[292]
entities_.benchmark_demo.nodes_.[293]
entities_.benchmark_demo.nodes_.[294]
entities_.benchmark_demo.nodes_.[295]
entities_.benchmark_demo.nodes_.[296]
entities_.benchmark_demo.nodes_.[297]
entities_.benchmark_demo.nodes_.[298]
entities_.benchmark_demo.nodes_.[299]
entities_.benchmark_demo.nodes_.[300]
entities_.benchmark_demo.nodes_.[301]
entities_.benchmark_demo.nodes_.[302]
entities_.benchmark_demo.nodes_.[303]
entities_.benchmark_demo.nodes_.[304]
entities_.benchmark_demo.nodes_.[305]
entities_.benchmark_demo.nodes_.[306]
entities_.benchmark_demo.nodes_.[308]
entities_.benchmark_demo.nodes_.[309]
entities_.benchmark_demo.nodes_.[310]
entities_.benchmark_demo.nodes_.[311]
entities_.benchmark_demo.nodes_.[314]
entities_.benchmark_demo.nodes_.[315]
entities_.benchmark_demo.nodes_.[318]
entities_.benchmark_demo.nodes_.[319]
entities_.benchmark_demo.nodes_.[321]
entities_.benchmark_demo.nodes_.[323]
entities_.benchmark_demo.nodes_.[324]
entities_.benchmark_demo.nodes_.[325]
entities_.benchmark_demo.nodes_.[326]
entities_.benchmark_demo.nodes_.[327]
entities_.benchmark_demo.nodes_.[328]
entities_.benchmark_demo.nodes_.[329]
entities_.benchmark_demo.nodes_.[330]
entities_.benchmark_demo.nodes_.[331]
entities_.benchmark_demo.nodes_.[332]
entities_.benchmark_demo.nodes_.[333]
entities_.benchmark_demo.nodes_.[334]
entities_.benchmark_demo.nodes_.[335]
entities_.benchmark_demo.nodes_.[336]
entities_.benchmark_demo.nodes_.[337]
entities_.benchmark_demo.nodes_.[338]
entities_.benchmark_demo.nodes_.[339]
entities_.benchmark_demo.nodes_.[340]
entities_.benchmark_demo.nodes_.[341]
nodes_
lastCenterX_
lastCenterY_
bIsPrefabTopSequence_
entities_.benchmark_demo.connectors_.[0]
entities_.benchmark_demo.connectors_.[1]
entities_.benchmark_demo.connectors_.[2]
entities_.benchmark_demo.connectors_.[3]
entities_.benchmark_demo.connectors_.[4]
entities_.benchmark_demo.connectors_.[5]
entities_.benchmark_demo.connectors_.[6]
entities_.benchmark_demo.connectors_.[7]
entities_.benchmark_demo.connectors_.[8]
entities_.benchmark_demo.connectors_.[9]
entities_.benchmark_demo.connectors_.[10]
entities_.benchmark_demo.connectors_.[11]
entities_.benchmark_demo.connectors_.[12]
connectors_
benchmark_demo
SQEX.Ebony.Framework.Sequence.SequenceContainer
isBrowsable_
inValue_
inVehicleActor_
connections_
actor_
kind_
ACTOR_VEHICLE
[1]
Black.Sequence.Actor.SequenceVariableActorObject
pinName_
Arg0
pinValueType_
arg0_
SQEX.Ebony.Framework.Node.GraphVariableInputPin
refInPorts_
out_
in_
in1_
eventId_
WM_G_COMM_VE_RIDE
pDependencyPin_
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.benchmark_demo.nodes_.[3].refInPorts_.arg0_
refInPorts_.arg0_
pointer
table_
param
prefix_
VEHICLE_RIDE_PATTERN_
value_
DEFAULT_NOCT_DRIVER
SQEX.Ebony.Framework.Sequence.Variable.Primitive.SequencePrimitiveFixid
arguments_
printLog_
notifyRange_
LOCAL_MACHINE_REMOTE_EVENT
[3]
Black.Sequence.Event.Trigger.SequenceRemoteEventRequest
Isolated_
floatPin_
floatKeepTimePin_
floatKeepSpeedPin_
boolPin_
integerPin_
stopped_
target_
AUTO_DRIVE_DEFINED_ROUTE
floatValue_
floatKeepTimeValue_
floatKeepSpeedValue_
destId_
DU_PARKING_12
isStop_
standingTime_
isKeepDirection_
destList_0
Black.Sequence.Actor.AI.Vehicle.VehicleNavigationDestIdItem
destList_
isLoopValue_
loopNumValue_
int
isStopEngineAtEnd_
boolValue_
getOffType_
VRG_AUTO
isNeedChangeVehicleCamera_
[4]
Black.Sequence.Actor.AI.Vehicle.SequenceActionAIVehicleSetAssist
true_
layCheckNG_
rayCheckSuccess_
positionOffset_
rotationOffset_
entityGroupFlag_
pointNodeActorVarOutPin_
targetActorPin_
isTeleportCamera_
affectRotTypeForTargetActorPin_
ROT_Y
isUseRayCheck_
isForceCreateActor_EvenRayCheckNG_
upperRayOffset
lowerRayOffset
bRayCastShiftBlockCollision_
isRaycastBGOnly_
waitCollisionAfterSetTrans_
isAffectRotYTargetActorPin_
isWorldRotationOffset_
isMoveToTargetActorScene_
rotatePositionOffsetWithTargetActorRotation
[5]
Black.Sequence.Action.Actor.SequenceActionActorSetTransform
in2_
wakeUpPin_
VE_COMM_REGALIA_RIDE_ON
[6]
Black.Sequence.Event.Trigger.SequenceRemoteEventTrigger
reset_
[7]
SQEX.Ebony.Framework.Sequence.Action.SequenceActionSync2
VE_COMM_EVENT_WRECKER
[9]
VE_COMM_EVENT_WRECKER_END_JET_BENCH
[11]
[12]
false_
finished_
createdVehicle_
isSetTranslate_
isOverwriteLoadData_
spawnPointPin_
upperExtentOffset_
lowerExtentOffset_
isSetVehicleType_
vehicleType_
CAR_REGALIA
isDisposePreviewVehicle_
isSetKinematic_
isUpdateSaveData_
[13]
Black.Sequence.Actor.AI.Vehicle.SequenceActionCreatePlayerVehicle
entityPointer_
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.vehicle_road
entities_.spawn.entities_.vehicle_road
[16]
Black.Sequence.Variable.SequenceConstSpawnPointEntity
operatorType_
BOC_OPERATOR_NOT_NULL
operatorTypeLast_
A
dynamicVarInputPin2_
condition_
resultPin_
[18]
Black.Sequence.Operator.Compare.SequenceOperatorCompareObject
[19]
[20]
Black.Sequence.Control.SequenceActionControlIf
[21]
ACTOR_NOCTIS
[22]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.noctis
entities_.spawn.entities_.noctis
[23]
label_
WS_IS_STOP_ECOLOGY
valuePin_
labelPin_
isFixid_
[24]
Black.Sequence.Control.GameFlag.SequenceActionControlSetGameFlagFixId
bUseFrame_
[25]
Black.Sequence.Actor.AI.SequenceActionAINone
inCharEntryPath_
overwriteParameterIDPin_
spawnSets_
spawnSet_
actorType_
ENEMY
autoLoadCharaEntry_
charaEntry_
character/em/em04/entry/em04_020_armor_d_kargo.ebex
overwriteParameterID_
NONE
defaultAIControllerType_
CONTROLLER_TYPE_SEQUENCE_VS0
overwriteInteractionParamId_
teritoryFixId_
isOverwriteDefaultControllerType_
overrideAIParamId_
maxSpawnNum_
minSpawnNum_
maxAliveNum_
minAliveNum_
[26]
Black.Sequence.Actor.SceneControl.SequenceActionSCPersonalSetting
isSameActorRayCheckNG_
isHoldLODLevel_
deleteActorsAtDestroy_
setInactiveAtSpawn_
setFadeAtSpawn_
failAtNoResource_
deleteWhenEnterTray_
useSystemTime_
abortInputPin_
recoverInputPin_
recoverStopPin_
failed_
eachSpawned_
allSpawned_
recoverSuccess_
spawnedList_
lastSpawnedList_
actor2Pin_
lastSpawned_
lastRecovered_
spawnPointType_
BSSPT_SpecifiedPointOnly
spawnRadius_
isUseEachBlackPathNodeRadius_
retryCountWhenRadius_
retryLimitRayCheckNGCount_
teamName_
NOTEAM
teamType_
NOTYPE
teamNameId_
NO_TEAM
teamTypeId_
NO_TYPE
teamParamID_
INVALID_ID
tacticsID_
TACTICS_NONE
roleSetType_
ROLE_SET_TYPE_VS0
bAutoTeamMerge_
spawnWeightType1_
BSSWT_NoWeight
spawnWeightType2_
spawnWeightType3_
spawnPointWeightThreshhold_
spawnPointSamePointWeightImpact_
afterSpawnWaitTime_
isDeathActorRecover_
m_SceneNoWhenActivated
m_bIsScriptActivated
m_SelectRotationType
BlkSCSRT_SpecificVector
autoRandomYawMin_
autoRandomYawMax_
TimeBetweenPawnSpawns
MinTimeBetweenPawnSpawns
isIKRayCheck_
[28]
Black.Sequence.Action.Actor.SceneControl.SequenceActionSCActorCreate
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.enemy
entities_.spawn.entities_.enemy
[29]
[30]
battleAreaPin_
moveTobattleAreaPin_
moveToSpawnedList_
isPlayerBattleAreaIn_
battleAreaOutActorListPin_
movedToBattleAreaOutPin_
isTeritoryOutTimerDeath_
[32]
Black.Sequence.Action.Level.SequenceActionSetBattleArea
extinctionOut_
stop_
battle_
updateStatusFlag_
changeActivate_
[34]
Black.Sequence.Action.Level.SequenceActionGetBattleAreaStatus
prefixType_
TERITORY_FIXID_PREFIX_TERITORY_LAYOUT
JET_BENCH_ENEMY
teritoryFixId_sub_
[35]
Black.Sequence.Action.Level.SequenceActionBattleAreaNotification
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.battleareaentity01
[37]
Black.Sequence.Variable.SequenceConstPointEntityBase
autoBattle_
[39]
Black.Sequence.Action.Debug.SequenceActionDebugSetAutoBattleMode
actors_
invincible_
damage9999_
saveDataState_
SAVE_DATA_STATE_AS_IS
[41]
Black.Sequence.SequenceActionSetPlayerInvincible
gage_
encountGage_
second_
resultReset_
_tool_nodeStyle_
[42]
Black.Sequence.Action.Level.BattleArea.SequenceActionSetForceEncountGage
summonId_
SAVE_SUMMON_SHIVA
addAmount_
drawMenu_
randomPlayer_
menu_finish_
success_
fail_
[43]
Black.Sequence.Action.Actor.Accessory.SequenceActionActorGetSummon
cancel_
stopPin_
disable_
timePin_
delayType_
DT_TIME
leftValueOut_
time_
isRandom_
randomMin_
randomMax_
forceAtPause_
forceFrameCount_
[44]
SQEX.Ebony.Framework.Sequence.Action.SequenceActionWaitTime
UCon_
summonDirection_
SAVE_SUMMON_DIRECTION_FULL_SPEC
startSummonStage_
SUMMON_STAGE_PRESAGE
isCheckPlayerDead_
[45]
Black.Sequence.Action.Level.Summon.SequenceActionStartSummonForce
lastSceneKeepPin_
actorPin_
vector1Pin_
float1Pin_
int1Pin_
commandSetPin_
functionIdPin_
functionId_
GAME_LEVEL_ATTENTION_MODE_NONPRAIABLE
lastSceneKeep_
[47]
Black.Sequence.Control.SequenceActionCameraCallSequenceFixId
[48]
inPin_
fadeTime_
interpMode_
IM_SPLINE
[49]
Black.Sequence.Action.Actor.SequenceActionActorDelete
openMenu_
suspendMenu_
SETUP_RUN_END_JET_BENCH
[51]
[52]
outIn_
succeeded_
bEndByDamage_
bEndByEncountGauge_
bCancelByBattle_
bReturnNormalModeWhenFinish_
bForceExec_
bWaitAction_
bEnableNormalPosture_
bHideForReset_
bHideReturnNormal_
bHideEndDanage_
bHideNormalPosture_
movement_
JOG
speedRate_
timeout_
bCorrectionOfcoordinates_
arrivalDistance_
[53]
Black.Sequence.Action.Actor.AI.AIMode.SequenceActionExecAIModeGoTo
[54]
[56]
isRelease_
finish_
completed_
packagePathPin_
packagePath_
level/world/worldshare/plan/stay/camp/camp_event_group_jet_bench.ebex
valueUniqueId_
valueLoadPosition_
positionTargetActor_
isRelese_
isLoadSubPackage_
forAreaLoading_
isToLocateSequencePackagePosition_
checkReleasedAtInitialLoadMode_
isEnableSamePackageLoading_
uniqueId_
loadPosition_
priorityType_
PRIORITY_TYPE_DEFAULT
[59]
Black.Sequence.Action.Level.SequenceActionSetLevelPackageLoad
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.point_du_share_camp21
[60]
color_
Color
fadeSound_
NONE_SOUND_FADE
[61]
Black.Sequence.ScreenEffect.SequenceActionColorFadeOut
enable_
up_
right_
down_
a_
b_
x_
y_
triangle_
circle_
cross_
square_
select_
start_
l1_
r1_
l2_
r2_
l3_
r3_
lt_
rt_
lx_
ly_
rx_
ry_
[62]
Black.Sequence.Pad.SequenceActionPadSimulation
push_
bIsNeedShiftPress_
bIsNeedCtrlPress_
bIsNeedAltPress_
inputKey_
NumPad9
[63]
SQEX.Ebony.Framework.Sequence.Event.SequenceEventKeyboardInput
[66]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.noctis_camp_point
entities_.spawn.entities_.noctis_camp_point
[67]
[70]
isEnabled_
[71]
SQEX.Ebony.Framework.Sequence.Event.SequenceEventFrameUpdated
[72]
GETOFF_VEHICLE
VRG_NORMAL
[74]
addGil_
get_gil_
[75]
Black.Sequence.Action.Actor.Accessory.SequenceActionActorGetGil
[76]
WALK
[77]
actor1_
[78]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.chocobo
entities_.spawn.entities_.chocobo
[79]
two_
itemId_
SQ_ITEM_CHOCOBO_WHISTLE
checkDouble_
add_amount_
add_item_
add_item_fixid_
[84]
Black.Sequence.Action.Actor.Accessory.SequenceActionActorGetItem
MAIN_QT_CHAP_CHOCOBO
[86]
WM_G_CHOC_CALLING
[96]
rentalDays_
[100]
Black.Sequence.Action.Chocobo.SequenceActionChocoboRental
[101]
SQEX.Ebony.Framework.Sequence.Variable.SequenceConstInt
timeoutValue_
[102]
Black.Sequence.Action.Actor.SequenceActionActorWaitLoading
actor2_
ACTOR_CHOCOBO
[103]
open_
[104]
left_
[105]
[108]
float_
A2A_DISTANCE
joint1_
joint2_
[110]
Black.Sequence.Actor.SequenceVariableCalcActor2Actor
argumentNum_
ŠŁíń╗Âň╝Ć1  <=,5
activateAndClose_
dynamicTriggerOutputPin8_
ŠŁíń╗Âň╝Ć2
dynamicTriggerOutputPin7_
expression1
<=,5
expression3
>,150,<=,300
expression4
>,300
[111]
Black.Sequence.Control.SequenceActionControlIfCompare
close_
toggle_
closing_
closed_
[112]
SQEX.Ebony.Framework.Sequence.Action.SequenceActionGate
interval_
[113]
SQEX.Ebony.Framework.Sequence.Event.SequenceEventCyclicUpdated
[114]
IS_RIDE
intPin_
chocoboPin_
[115]
Black.Sequence.Actor.AI.Vehicle.SequenceActionAIChocoboGetStatus
[116]
routeId_
__PLACE_HOLDER__CHOCOBO_BENCH
activateMode_
ACTIVATE_MODE_NORMAL
SLOW
[117]
Black.Sequence.Action.Actor.AI.AIMode.SequenceActionExecAIModeRoute
[118]
[119]
[120]
bool_
action_target_
INTERACTION_REACTION
mask_
[121]
Black.Sequence.Actor.SequenceActionInteractionMask
ACTOR_PC
[122]
[123]
[124]
[125]
enablePin_
touch_
disablePin_
entityLableId_
statusExScope_
ScopeOutTriggerStatus_None
[127]
Black.Sequence.Action.Quest.SequenceActionQuestSetTriggerEntity
triggerPointPin_
remoteEvent_
unTouch_
attackIn_
attackOut_
causedActorList_
causedActor_
triggerActor_
waitEntity_
eventType_
ET_ENTITY
eventTypeLast_
canCatchSameTimeEvents_
canCatchSameTimeEventsPerfectly_
[128]
Black.Sequence.Event.SequenceEventTriggerMultiStatus2
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.trigger_chocobo_camera
[129]
[130]
[131]
[133]
[134]
[135]
[136]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.chocobo_root
entities_.spawn.entities_.chocobo_root
[137]
speedPin_
speed_
[138]
Black.Sequence.Action.System.SequenceActionSetWorldTimerSpeed
weatherTransitionTime_
overrideType_
NORMAL_EVENT
weatherType_
WEATHER_TYPE_A
weatherKey_
cleigne
saveTarget_
[139]
Black.Sequence.Action.Weather.SequenceActionOverrideWeather2
WEATHER_TYPE_C
[140]
[141]
[144]
[145]
[146]
Black.Sequence.ScreenEffect.SequenceActionColorFadeIn
[147]
[152]
[153]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.noctis_camp_battle
entities_.spawn.entities_.noctis_camp_battle
[155]
[156]
BSSPT_InRadius
BlkSCSRT_AutoRandom
[157]
character/es/es00/entry/es00_000_soldier.ebex
[159]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.enemy_box
entities_.spawn.entities_.enemy_box
[160]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.noctis_fishing_point
entities_.spawn.entities_.noctis_fishing_point
[162]
hour_
unsigned int
minute_
setting_
varSet_
[164]
Black.Sequence.Action.System.SequenceActionSetWorldTimerValue
[165]
dayTime_
hourFloat_
days_
enabled_
passingDay2_
instantUpdate2_
passingDay_
instantUpdate_
[166]
Black.Sequence.Variable.SequenceVariableWorldTimer
[167]
[171]
Bool
dynamicPin1_
SQEX.Ebony.Framework.Node.GraphVariableOutputPin
refOutPorts_
labelScope_
LS_Global_Scope
isCreateWhenNotFound_
useTimer_
timerType_
TT_DECREMENT
stopTimerValue_
GAME_MODE_LOOP
labelType_
TYPE_BOOL
labelTypeLast_
[173]
Black.Sequence.Variable.Labeled.SequenceVariableLabeledFixId
[174]
Black.Sequence.Action.System.SequenceActionExitGame
closeMenu_
refOutPorts_.dynamicPin1_
[175]
[177]
FRAME_COUNT_START_RESET
[179]
[180]
[181]
playerBankNumber_
SAVE_PLAYER_NOCTIS
level_
level_pin_
[182]
Black.Sequence.Action.Actor.StatusGrow.SequenceActionActorAddLevel
SAVE_PLAYER_GLADIOLUS
[183]
SAVE_PLAYER_IGNIS
[184]
SAVE_PLAYER_PROMPTO
[185]
[186]
[187]
[188]
[189]
refInPorts_.dynamicPin1_
[191]
SQEX.Ebony.Framework.Sequence.Action.SequenceActionSetBoolVariableDirect
[195]
[196]
[197]
[198]
[200]
opened_
canceled_
pressButtonDecided_
pressButtonOther_
dialogFixId_
keyHelpFixId_
dialogString_
 GAME_MODE_LOOP -> True
dialogPos_
outputID_
inputID_
dialogSeconds_
disableCloseSeconds_
messageSpecificationType_
SPECIFICATION_STRING
forceDisp_
enablePause_
enableCancelClose_
[205]
Black.Sequence.Action.Menu.SequenceActionInfoWindow
[206]
speedRatePin_
[210]
[211]
[212]
[213]
WEATHER_TYPE_B
[214]
[215]
__PLACE_HOLDER__NOCTIS_BENCH
[216]
refActor_
SET_GASOLINE
fixidValue_
intValue_
envStateValue_
ENV_STATE_NORMAL
timeToUnfreeze_
[219]
Black.Sequence.Actor.AI.Vehicle.SequenceActionAIVehicleSetStatus
level/world/worldshare/plan/stay/worldshare_stay_bonamik.ebex
[222]
WM_G_STAY_CAMP_START_JET_BENCH
[224]
[226]
WM_G_STAY_CAMP_END_JET_BENCH
[227]
 ŃéźŃâíŃâęńŻťŠłÉšöĘŃâçŃâÉŃââŃé░ -> ON
[229]
one_
answerString1_
ŃâëŃâęŃéĄŃâľ
answerString2_
ŃâüŃâžŃé│Ńâť
isPlayerControlOff_
bSetPause_
[231]
Black.Sequence.Action.Menu.SequenceActionSelectMenuInOut
SETUP_RUN_END_JET_BENCH_CAMERA
[232]
[233]
[234]
[235]
BENCH_DRIVE_CAMERA_START
[236]
BENCH_DRIVE_CAMERA_END
[237]
three_
four_
five_
six_
cancelled_
reqNext_
reqPreview_
Ńâ¬ŃâŚŃâČŃéĄŃüÖŃéő
[238]
[239]
[245]
BENCH_CHOCOBO_CAMERA_END
[248]
BENCH_CHOCOBO_CAMERA_START
[249]
[250]
[251]
[252]
[253]
[254]
[255]
isEnableBGCollision_
bgEnabledInterpolationTime_
bgEnabledSearchGroundLength_
[256]
Black.Sequence.Actor.SequenceActionActorSetCollisionEnable
ACTOR_CHOCOBO_GLADIO
[257]
ACTOR_CHOCOBO_PROMPT
[258]
ACTOR_CHOCOBO_IGNIS
[259]
pinNum_
swfEntryEntity_
outValue_
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.swfentryentity01
[260]
Black.Sequence.Variable.SequenceVariableSwfEntryEntity
requestAddMenu_
cancelRequestMenu_
quitMenu_
resumeMenu_
[261]
Black.Sequence.Action.Menu.SequenceActionMenuLogic
blackLevelMode_
BLM_EVENT
eventModeLayer_
BEML_BASE
pcControlFlag_
cameraFadeFlag_
isEnableMotionBlur_
isNeedToShowRegalia_
preparedFadeInFrame_
fadeOutFrame_
fadeInFrame_
isEnableSkip_
eventSkipFadeOutFrame_
eventSkipFadeInFrame_
preparedPin_
[262]
Black.Sequence.Action.Level.LevelMode.SequenceActionSetLevelModeNew
[263]
[264]
WM_G_STAY_FIRST_TIMELINE_START
[265]
[266]
SM00_03SIV_10
in3_
[267]
Black.Sequence.Event.Event.SequenceEventEventFinished
[269]
SQEX.Ebony.Framework.Sequence.Action.SequenceActionSync3
[270]
JET_BENCHMARK_FISHING_START
[272]
FishingSettings
refIn1
FishSpwanEntities
entity_
refIn2
Š░┤ŔŹëEntityŃâ¬Ńé╣Ńâł/Ńé░ŃâźŃâ╝ŃâŚ
refIn3
Š░┤ÚŁóÚźśŃüĽEntity
refIn4
ForceStop
delayTime_
delayMaxTime_
pinType_
PT_ARBITRARY
triIn1
SQEX.Ebony.Framework.Node.GraphTriggerInputPin
triInPorts_
Finished
triOut1
SQEX.Ebony.Framework.Node.GraphTriggerOutputPin
InteractedToIcon
triOut2
FinishFadeoutFinished
triOut3
triOutPorts_
trayname_
PrefabTray1
headerColorUserDefine_
bodyColorUserDefine_
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.fishing_jet_benchmark
isOpen
[275]
SQEX.Ebony.Framework.Sequence.Tray.PrefabTray
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.fishing.entities_.fishingfishspawnentity01
entities_.fishing.entities_.fishingfishspawnentity01
refInPorts_.refIn2
entities_.fishing_jet_benchmark.entities_.plan_fishing.entities_.sequence_fishing.nodes_.[181]
entities_.benchmark_demo.nodes_.[276].entity_
[276]
SQEX.Ebony.Framework.Sequence.Variable.SequenceConstantTransformEntity
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.fishing.entities_.water_height_point
entities_.fishing.entities_.water_height_point
refInPorts_.refIn4
entities_.benchmark_demo.nodes_.[277].pointNodeActorVarOutPin_
[277]
[278]
[279]
[280]
[281]
[282]
JET_BENCHMARK_FISHING_END
[283]
[284]
[285]
[286]
outStop_
finishByDamage_
finishByEncount_
[287]
Black.Sequence.Action.Actor.AI.AIMode.SequenceActionExecAIModeReset
[288]
category_
MC_BASIC
isEnableAccel_
isEnableBrake_
isEnableHandle_
isEnableGetOff_
isEnableCamera_
isEnableMusic_
isEnableRoof_
isEnableKlaxon_
isEnableUturn_
isEnableAutoSave_
isEnableDriveMenu_
isEnableWaitGetoff_
isEnableCameraRoll_
isEnableTakeOff_
isEnableJump_
[289]
Black.Sequence.Action.Vehicle.SequenceActionSetVehicleController
entitySearchLabelId_
MENUENTRY_NAVIMAP
swfEntryPackagePath_
menu/navimap/script/MenuSwfEntry_NaviMap.ebex
[290]
Black.Sequence.Variable.SequenceVariableResidentSwfEntryEntity
IsVisible
Buddy
SetVisibleEnemy
SetVisibleBuddy
SetVisibleGoal
SetVisibleCar
SetVisibleBuddyEach
SetVisibleTime
SetVisibleOut
[291]
[292]
IS_VE_REGALIA_KEYHELP_MASK
[293]
BLM_RTE
[294]
[295]
[296]
bgmtype_mode_
EVENT_BGM_TYPE
idxFilePath_
sound/resources/20001Music2/jp/bgm_altissia.max
fadeIn_
fadeOut_
isSameSkip_
isSetFade_
[297]
Black.Sequence.Actor.SequenceActionSetBgmset
mode_
MODE_NORMAL
isWeakPlay_
isPlayRecalcSlot_
[298]
Black.Sequence.Actor.SequenceActionChangeBgmMode
isPose_
isKeepContinue_
[299]
Black.Sequence.Actor.SequenceActionStopBgm
[300]
sound/resources/20001Music2/jp/bgm_chocobo.max
[301]
[302]
[303]
sound/resources/20001Music2/jp/bgm_bat_nifuru.max
[304]
[305]
[306]
outPin_
materialType_
MATERIAL_TYPE_NUM
setType_
SET_TYPE_SET
setValue_
controlType_
CONTROL_TYPE_NONE
[308]
Black.Sequence.Action.Actor.Material.SequenceActionActorSetBodyMaterialParameter
attack_
WEAPON_ATTACK_MAIN_DOWN
equipmentId_
WEAPON_WE01_SWORD_009
checkNew_
[309]
Black.Sequence.Action.Actor.Accessory.SequenceActionActorEquipWeapon
[310]
Black.Sequence.Action.Actor.Accessory.SequenceActionActorFullOpenAbilityTree
[311]
[314]
[315]
wetControlType_
FORCE_DRY
gettingDryTime_
gettingWetTime_
perCharacterControl_
[318]
Black.Sequence.Action.Actor.SequenceActionActorWetnessControl
[319]
BENCH_AIRCRAFT_PREPARE
[321]
BENCH_AIRCRAFT_START
[323]
BENCH_AIRCRAFT_END
[324]
Int
UI_P_COMM_JOB_COMMAND_MENU_DECIDE_COMMAND
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.benchmark_demo.nodes_.[325].refInPorts_.arg0_
SQEX.Ebony.Framework.Sequence.Variable.Primitive.SequencePrimitiveInt
[325]
WEAPON_ATTACK_MAIN_UP
[326]
[327]
WEAPON_ATTACK_MAIN_RIGHT
WEAPON_WE03_SPEAR_001
[328]
WEAPON_ATTACK_MAIN_LEFT
[329]
[330]
[331]
[332]
[333]
Black.Sequence.Action.Debug.SequenceActionDebugSetGameSpeed
[334]
actorIgnisPin_
[335]
actorListPin_
actorNoctisPin_
actorGladiolusPin_
actorPromptoPin_
actorGuestPin_
isExcludingUCPC_
[336]
Black.Sequence.Action.Level.Party.SequenceActionGetPartyMembers
[337]
[338]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.ignis_camp_battle
entities_.spawn.entities_.ignis_camp_battle
[339]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.prompto_camp_battle
entities_.spawn.entities_.prompto_camp_battle
[340]
root.entities_.area_duscae_jet_bench.entities_.area_duscae_share_jet_bench.entities_.area_du_share_quest_jet_bench.entities_.spawn.entities_.gladio_camp_battle
entities_.spawn.entities_.gladio_camp_battle
[341]
connectorNo_
[0]
SQEX.Ebony.Framework.Sequence.Connector.SequenceConnectorIn
SQEX.Ebony.Framework.Sequence.Connector.SequenceConnectorOut
[2]
[8]
[10]
jointId_
scriptVisible_
pointType_
TYPE_POINT
paramId_
interactionParamId_
interactionItemId_
positionAttribute_
warpAutoTurnMode_
WATM_CENTER_OF_GRAVITY
warpPostCameraMode_
WPCM_OVER_SHOULDER
warpPostCameraBlendMode_
BLEND_CUBIC
warpPostCameraBlendTime_
warpPostCameraBlendSpeed_
warpGroupId_
magicThunderDamageRangeRadius_
wallCoverRangeRadius_
wallCoverDirection_
RIGHT
point_du_share_camp21
Black.Entity.Node.PointNodeEntity
isEnable_
seedPointFixid_
DEFAULT
areaType_
AREA_BATTLE
groupNo_
battleAreaConditionFixId_
BA_DEFAULT
isAutoMakeBattleTeritory_
triggerType_
TYPE_SPHERE
seedCollisionType_
TYPE_CYLINDER
radius_
summonSuccessRate_
summonIfritLot_
summonIfritDirection_
summonSivaLot_
summonSivaDirection_
summonRamuhLot_
summonRamuhDirection_
summonTitanLot_
summonTitanDirection_
summonLeviathanLot_
summonLeviathanDirection_
summonBahamutLot_
summonBahamutDirection_
elementFirePower_
elementIcePower_
elementThunderPower_
elementEarthPower_
elementWaterPower_
elementLightPower_
elementDarkPower_
isAreaInfoRelease_
battleareaentity01
Black.Entity.Node.BattleAreaEntity
entities_.spawn.entities_.gladiolus
entities_.spawn.entities_.prompto
entities_.spawn.entities_.ignis
entities_.spawn.entities_.vehicle_gas
entities_.spawn.entities_.noctis_fishing_hut
spawn
Black.Entity.EntityGroup
capacity_
battleAreaSeedPointFixid_
noctis
Black.Entity.Node.SpawnPointNodeEntity
gladiolus
prompto
ignis
vehicle_road
vehicle_gas
noctis_camp_point
chocobo
enemy
chocobo_root
noctis_fishing_hut
noctis_fishing_point
noctis_camp_battle
enemy_box
Black.Entity.Node.SpawnBoxNodeEntity
gladio_camp_battle
prompto_camp_battle
ignis_camp_battle
entities_.routeentity01.entities_.routepointentity10
entities_.routeentity01.entities_.routepointentity20
entities_.routeentity01.entities_.routepointentity30
entities_.routeentity01.entities_.routepointentity31
entities_.routeentity01.entities_.routepointentity40
entities_.routeentity01.entities_.routepointentity41
entities_.routeentity01.entities_.routepointentity42
entities_.routeentity01.entities_.routepointentity50
entities_.routeentity01.entities_.routepointentity51
entities_.routeentity01.entities_.routepointentity60
bLoop_
routeMoveType_
ROUTEMOVE_TYPE_ONCE
routeentity01
Black.Entity.RoutePoint.RouteEntity
GROUND
destinationPointRandomRange_
movementOverride_
moveSpeedOverride_
arrivalMoveSpeedOverride_
isEnableDynamicRandomDestination_
destinationDistanceRatioMin_
destinationDistanceRatioMax_
routepointentity10
Black.Entity.RoutePoint.RoutePointEntity
routepointentity20
routepointentity30
routepointentity31
routepointentity40
routepointentity41
routepointentity42
routepointentity50
routepointentity51
routepointentity60
entities_.routeentity02.entities_.routepointentity01
entities_.routeentity02.entities_.routepointentity02
routeentity02
routepointentity01
routepointentity02
touchTarget_
UCPC
characterSelectID_
touchStatus_
TOUCH
touchStatus2_
UNTOUCH
touchStatus3_
touchStatus4_
height_
depth_
width_
count_
enableTrigger_
checkInSameScene_
scaleTriggerWithParent_
isNoCheckFirst_
isNoCheckAtUCOff_
isSetEventModeAtTouch_
touchKind_
TK_ALL
trigger_chocobo_camera
Black.Entity.Node.TriggerEntityQuest
./area_du_share_quest_drive_jet_bench.ebex
495a4cb7-d113-41fc-9e61-6164ecf1433b
area_du_share_quest_drive_jet_bench
SQEX.Ebony.Framework.Entity.EntityPackageReference
./area_du_share_quest_chocobo_jet_bench.ebex
f2b64393-bb64-420c-8ee5-90f008002f6f
area_du_share_quest_chocobo_jet_bench
menuFixID_
menu/jet_bench/script/MenuSwfEntry_JetBenchLogo.ebex
swfentryentity01
Black.Entity.Menu.SwfEntryEntity
8.651421E-06,-132.9797,8.651422E-06,1
../../level/levelresource/prefab/fishing/fishing_jet_benchmark.prefab
21fea4dd-04a2-460f-a6cb-1338233cd4c0
bArchiveDiffResource_
umbraIsTarget_
umbraIsOccluder_
sequenceUpdateOrder_
fishing_jet_benchmark
Black.Entity.Prefab.Prefab
fishing
8.651421E-06,-132.3124,8.651422E-06,1
water_height_point
spawnAreaType_
AREA_ELLIPSE
boxEllipseWidth_
boxEllipseDepth_
circleRadius_
spawnLevel_
AREA_LEVEL_2
spawnMaxCount_
fishingfishspawnentity01
Black.Entity.Minigame.Fishing.FishingFishSpawnEntity
./area_du_share_quest_aircraft_jet_bench.ebex
615d9b55-49fc-491b-a59c-b067c0c36673
area_du_share_quest_aircraft_jet_bench
objects
package

Due to the structure I'm more then sure that it's something like Unreal Engine's 4 Blueprint scripting.

NODE 229:
isPlayerControlOff_

NODE 288:
Bunch of disabling for auto controlling

XMB2:
Code: [Select]
0x00 char[4] header(XMB2)
0x04 uint32 EOF
0x08 uint32 padding?
0x0C uint32 sizeof(section1)
0x10 uint32 padding?
0x14 uint32 Section1

Section1:
uint32 - pointer
byte[4] - type
byte[4] - null?

24
I'm out of ideas... I just can't happen to enable input, and alcochol doesn't seem to help me...

25
All possible parameters:
Code: [Select]
.rdata:00007FF637501D40 0000000A C --locale=
.rdata:00007FF637501D50 0000000A C --ui_lang
.rdata:00007FF637501D60 0000000D C --numThreads
.rdata:00007FF637501D70 00000012 C --numAsyncThreads
.rdata:00007FF637501D88 0000000C C --loop_mode
.rdata:00007FF637501D98 0000000E C --graphicsIni
.rdata:00007FF637501DA8 00000007 C --720p
.rdata:00007FF637501DB0 00000008 C --2160p
.rdata:00007FF637501DB8 00000014 C --displayResolution
.rdata:00007FF637501DD0 00000016 C --renderingResolution
.rdata:00007FF637501DE8 00000014 C --noNvidiaAfterMath

for config see this:
Code: [Select]
.rdata:00007FF637501E40 000002A5 C +wEAAJ8CAAD/W0Jhc2ljU2X/dHRpbmdzXQr/RGlzcGxheVL/ZXNvbHV0aW//bldIPTEyODD/eDcyMApNYXj/RnJhbWVyYXT/ZT0yNDAKUmWPbmRlcvjwBQ8XAUf/cmFwaGljc1D/cmVzZXQ9MAr/U2hvd0Nvbma7aWdZBEZQU1kACnlb/vT0/lNjYWz48O9Nb2RlWQBGUDH/NkJhY2tCdWb/ZmVyPTEKRnX/bGxTY3JlZW7+lAFPblN0YXJ0+3VwWQBIYXJkd+dhcmWsC8MBRFJH72FtbWGNAWU9MfsuM94BTHVtaW5vYW5jZecEMDDEAHdpZ2hTAGNpcwwA3iwDVGFyZ1cCVlP3eW5jcAJOVklE+0lB4gBlV29ya/1z9PdOdmlkaWHPRmxvd1kARxNIYfNpcjgSURZTaGFk3293TGliYhdUZf9ycmFpblRlc89zZWxhCwF2F3VyPWZRFlZYQU9wAiwGXvT3QW50aY8AYWIR/0FtYmllbnRPj2NjbHUREcMBCRBTT3BlY0GIEFgBTAkQNvfxUXWPAHR5WQCUAe9sTE9EjQQ9NzX9CrADRmlsdGVyP0RldGFpbKkAbBPC/vB0+QUQJW0SNQc9Nf8wClRleHR1cv9lQW5pc290co9vcGljHSNZAFkkU+90cmVh9gBnTWUXbW9yACAA
Looks familar? Yeah, that's base64...

Code: [Select]
����[BasicSettings]
DisplayResolutionWH=1280x720
MaxFramerate=240
RenderGraphicsPreset=0
ShowConfigYFPSY�
y[ScalModeY�FP16BackBuffer=1
FullScreenOnStartupY�Hardware DRGammae=1.3Luminoance00�wighS�cis �,TargWVSyncpNVIDIA�eWorksNvidiaFlowY�GHair8QShadowLibbTerrainTessela vur=fQVXAOp,^Anti�abAmbientOcclu SOpecAXL 6Qu�tyY�lLOD=75
Filter?Detail�lt%m5=50
TextureAnisotropic#Y�Y$Strea�gMemor� �

KeyConfig.ini in root directory actually has it all, not quite sure why it doesn't seem to work for input.
Game reads the file as said in Process IO:
Code: [Select]
18:12:40,8167929 ffxv.exe 6832 QueryDirectory E:\FINAL FANTASY XV BENCHMARK\KeyConfig.ini SUCCESS Filter: KeyConfig.ini, 1: KeyConfig.ini
18:12:40,8169401 ffxv.exe 6832 CreateFile E:\FINAL FANTASY XV BENCHMARK\KeyConfig.ini SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: R, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened


Pages: [1] 2 3 ... 21