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

thcrap: TL notes: Include the separating character in the split-off string.

Moves the future distinction between immediate and pre-rendered TL
notes to the tlnote module it...

26768b01b1eea688deed97834d08458405850b19 authored over 5 years ago by nmlgc <[email protected]>
thcrap: TL notes: Implement basic splitting functionality.

Funded by zorg.

3fff1683b13cc5c7a05fc745ad0ea081197a689b authored over 5 years ago by nmlgc <[email protected]>
TSA: MSG: Compile as C++.

Yup, with TL notes, it's finally time.

Funded by zorg.

d3792c5935c6580ebd1b16b97792aeba72f84c5f authored over 5 years ago by nmlgc <[email protected]>
thcrap: Wrap functions that have different vtable offsets in Direct3D 8 and 9.

Funded by zorg.

311997e1ed0933371ad017f1c243e23173bdae20 authored over 5 years ago by nmlgc <[email protected]>
thcrap: Add an API for directly detouring IDirect3DDevice functions.

Funded by zorg.

c0cf74fe54534f1d966a7f47b2b97f6757e70d91 authored over 5 years ago by nmlgc <[email protected]>
thcrap: Move Direct3D declarations to a new Direct3D 8/9 combination header.

Funded by zorg.

ccd46e720013abfbd32c9b3771141621121332c7 authored over 5 years ago by nmlgc <[email protected]>
Update version number

0ba4bd4f03abf73374005a755d9526a00ba4be32 authored over 5 years ago by brliron <[email protected]>
thcrap_tasofro: fix a bug that caused bmpfont to not work on some computers. [V]

Also add a way to invalidate the bmpfont cache.

a5664dcf6f649c27686129d9a2a0dc427784d568 authored over 5 years ago by brliron <[email protected]>
Update version number

3b1b492e9a75e25c6b8c03db9b554e2640024b98 authored over 5 years ago by brliron <[email protected]>
TSA: Perform a bunch of intricate ASCII string alignment hacks for TH06. [V]

Because even I got tired of doing all these things in ASM, and then
doing them again for the tri...

3a32cdb374db1ff79ba3118d0adbb51f65c455f8 authored over 5 years ago by nmlgc <[email protected]>
TSA: ASCII: Auto-align the translatable bits in TH16.5's replay strings. [V]

T h e r a p y ~

Funded by zorg.

146ced1e9201676dfddf9166a5c71594e4bd2651 authored over 5 years ago by nmlgc <[email protected]>
TSA: ASCII: Always center TH16.5's replay save menu inside the playfield. [V]

Funded by zorg.

cc1dbe60bd47170b7f528295ead9ca5b5a69a2ca authored over 5 years ago by nmlgc <[email protected]>
thcrap: Log: Add a function to return a sub-logger that prefixes its errors.

Nice occasion to get some therapy for my VLA fetish. Don't need to go
fast anyway if's already c...

dd95e5a30e4b468fa3b9b5f3b5e5131d8adee5c0 authored over 5 years ago by nmlgc <[email protected]>
thcrap: Log: Add a class for per-module errors.

The duplication has been getting ridiculous.

Funded by zorg.

8d734b378a47e19a8d4cf1ead2bc83fdf4dfdd2a authored over 5 years ago by nmlgc <[email protected]>
thcrap: Strings: Add a strings_get() variety with a fallback string parameter.

Funded by zorg.

b1b6deabfd71576e900da23a270516978a6abb3e authored over 5 years ago by nmlgc <[email protected]>
thcrap: Strings: Move ID retrieval to a separate function.

Funded by zorg.

15f68d2ae6fd06c655e42aaf57be8ea0766b8c35 authored over 5 years ago by nmlgc <[email protected]>
TSA: Layout: Restore logging for all text extent calculations.

Combined with the .msg patcher's automatic shifting of speech bubbles,
logging actually is a fea...

cf7561158f2388ad5a3d9eb4a00aa99374634247 authored over 5 years ago by nmlgc <[email protected]>
TSA: Layout: Capture the full-size result of the ruby offset division.

Funded by zorg.

93a7ad84b556e8506222678e2f7650dce998f038 authored over 5 years ago by nmlgc <[email protected]>
TSA: Layout: Calculate ruby offsets at twice the precision. [V]

Funded by zorg.

4c6efa781d06d1a213944e2f05744919e3f092e4 authored over 5 years ago by nmlgc <[email protected]>
TSA: Layout: Handle ruby offset calculation in a single half-size function.

