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

Pages: [1] 2 3 4 5 6 ... 30
1
Line run scripts by this events:
script 1 - if PC talk to line
script 2 - if PC move towards line (with solid radius)
script 3 - if PC cross the line (position of entity cross the line by moving)
script 4 - if PC move inside line (any directions) (with solid radius)
script 5 - if PC enter the line (with solid radius)
script 6 - if PC leave the line (with solid radius)

I can check additional detales if you interested.

2
The last time I noodled around with things, there was quite a bit left to reverse engineer, which I guess you could also call the design flaw. qgears was always meant to work with the original formats of things, and be a drop in replacement for the ff7 exe (if I'm remembering this right). Ogre3D as a game engine is also... tricky to work with imo

The idea behind my work on Q-Gears was to create JRPG engine capable of run games like Final Fantasy 7 8 9 and Xenogears. All data was meant to be exported into this format. That should allow anyone to create their own scenario, additional mechanics with little coding.

I'm working in game industry and Ogre is one of the simplest render engine available for open source. Now I think something like Open Framework is better because it supports not only render, but sound and video as well.

Reimplement ffvii engine is also possible. But you need to reimplement a thousands of hardcoded hacks as well then.

I think akari still does some reversing every once in a while
Edit: here's some fun stuff https://github.com/Akari1982/q-gears_reverse

I reversed almost everything from world map engine lately. Very interesting and very hardcoded.

Quote
Sound like time would be best spent reversing then. Is there any sort of centralized db for keeping track of the progress, or is it just scattered throughout the various efforts? If so, perhaps organizing such an db would be useful.

I think that reversing isnt needed at this time. Almost everything is understood. You just need to grab your beloved editor and start to write things, implement them one by one. But first question is - what are you want to do - just reimplement engine with all its problems and restrictions or create enviroment that can run original content as well as new - custom one.

3
@Akari taking another stab at q-gears? I see you are back to reversing https://github.com/Akari1982/q-gears_reverse

I didn't stop reversing. It was just a slowdown. But lately I work hard at world map module of FFVII. Half work done.

4
> Am I right that the program exports them to .mesh files? I've not seen those before, is it possible to convert those to obj, fbx or x3d so I can open them in Blender?

mesh is Ogre3d file format. I converted into it to use in QGears (https://www.youtube.com/watch?v=YPnej8iKMPg).
i think you can find converters from mesh into obj or modify exporter to support your needs.

5
This may help too
https://github.com/Akari1982/x-gears/tree/master/utilites/xeno_field_exporter
I have exporter here and I export some of models with animations. Though animations is hard in xenogears and exporter doesn't support all of them.

6
I just finished reverse almost all the opcodes. I write them down later. You can see them here (https://github.com/Akari1982/q-gears_reverse/blob/master/ffvii/DISC/SCUS_941_akao.cpp). This is all code that handles sound sequenses in FFVII. SPU and DMA library are separate and comes from PSYQ. You can search opcodes by names like "AKAO_opcode_f2"
 
Opcodes in sounds and in music are the same and do same things. Difference is that music uses a lot of channels with separate sequence for each channel. I think you can adapt your player to play music.

Quote
I'm especially interested by the LFO table, which is too much work to reverse engineer by ear. Can you confirm it's your "akao_wave_table" array ?

Yes. This is LFO table. You can use values from c++ files. They taken from binaries and used in PSX version.

If you have question about specific opcode feel free to ask. I look at them more closely and reverse it deeper.

8
Q-Gears / Re: QGears team needs more people!
« on: 2015-03-27 13:02:43 »
We're mostly more into Xenogears, but this engine seems to illustrate similar capacity for many classic PSX Square games.

The engine has few exported models from Q-Gears (you can see them in demo http://www.youtube.com/watch?v=YPnej8iKMPg). And now I'm working on things related to Xenogears: I want to export all Lahan related walkmeshes and make our walking algorythm work with it. Maybe add Jumping sliding and related things from Xeno.

9
Q-Gears / Re: Orge3d version change
« on: 2015-02-18 18:07:19 »
1) 2.0 still in RC version so it's too early to switch to it.

2) In v 2.0 legacy OpenGL RenderSystem works.

3) In v2.1 there will be GL3+ RenderSystem

10
Team Avalanche / Re: North Mako Reactor Bridge (Q-Gears)
« on: 2015-02-04 16:53:12 »
Another worthwhile challenge would be support for full (non tiled) background images

You can do it right now. I export it as tiles just because it's easier for me. I can export whole background as one image. Problem is that some tiles in ffvii has dynamic depth which is controlled from script. So I don't see any benifits from creating whole image. Better thing will be create an editor that allows set depth and tiles more naturally. Edit xml is pain in ass )

