Skip to content

Commit

Permalink
Release 1.7.0-1
Browse files Browse the repository at this point in the history
Added LinkerExports generator
Added version resource
Added support for 32-bit
Updated License & Readme
  • Loading branch information
acidicoala committed Jul 3, 2020
1 parent 68b7004 commit ecd59ca
Show file tree
Hide file tree
Showing 17 changed files with 1,021 additions and 549 deletions.
4 changes: 2 additions & 2 deletions Config/src/Config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ void Config::init(const std::wstring iniPath){

if(parseResult > 0)
showError(L"Error reading " + iniPath + L"\nError on line: " + std::to_wstring(parseResult) + L"\nUsing defaults");
else if(parseResult < 0)
;//showError(L"Error opening " + iniPath + L"\nUsing defaults");
//else if(parseResult < 0)
//showError(L"Error opening " + iniPath + L"\nUsing defaults");
}

bool Config::ownAllDLC(){
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (C) 2020 by Acdicicoala acidicoala@gmail.com
Copyright (C) 2020 by Acdicoala acidicoala@gmail.com

Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted.
Expand Down
54 changes: 44 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,59 @@ into thinking that you own the desired DLCs. However, ScreamAPI does not modify
hence features like multiplayer, achievements, etc. remain fully functional.

### How do I install it?
There are couple of simple steps required to install and use the ScreamAPI.
1. Download the latest DLL from [GitHub releases](https://github.com/acidicoala/ScreamAPI/releases/latest).
2.
There are several simple steps required to install and use the ScreamAPI.
1. Determine whether the game is built for 32-bit or 64-bit architecture.
There are several ways to do it which can be easily found on google.
Since most modern games are built for 64-bit architecture, we will be
dealing with 64-bit binaries in this example. However in case of 32-bit
architecure you will be dealing with 32-bit version of the same binaries.
2. Rename the original `EOSSDK-Win64-Shipping.dll` typically found in game's binary folder into
`EOSSDK-Win64-Shipping_o.dll` by adding 2 characters: `_o`.
3. Download the latest DLL from [GitHub releases](https://github.com/acidicoala/ScreamAPI/releases/latest).
The DLL architecture (Win32 vs Win64) must correspond to the one found in the first step.
4. Place the downloaded dll file into the game's binary folder, alongside the original
`EOSSDK-Win64-Shipping_o.dll`. This completes the installation process. Pretty simple, right?
Now go launch the game the way you would normally launch it and check if all DLCs have been unlocked.

##### Optional: Adding configuration file
By default ScreamAPI will attempt to unlock all DLCs that game requests. However,
in case it fails to do so, you configure it's behaviour by adding a config file.
You can get it from [here](ScreamAPI/ScreamAPI.ini), and place it in the same folder
where you placed the dll. Be sure to name the config file as `ScreamAPI.ini`.
The description of each option is described in the config file itself
in the corresponding comment that starts with `;`. In the config file you can enable things like
logging and selective DLC ownership.

### For developers
### Will I get banned for it?
Epic Games or a game publisher will obviously have the right to do so, as modifying game components
is a violation of Epic Games store [EULA](https://www.epicgames.com/store/en-US/eula). However, if you keep this to yourself,
don't publicise your usage of it and don't try messing with games that have Anti-Cheats
like BattleEye, Easy Anti-Cheat, etc. you should be fine. Either way, as mentioned in the project's
[license](LICENSE.txt) agreement of this project, I take no responisbility for the damages you might sustain.
All I can say is that I have tried and used it in several games and have not been banned
or punished in any shape or form.

EOS SDK headers verions: 1.7.0
### For developers

To get latest EOS headers, visit Epic Dev Portal at https://dev.epicgames.com/portal/ and download SDK.
Check out the [wiki](https://github.com/acidicoala/ScreamAPI/wiki) section of this GitHub project
if you are interested in learning how this framework works or wish to contribute code to the project.

### Acknowledgements
ScreamAPI would not be possible without [nEOS](https://gitlab.com/infogram/neos) by **infogram**.
It served as a great educational resource of how EOS SDK works. This project borrows several ideas
from nEOS, so I extend my gratitude to infogram for making his EOS emulator publicly available.
If you want to learn in more detail how the entire EOS SDK works (as opposed to just DLC unlocking)
then I encourage you to check out the project's [Gitlab repository](https://gitlab.com/infogram/neos).

It served as a great educational resource of how EOS SDK works.
This project borrows many ideas and implementations from nEOS,
so I extend my gratitude to infogram for making his EOS emulator publicly available.

Additionally, ScreamAPI owes its existence to **CreamAPI** - a DLC unlocker for legitimately owned Steam games.
Cream API served as an insipration to me, for it was the first project that demonstrated
that it is possible to unlock DLCs, while leaving the rest of the Steam integration intact.
Hence, the name of this project is a tribute to the CreamAPI.

### License
This software is licensed under [Zero Clause BSD](https://en.wikipedia.org/wiki/BSD_licenses#0-clause_license_(%22Zero_Clause_BSD%22))
license, terms of which are available in [LICENSE.txt](LICENSE.txt)

This software makes use of [inih](https://github.com/benhoyt/inih)
by [benhoyt](https://github.com/benhoyt),
licensed under [BSD](https://github.com/benhoyt/inih/blob/master/LICENSE.txt).
10 changes: 10 additions & 0 deletions ScreamAPI.sln
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
README.md = README.md
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_LinkerExportsGenerator", "_LinkerExportsGenerator\_LinkerExportsGenerator.vcxproj", "{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Expand Down Expand Up @@ -47,6 +49,14 @@ Global
{88727DFA-8C25-4D63-9836-F8F2EFB753EA}.Release|x64.Build.0 = Release|x64
{88727DFA-8C25-4D63-9836-F8F2EFB753EA}.Release|x86.ActiveCfg = Release|Win32
{88727DFA-8C25-4D63-9836-F8F2EFB753EA}.Release|x86.Build.0 = Release|Win32
{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}.Debug|x64.ActiveCfg = Debug|x64
{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}.Debug|x64.Build.0 = Debug|x64
{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}.Debug|x86.ActiveCfg = Debug|Win32
{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}.Debug|x86.Build.0 = Debug|Win32
{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}.Release|x64.ActiveCfg = Release|x64
{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}.Release|x64.Build.0 = Release|x64
{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}.Release|x86.ActiveCfg = Release|Win32
{A102FAC9-08F6-4CFD-A29B-00BF5C20F09D}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
7 changes: 6 additions & 1 deletion ScreamAPI/ScreamAPI.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
<ClInclude Include="src\Constants.h" />
<ClInclude Include="src\eos-sdk\eos_achievements.h" />
<ClInclude Include="src\eos-sdk\eos_achievements_types.h" />
Expand Down Expand Up @@ -60,7 +61,8 @@
<ClInclude Include="src\eos-sdk\eos_userinfo_types.h" />
<ClInclude Include="src\eos-sdk\eos_version.h" />
<ClInclude Include="src\framework.h" />
<ClInclude Include="src\LinkerExports.h" />
<ClInclude Include="src\LinkerExports32.h" />
<ClInclude Include="src\LinkerExports64.h" />
<ClInclude Include="src\pch.h" />
<ClInclude Include="src\ScreamAPI.h" />
</ItemGroup>
Expand Down Expand Up @@ -88,6 +90,9 @@
<Project>{88727dfa-8c25-4d63-9836-f8f2efb753ea}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="resources\ScreamAPI.rc" />
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{0D4A0026-B5E4-4414-B448-FF0511DB25BB}</ProjectGuid>
Expand Down
15 changes: 13 additions & 2 deletions ScreamAPI/ScreamAPI.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,16 @@
<ClInclude Include="src\ScreamAPI.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\LinkerExports.h">
<ClInclude Include="src\Constants.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\Constants.h">
<ClInclude Include="src\LinkerExports32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\LinkerExports64.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
Expand Down Expand Up @@ -178,4 +184,9 @@
<Filter>Resources</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="resources\ScreamAPI.rc">
<Filter>Resources</Filter>
</ResourceCompile>
</ItemGroup>
</Project>
100 changes: 100 additions & 0 deletions ScreamAPI/resources/ScreamAPI.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// English (United States) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE
BEGIN
"resource.h\0"
END

2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END

3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END

#endif // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,7,0,0
PRODUCTVERSION 1,7,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Acidicoala"
VALUE "FileDescription", "Free DLC for everyone \\(^.^)/"
VALUE "FileVersion", "1.7.0.0"
VALUE "InternalName", "ScreamAPI.dll"
VALUE "LegalCopyright", "Fuck the copyright >:D"
VALUE "OriginalFilename", "ScreamAPI.dll"
VALUE "ProductName", "ScreamAPI"
VALUE "ProductVersion", "1.7.0-1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

14 changes: 14 additions & 0 deletions ScreamAPI/resources/resource.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ScreamAPI.rc

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
3 changes: 2 additions & 1 deletion ScreamAPI/src/Constants.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#pragma once

#define SCREAM_API_VERSION "1.6.2" // Same as EOSSDK
#define SCREAM_API_VERSION "1.7.0-1" // format: <EOSSDK version>-<ScreamAPI version for that EOSSDK>
#define SCREAM_API_CONFIG "ScreamAPI.ini"

// Define original dll path based on the target architecture (32 vs 64)
#ifdef _WIN64
#define SCREAM_API_ORIG_DLL "EOSSDK-Win64-Shipping_o.dll"
#else
Expand Down
Loading

0 comments on commit ecd59ca

Please sign in to comment.