Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/thpatch/thcrap

Touhou Community Reliant Automatic Patcher
https://github.com/thpatch/thcrap

Apply detours to all import descriptors of a DLL, not just the first one.

Yup, any API that takes a DLL name and returns only a single import
descriptor is doing it wrong...

02cbe1530db6f704003bdd4bbff8a96ff16b043e authored over 8 years ago by nmlgc <[email protected]>
Ensure lowercased DLL names for detours.

Because hash table lookup still needs to work in the next step.

c8ba77cf9f455bc51c5dc9ada71df3b1f83291d4 authored over 8 years ago by nmlgc <[email protected]>
TSA: Actually patch 8-bit grayscale images.

libpng: Where 0 is a valid image format. Yet another thing that never worked
in any build we've ...

2ae9e67fe0b516fee0a2bbb5b31b5f5774256f16 authored over 8 years ago by nmlgc <[email protected]>
Update our dependent libraries.

Including a rather critical bugfix for Jansson; see
https://github.com/akheron/jansson/issues/282.

6a0caf575691071a3d67bde69ca47f12b98a59a5 authored over 8 years ago by nmlgc <[email protected]>
Rewrite the breakpoint prolog and epilog code in Assembly.

Splitting breakpoint prolog/epilog and dispatch into two functions (one in
Assembly, one in C) a...

ec0c5ce0cca2a90a20a6b20e5c43caa934048373 authored over 8 years ago by nmlgc <[email protected]>
Use C99 __func__ instead of __FUNCTION__ when not compiling with Visual C++.

Couldn't they standardize __FUNCTION__ instead? A string literal that can be
concatenated with o...

c03ade8e87b3848bbb1d30d6e8a09633fbe22a7c authored over 8 years ago by nmlgc <[email protected]>
Update version number

6821b496825ab801d70f16513ce65312cbee0923 authored over 8 years ago by brliron <[email protected]>
th06 asking for PNG files with indexed coulors was not due to th06 needing PNG files with indexed coulors, but to a buffer overflow check that wasn't covered by BP_size, in the PNG parsing function (see thcrap-tsa/4be5e0b). That means all this stuff about creating PNG files with indexed coulors was useless ; th06 supports regular RGB PNG files everywhere. And since this stuff is quite heavy on CPU and degrades the image to reduce it to 256 colors, we'd better remove it.

940da5bd8290c1b2bdf0e9f2133d571a7e3accc0 authored over 8 years ago by brliron <[email protected]>
Update version number

bd248737e30aa596f91369fb2b445e8bc785cebc authored over 8 years ago by brliron <[email protected]>
Update version number

b1dd6650c0c6e05bb1c30e11b23414b18b2f9c1a authored over 8 years ago by brliron <[email protected]>
th06: add support for patching of 24-bits RGB files

5bf74d68dfa98c9e2688c465d73108f90236f7cb authored over 8 years ago by brliron <[email protected]>
thcrap_update: Show a notification window during self-updates.

c1634ad996ab4f9a4c81643107b1c37c252dcd92 authored over 8 years ago by nmlgc <[email protected]>
inject: Only apply detours for newly loaded DLLs a single time.

Mainly necessary to keep certain applications that LoadLibrary() the same DLL
over and over from...

6b4a0c53e9ea2f6d43f8b08e588afb6ab83ce793 authored over 8 years ago by nmlgc <[email protected]>
Update version number

aac8369d9587035462050dba552d90afbdcc8bf6 authored over 8 years ago by Bruno Liron <[email protected]>
Add support for th06 PNG files.

0fb52cecbf1b5803c074225da59f25568597fca3 authored over 8 years ago by Bruno Liron <[email protected]>
Nuke json_object_hexkey_get().

Turns out this function was a pretty stupid idea because people just
expect uppercase hex digits...

01b6407430d0704515431f6d15effb84671c37bf authored almost 9 years ago by nmlgc <[email protected]>
Use find() instead of at() for std::unordered_map lookup.

Some timings for th14 after 3000 lookups:

Jansson: 178472 ticks / 12 ms
unordered_map::at(), wi...

6156daca785d1025ab9bc65874039954c62a892e authored almost 9 years ago by nmlgc <[email protected]>
Reimplement stringlocs using an std::unordered_map.

Some performance notes:
• C++ forces destructors at program exit upon us. Not good. Can probably...

f458c32ccf65535296b10f50c908d609e691348e authored almost 9 years ago by nmlgc <[email protected]>
PE: Use a shared function for NT data directory lookup.