11
Team Avalanche / Re: North Mako Reactor Bridge (Q-Gears)
« on: 2015-02-03 16:13:52 »
The modelling approach for making directly-usable 3d scenes for Q-Gears would have to be different from the one used for rendering 2d backgrounds. Basically, for rendering 2d backgrounds, we can model without much care about poly counts/mesh optimization - real-time 3d scenes would be a different story. The other matter is about lighting and shading, since the renderer you would be using (Ogre) does not necessarily support the same shaders which a 3d-modelling software would. 

I know this things. But if we want - we could do it. It's still needs some work with camera though.

12
Team Avalanche / Re: North Mako Reactor Bridge (Q-Gears)
« on: 2015-02-03 09:47:34 »
By the way - it's possible to use 3d scenes directly in Q-Gears )

14
What about cloud model settings, which is the most interesting part?

Code: [Select]
// model data
+00 [][]     0000 - if this is not 0 we add 0x40 bit to 8015190b
+02 []       80 - 0x3f - dead type. 0x80 - play secondary animation
+03 []       00
+04 [][]     0190 - collision radius. Set to 801518e4+6
+06 [][]     0a00 - to 801518ec
+08 [][]     0a00 - to 801518ee
+0a [][]     0000 - to 801518f0
+0c [][]     0000
+0e [][]     fce0
+10 [][]     fc7c - filler?
+12 array of joints (bone indexes)
    02 00 00 00 00 00 0d 08 03 00 03 17 12 00 00 00
+22 [][]     0000 - filler?
+24 array of 8 offsets to something
    00000438 00000438 00000438 00000438 00000438 00000438 00000438 00000438
+44 array of 4 something
    0180 0132 0180 0000
+4c array of 6 something
    0399 fda8 f9ff 0000 fddc 0000
+58 array of 6 something
    fd01 ff58 f9ab 0000 fe30 0000
+64 [][]     012c
+66 [][]     0000 - filler?
+68 array of 32 offsets to animation scripts
    00000190 00000194 0000019c 000001a0 000001b0 000001c0 000001c4 000001cc
    000001d0 000001d4 000001e4 000001e8 000001ec 000001f0 000001f4 00000200
    000001fc 00000210 00000204 00000198 0000026c 00000284 00000318 0000032c
    00000358 0000036c 00000378 00000384 00000338 00000210 00000220 00000230

function action_script_1()
    play_animation(1);
    [ACTION_OPCODE fe]
end;

function action_script_2()
    return_direction(); -- E5
    play_animation(6);
    [ACTION_OPCODE f1]
end;

function action_script_3()
    [ACTION_OPCODE b3]
end;

function action_script_4()
    [ACTION_OPCODE b3]
end;

function action_script_5()
    play_animation(15);
    [ACTION_OPCODE f2]
end;

function action_script_6()
    play_animation(16);
    play_animation(17);
    [ACTION_OPCODE f2]
end;

function action_script_7()
    play_animation(18);
    [ACTION_OPCODE f2]
end;

function action_script_8()
    play_animation(5);
    return_direction(); -- E5
    return_to_idle(); -- EE
end;

function action_script_9()
    [ACTION_OPCODE ab]
end;

function action_script_10()
    play_animation(19);
    return_direction(); -- E5
    return_to_idle(); -- EE
end;

