Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Researching of a .dat archive with a .mnf file.

The Original Forum. Game archives, full of resources. How to open them? Get help here.
Lord Vaako
advanced
Posts: 56
Joined: Sun Jul 14, 2013 10:28 pm
Has thanked: 7 times
Been thanked: 15 times

Re: Researching of a .dat archive with a .mnf file.

Post by Lord Vaako »

have you found anything?
TERAB1T
n00b
Posts: 13
Joined: Mon May 28, 2012 12:40 am
Has thanked: 1 time
Been thanked: 5 times

Re: Researching of a .dat archive with a .mnf file.

Post by TERAB1T »

Wow, I didn't know, that my topic has grown up :) Anyway, I've found out all of this back in June. I have even linked data from zosft (Zenimax Online Studios File Table btw) file from game000.dat with some other files from game000.dat (~1500 files), but I still don't know, how to find other filenames. Also I don't know, how to find filenames of files from eso0xxx.dat, even with zosft file. I was too busy to research more at the last weeks, but I will try more in the future. Also look at zosft file - it contains a lot of zlibed blocks.
Lord Vaako
advanced
Posts: 56
Joined: Sun Jul 14, 2013 10:28 pm
Has thanked: 7 times
Been thanked: 15 times

Re: Researching of a .dat archive with a .mnf file.

Post by Lord Vaako »

just an idea: maybe they use "human readable" filenames just for files used by lua scripts/interface/xml and "internal names/indexes" for other files?
TERAB1T
n00b
Posts: 13
Joined: Mon May 28, 2012 12:40 am
Has thanked: 1 time
Been thanked: 5 times

Re: Researching of a .dat archive with a .mnf file.

Post by TERAB1T »

Lord Vaako wrote:just an idea: maybe they use "human readable" filenames just for files used by lua scripts/interface/xml and "internal names/indexes" for other files?
I don't think so. There is zosft file in eso0002.dat and it contains a lot of names of models and textures instead of scripts/xml.
kryptanon
ultra-n00b
Posts: 4
Joined: Mon Aug 12, 2013 6:54 pm
Has thanked: 4 times

Re: Researching of a .dat archive with a .mnf file.

Post by kryptanon »