7d888800b15c3811e83d46e740e81095cb3fee16 authored almost 9 years ago by nmlgc <[email protected]>
PE: Fix the import directory presence check.

Fixes silent crashes when thcrap tries to apply detours to DLLs that themselves
don't import any...

b832703aba5247d435c82766134a9386bd421a3a authored almost 9 years ago by nmlgc <[email protected]>
Update our dependent libraries.

Not sure if we're affected by CVE-2015-8126, but we probably should ship a new
build regardless.

b9edf3b56b2e4934f9a9102ee0157947830fae79 authored almost 9 years ago by nmlgc <[email protected]>
inject: Don't pass an invalid current directory to CreateProcess().

This is the sort of thing that maybe should have better been fixed directly in
win32_utf8. But w...

754ea7394152eed3acb5577d9bec57759cd0df06 authored almost 9 years ago by nmlgc <[email protected]>
Update version number

3db8b67fed425c9fa07816d72015f47199fad336 authored almost 9 years ago by Bruno Liron <[email protected]>
configure: Always initialize servers when loading repository files.

Fixes a bug introduced a few commits ago that broke dependency resolution on
clean installations...

130849899c6f1d160a2d7aa3953545713ed30dff authored almost 9 years ago by nmlgc <[email protected]>
configure: Don't abort directory enumeration on a directory without repo.js.

-.-

3da6e665ba7c9f84089f3d857c4ba35ba0cad301 authored almost 9 years ago by nmlgc <[email protected]>
Self-updater: Rename downloaded archive to thcrap_brliron.zip.

Old versions still assume that thcrap.zip is signed by me, and brliron will be
releasing new bui...

610723b9bdc20e436c4ff1a913f9249187dde6a6 authored almost 9 years ago by nmlgc <[email protected]>
Remove artist request from thcrap_configure

59615ee48a601ab1b1595256d9aee55b2bd77ecf authored almost 9 years ago by Bruno Liron <[email protected]>
configure: Visit all mirrors of locally known repositories.

This should fix pretty much all of the inadvertent single point of failure
bugs where one server...

3b5a6cb60e11e8c9cdcd43a133f5d4f7ba3a9c8a authored almost 9 years ago by nmlgc <[email protected]>
configure: Do a full second discovery pass over the local repository files.

0c09009fb084b67c727a2e29781ebb5e802f6ffc authored almost 9 years ago by nmlgc <[email protected]>
configure: Split neighbor discovery into a separate function.

a16a76605ddbc8f5d539e75845e5bdfb0917fa40 authored almost 9 years ago by nmlgc <[email protected]>
plugin: Don't try to load 0-byte DLLs.

8208935dc5e48a8890a8ae9bf536a348108168e2 authored almost 9 years ago by nmlgc <[email protected]>
Self-updater: Remove http://thcrap.nmlgc.net from the list of download URLs.

e717e7d574c8144598bdbfd52b236a15844a8a1b authored almost 9 years ago by nmlgc <[email protected]>
zip: Keep a list of 0-byte files.

Interestingly, these were never part of the regular file list, probably because
subdirectory nam...

a203511150f0a76d98242fbd51601023ab4befa7 authored almost 9 years ago by nmlgc <[email protected]>
Self-updater: Delete local files whose updated versions would be 0-byte files.

Closes #45.

88cec5b272314349a6a087dceb232c7f1d4d60cb authored almost 9 years ago by nmlgc <[email protected]>
zip: Actually free the file buffer after unzipping.

9a002b598739170afbf5515a31b92814a6ca2df2 authored almost 9 years ago by nmlgc <[email protected]>
Self-updater: UI: The signature has already been verified if a disk write fails.

53faf8225b8f9064ce34f8074debdb3cd869b1a5 authored almost 9 years ago by nmlgc <[email protected]>
Automatically sign all binaries as part of the build process.

b44f7aff1952b4a8ae8208b4b400496dd466d553 authored almost 9 years ago by nmlgc <[email protected]>
Readme: Explain how to generate a code signing certificate.

6a29f9e372dbd17daa6d2865b2e0c23f55422909 authored almost 9 years ago by nmlgc <[email protected]>
Merge branch 'fast-bootstrapping'

c8330f88f4a863bfbdbedfab8d0d75ebd86093de authored almost 9 years ago by nmlgc <[email protected]>
Fix build errors in some code page

global.h is converted to UTF-8.

3428b4a26def192402e3eb06335349b2544a66b1 authored about 9 years ago by VBChunguk <[email protected]>
TSA: MSG: Cut off replacement strings at the last Unicode code point.