Funded by zorg.

3fd30645f8a5e6e1b5523bb58991cfbd23f7f454 authored over 5 years ago by nmlgc <[email protected]>
TSA: Layout: Undo the weird shifting of the ruby sprite in ≥TH15. [V]

Funded by zorg.

145f87ddba8afbc2eb6dccdf5f924ac90a71b3f0 authored over 5 years ago by nmlgc <[email protected]>
TSA: Layout: Split extent calculations into full- and half-size functions.

Funded by zorg.

4414580cac9eb4e8e52678e33b9654e728cd22e9 authored over 5 years ago by nmlgc <[email protected]>
Build: Use a GitHub repo for libpng.

Apparently it's faster that way.

63906393283a5a20d78846cb4ea97f0cd3089e1d authored over 5 years ago by nmlgc <[email protected]>
Update our dependent libraries.

• dr_libs: Now chose to take regular channeled samples in its read
and seek param...

fb23f368eedfe4dbd1db86b290554781c8f9fd59 authored over 5 years ago by nmlgc <[email protected]>
Update version number

64fcfcdfd175fa514576dc5482a6f82356911b2d authored over 5 years ago by brliron <[email protected]>
thcrap_tasofro: fix bmpfont cache when the thcrap directory have

non-ascii characters

3f3dc61c34269b948983720d104cfa38193b6bc0 authored over 5 years ago by brliron <[email protected]>
thcrap_tasofro: use the git version of the bmpfont generator. [V]

- I can finally get rid of all this copy-paste.
- Add support for GDI-rendered fonts
- Add rotat...

14acc4d309d84c0cb5379e2e31c127dfa4fb5623 authored over 5 years ago by brliron <[email protected]>
configure: Restore the option to continue configuration after a write error. [V]

As of the refactoring in a150ffc, we were no longer asking the user in
that case…

d337c6d8a43c4abffdf26c3e65fb8cf00922676c authored over 5 years ago by nmlgc <[email protected]>
configure: Don't show the close warning if configuration failed somewhere.

…and we jumped to the end of our main() function from somewhere else.

b59eeedf730c323c8d7979e9e41e827149aa3dbe authored over 5 years ago by nmlgc <[email protected]>
Readme: Remove the "Become a backer" button from the team image.

Apparently this functionality was broken when I made the last commit,
so that I didn't notice th...

4ff131ec239824a62759580f09b3694248f8e3da authored over 5 years ago by nmlgc <[email protected]>
Readme: Link Touhou Patch Center's Open Collective page.

Closes #96.

1358a11988c12a055346c10b1ec66b2332161abf authored almost 6 years ago by nmlgc <[email protected]>
Readme: Move all headers up one hierarchy level.

That's actually a nice formatting idea that #96 implied there.

5dc480b199a8b77fa97f3fcb3e2c0bd429fb9991 authored almost 6 years ago by nmlgc <[email protected]>
Update version number

d9c00ac9080f2c5d2f4ccd1bc1acb413b41119b0 authored almost 6 years ago by brliron <[email protected]>
TSA: BGM: Remember the actual track position when pausing in ≥TH11. [V]

Fixes glitches (and error message boxes) after the track looped once. No
idea how something this...

40448da5b12057577d86f76d630b7385abb0b9b7 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Avoid stack corruption due to a potentially uninitialized longest codec extension length.

inb4 "come on, Nmlgc, just use std::string already, get over your stupid
VLA fetish", but no, I'...

4686f5568a0ba797829a22ac77c4f1643b3ec70c authored almost 6 years ago by nmlgc <[email protected]>
Update version number

60721b550a8aa87f3312ff3fafbc2227447e8701 authored almost 6 years ago by brliron <[email protected]>
BGM modding: Move constant data for PCM parts into a separate structure.

Funded by Splashman.

2514fe2716698182b45300124f3a638f917d890f authored almost 6 years ago by nmlgc <[email protected]>
update: Don't try to download files that couldn't be written to disk. [V]

Funded by Splashman.

80a2c460fee876c30cb0506bc08e635ac4392dd7 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Go silent on unrecoverable decoding errors.

Funded by Splashman.

4345ecd6bb81d3d42f0d0975e6fecb950eef8541 authored almost 6 years ago by nmlgc <[email protected]>
update: Don't update files.js for files that couldn't be written to disk. [V]

es, we hadn't been checking this!

Funded by Splashman.

