GithubHelp home page GithubHelp logo

darkatra / bfme2-patcher Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 16.04 MB

A collection of rather small applications that help in developing and distributing mods for Battle for Middle-Earth 2 and Rise of the Witch-King.

Kotlin 86.11% C++ 4.60% C 9.29%
bfme bfme2 bfme2ep1 modding tools

bfme2-patcher's Introduction

bfme2-patcher

The bfme2-patcher consists of the following applications:

  • game-patcher: The game-patcher aims to patch certain aspects of the original game executable to allow proper online gameplay. It redirects DNS queries for GameSpy and EA specific hosts to server that are maintained by the community (t3a:online). It also disables the games SSL certificate verification so that a connection to the community servers can be established.
  • map-builder: The map-builder is an application that helps with building the !map.big archive. It adjusts the camera settings for each map, generates the mapcache.ini and creates the final big archive.
  • mod-builder: The mod-builder is an application that helps with bundling a new version of the mod. It basically takes the necessary files and puts them in dedicated big archives for release.
  • update-builder: The update-builder is an application that makes it easy to create a version.json. The updater needs this file to calculate differences between client and server. This file contains the checksums, size specifications, paths and timestamps of the individual files.
  • updater: The updater keeps all files for a program and itself up to date. It calculates the differences between the current version of the program and the latest version from the server. For this purpose a SHA-3 hash is created for each file and compared with the server's hash. Afterwards all outdated or damaged files are downloaded from the server and obsolete files are deleted.
  • updater-ifeo: The updater-ifeo is a tiny utility that is used to set the Debugger registry key for the games. This allows the updater to launch instead of the game.

Build

Clone the project:

git clone [email protected]:DarkAtra/bfme2-patcher.git

Build the project using the following command:

gradlew clean test build jar createExe

The jar and exe files are located in the build folders of the respective applications.

bfme2-patcher's People

Contributors

darkatra avatar dependabot[bot] avatar renovate[bot] avatar v2shaq avatar

Stargazers

 avatar  avatar

Watchers

 avatar

bfme2-patcher's Issues

feat: make the DLL injector compatible with 64 bit applications

The InjectionUtils#injectDll function currently only supports injecting dlls into 32 bit processes. This is a limitation introduced by the manual lookups of function names via the IMAGE_EXPORT_DIRECTORY. The code currently assumes that all pointers are 4 byte long and thus breaks if used on 64 bit processes.

It should be possible to detect in which architecture the process is using via IsWow64Process2. The code that reads the memory regions should then be adjusted to read 4 or 8 bytes accordingly.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository. View logs.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

  • chore(deps): update all non-major dependencies (gradle, net.java.dev.jna:jna-platform, org.jetbrains.kotlinx:kotlinx-coroutines-test, org.jetbrains.kotlinx:kotlinx-coroutines-swing, org.jetbrains.kotlinx:kotlinx-coroutines-core)

Detected dependencies

gradle
settings.gradle.kts
build.gradle.kts
game-patcher/build.gradle.kts
gradle/libs.versions.toml
  • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.1
  • org.jetbrains.kotlinx:kotlinx-coroutines-swing 1.8.1
  • de.darkatra.bfme2:big 1.0.24
  • de.darkatra.bfme2:map 1.0.24
  • net.java.dev.jna:jna-platform 5.14.0
  • com.fasterxml.jackson.module:jackson-module-kotlin 2.17.2
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 2.17.2
  • org.bouncycastle:bcprov-jdk18on 1.78.1
  • commons-io:commons-io 2.16.1
  • com.github.vatbub:mslinks 1.0.6.2
  • de.darkatra.injector:kotlin-dll-injector-common 1.0.9
  • org.assertj:assertj-core 3.26.3
  • org.jetbrains.kotlinx:kotlinx-coroutines-test 1.8.1
  • org.wiremock:wiremock-standalone 3.9.1
  • org.jetbrains.kotlin.jvm 2.0.20
  • org.jetbrains.compose 1.6.11
  • org.jetbrains.kotlin.plugin.compose 2.0.20
  • edu.sc.seis.launch4j 3.0.6
map-builder/build.gradle.kts
mod-builder/build.gradle.kts
update-builder/build.gradle.kts
updater/build.gradle.kts
updater-ifeo/build.gradle.kts
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.10

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.