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

Update Act-Nut-lib

e36ce6421248ec5a24764f8876679e728241cefa authored about 7 years ago by brliron <[email protected]>
Update version number

700c08513b4c1d422473055f75534f394cc41a6e authored about 7 years ago by brliron <[email protected]>
- Rewrite the PL patcher (because the old one was quite messy and not

flexible, and I wanted to use some parts of the PL parser in win
messages patcher).
- Add win quo...

dd09d5f2326e11f23e6e268d62f41d5c875cf0db authored about 7 years ago by brliron <[email protected]>
BP_replace_file: use lpNumberOfBytesRead instead of nNumberOfBytesToRead

when computing the file pointer from before the ReadFile call.

f59bdc7b4615b2252125adce3428eaeb6a3bd9b7 authored about 7 years ago by brliron <[email protected]>
devicelost: Use the new vtable detour API.

c807a61ba06684cc7772b8f4c1d667d480119784 authored about 7 years ago by nmlgc <[email protected]>
Add an API for detouring vtables.

Turns out I also need it for debugging the hopefully last ZUN bug in
TH06, and with multiple fun...

33c749cc2e1a7a3f2c85c9e14dbc877507cce16f authored about 7 years ago by nmlgc <[email protected]>
Breakpoints: Rewrite to run in O(1) and to not use global state.

Our n is still way to small for this to actually make a difference. With
TH14.5, the heaviest us...

e941e1c23fff4be395263f5bbc547be9950a0378 authored about 7 years ago by nmlgc <[email protected]>
Breakpoints: Rename breakpoint_entry() to bp_entry().

There will be more symbols, and this would be getting a bit unwieldy…

a6713ca2ade909090c073f5c4131747cac813ca0 authored about 7 years ago by nmlgc <[email protected]>
Tasofro: Actually unload thcrap_tasofro.dll for empty patch stacks.

1bb7e16cbfe89c6d3c2681a0c89bba59f150d497 authored about 7 years ago by nmlgc <[email protected]>
devicelost: fix using more generic approach

Apparently my original fix only worked for me, because there are
multiple sets of Reset calls, a...

cb3404cdde56d8ef7bb7034e8b2ad5dc7a02e935 authored over 7 years ago by Egor <[email protected]>
Update version number

0ecafb0582e0bec467dc2c37cadda5372b62f93c authored over 7 years ago by brliron <[email protected]>
Act/Nut: support flex arrays as input

5bc72dd65ccd49bb7345e6bb89eb56a65e11308e authored over 7 years ago by brliron <[email protected]>
Update Act/Nut lib

5858f8964517972ec655474c9b1e92928be69435 authored over 7 years ago by brliron <[email protected]>
Update Act/Nut lib

51071c7c58beb7f3691a1953881c28924d66005a authored over 7 years ago by brliron <[email protected]>
Update version number

4bad69c6eb48dd3dd21ecf07950c578163167cae authored over 7 years ago by brliron <[email protected]>
Add Act/Nut lib as a dependency for thcrap_tasofro

e732264beffc6841707f97b9d48325eb48bc41cb authored over 7 years ago by brliron <[email protected]>
tasofro: add act/nut support.

For now, only strings can be replaced.

5601eba5f80e9028e6062f525a92a97e0410dda1 authored over 7 years ago by brliron <[email protected]>
thcrap: Add a strtol()-style endptr parameter to reg().

Since x86_64 has R8 and R9, and this is called by an expression parser
now.

7b4369c4576f887a4e72e327445e9a32111c76d0 authored over 7 years ago by nmlgc <[email protected]>
Add Act/Nut lib

0537b0b988053e794d362db847b4732ea7e50b8f authored over 7 years ago by brliron <[email protected]>
Update version number

743662a7b13e7493dca75335c8b5b10d8b8bf833 authored over 7 years ago by brliron <[email protected]>
Replace `goto` with `defer` or local functions where GCC complains about it.

73d46da10218154d690a3f0a57c1d9659ee87f03 authored over 7 years ago by nmlgc <[email protected]>
tasofro: allocate more space for char_select spellcards, and print

warnings in the logs when the buffers are too smalls.