1eb9e6770494f284fab3720316d6b5b7e0c3d7a4 authored almost 6 years ago by nmlgc <[email protected]>
thcrap: Add a common function for stringifying GetLastError() values.

Funded by Splashman.

879a8e609b797922ca92d2a2ac6cbdf5d1954f27 authored almost 6 years ago by nmlgc <[email protected]>
thcrap: file_write: Return more meaningful error values.

Funded by Splashman.

41bad0fd90938a399b10a5c67767ff37ef06c575 authored almost 6 years ago by nmlgc <[email protected]>
TSA: BGM: Ignore loop mods for tracks with active BGM mods in ≥TH07. [V]

Funded by Splashman.

1962ea3740af45671f510248c5e5f3f227c6b47e authored almost 6 years ago by nmlgc <[email protected]>
TSA: BGM: Reject mods with sample formats not used by the original game. [V]

Funded by Splashman.

c10e77f3ffd8a45980aa31a7a2d2d711ac2d9ee8 authored almost 6 years ago by nmlgc <[email protected]>
TSA: BGM: Limit the preload buffer size to exactly the track size. [V]

Because the original game preloads way, way more than it should?
Oh, and by the way, it's also n...

c29f6fbe3e0dcc59ba3f2b3b1bb3d44f5b51fa40 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Implement a custom file resolver. [V]

By turning the codec hierarchy into a resolve chain, we not only
establish it within a patch, bu...

fa57eaa01feceabb0cf3cdb40572c6c521494def authored almost 6 years ago by nmlgc <[email protected]>
Build: GAS: Only output message when file is not excluded from build.

Adapted from https://github.com/ShiftMediaProject/VSYASM/commit/b41d87b

38dff6546d83879b061f5c19082d241277bcb01d authored almost 6 years ago by nmlgc <[email protected]>
Build: GAS: Make support available directly through `Base.props`.

Funded by Splashman.

56d8d2fc9a9bb166607670cad2624bf8b03f36d0 authored almost 6 years ago by nmlgc <[email protected]>
Build: GAS: Run assembly files through the C preprocessor.

Needed for libmpg123's ASM optimizations…

Funded by Splashman.

7213c03e2d1824f5e4957b23d3cb894afcbf8d0f authored almost 6 years ago by nmlgc <[email protected]>
Build: GAS: Use include paths and `#define`s only for the C preprocessor.

… because we need to apply these.

Funded by Splashman.

e1768623559f89a130b50457b195dfa2d2f31395 authored almost 6 years ago by nmlgc <[email protected]>
Build: GAS: Automatically inject /SAFESEH compliance by default.

Yay, more MSBuild… but still the best option if the ASM we have to
compile isn't ours.

Funded b...

c5ca2ae44d3eb3b50e03b3edd4dd2bc598e98f31 authored almost 6 years ago by nmlgc <[email protected]>
TSA: Implement BGM modding for ≥TH07. [V]

Leaving the debug logging in there; TH13's trance seeks made this
difficult enough, who knows wh...

77d3311c1a7cdcf9184d16224c05ec7dcb73a966 authored almost 6 years ago by nmlgc <[email protected]>
Build: Integrate libmpg123 into the MSBuild solution.

Funded by Splashman.

819353eba136a3181c8fc3e9d2038da9b49f472b authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Track the loop point.

TH07-TH09.5 actually need it if the BGM preload option is enabled.

Funded by Splashman.

e8513f6affa60a99d6a2fe55bec8f2ab60a1b85a authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Add FLAC support. [V]

Holy shit, the FLAC reference library is one terrible piece of trash.
Here's your one reason for...

267ec9ea0e94403fb0eac94fb2c5375f1fa0713b authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Add MP3 support. [V]

So MP3 BGM actually is no problem and can loop as well as the other
formats… *if* you cut the lo...

437c21ff9dfe5bcbb00030399862886b716d3739 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: PCM: Reject mods with different intro and loop formats. [V]

Funded by Splashman.

5cacc3edba07ad40d32f13fc92121899c030f850 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Look for modded files in the patch root directory as well. [V]

th128_08.wav (プレイヤーズスコア) is identical for all games ≥TH12.8,
and patch creators probably don't w...

a31cc7e9c654a13ae15def35373feb417fa9b505 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Move WAVEFORMAT* structure patching to a separate function.

Yup, ≥TH07 also supports custom sampling rates.

Funded by Splashman.