function action_script_11()
    play_animation(24);
    play_animation(25);
    return_direction(); -- E5
    return_to_idle(); -- EE
end;

function action_script_12()
    [ACTION_OPCODE b4]
end;

function action_script_13()
    [ACTION_OPCODE 95]
end;

function action_script_14()
    [ACTION_OPCODE c4]
end;

function action_script_15()
    [ACTION_OPCODE e7]
end;

function action_script_16()
    play_animation(4);
    return_position(); -- FA
    return_direction(); -- E5
    return_to_idle(); -- EE
end;

function action_script_17()
    load_additional_effect(); -- E8
    set_direction(); -- FC
    play_animation(3);
    [ACTION_OPCODE ed]
end;

function action_script_18()
    return_direction(); -- E5
    [ACTION_OPCODE c4]
end;

function action_script_19()
    play_animation(16);
    [ACTION_OPCODE fe]
end;

function action_script_20()
    set_direction(); -- FC
    set_effect("foot_dust"); -- F0
    play_sound_for_attacker(00, 001a); -- D8
    play_animation(26);
    move_to_target("linear_movement", 04b0, 0000, 04); -- D1
    set_effect("foot_dust"); -- F0
    play_animation(27);
    execute_attack(01); -- F7
    play_animation(30);
    play_animation(28);
    return_position(); -- FA
    set_effect("foot_dust"); -- F0
    play_animation(29);
    return_direction(); -- E5
    return_to_idle(); -- EE
end;

function action_script_21()
    set_direction(); -- FC
    play_animation(3);
    [ACTION_OPCODE ed]
end;

function action_script_22()
    set_direction(); -- FC
    set_effect("foot_dust"); -- F0
    play_sound_for_attacker(00, 001a); -- D8
    play_animation(26);
    move_to_target("linear_movement", 04b0, 0000, 04); -- D1
    set_effect("foot_dust"); -- F0
    play_animation(27);
    execute_attack(01); -- F7
    play_animation(30);
    [ACTION_OPCODE 9e]
end;

function action_script_23()
    execute_attack(01); -- F7
    play_animation(34);
    play_animation(35);
    return_position(); -- FA
    set_effect("foot_dust"); -- F0
    play_animation(29);
    return_direction(); -- E5
    return_to_idle(); -- EE
end;

function action_script_24()
    set_direction(); -- FC
    set_effect("foot_dust"); -- F0
    play_sound_for_attacker(00, 001a); -- D8
    play_animation(26);
    move_to_target("linear_movement", 04b0, 0000, 04); -- D1
    set_effect("foot_dust"); -- F0
    play_animation(27);
    execute_attack(01); -- F7
    play_animation(30);
    [ACTION_OPCODE 9e]
end;

function action_script_25()
    return_direction(); -- E5
    [ACTION_OPCODE bd]
end;

function action_script_26()
    return_direction(); -- E5
    [ACTION_OPCODE bd]
end;

function action_script_27()
    return_direction(); -- E5
    [ACTION_OPCODE bd]
end;

function action_script_28()
    set_direction(); -- FC
    set_effect("foot_dust"); -- F0
    play_sound_for_attacker(00, 001a); -- D8
    play_animation(26);
    [ACTION_OPCODE cc]
end;

function action_script_29()
    load_additional_effect(); -- E8
    set_direction(); -- FC
    play_animation(3);
    [ACTION_OPCODE ed]
end;

function action_script_30()
    load_additional_effect(); -- E8
    set_direction(); -- FC
    play_animation(3);
    [ACTION_OPCODE ed]
end;

function action_script_31()
    load_additional_effect(); -- E8
    set_direction(); -- FC
    play_animation(3);
    [ACTION_OPCODE ed]
end;

15
Q-Gears / Re: Current state.
« on: 2014-07-15 18:01:34 »
Excellent, I'll take a look. At the moment I'm updating the code to work on Ogre 1.9 - just need to fix a linking issue with overlays/fonts.

Is there any code already to get field images too? It would be good to get native field images and scripts working, then it would be possible to explore most of the game.

