Page 7 of 17

Re: Beyond: Two Souls - Reversing | Porting (UPDATE: SEQUENC

Posted: Sun Aug 03, 2014 8:13 am
by Ekey
Send me eboot and a few textures.

Re: Beyond: Two Souls - Reversing | Porting (UPDATE: SEQUENC

Posted: Sun Aug 03, 2014 9:02 am
by HugoPeters
Ekey wrote:Send me eboot and a few textures.
Sent a PM, it's still in my Outbox but it should arrive soon. Thanks!

Re: Beyond: Two Souls - Reversing | Porting (UPDATE: SEQUENC

Posted: Sun Aug 03, 2014 1:02 pm
by howfie
go ekey! :)

Re: Beyond: Two Souls - Reversing | Porting (UPDATE: SEQUENC

Posted: Mon Aug 04, 2014 4:39 pm
by Hamers
HugoPeters wrote:Thanks! The animated objects are handeled as characters. The static scenery is all in one big mesh collection, the "characters" (so also doors, chairs, etc.) can have animation, sounds, etc. They are added by the scene Lua script.
Ah what I suspected. They do build all their scenes in Maya apparently, so it doesn't surprise me they are exported as one big collection.
HugoPeters wrote:The shot that's missing is a bit hard to explain. If you look before the missing shot you see the camera is facing Jodie. Then in the game the shot facing the chief cop comes, and then it's back to Jodie. That shot of Jodie (before / after the cop) is one shot. As you may have noticed, the road part starts later in my version than in the game. That is because at the end of the scene you can see the camera shot that was the missing one. That one works as a "sub shot", it appears over another shot. Since I haven't implemented that yet, you can see missing shots here and there that then appear after the scene is over.
Makes a lot of sense.
HugoPeters wrote:The street car scene is a separate area. The chapter "Broken" has one scene and three areas (POLICE_STATION, POLICE_STATION_ROAD and POLICE_STATION_BREAK). In the video I did it so that it loads the first and lasts area, but only activates the first one for all but the last "movie" (that's how one part of a sequence is called internally). When the last one starts (the "Too Late" part), it deactivates the first area and activates the last one. I had some trouble loading in the road part so I didn't bother fixing it before the video :P
Here is the code to load and play the movies/areas, so you can see just how hacky it is xD http://pastebin.com/67Lns7mU

Code: Select all

if (i == 7)  // TooLate
I see what you did there :D

EDIT: Hopefully someone figures out the texture format and wow at dat lua output. I'm not mistaken in the assumption that "fAidenLookAt" is an actual function that is probably a part of their node based scripting system which the level designers used to create the scene scripting?

Re: Beyond: Two Souls - Reversing | Porting (UPDATE: SEQUENC

Posted: Mon Aug 04, 2014 5:00 pm
by HugoPeters
Hamers wrote:
HugoPeters wrote: EDIT: Hopefully someone figures out the texture format and wow at dat lua output. I'm not mistaken in the assumption that "fAidenLookAt" is an actual function that is probably a part of their node based scripting system which the level designers used to create the scene scripting?
fAidenLookAt is a Dynamic Communicator, which means the function itself is stored elsewhere, and by adding attributes, events and actions they can call this script in a "tool-efficient" manner.
The normal Communicators have their scripts, attributes, events, etc. stored in the executable, while these are created on runtime.

fAidenLookAt is defined in the GameManager:

Code: Select all

-- Dynamic COM for fAidenLookAt function
if (QDT.fAidenLookAt == nil) then
	local nDynType = CreateDynCommunicator("fAidenLookAt", 4411)
		AddDynAttribute(nDynType, "ANAEL_GAMEPLAY", "AnaelGameplay", 0)
		AddDynAttribute(nDynType, "float", "BlendDuration", 0)
		AddDynAttribute(nDynType, "string", "BonesName", 6)
		AddDynAttribute(nDynType, "SCRIPT_ENTITY_ABC", "EntityToLook", 0)
		AddDynAttribute(nDynType, "bool", "StopAtEnd", 0)
	RegisterDynCommunicator(nDynType)
end
This is how I implemented the kernel's main way of dealing with functions, etc.:
Image

It works pretty well!

And I also already implemented the whole Dynamic Communicator thing:
Image

Re: Beyond: Two Souls - Reversing | Porting (UPDATE: SEQUENC

Posted: Wed Aug 06, 2014 11:51 pm
by HugoPeters
Kernel!

Here's my first real-world test of my kernel interface.
The scripts playing the audio are copy-pasted from the game!

https://www.youtube.com/watch?v=CtRO0hcNOE4

Re: Beyond: Two Souls - Reversing | Porting (KERNEL PART ~1~

Posted: Thu Aug 07, 2014 10:21 pm
by HugoPeters
OMFG
I made a Luac bytecode converter for Beyond's chunks, the issue was endianness in the end! So I now read in the function, and convert BE ints to LE ints, and also change the floats into doubles.
AND IT WORKS SO I CAN NOW FINALLY EXECUTE BEYOND'S LUAC SCRIPTS :D :D :D

Re: Beyond: Two Souls - Reversing | Porting (KERNEL PART ~1~

Posted: Mon Aug 11, 2014 10:14 pm
by HugoPeters
During loading research:

- Disabled caching
- Disabled usage of setup files
- Since I run the game through the ProDG target manager I can change the load speed by changing my ethernet port Speed & Duplex, so set it to 10 Mb/s.

Result:

Image

Image

Re: Beyond: Two Souls - Reversing | Porting (KERNEL PART ~1~

Posted: Wed Aug 13, 2014 1:50 am
by Hamers
Not surprised in the slightest lol Poor console games rely a lot on caching and fast streaming of assets on the fly. Still funny to see the LODs though xD
Awesome news about the lua functions!

Re: Beyond: Two Souls - Reversing | Porting (KERNEL PART ~1~

Posted: Fri Aug 15, 2014 11:52 am
by HugoPeters
Small update: proper audio streaming has been build!

Image

Re: Beyond: Two Souls - Reversing | Porting (KERNEL PART ~1~

Posted: Sat Aug 16, 2014 10:53 pm
by HugoPeters
Kernel Part ~2~!

'Right guys, more shit!

https://www.youtube.com/watch?v=o8HnAjksFMc

I'm getting to a point where I find it extremely difficult to explain what the fuck I'm even doing XD
So I might need to start with stuff like voice overs where I can quickly explain the contexts of everything, but for now I've done it through subtitles.

Re: Beyond: Two Souls - Reversing | Porting (KERNEL PART ~1~

Posted: Sun Aug 17, 2014 1:44 pm
by Hamers
HugoPeters wrote:Kernel Part ~2~!

'Right guys, more shit!

https://www.youtube.com/watch?v=o8HnAjksFMc

I'm getting to a point where I find it extremely difficult to explain what the fuck I'm even doing XD
So I might need to start with stuff like voice overs where I can quickly explain the contexts of everything, but for now I've done it through subtitles.
Yeah, seems like this starts to go into the territory where you have to reverse engineer and implement the actual game scripting, which sounds pretty complicated. Good luck man, props to you for keeping at it!

Re: Beyond: Two Souls - Reversing | Porting (KERNEL PART ~1~

Posted: Sun Aug 17, 2014 7:33 pm
by HugoPeters
Hamers wrote:
HugoPeters wrote:Kernel Part ~2~!

'Right guys, more shit!

https://www.youtube.com/watch?v=o8HnAjksFMc

I'm getting to a point where I find it extremely difficult to explain what the fuck I'm even doing XD
So I might need to start with stuff like voice overs where I can quickly explain the contexts of everything, but for now I've done it through subtitles.
Yeah, seems like this starts to go into the territory where you have to reverse engineer and implement the actual game scripting, which sounds pretty complicated. Good luck man, props to you for keeping at it!
It's funny, because I've already implemented around 40% of their "kernel"/interface.
I've basically completed the basic environment, and now it's only a matter of making the functions actually do something, I've already passed the hardest part by far.

Re: Beyond: Two Souls - Reversing | Porting (KERNEL PART ~2~

Posted: Fri Aug 22, 2014 2:10 am
by HugoPeters
Choices??

Here's a very, very, VERY early demo of choice paths!
There's dialog audio starting / ending at wrong times, dialog text isn't parsed, and a TON more things wrong, but it kinda gives an idea of how far I am right now.
All the stuff wrong are just minor touch-ups.

https://www.youtube.com/watch?v=lAEm632Ordc

Please keep in mind, what seems like a glitch isn't a glitch, it's just because I haven't implemented this or that yet.

Re: Beyond: Two Souls - Reversing | Porting (CHOICE PATHS!?!

Posted: Fri Aug 22, 2014 2:05 pm
by Hamers
Regardless how rough it is, I refresh the thread every day in anticipation of an update :D Really love how you document your progress!