ea387254f416329bc2ebb0ba3405498212af2c16 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Add a stringifier for PCM formats.

Who needs std::string anyway. And yes, even this constellation gets
inlined completely, without ...

d8571ac20610775bcbc3ec87b56eb35eb2e04552 authored almost 6 years ago by nmlgc <[email protected]>
TSA: Implement BGM modding for TH06. [V]

…and it did! So much nicer, and no DirectSound interface wrapping
necessary.

Funded by Splashman.

dc9d4343e5432306ac773ad68c06e16c83ad0c18 authored almost 6 years ago by nmlgc <[email protected]>
thcrap: Add a macro for calculating the maximum number of decimal digits in a value/type.

cae7f2b4d81d6c73fc1f9b065c8292ed0e0b52af authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Add a generic patching implementation for the MMIO API.

Whoa, that code in the Touhou Vorbis Compressor was a mess. Splitting it
into a generic part and...

0c7e47151dd148ce6f3d016823e0c7d5c11289a2 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Add Ogg Vorbis support. [V]

Was that a typo in https://github.com/xiph/vorbis/commit/89f651f? 👀
Staying one commit below tha...

f6f953d5ff9b040e2940687b1c9281798143f8a7 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Add a shared base class for PCM formats.

Otherwise, we'd be duplicating that code between all of the planned
formats. And yeah, we're "re...

1870f5592093c66f999078ded7d6b4a5269226e1 authored almost 6 years ago by nmlgc <[email protected]>
BGM modding: Add some error reporting and debugging functions.

Funded by Splashman.

da233e021addc4d70567820d468b3a4ba9507f75 authored almost 6 years ago by nmlgc <[email protected]>
Start a library for shared BGM modding code.

Funded by Splashman.

a80b771a57d48641c9267f2e3da9bcaeaab0585c authored almost 6 years ago by nmlgc <[email protected]>
thcrap: Split file_read() into separate opening and reading functions.

Funded by Splashman.

33d046ffa7a538f3e8cbe543ac828be0f2ab5680 authored almost 6 years ago by nmlgc <[email protected]>
thcrap: Add file streaming functions at patch and stack level.

Funded by Splashman.

1675a33ca5b2298316a447466c9d9f61bc010756 authored almost 6 years ago by nmlgc <[email protected]>
TSA: Spells: Make absolutely sure to free the comment key VLA.

Control flow is hard.

8f381e14f626cf094ac850fbdd9e6b50a9741742 authored almost 6 years ago by nmlgc <[email protected]>
thcrap: Remove the file access critical section.

This was meant as a poor attempt to eliminate race conditions between
the updater and everything...

6e33ad5a919cd95cbf5b594a853bcb340fc53710 authored almost 6 years ago by nmlgc <[email protected]>
Build: Integrate libogg and libvorbis into the MSBuild solution.

…wait, we only need those for BGM modding in TSA games, but why do these
still go into libs/ and...

bd16aa7eabb5b2c4a3e7b5930cd00d0ba8945ecf authored almost 6 years ago by nmlgc <[email protected]>
TSA: Input: Use a fancy unique_ptr for storing WinMM joypad info.

That's what has been triggering that breakpoint in _CrtDumpMemoryLeaks()
while having the Visual...

6ff9aba4b7fe179cfa1f946c1bd51043062efc0c authored almost 6 years ago by nmlgc <[email protected]>
thcrap: Report memory leaks in the undocumented _pRawDllMain hook.

So e2385f8 was wrong after all. Nice!

a4214da81352ca6d8b5dc511c0340146dd27ff33 authored almost 6 years ago by nmlgc <[email protected]>
thcrap: Binary hacks: Avoid a potential VLA leak with unknown functions.

You'd often run into this one when trying to track down *actual* memory
leaks by deleting some p...

f33f660761d90b7547df61116a6c75be2713c25b authored almost 6 years ago by nmlgc <[email protected]>
TSA: ANM: Get sprite wrapping absolutely right. [V]

…oh wait, since we push_back()'d the sprite *before* wrapping the X and
Y coordinates in 7b8ea2f...

efe17c3edbadca7c1b6f14079a213558395f8b3b authored almost 6 years ago by nmlgc <[email protected]>
TSA: ANM: Correctly wrap internal sprites that start outside the texture. [V]

So yeah, I fixed that logic error of vertical sprites larger than the
texture height not being s...