879a9b51cefdd341a3e600a5da2c7ac6bc515162 authored over 7 years ago by brliron <[email protected]>
Merge remote-tracking branch 'origin/master' into devicelost

9a7d29ff3c368fdb8fa3e87747fcf3d3fed77102 authored over 7 years ago by Egor <[email protected]>
devicelost: use bp_info instead of stack arguments

b0fb53676363b837107843d90afcc4a78b0aa881 authored over 7 years ago by Egor <[email protected]>
Fix -Wstrict-aliasing.

13c775944c617ee99a2102f65b599e64b5b6847b authored over 7 years ago by nmlgc <[email protected]>
Update version number

7ee177daf94b685867e74b16099187b66ff07d31 authored over 7 years ago by brliron <[email protected]>
Fix an error in b702a46

1db34eef74e4bf5414fd6b3236e574c30b49c423 authored over 7 years ago by brliron <[email protected]>
Fix all 32-bit pointer assumptions in printf() strings.

e1218ac71d9e3581da2a26f3776a1f0c60899c35 authored over 7 years ago by nmlgc <[email protected]>
tasofro: add binhacks support

b702a463adaa3a15044bde39e90dd880198cc60f authored over 7 years ago by brliron <[email protected]>
devicelost: removed unnescessary Reset call

01f57f1c5374f4d8ab329cf2ddbe35cf6b1cea1f authored over 7 years ago by Egor <[email protected]>
devicelost: clean up arguments on stack

D3D9, like most of the Microsoft APIs, uses stdcall calling convention.
In particular, this mean...

dff9e86dc3f86eafa114371a1d5ce8a2f7309588 authored over 7 years ago by Egor <[email protected]>
Merge branch 'master' into devicelost

b613f7112f1eefd78c058548823c34fce57bf55f authored over 7 years ago by Egor <[email protected]>
Tasofro: LoadFileNameListFromMemory: Correctly skip over line breaks.

Previously, it was repeatedly calculating the hash of the empty string
on every line break.

b95cfbb223297d9231993cb9196b029189481797 authored over 7 years ago by nmlgc <[email protected]>
Added VLA_FREE to BP_mission and BP_spell_comment_line

e19114a1039c50343f60326e9bb037f1cd3e8ff0 authored over 7 years ago by Egor <[email protected]>
tsa: Added initial support for mission descriptions

6a26baba34dff049d4fccd7b3f3ac5f63fcf595a authored over 7 years ago by Egor <[email protected]>
Add a bit of support for applying binhacks on DLLs.

e50728e7e479e71eea56709107ca296cdc1ff726 authored over 7 years ago by brliron <[email protected]>
Update version number

116ec5445be07a8fe8eb496a2a9845190ac471cc authored over 7 years ago by brliron <[email protected]>
thcrap_tasofro: add a breakpoint to detour functions in plugins.

0f53dea9f82c29529d5c9d9f024f52998cf367b2 authored over 7 years ago by brliron <[email protected]>
TSA: Generic text: Allow the line to be explicitly set to 0.

Turns out we need this for the TH14.3 title messages as well.

b7b49ae368bc647f8eefc68a20f2f85b91a518e4 authored over 7 years ago by nmlgc <[email protected]>
inject: Correctly reference-count DLLs by not reference-counting at all. [V]

Haha, seriously, how stupid was I? We don't care about any reference
counts above 0 or 1 to deci...

c9ccaa55e32e5f55a0b1d4c328c29847da84b777 authored over 7 years ago by nmlgc <[email protected]>
Update version number

e89a670955e0476d8924f2bdbe077e1d639e8b0b authored over 7 years ago by brliron <[email protected]>
xpcompat: TLS: Mark the _mod_thread_exit function as extern "C".

…right, because it's actually declared in the .cpp file.

46509cbf5617e618f43a75a10d716cdad201d212 authored over 7 years ago by nmlgc <[email protected]>
xpcompat: Add a wrapper for thread-local structures.

Oh look, something that MinGW/GCC would have actually done for us, with
its support of the _Thre...

