Skip to content

Commit 8121f03

Browse files
committed
august 5 update.
1 parent cfd1e89 commit 8121f03

File tree

1,810 files changed

+2081178
-1856469
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,810 files changed

+2081178
-1856469
lines changed

.gitignore

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
build
2-
granny2
3-
visual-studio
4-
CMakeLists.txt
1+
build
2+
granny2
3+
visual-studio
4+
CMakeLists.txt

.vscode/c_cpp_properties.json

+19-18
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1-
{
2-
"configurations": [
3-
{
4-
"name": "Windows-x64",
5-
"includePath":
6-
[
7-
"${default}",
8-
"${workspaceFolder}/../",
9-
],
10-
"defines": [],
11-
"compilerPath": "/usr/bin/g++",
12-
"compilerArgs": [],
13-
"cStandard": "gnu23",
14-
"cppStandard": "gnu++23",
15-
"intelliSenseMode": "linux-gcc-x64"
16-
}
17-
],
18-
"version": 4
1+
{
2+
"configurations": [
3+
{
4+
"name": "Windows-x64",
5+
"includePath":
6+
[
7+
"${default}",
8+
"${workspaceFolder}/../",
9+
"${workspaceFolder}/msvc/"
10+
],
11+
"defines": [],
12+
"compilerPath": "/usr/bin/g++",
13+
"compilerArgs": [],
14+
"cStandard": "gnu23",
15+
"cppStandard": "gnu++23",
16+
"intelliSenseMode": "windows-msvc-x86"
17+
}
18+
],
19+
"version": 4
1920
}

.vscode/settings.json

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
{
2-
"files.associations": {
3-
"typeinfo": "c",
4-
"cstddef": "cpp",
5-
"exception": "c",
6-
"xiosbase": "c",
7-
"stdexcept": "c",
8-
"cstdint": "cpp",
9-
"random": "cpp"
10-
}
1+
{
2+
"files.associations": {
3+
"typeinfo": "c",
4+
"cstddef": "cpp",
5+
"exception": "c",
6+
"xiosbase": "c",
7+
"stdexcept": "c",
8+
"cstdint": "cpp",
9+
"random": "cpp"
10+
}
1111
}

CPPLINT.cfg

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Don't search for additional CPPLINT.cfg in parent directories
2-
set noparent
3-
4-
# Use this to derive header guards
5-
root=../
6-
1+
# Don't search for additional CPPLINT.cfg in parent directories
2+
set noparent
3+
4+
# Use this to derive header guards
5+
root=../
6+
77
extensions=hxx,h++,cxx,cc,hh,h,cpp,cuh,c,hpp,c++,cu,cppm,c++m

LICENSE

+674-674
Large diffs are not rendered by default.

README.md

+39-36
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,39 @@
1-
OpenJE-RE
2-
=========
3-
4-
OpenJE is an open source reverse engineered c++ implementation of the Jefferson Engine developed by Interplay Entertainment's Black Isle Studios.
5-
6-
- License: GPLv3 (see LICENSE for more information)
7-
8-
Disclaimer
9-
----------
10-
11-
- This project is not affiliated with Bethesda Softworks LLC, Interplay Entertainment Corp., Bethesda Game Studios, or Black Isle Studios.
12-
- This project is completely open source and no commercial use is intended.
13-
- All copyrights belong to their respective owners.
14-
15-
Current Status
16-
--------------
17-
18-
This project is currently in early development. So far many classes have been identified via RTTI type information and from static object oriented analysis via OOAnalyzer, and most functions containing strings that directly hint at there name/functionality have been renamed.
19-
20-
This project is focusing most of its reverse engineering work on the use of Ghidra but will use IDA where/when necessary.
21-
22-
Getting Started
23-
---------------
24-
25-
- A Ghidra zip file for the F3.exe is located in the ghidra directory along with both an exported header and source file of the up to date reverse engineered code.
26-
- OOAnalyzer was used as a bootstrap for finding class information beyond rtti type information.
27-
- OOAnalyzer: https://github.com/cmu-sei/pharos
28-
29-
- Ghidra pseudo code is located in the c directory, where header/interface files are located in the c/headers directory, and source/implementation files are located in the c/source directory.
30-
- Reverse engineered C++ source code is located in the c++ directory, where header/interface files are located in the c++/headers directory, and source/implementation files are located in the c++/source directory.
31-
32-
Documentation
33-
-------------
34-
35-
- [`OpenJE-RE`](/docs/OpenJE-RE.md) - provides in-depth information about the projects current state and its goals.
36-
- [`F3`](/docs/F3.md) - documentation for the structs, classes, and functions of the Jefferson Engine.
1+
OpenJE-RE
2+
=========
3+
4+
OpenJE is an open source reverse engineered c++ implementation of the Jefferson Engine developed by Interplay Entertainment's Black Isle Studios.
5+
6+
- License: GPLv3 (see LICENSE for more information)
7+
8+
Disclaimer
9+
----------
10+
11+
- This project is not affiliated with Bethesda Softworks LLC, Interplay Entertainment Corp., Bethesda Game Studios, or Black Isle Studios.
12+
- This project is completely open source and no commercial use is intended.
13+
- All copyrights belong to their respective owners.
14+
15+
Current Status
16+
--------------
17+
18+
This project is currently in early development. So far many classes have been identified via RTTI type information and from static object oriented analysis via OOAnalyzer, and most functions containing strings that directly hint at there name/functionality have been renamed.
19+
20+
This project is focusing most of its reverse engineering work on the use of Ghidra but will use IDA where/when necessary.
21+
22+
Re-Implementation of the F3 executable is currently in progress.
23+
24+
Getting Started
25+
---------------
26+
27+
- A Ghidra zip file for the F3.exe is located in the ghidra directory along with both an exported header and source file of the up to date reverse engineered code.
28+
- OOAnalyzer was used as a bootstrap for finding class information beyond rtti type information.
29+
- OOAnalyzer: https://github.com/cmu-sei/pharos
30+
31+
- Ghidra pseudo code is located in the c directory, where header/interface files are located in the c/headers directory, and source/implementation files are located in the c/source directory.
32+
- Reverse engineered C++ source code is located in the c++ directory, where header/interface files are located in the c++/headers directory, and source/implementation files are located in the c++/source directory.
33+
- Re-Implementation of the F3 executable is located in the re-implementation directory.
34+
35+
Documentation
36+
-------------
37+
38+
- [`OpenJE-RE`](/docs/OpenJE-RE.md) - provides in-depth information about the projects current state and its goals.
39+
- [`F3`](/docs/F3.md) - documentation for the structs, classes, and functions of the Jefferson Engine.

c++/include/Action.hpp

+29-29
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
1-
// Copyright 2024 OpenJE
2-
3-
#ifndef OPENJE_RE_CPP_INCLUDE_ACTION_HPP_
4-
#define OPENJE_RE_CPP_INCLUDE_ACTION_HPP_
5-
6-
#include "openje-re/c++/include/openje_types.hpp"
7-
8-
namespace F3
9-
{
10-
class Action
11-
{
12-
protected:
13-
byte mbr_0x4;
14-
15-
public:
16-
Action();
17-
18-
public:
19-
virtual ~Action();
20-
virtual byte vf_a() = 0;
21-
virtual void vf_b() = 0;
22-
virtual byte Get_mbr_0x4();
23-
virtual void vf_d( dword param ) = 0;
24-
virtual void vf_e() = 0;
25-
virtual void vf_f() = 0;
26-
};
27-
} // namespace F3
28-
29-
#endif // OPENJE_RE_CPP_INCLUDE_ACTION_HPP_
1+
// Copyright 2024 OpenJE
2+
3+
#ifndef OPENJE_RE_CPP_INCLUDE_ACTION_HPP_
4+
#define OPENJE_RE_CPP_INCLUDE_ACTION_HPP_
5+
6+
#include "openje-re/c++/include/openje_types.hpp"
7+
8+
namespace F3
9+
{
10+
class Action
11+
{
12+
protected:
13+
byte mbr_0x4;
14+
15+
public:
16+
Action();
17+
18+
public:
19+
virtual ~Action();
20+
virtual byte vf_a() = 0;
21+
virtual void vf_b() = 0;
22+
virtual byte Get_mbr_0x4();
23+
virtual void vf_d( dword param ) = 0;
24+
virtual void vf_e() = 0;
25+
virtual void vf_f() = 0;
26+
};
27+
} // namespace F3
28+
29+
#endif // OPENJE_RE_CPP_INCLUDE_ACTION_HPP_

c++/include/ActionAnim.hpp

+52-52
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
1-
// Copyright 2024 OpenJE
2-
3-
#ifndef OPENJE_RE_CPP_INCLUDE_ACTIONANIM_HPP_
4-
#define OPENJE_RE_CPP_INCLUDE_ACTIONANIM_HPP_
5-
6-
#include "openje-re/c++/include/openje_types.hpp"
7-
8-
#include "openje-re/c++/include/Action.hpp"
9-
#include "openje-re/c++/include/Entity.hpp"
10-
11-
namespace F3
12-
{
13-
class ActionAnim : public Action
14-
{
15-
public:
16-
undefined None;
17-
undefined None;
18-
undefined None;
19-
undefined None;
20-
undefined None;
21-
undefined None;
22-
undefined None;
23-
undefined None;
24-
undefined None;
25-
undefined None;
26-
undefined None;
27-
byte mbr_0x10;
28-
undefined None;
29-
undefined None;
30-
undefined None;
31-
Entity * entity; // Some class/object
32-
dword mbr_0x18;
33-
dword mbr_0x1c;
34-
word mbr_0x20;
35-
byte mbr_0x22;
36-
byte mbr_0x23;
37-
dword mbr_0x24;
38-
39-
public:
40-
ActionAnim();
41-
42-
public:
43-
virtual ~ActionAnim();
44-
byte vf_a() override;
45-
void vf_b() override;
46-
void vf_d( dword param ) override;
47-
void vf_e() override;
48-
void vf_f() override;
49-
};
50-
} // namespace F3
51-
52-
#endif // OPENJE_RE_CPP_INCLUDE_ACTIONANIM_HPP_
1+
// Copyright 2024 OpenJE
2+
3+
#ifndef OPENJE_RE_CPP_INCLUDE_ACTIONANIM_HPP_
4+
#define OPENJE_RE_CPP_INCLUDE_ACTIONANIM_HPP_
5+
6+
#include "openje-re/c++/include/openje_types.hpp"
7+
8+
#include "openje-re/c++/include/Action.hpp"
9+
#include "openje-re/c++/include/Entity.hpp"
10+
11+
namespace F3
12+
{
13+
class ActionAnim : public Action
14+
{
15+
public:
16+
undefined None;
17+
undefined None;
18+
undefined None;
19+
undefined None;
20+
undefined None;
21+
undefined None;
22+
undefined None;
23+
undefined None;
24+
undefined None;
25+
undefined None;
26+
undefined None;
27+
byte mbr_0x10;
28+
undefined None;
29+
undefined None;
30+
undefined None;
31+
Entity * entity; // Some class/object
32+
dword mbr_0x18;
33+
dword mbr_0x1c;
34+
word mbr_0x20;
35+
byte mbr_0x22;
36+
byte mbr_0x23;
37+
dword mbr_0x24;
38+
39+
public:
40+
ActionAnim();
41+
42+
public:
43+
virtual ~ActionAnim();
44+
byte vf_a() override;
45+
void vf_b() override;
46+
void vf_d( dword param ) override;
47+
void vf_e() override;
48+
void vf_f() override;
49+
};
50+
} // namespace F3
51+
52+
#endif // OPENJE_RE_CPP_INCLUDE_ACTIONANIM_HPP_

0 commit comments

Comments
 (0)