7b8ea2f84ae640a5ace2833f2646b3ba84851df2 authored almost 6 years ago by nmlgc <[email protected]>
update: HTTP: Append the CRC to the URL to facilitate cache-busting. [V]

f8c357ae6205858595d31b9b0d75f35dde331d07 authored almost 6 years ago by nmlgc <[email protected]>
Update version number

3b356490c3b8391c727d7451ac6f4570f4f45a20 authored almost 6 years ago by brliron <[email protected]>
TSA: Layout: Support underlined text markup via <u$>. [V]

0396a8d2db5f6296ecd32e08082e4ef3862dda8d authored almost 6 years ago by nmlgc <[email protected]>
Build: Don't try to sign static libraries.

Funded by Splashman.

28f17f03022415e3a9c8dbd063ae524ace076c11 authored almost 6 years ago by nmlgc <[email protected]>
TSA: Convert bgm.cpp to UTF-8.

Too bad that Visual C++ 2013 doesn't support the /utf-8 compiler
command-line switch.

92839d0d35cbc08027bfece7681ad7196e7830a0 authored about 6 years ago by nmlgc <[email protected]>
Update our dependent libraries.

A lot has happened since the last time!

• zlib-ng: Now prefixes all imported functions with `zn...

0577d06b25d524cf689a9323782e35486e3416fd authored about 6 years ago by nmlgc <[email protected]>
Readme: Fix the link to Visual Studio Community 2013.

96b084d357e172fc321f74180f3639b7fb53c09f authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Support script instruction time changes via JSON. [V]

Funded by GhostPhanom.

6b6f2759d6e0fa98b718b1e5f325c801bc167456 authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Support script instruction parameter changes via JSON. [V]

Funded by GhostPhanom.

5ee2cb95214071adff2e83c6803b029bd76d6059 authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Support script line deletions via JSON. [V]

Featuring the most horrible instance of polymorphism I've ever
encountered. But hey, templating ...

b9bf39b25ac3ca012e3da2f8a11418abe134c010 authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Store the pointer to the next entry, rather than its offset.

Funded by GhostPhanom.

39f93e292c1bbe0583b21b3bd766ca840cd075df authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Support overriding the blitting mode via JSON. [V]

Funded by GhostPhanom.

b0c61df3f605ed4f43be88480b27f9cf0a090373 authored about 6 years ago by nmlgc <[email protected]>
thcrap: Limit access to the Rust-style Option type via a safe API.

Didn't take long to show that I can't be trusted with having it wide
open like this.

Also, Visu...

587f4f4a970f95e9d7f753d332abb82ca0f8802e authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Handle the edge case of no sprites in an entry in anm_entry_init().

Will keep the code a lot cleaner once we add custom blitting mode
support, at the "cost" of alwa...

f02d3f413b77b932346816639d537b981ec1113c authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Sprite mods: Add an object syntax covering more than just boundaries.

Funded by GhostPhanom.

4c5aab5693724215cb564997602b84d44d04b46a authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Fix a logic error when splitting sprites vertically.

84470af357fa90c9f8a67b2c63c1d026198ca161 authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Use std::vector to store local sprite data.

Avoids the UB that resulted from me missing that realloc() call in
16bda45. And surprise, it act...

fef04834595effbb27c209dfb93dd5d247ffe1a0 authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Move the blitting functions before the ANM header patching types.

Also give them slightly better names.

Funded by GhostPhanom.

d034465da56cce53614e81cbacdcbf626be4a21c authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Support entry file name changes via JSON. [V]

Well, well. The big question: Should we index entries by "name.png@x,y",
or simply by the order ...

d82cb59945a577978a9e4dc139e91fb09de37fe6 authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Support sprite boundary patching via JSON. [V]

Funded by GhostPhanom.

049d3c5e7e3a54946f33fdba0a8d1813d098866a authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Always dump sprite boundaries if we have data, to support TH06. [V]

Funded by GhostPhanom.

a3248f4cd0ab59437fe540e5f672d193fb548935 authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: Decouple width and height from the THTX structure.

Funded by GhostPhanom.

ca43a72c947e7d0bf20e1546fd57533688023a7a authored about 6 years ago by nmlgc <[email protected]>
TSA: ANM: X and Y offsets are not supported before TH11.

Funded by GhostPhanom.

2042e8b37b5c9cd1b2a85e8dbc224d600a0ecfa2 authored about 6 years ago by nmlgc <[email protected]>