67621e5db3efc8dfa1c7bde22295980b9d9209ef authored over 7 years ago by nmlgc <[email protected]>
TSA: Generic text: Compile as C++.

62b762e2fdfbdda15b3c40305e9aaff3d076ee0e authored over 7 years ago by nmlgc <[email protected]>
xpcompat: Regularly declare the SRWLOCK approximations instead of using lambdas.

Apparently, no one on the Internet has ever wanted to enforce a calling
convention for a lambda ...

e1bdc1430cf9c9a35ec2fc0747ee4c0792ca939b authored over 7 years ago by nmlgc <[email protected]>
Spell out the UTF-8 bytes of the → printed during game identification.

It started to appear garbled in the 2017-05-31 build, maybe because the
non-Unicode codepage on ...

414dc3ff54294e6b166df5361bc7b795a1dc4b68 authored over 7 years ago by nmlgc <[email protected]>
configure: Fix folder selection. [V]

…and correctly work around that bug. Fixes #67.

a44ac1815dc55a9a7a8bf7c1cbaec11bf35557d4 authored over 7 years ago by nmlgc <[email protected]>
Update version number

11de5fa077000408ffd793be616b1904bef0b731 authored over 7 years ago by brliron <[email protected]>
update: Delete files that shouldn't exist according to the local files.js. [V]

cef2cfe9e4d1717d00d3bb369b3eaf64efd420f3 authored over 7 years ago by nmlgc <[email protected]>
update: Remove a file from the local files.js if it doesn't exist locally. [V]

b839a93f5727e52c77afd9beadb4f35b19f095a4 authored over 7 years ago by nmlgc <[email protected]>
TSA: Generic text: Allow multiple target strings in the same breakpoint.

28439b445dfd3e95eafc1d67d7c12a593e27af01 authored over 7 years ago by nmlgc <[email protected]>
Standardize the distinction of pointer and value parameters in breakpoints.