Not doing this can have rather hilarious consequences if the string suddenly
stops being valid U...

b2ce22ee9f1b876aa739ee0ebb1c6582655e744d authored about 9 years ago by nmlgc <[email protected]>
Move printf format specifier parsing to win32_utf8.

7513037071d099f37fb2f7684695e8210545e964 authored over 9 years ago by nmlgc <[email protected]>
Make sure to immediately abort printf format parsing for an empty string.

Yup, strchr("something", 0) actually returns a valid pointer to the end of the
string. Which mea...

b19c4b04a3bbe8ee397f55229c387719d52f25d5 authored over 9 years ago by nmlgc <[email protected]>
Refactor printf format specifier parsing into its own function.

This will be moved to win32_utf8 since we need it there for FormatMessage().

8de7c2723ad2bd1bed3d7da0165bb243b289e30f authored over 9 years ago by nmlgc <[email protected]>
Merge pull request #53 from gitter-badger/gitter-badge

Add a Gitter chat badge to README.md

c48048faa23565b1087d579c6e5bd3e78b64be79 authored over 9 years ago by Nmlgc <[email protected]>
StringToUTF8(): Don't include the terminating \0 in the returned length.

Which means we have to add it ourselves in two places.

1325fc2bdc73e479993900d48c2bca772859de40 authored over 9 years ago by nmlgc <[email protected]>
thcrap_loader: Show a more helpful error if a game ID wasn't found in games.js.

Last one of the improvements in the WiP Qt version that I'll backport to the
old loader.

5f58856d9eedd73b13c8f6aa6c8ff79c97c0f68c authored over 9 years ago by nmlgc <[email protected]>
thcrap_loader: Don't show two messages on a run configuration syntax error.

d3c13897f1465ae979a67fe83a470f4b6e3b82bc authored over 9 years ago by nmlgc <[email protected]>
thcrap_loader: Improve the help messages about passing the target executable.

e249470763792fd602efda3ba0f7ea73e5bb089f authored over 9 years ago by nmlgc <[email protected]>
thcrap_loader: Give "exe" precedence over "game" in the run configuration.

Not that it matters much, but games.js is a rather central file and run
configurations are more ...

43fe48210675e06468ac6b3dfb8f6f3cd22dab41 authored over 9 years ago by nmlgc <[email protected]>
libpng: Don't create browse information files.