Ahh this thread seems dead :(
I've been looking for weeks for someone smart enough to help me create a server emulation allowing the ability
to run ESO beta locally on a private server. I thought I was the only one pokin around in the dat files. IM NOT ALONE!
Has anyone found anything related to server checks or anything? I would really like to get this up and running.
The issue I'm having is actually running the game ON the server. Your research as helped me so much! I wanna thank you for all your hard work guys :)
TERAB1T
n00b
Posts: 13
Joined: Mon May 28, 2012 12:40 am
Has thanked: 1 time
Been thanked: 5 times

Re: Researching of a .dat archive with a .mnf file.

Post by TERAB1T »

kryptanon wrote:Ahh this thread seems dead :(
I've been looking for weeks for someone smart enough to help me create a server emulation allowing the ability
to run ESO beta locally on a private server. I thought I was the only one pokin around in the dat files. IM NOT ALONE!
Has anyone found anything related to server checks or anything? I would really like to get this up and running.
The issue I'm having is actually running the game ON the server. Your research as helped me so much! I wanna thank you for all your hard work guys :)
Well, I have unpacked encrypted launcher. Do you need it?
kryptanon
ultra-n00b
Posts: 4
Joined: Mon Aug 12, 2013 6:54 pm
Has thanked: 4 times

Re: Researching of a .dat archive with a .mnf file.

Post by kryptanon »

Sure! I have eso.exe disassembled but not the launcher. Do you have any reverse-engineering experience or any coding experience? We could use some help if your interested!
Droolie
veteran
Posts: 114
Joined: Fri Aug 19, 2005 4:31 pm
Has thanked: 14 times
Been thanked: 33 times

Re: Researching of a .dat archive with a .mnf file.

Post by Droolie »

I've been looking into this as well and have come to the same results: can't find the filenames. I have been manually extracting the files though, and even though I have enough coding experience to write an unpacker myself, I don't have the time lately. I noticed Ekey and perhaps others wrote one, so if anyone would be kind enough to post their unpacker here (source would be great too!) I would be really grateful. It would make doing research on this quite a lot easier ^^
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: Researching of a .dat archive with a .mnf file.

Post by shakotay2 »

Lord Vaako wrote:I did some research myself and so far I've found offsets, sizes of packed and sizes of unpacked data blocks inside game0000.dat but still can't find filenames & directory structure :( I suppose it should be something like EsoUI/Art/Achievements/achievements_points_legendary.dds
Maybe I'm "off track" but this is what I found inside game0000.dat from offset 0x000E with aluigis comtype 1:

Code: Select all

; app UI files
EsoUI\App\LoadingScreen\LoadingScreen.lua
EsoUI\App\LoadingScreen\LoadingScreen.xml
Succeeded by this data (lua-code?):

Code: Select all

local EvtMgr = GetEventManager()

local SYSTEM_GRANULARITY = 100
local NUM_SYSTEMS = GetNumLoadingSubsystems()
local BAR_MAX = SYSTEM_GRANULARITY * NUM_SYSTEMS
local DEFAULT_TEXTURE = "EsoUI/Art/Screens/area_load.dds"

local g_loadStatus
local g_numSystemsRemaining = -1
local g_isReloadingUI

local TEXTURE_WIDTH = 1680
local TEXTURE_HEIGHT = 1050
local TEXTURE_ASPECT_RATIO = TEXTURE_WIDTH / TEXTURE_HEIGHT

local function SizeLoadingTexture()
[...]
function InitLoadScreen(self)
    LoadingScreenBar:SetMinMax(0, BAR_MAX)

    local r, g, b, a = GetInterfaceColor(INTERFACE_COLOR_TYPE_LOADING_SCREEN, LOADING_SCREEN_COLOR_BAR_START)
    local r1, g1, b1, a1 = GetInterfaceColor(INTERFACE_COLOR_TYPE_LOADING_SCREEN, LOADING_SCREEN_COLOR_BAR_END)
    LoadingScreenBar:SetGradientColors(r, g, b, a, r1, g1, b1, a1)
    
    EvtMgr:RegisterForEvent("LoadingScreen_AreaLoadStarted", EVENT_AREA_LOAD_STARTED, OnAreaLoadStarted)
    EvtMgr:RegisterForEvent("LoadingScreen_SizeLoadingTexture", EVENT_SCREEN_RESIZED, SizeLoadingTexture)
    EvtMgr:RegisterForEvent("LoadingScreen_OnReloadGui", EVENT_RELOAD_GUI, OnReloadGui)
    EvtMgr:RegisterForEvent("LoadingScreen_OnPrepareForJump", EVENT_PREPARE_FOR_JUMP, OnPrepareForJump)
    EvtMgr:RegisterForEvent("LoadingScreen_OnJumpFailed", EVENT_JUMP_FAILED, OnJumpFailed)

    local function OnSubsystemLoadComplete(eventCode, system)
        UpdateLoadingBar(system, 1.0)
        g_numSystemsRemaining = g_numSystemsRemaining - 1
        if g_numSystemsRemaining == 0 then
            OnLoadingCompleted()
        end
    end

    EvtMgr:RegisterForEvent("LoadingScreen_OnSubsystemLoadComplete", EVENT_SUBSYSTEM_LOAD_COMPLETE, OnSubsystemLoadComplete)

    SizeLoadingTexture()
end
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
kryptanon
ultra-n00b
Posts: 4
Joined: Mon Aug 12, 2013 6:54 pm
Has thanked: 4 times

Re: Researching of a .dat archive with a .mnf file.

Post by kryptanon »

shakotay2 wrote:
Lord Vaako wrote:I did some research myself and so far I've found offsets, sizes of packed and sizes of unpacked data blocks inside game0000.dat but still can't find filenames & directory structure :( I suppose it should be something like EsoUI/Art/Achievements/achievements_points_legendary.dds
Maybe I'm "off track" but this is what I found inside game0000.dat from offset 0x000E with aluigis comtype 1:

Code: Select all

; app UI files
EsoUI\App\LoadingScreen\LoadingScreen.lua
EsoUI\App\LoadingScreen\LoadingScreen.xml
Succeeded by this data (lua-code?):

Code: Select all

local EvtMgr = GetEventManager()

local SYSTEM_GRANULARITY = 100
local NUM_SYSTEMS = GetNumLoadingSubsystems()
local BAR_MAX = SYSTEM_GRANULARITY * NUM_SYSTEMS
local DEFAULT_TEXTURE = "EsoUI/Art/Screens/area_load.dds"

local g_loadStatus
local g_numSystemsRemaining = -1
local g_isReloadingUI

local TEXTURE_WIDTH = 1680
local TEXTURE_HEIGHT = 1050
local TEXTURE_ASPECT_RATIO = TEXTURE_WIDTH / TEXTURE_HEIGHT

local function SizeLoadingTexture()
[...]
function InitLoadScreen(self)
    LoadingScreenBar:SetMinMax(0, BAR_MAX)

    local r, g, b, a = GetInterfaceColor(INTERFACE_COLOR_TYPE_LOADING_SCREEN, LOADING_SCREEN_COLOR_BAR_START)
    local r1, g1, b1, a1 = GetInterfaceColor(INTERFACE_COLOR_TYPE_LOADING_SCREEN, LOADING_SCREEN_COLOR_BAR_END)
    LoadingScreenBar:SetGradientColors(r, g, b, a, r1, g1, b1, a1)
    
    EvtMgr:RegisterForEvent("LoadingScreen_AreaLoadStarted", EVENT_AREA_LOAD_STARTED, OnAreaLoadStarted)
    EvtMgr:RegisterForEvent("LoadingScreen_SizeLoadingTexture", EVENT_SCREEN_RESIZED, SizeLoadingTexture)
    EvtMgr:RegisterForEvent("LoadingScreen_OnReloadGui", EVENT_RELOAD_GUI, OnReloadGui)
    EvtMgr:RegisterForEvent("LoadingScreen_OnPrepareForJump", EVENT_PREPARE_FOR_JUMP, OnPrepareForJump)
    EvtMgr:RegisterForEvent("LoadingScreen_OnJumpFailed", EVENT_JUMP_FAILED, OnJumpFailed)

    local function OnSubsystemLoadComplete(eventCode, system)
        UpdateLoadingBar(system, 1.0)
        g_numSystemsRemaining = g_numSystemsRemaining - 1
        if g_numSystemsRemaining == 0 then
            OnLoadingCompleted()
        end
    end

    EvtMgr:RegisterForEvent("LoadingScreen_OnSubsystemLoadComplete", EVENT_SUBSYSTEM_LOAD_COMPLETE, OnSubsystemLoadComplete)

    SizeLoadingTexture()
end


What did you use to unpack this?
TERAB1T
n00b
Posts: 13
Joined: Mon May 28, 2012 12:40 am
Has thanked: 1 time
Been thanked: 5 times

Re: Researching of a .dat archive with a .mnf file.

Post by TERAB1T »

kryptanon wrote:Sure! I have eso.exe disassembled but not the launcher. Do you have any reverse-engineering experience or any coding experience? We could use some help if your interested!
http://yadi.sk/d/4n_Ubuw085cTf I have some coding experience (actually I have written almost working unpacker back in june), but don't have any reverse-engineering experience :(
kryptanon wrote:What did you use to unpack this?
It's just zlibed block from game0000.dat
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: Researching of a .dat archive with a .mnf file.

Post by shakotay2 »

quickbms

next file is

Code: Select all

<GuiXml>
    <Controls>
        <TopLevelControl name="LoadingScreen" mouseEnabled="true" keyboardEnabled="true">
            <AnchorFill />
this is the bms:
set i long 1
comtype i

set NAME string "test.txt"
#clog NAME 0 ZSIZE SIZE
#set ZSIZE long 58
#set SIZE long 100
#clog NAME 0+14 ZSIZE SIZE

# lua file
#set ZSIZE long 1682
#set SIZE long 6984
#clog NAME 58+14 ZSIZE SIZE

# xml file
set ZSIZE long 1682
set SIZE long 6984
clog NAME 1740+14 ZSIZE SIZE

(I had the first 14 bytes cut from the original game0000.dat so you'll have to add them for clogs offset.)

edit: okay, too late...
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
TERAB1T
n00b
Posts: 13
Joined: Mon May 28, 2012 12:40 am
Has thanked: 1 time
Been thanked: 5 times

Re: Researching of a .dat archive with a .mnf file.

Post by TERAB1T »

Code: Select all

; app UI files
EsoUI\App\LoadingScreen\LoadingScreen.lua
EsoUI\App\LoadingScreen\LoadingScreen.xml
It is file \esoui\app\app.txt

Code: Select all

local EvtMgr = GetEventManager()

local SYSTEM_GRANULARITY = 100
local NUM_SYSTEMS = GetNumLoadingSubsystems()
local BAR_MAX = SYSTEM_GRANULARITY * NUM_SYSTEMS
local DEFAULT_TEXTURE = "EsoUI/Art/Screens/area_load.dds"

local g_loadStatus
local g_numSystemsRemaining = -1
local g_isReloadingUI

local TEXTURE_WIDTH = 1680
local TEXTURE_HEIGHT = 1050
local TEXTURE_ASPECT_RATIO = TEXTURE_WIDTH / TEXTURE_HEIGHT

local function SizeLoadingTexture()
[...]
function InitLoadScreen(self)
    LoadingScreenBar:SetMinMax(0, BAR_MAX)

    local r, g, b, a = GetInterfaceColor(INTERFACE_COLOR_TYPE_LOADING_SCREEN, LOADING_SCREEN_COLOR_BAR_START)
    local r1, g1, b1, a1 = GetInterfaceColor(INTERFACE_COLOR_TYPE_LOADING_SCREEN, LOADING_SCREEN_COLOR_BAR_END)
    LoadingScreenBar:SetGradientColors(r, g, b, a, r1, g1, b1, a1)
    
    EvtMgr:RegisterForEvent("LoadingScreen_AreaLoadStarted", EVENT_AREA_LOAD_STARTED, OnAreaLoadStarted)
    EvtMgr:RegisterForEvent("LoadingScreen_SizeLoadingTexture", EVENT_SCREEN_RESIZED, SizeLoadingTexture)
    EvtMgr:RegisterForEvent("LoadingScreen_OnReloadGui", EVENT_RELOAD_GUI, OnReloadGui)
    EvtMgr:RegisterForEvent("LoadingScreen_OnPrepareForJump", EVENT_PREPARE_FOR_JUMP, OnPrepareForJump)
    EvtMgr:RegisterForEvent("LoadingScreen_OnJumpFailed", EVENT_JUMP_FAILED, OnJumpFailed)

    local function OnSubsystemLoadComplete(eventCode, system)
        UpdateLoadingBar(system, 1.0)
        g_numSystemsRemaining = g_numSystemsRemaining - 1
        if g_numSystemsRemaining == 0 then
            OnLoadingCompleted()
        end
    end

    EvtMgr:RegisterForEvent("LoadingScreen_OnSubsystemLoadComplete", EVENT_SUBSYSTEM_LOAD_COMPLETE, OnSubsystemLoadComplete)

    SizeLoadingTexture()
end
And this one is \esoui\app\loadingscreen\loadingscreen.lua
TERAB1T
n00b
Posts: 13
Joined: Mon May 28, 2012 12:40 am
Has thanked: 1 time
Been thanked: 5 times

Re: Researching of a .dat archive with a .mnf file.

Post by TERAB1T »

http://yadi.sk/d/k1X6Iieg85hVl - unpacked game0000.dat (mostly with names)
kryptanon
ultra-n00b
Posts: 4
Joined: Mon Aug 12, 2013 6:54 pm
Has thanked: 4 times

Re: Researching of a .dat archive with a .mnf file.

Post by kryptanon »

You guys are awesome! You're really opening some doors on my research on building this thing!
I really thank you guys!


This may be a silly question. I'm no pro by any means but if I were to edit some of those .xml in game0000.dat how would I recompile that back into a .dat file? Is there any software that would do this for me?
Post Reply