The main benefit of json_immediate_value() (the former
json_register_value() from thcrap_tsa's g...

dccdfa89b690605775b7438919036aa7511614dd authored over 7 years ago by nmlgc <[email protected]>
Fix each and every outdated, wrong, or misleading comment.

>stumble upon one comment that doesn't make sense anymore
>decide to fix them all

7824dc4155e130b213a042202d49f11728a500da authored over 7 years ago by nmlgc <[email protected]>
Add a separate mechanism to disable hackpoints, to allow easy opt-in.

Opting *out* of a hackpoint is quite straightforward, you simply null
out any of the vital param...

fb7d1f183563d93b23a87645a4a144d54eec4e6c authored over 7 years ago by nmlgc <[email protected]>
configure: Initialize the folder browse dialog at the current directory. [V]

bbd39e96581f5d8f1cb759330d2af85e97494400 authored over 7 years ago by nmlgc <[email protected]>
update: Reword the old version message.

Because "confirmed to work" signals perfect support.

The *actual* truth is that we support the ...

922242403cd4a7f0fc3836f60bddeb6136dfdaf5 authored over 7 years ago by nmlgc <[email protected]>
Strings: Remove a superfluous conditional branch.

ff9308c586292b9d287ad87ae6bfecd65f0b3f84 authored over 7 years ago by nmlgc <[email protected]>
Update version number

1ea26530bfbfd6b1607f65276688b6ab64b18b31 authored over 7 years ago by brliron <[email protected]>
Strings: Actually reallocate correctly. [V]

Turns out I didn't test this with the rarely used strings_strcat()
function, and subsequently br...

43a7f59b943f117be03ebc260f4b9354dd1da436 authored over 7 years ago by nmlgc <[email protected]>
Update version number

e97fe9c9815569d74f289401f25c03122340e3c6 authored over 7 years ago by brliron <[email protected]>
thcrap_tasofro: story spellcards: fill the spellcards for higher

difficulties with translations of lower difficulties.

75b383017dc28df6f2368cac15f7fb9c1ddbbe6a authored over 7 years ago by brliron <[email protected]>
thcrap_update: unload if it has been renamed.

5c443406f8b65d58dc2b44b995939ddb59ac9e2a authored over 7 years ago by brliron <[email protected]>
thcrap_tasofro: spellcards: use name(id) instead of id(name) and use

0-based IDs for player spellcards.

f9de3ddc10fe6737abee6789aeeb8b7372bdabb6 authored over 7 years ago by brliron <[email protected]>
Fix -Wformat.

It sure was tempting to change the DLL reference counter to a
std::unordered_map as well… until ...

eca6dff1bd0df97af05d60f307a3985c3afffc60 authored over 7 years ago by nmlgc <[email protected]>
Merge pull request #66 from devinacker/master

there are four steps, not two

57d3cec4d6a237ed2ad2783efaf0cdb74ca9a44d authored over 7 years ago by Nmlgc <[email protected]>
there are four steps, not two

55e294f3c4b3be9524e0525f6cc68b993cf8bc18 authored over 7 years ago by devinacker <[email protected]>
tasofro: add spellcards support

643bc95d85b1af2de83fdc5abd65e8f151e51031 authored over 7 years ago by brliron <[email protected]>
Fix -Wwrite-strings.

1e4a3329d7eeb7fe7afc0f477165417dc7f7b18e authored over 7 years ago by nmlgc <[email protected]>
Use a std::unordered_map for persistent storage strings.

Another ~2.3× performance increase compared to using Jansson.

15441f13925db4aa0b2062b45e1576aff0c33a8e authored over 7 years ago by nmlgc <[email protected]>
Add support for creating virtual files in memory.

77216c37ce71ec07a7933b120b7c46dad5fef911 authored over 7 years ago by brliron <[email protected]>
Fix -Wreserved-user-defined-literal.

db1741fde7353cc341ef5bc0472ef8a04f8d57f7 authored over 7 years ago by nmlgc <[email protected]>
Fix -Wpragma-once-outside-header.

fb02cceba422b96927c80b06acb1236c30f55c47 authored over 7 years ago by nmlgc <[email protected]>
thcrap_tasofro: compile as C++.

acdc60bcfd20e5ae926d385629cf0980aba03848 authored over 7 years ago by brliron <[email protected]>
Fix -Wignored-qualifiers.

991ba11e7b97dfe8091e3d689d10212bc9da272a authored over 7 years ago by nmlgc <[email protected]>
Tasofro: Don't show the sandbox reconfiguration message for empty patch stacks. [V]

Yup, trying to check for NULL pointers inside strcmp() is a bad idea
after all.

ca8912ad08299adb825a1adaaeb09e325ecc9f6d authored over 7 years ago by nmlgc <[email protected]>
MinGW requires lowercase Win32 header file names on case-sensitive systems.

Also removing a few unnecessary includes.

2b6b0791ef5bee9b1ba3335a5b9dd8c6fb6bdf35 authored over 7 years ago by nmlgc <[email protected]>
textdisp: Add font quality as a fifth parameter to font rules. [V]

Which effectively saves us… a grand total of 1 binary hack per
game, because it only works as in...

07b5651f2191ef74c4ac433ace08bee883ff8a3c authored over 7 years ago by nmlgc <[email protected]>
Update version number

3cbb68f909e83415fb0b3bac727143b500095158 authored over 7 years ago by brliron <[email protected]>
TSA: MSG: Hardcode all existing formats.

1e9121e64419187f6ca90af042bd6749be0c625f authored over 7 years ago by nmlgc <[email protected]>
Support UTF-16LE JSON files.

27e8a01c6f869115a5406dc32b231fdf15ef31bf authored over 7 years ago by nmlgc <[email protected]>
thcrap_tasofro: BP_replace_file: replace the hardcoded read size with a

size read from a registry or from the JSON file, and allow getting the
file buffer from a registry.

878c54a7cdbc7a53b9830db23072bb363a2d1018 authored over 7 years ago by brliron <[email protected]>
thcrap_tasofro: add a struct_offset field to the file_header breakpoint.

AoFC demo doesn't have the header in a register when I call this
breakpoint, so I go with EBP-re...

8c92bfa5622d8cd3da274082973e8c69be17b593 authored over 7 years ago by brliron <[email protected]>
Bump the version number to 2017-05-07.

56809c5888bdacc7494bab191587e86ddd7f4399 authored over 7 years ago by nmlgc <[email protected]>
Add a safe vsprintf variety for the parameter list used in Visual Studio 2015.

88352cb16c9830a572ca0e0bb685cb86c120d026 authored over 7 years ago by nmlgc <[email protected]>
Bump the version number to 2017-05-06.

53c865d2052327a8cc7958c6dbc475382e454e77 authored over 7 years ago by nmlgc <[email protected]>
configure: Always display the folder browse dialog above the console window.

Seems to matter for XP, at least.

e1851fa484d386f21770346dad6ff9f719412da6 authored over 7 years ago by nmlgc <[email protected]>
update: Download files in chunks of available data.

Doesn't consume 100% CPU while downloading a large file, provides a hook
for a future GUI callba...

396b3ce9f1a78eac140f4b21eb3b0a299c36f6af authored over 7 years ago by nmlgc <[email protected]>
update: Correctly handle refused connections.

e2ccd6522ee41d0897ed806b4acdea08b06df140 authored over 7 years ago by nmlgc <[email protected]>
TSA: MSG: Hardcode the encraption functions.

9ca2c3bba10485331c7cacc87ad4b8423ceef36b authored over 7 years ago by nmlgc <[email protected]>
TSA: MSG: Move the encraption functions into th06_msg.c.

So, rather than depending on thcrap's specs module, and thcrap's
jsondata module, and thcrap's j...

56f3e7fe0f02952ba5d57df0faf7fc5576e3b796 authored over 7 years ago by nmlgc <[email protected]>
TSA: MSG: Use standard integer types rather than Microsoft types.

OK, so rather than rewriting pretty much all of the parsing code in
some other language, we'll s...

43b7e3aa41ec1fc6c6ffdbe6e32ff9d2f081273d authored over 7 years ago by nmlgc <[email protected]>
Tasofro: Tell people to reconfigure if th145 is run with the sandbox. [V]

And no, we'd better not sneakingly overwrite the run configuration .js
file automatically, since...

e9e3d020ffe60f72e179d99d7bc0280ffd7ef125 authored over 7 years ago by nmlgc <[email protected]>
Tasofro: Unload the plugin for non-Tasofro games.

da7f467dd73879c5888662410919f1e211197ad1 authored over 7 years ago by nmlgc <[email protected]>
plugin: Make sure that loaded plugins actually have a .dll extension. [V]

Turns out that the feature of renaming thcrap_update.dll actually comes
up quite regularly in di...

5c8d7e3502e99494636636b6e642622053f853fd authored over 7 years ago by nmlgc <[email protected]>
smartdlg: Call PostQuitMessage() on a WM_DESTROY message.

This isn't handled by DefDlgProc() either. So, the correct, idiomatic
order for GUI shutdown is:...

ad6a7eb33ef255464cde4075a1819d82755879e9 authored over 7 years ago by nmlgc <[email protected]>
smartdlg: Create the window in the same thread that runs the message loop.

Well, that's just how things have to be done in Windows USER. Not that
it mattered because you c...

497e8b6326c6a569afaff573aa2ddde60998a7da authored over 7 years ago by nmlgc <[email protected]>
update: Pick servers based on the average of the last 5 ping measurements. [V]

At least in my test case, this (very arbitrary) value provided enough of
a buffer against the pi...

fcb8a32dbef4086efbd70c543e37544661544c89 authored over 7 years ago by nmlgc <[email protected]>
update: Select the download server based on ping, not total download time. [V]

With patches typically consisting of lots of small files, ping becomes
the most crucial metric.

cd12f20ea45a319c1402b28bdf5ccfce4e74f2be authored over 7 years ago by nmlgc <[email protected]>
update: Introduce a download context structure.

Mandatory for asynchronous events anyway.

be308b824857f8e4600c2687c53bdcc23f9ec434 authored over 7 years ago by nmlgc <[email protected]>
update: Use QueryPerformanceCounter() instead of timeGetTime().

aa3c3ff50f3daba5d95d3b55e4a2462ea7c91e5f authored over 7 years ago by nmlgc <[email protected]>