Turns out they are actually useless in Visual Studio 2010 and later (see
http://stackoverflow.co...

280db8cbb74aa891c33fe60a802e571b34f73548 authored over 9 years ago by nmlgc <[email protected]>
Use precompiled headers where possible.

Together with the last commit, this speeds up time a complete rebuild of all 9
projects takes on...

d317f1b60442c2cc027d7ccb59213d8c2034418c authored over 9 years ago by nmlgc <[email protected]>
Move the last piece of high-level injection code from the loader to the core.

Almost every piece of functionality in the current loader can be easily
rebuilt in Qt in an equi...

4d154931f3b582ec0b83b71eaff7aa889684dbb5 authored over 9 years ago by nmlgc <[email protected]>
Move the build instructions in the Readme file around a bit.

Gotta fire those shots against MinGW.

c1a924844edca70d869079e7a39a228babded773 authored over 9 years ago by nmlgc <[email protected]>
Added Gitter badge

e30a7e0a36f7245d5b8ff4b44a83b95658b8e380 authored over 9 years ago by The Gitter Badger <[email protected]>
waffle.io badge

ab34f23b9b2d531a85c04b21c253d2f96c29273c authored over 9 years ago by MuffinPimp <[email protected]>
Add System32 to the DLL search part during injection.

Very important, as it allows thcrap modules to reference system DLLs that are
neither located in...

9403a2fc48d5e4437c3a6ad634fb21e42b5f00f5 authored over 9 years ago by nmlgc <[email protected]>
Update the build instructions in the Readme file.

Look, I've even added a brief Visual Studio howto for people who've only used
Autotools or Makef...

6a286ecca2c632b2c1d7db6a428e085be705bec8 authored over 9 years ago by nmlgc <[email protected]>
Integrate Jansson into the MSBuild solution.

Finally, automatable one-click builds are a reality.

b07e2f9926f20f6cf569a8bd7c0a4c9c20cb026e authored over 9 years ago by nmlgc <[email protected]>
Actually remove libpng's public headers when the project is cleaned -.-

5be8bb599655013434c51fd5feeeccddba591ab3 authored over 9 years ago by nmlgc <[email protected]>
Centralize all shared settings specific to Debug or Release builds.

62777520ebe4973d0a98f528a994c058b47cf4cd authored over 9 years ago by nmlgc <[email protected]>
Import the Debug and Release settings from Base.props.

6568c6ce52a556e21ca15004ccd00d383b0f9e22 authored over 9 years ago by nmlgc <[email protected]>
Move the library settings shared among all thcrap projects to thcrap.props.

They're the only thing keeping the Debug and Release settings to be used for
the third-party lib...

70e599278b6c66cde3cd55d7f6af1abb7e42c9b9 authored over 9 years ago by nmlgc <[email protected]>
Consistently use $(UseDebugLibraries) to check for Debug and Release builds.

Yes, you really only want to explicitly define one case and check whether
the setting is equal o...

234597b80f78e1c6de39fe08a11e0eee4a7c5dee authored over 9 years ago by nmlgc <[email protected]>
Set Win32Proj as part of the basic settings.

OK, smaller commits, this is getting way too unwieldy.

a439e894c11a27e4384bad3f3d87e7fc8630a159 authored over 9 years ago by nmlgc <[email protected]>
Split off common settings for static+dynamic libraries into a separate sheet.

4311e0c55eae7a2e964f29a7e0ea0ea13838eeb0 authored over 9 years ago by nmlgc <[email protected]>
Integrate libpng into the MSBuild solution.

b89fbd9b6e7b6feec98d2b3452b1c967834d5fc5 authored over 9 years ago by nmlgc <[email protected]>
Switch to a more maintained zlib fork and add a MSBuild project for it.

Judging from https://github.com/madler/zlib/issues/87#issuecomment-69800225,
zlib itself is not ...

446a768741e2b0c689f4cef84e1b01b37f1ffd81 authored over 9 years ago by nmlgc <[email protected]>
Open thcrap_log.txt in text mode.

Well, notepad.exe *is* the default text editor on Windows. Thanks to brliron
for the tip.

461ad92fbba7c678147924c75a2b8ecc443782b7 authored over 9 years ago by nmlgc <[email protected]>
Split off build settings shared by our dependencies into a separate sheet.

At least Jansson doesn't want MSBuild project files upstream, so we'll have to
provide our own.

a8f46296bef216b8928ec84c3159eee6ab1f1524 authored over 9 years ago by nmlgc <[email protected]>
Remove the .vcxproj.filters files.

I haven't seen the need for fancy custom filters so far, and "Search Solution
Explorer" is more ...

c32202f5237e13daba4342468c20ad415f908df8 authored over 9 years ago by nmlgc <[email protected]>
Fix a few small syntax issues that throw errors or warnings in GCC.

For now, this is everything we can do that doesn't break the Visual Studio
build in turn. I'd li...

e518fc34fc8512556e8f250311abccd22a6c602b authored over 9 years ago by nmlgc <[email protected]>
Remove the SAL annotations copied from Microsoft's headers.

MinGW doesn't have them, but we don't care about them anyway.

ab7593f06651a752f054a2b695ed55292d87508c authored over 9 years ago by nmlgc <[email protected]>
Move the DLL_* macros to win32_utf8.

OK, back on par with win32_utf8's master branch.

3a86b03b1d43ec4a287148343278d7fc2edd63c6 authored over 9 years ago by nmlgc <[email protected]>
Move the wininet.dll UTF-8 wrappers to win32_utf8.

6a6027a7e16f1b69be3fcfc8e99fad49a1f1fa60 authored over 9 years ago by nmlgc <[email protected]>
Adopt win32_utf8's build directory layout.

6891e52acd7e5ca60139526bc5abcb2fd2606f58 authored over 9 years ago by nmlgc <[email protected]>
Update to Visual C++ 2013.

Now look at that, an update of a Microsoft product leading to a net
*reduction* of lines. Please...

9b6a47eba7a7bc1f4cd16119f8c00159be624581 authored over 9 years ago by nmlgc <[email protected]>
Update the referenced win32_utf8 version.

0e81fed164e162c8ec72e77e982a54cd6ea548c1 authored over 9 years ago by nmlgc <[email protected]>
Use the new win32_utf8 function list API.

Oh my god, I've copied 10 lines of code! Seriously though, adding a generic,
non-variadic versio...

bc242d5fee2d537747ea947da9a118153f2e14d9 authored almost 10 years ago by nmlgc <[email protected]>
Only download necessary patch data during configuration and updates.

And that would be all of fast bootstrapping (#36) we can reasonably implement
without a GUI.

.....

add1b88bb3b6270570323be0ddcebe7778de721b authored almost 10 years ago by nmlgc <[email protected]>
update: Filter the files to be downloaded using an optional callback function.

085e03faa5287e2544a3fe9ab803be91bda55a5d authored almost 10 years ago by nmlgc <[email protected]>
update: Prepare a separate list of files to download in advance.

Fast bootstrapping will introduce more checks to trim down the number of files
downloaded, and i...

3d949d4ec89a1e6b31585e1a0363a02ba4eeb1f6 authored almost 10 years ago by nmlgc <[email protected]>
Add dependencies as submodules

2d250521b377959cb31bede66b17f5ff9c46f541 authored about 10 years ago by MuffinPimp <[email protected]>
Move win32_utf8 to a submodule

877e1f0d8fa266dfd5e2435d2f5bb31f76b42818 authored about 10 years ago by MuffinPimp <[email protected]>
Rename a couple files

73cc1e49cb8f4d0e9b4c20bbe57a641cc342513d authored about 10 years ago by MuffinPimp <[email protected]>
Replace the WTFPL with the Unlicense.

Due to the fact that the automatic updater currently can't delete files, we'll
be keeping the li...

9e3a237cdad9ac2c512563b915cdb9f614dc899f authored about 10 years ago by nmlgc <[email protected]>
Readme: Remove the space between link texts and URLs.

Apparently, this is a GFM oddity as well, and not supported in the standard
version of Markdown.

5c4f78033923b2e1702eabc37caac259f3779269 authored about 10 years ago by nmlgc <[email protected]>
win32_utf8: Add DragQueryFile().

This came out of a fruitless attempt to turn EditDisk into Unicode for an
easier setup of the PC...

cf72825faff3847cb6c5a3659c22ac2819f07dce authored about 10 years ago by nmlgc <[email protected]>
TSA: png_ex: Use a consistent return value for png_image_new().

34ddd37d9b9e0cef3bb126bc43adcab048654077 authored about 10 years ago by nmlgc <[email protected]>
TSA: ANM: Create a local copy of all sprite coordinates.

At last, we've come to a point where this is simply the saner option. And hey,
we get rid of a b...

292bcbfc258403d31d948c3a9b313d62c382d570 authored about 10 years ago by nmlgc <[email protected]>
repo_update.py: Don't count deleted files towards the file count of a patch.

b80b13519ced7b7027faf79227763c9f7b26bd36 authored about 10 years ago by nmlgc <[email protected]>
bp_file: Add a thread_exit hook to eliminate memory leaks.

Yep, th08 actually did cause some leaks there. Since this approach also
eliminates the need to f...

805273ffc4754853a13df54823e72dcf28cce6e1 authored about 10 years ago by nmlgc <[email protected]>
plugin: Optimize module hooks by caching the functions called for each.

... or is it? There has always been a measurable performance drop caused by
iterating through th...

705a8da6d75143ee423083d1551b33ac1c794c1d authored about 10 years ago by nmlgc <[email protected]>
Introduce a module hook to be called on thread detach events.

Freeing thread-local storage is probably the only real use case for this, but oh well, mod_func_...

3efc0fef2e9368468df51809b6814ce839d05dc6 authored about 10 years ago by nmlgc <[email protected]>
TSA: Add a module for translation of generic plaintext formats.

498eafe5836d248ceb69307da902d700d7921fb8 authored about 10 years ago by nmlgc <[email protected]>
Add json_flex_array_get_string_safe().

Oh, the joy of regular and predictable function naming getting completely out
of hand.

55b31a8cbe5af2d0e337f1fabaa6fa945152b685 authored about 10 years ago by nmlgc <[email protected]>
textdisp: Document font replacement in full.

04b7b2a24a44073d948b6dcf1d80bbd7c14c9c09 authored about 10 years ago by nmlgc <[email protected]>
Standardize the handling of the "cave_exec" breakpoint parameter.

c22be499c67baac5d308dec04ef8de6981f9e64c authored about 10 years ago by nmlgc <[email protected]>
textdisp: Introduce a consistent string representation for LOGFONT structures.

... in line with the upcoming improved font replacement system.

e0756809a77b92552e9d0d5b5374cf9fb570545f authored over 10 years ago by nmlgc <[email protected]>
textdisp: Add a rule-based font replacement system.

Implements #19.

23258328e5707609cb2fc781df7785273701b96a authored over 10 years ago by nmlgc <[email protected]>