Also out of interest is there anything for FF9 fields and scripts?

My dumper also dumps background images and animations (including palette animations).

FFIX mostly unknown. You can look at FFIX dumpers in util ditectory. It can dump walkmesh, models with animations but no more. And even this features are not well supported.

16
Q-Gears / Re: Current state.
« on: 2014-07-15 15:53:48 »
Quote from: paul
I've been looking here for docs:

http://wiki.qhimm.com/view/FF7/Field/Script/Opcodes

Seems the red ones are not documented? I was going to work on creating the FF7 script to lua loader.

Oh! Year. Most of them are not in first mission scripts and some of them are not well reversed (like movie opcodes). I thiught to add them when I will add following feature but I never did (

I can help you with reversing since I seems the only one who can understand my notes in reversing folder ))

By the way did you see my ffvii field dat dumper in utilites folder? It export native binary script to almost lua )))

17
Q-Gears / Re: Current state.
« on: 2014-07-15 04:44:57 »
Quite slow.. we need more people :) we also need the field op code reversing to be completed.

Which field opcode you need to be reversed? I thought I finished them off )

18
Q-Gears / Re: Current state.
« on: 2014-07-14 12:50:07 »
B... but the whole time, I thought YOU were the developer.... :o

My last commit was almost year ago. Didn't do anything since that time. But I check sometimes how things going.

19
Q-Gears / Re: Current state.
« on: 2014-07-03 16:29:29 »
Hello, long time no see  :)

How is q-gears progress going. Din you manage add something new features?

20
From what I gather I may need to compile ogre using the same libraries that i'm using to compile Q-Gears. I didn't want to have to go that far. As who knows how many depencencies, I'll need to download, to make that compile :D

You don't need compile OGRE, use OGRE 1.8.1 SDK for MinGW.
For boost you need one of 2012 year version (don't remember exactly... maybe 1_47). It has a lot of compile errors in later versions.

You need OGRE for render and boost for luabind (included in src). That's all.

21
Q-Gears / Re: Current state.
« on: 2013-10-07 12:01:29 »
a minor update from my side
I'm currently doing mostly just migration of building to CMake and cleanup ( lots of files moved, sorry for any inconvinience when updating )
I get along with CMake quite well it really does a great job, I did migrate some first Unittests to CMake + CTest and implemented Walkmesh serialization meanwhile
as building works good enough for now, I'll try and concentrate further implementing missing Resource files, next goal is loading of Field map completely from ff7 data, with exception of the script

By the way I suggest you to get rid of my support for usual formats like XML and png, get rid of new directory structure, because it will be easier to support native FFVII pc formats only.
It will be easier to add battle and worldmap this way too.
I wanted to create all work through normal readable formats and export all data to this formats to make game easy to create mods and adding new content. If you move this to native data it's not nessasary leave my things in project. Though you still needs to think something for menu and special effects, cause they are all hardcoded.

22
Q-Gears / Re: Current state.
« on: 2013-09-26 09:37:44 »
Cool. You progress quite well. I didn't have patience myself to get along with Ogre Resource system. Nice job. I watch your commits in merkurial )

23
Q-Gears / Re: Using available Game Engines?
« on: 2013-08-19 08:11:52 »
Using the existing game engine is harder than writing QGears. Writing engine is easy and don't take much time, but gives you flexibility. Most time are spent on reversing and understanding algorythms. you cant use native algorythms with existing engine. You will need to use their algorythms or write them in their script language (it's the same as using C++ but in LUA or Python)

Some times ago I thought about using blender to do ffvii battle. It's cool because you can see models, animations right in 3d editor and edit them as you want. But it's hard to create all battle algorythm in Python.

24
Q-Gears / Re: Current state.
« on: 2013-08-19 08:03:53 »
It's really easy to use native formats. Just build in converters into core and read data from native formats instead of ogre files.

Lately I start to work on battle system implementation in QGears Lua. But I don't have much time now.

Pages: [1] 2 3 4 5 6 ... 30