Commit Graph

22 Commits

Author SHA1 Message Date
nmlgc 60a7e44b53 [Maintenance] Introduce proper Shift-JIS and JIS X 0208 types
Much more semantic than that twobyte_t abomination.

Part of P0212, funded by GhostRiderCog, Lmocinemod, and LeyDud.
2022-08-11 15:53:13 +02:00
nmlgc 54653a33c3 [Decompilation] [th01] Boss entities and animations: Move all data to C land
Part of P0211, funded by Lmocinemod and Arandui.
2022-08-08 20:16:16 +02:00
nmlgc 55ced3bada [Naming] [th01] Boss entities: Clarify that the lock also applies to rendering
You don't get the full picture of YuugenMagan's rendering calls
otherwise.
It's also really stupid in how it trades performance for flickering.

Part of P0207, funded by GhostPhanom.
2022-08-08 20:11:27 +02:00
nmlgc a10fe95b31 [Maintenance] Fix comment↔code associations
• Comments that describe all lines of code until a blank one are placed
  into the lines immediately above
• Comments that describe an entire demarcated block are placed
  immediately below the dash row at the top
• In any case, there should be a blank line after the top comment of
  a demarcated block, to keep IntelliSense-style systems from applying
  the block comment to the first actual line of code…
• …but there shouldn't be one before the dash row at the bottom, where
  it'd be redundant.

Part of P0207, funded by GhostPhanom.
2022-08-08 20:10:53 +02:00
nmlgc bca1b7d38a [Maintenance] Add a `nullptr` polyfill to platform.h
Which allows us to remove <stddef.h> from translation units that just
needed it for `NULL`.

Part of P0203, funded by [Anonymous] and GhostRiderCog.
2022-07-10 13:02:51 +02:00
nmlgc 3f52d9a16f [Decompilation] [th01] YuugenMagan: Sprite loading and initial variables
Doing this one now allows us to completely get rid of a bunch of ASM
land declations…

Part of P0202, funded by [Anonymous] and Yanga.
2022-06-25 18:21:08 +02:00
nmlgc 6f2881f056 [Maintenance] Remove `extern "C"` from more areas of code
The .PTN functions, vector functions, and egc_copy_rect_1_to_0_1()
(finally!) from TH01, as well as playfld.hpp from all games(finally!),
together with a bunch of other functions in their vicinity.

Part of P0201, funded by Ember2528 and Yanga.
2022-06-24 23:28:19 +02:00
nmlgc f4785a2577 [Maintenance] [th01] Boss entities: Declare dummy clamp parameters as defaults
Part of P0201, funded by Ember2528 and Yanga.
2022-06-24 22:53:28 +02:00
nmlgc 7bdf35a22b [Maintenance] [th01] Remove `extern "C"` from more areas of code
The .BOS freeing funtions, others that are close to them in the typical
#include order, and the ending picture functions.

Part of P0198, funded by Lmocinemod and Ember2528.
2022-06-16 22:51:07 +02:00
nmlgc 00d4b4ab30 [Maintenance] Define a VRAM byte mask constant
Less visual noise.

Part of P0198, funded by Lmocinemod and Ember2528.
2022-06-16 22:50:43 +02:00
nmlgc fc40bdaa09 [Maintenance] [th01] Wrap EGC rectangle copies with 16-bit-aligned widths
Consolidating the associated "WTF" and "I don't even" and "lol ZUN"
into one place.

Part of P0158, funded by Yanga.
2021-09-28 18:05:24 +02:00
nmlgc eba61444ce [Decompilation] [th01] Boss entities: Outer loading function
ASM land had a macro for this, which suggested a corresponding inlined
class method in C++ land. We couldn't use that macro for Konngara's
third boss entity though. So I probably wanted to wait with that inline
function until the decompilation of that Konngara load call, which
could verify the existence of said inline function. And it did!

Part of P0141, funded by [Anonymous] and rosenrose.
2021-05-27 19:36:02 +02:00
nmlgc d1f1b7d405 [Maintenance] Move twobyte_t into its own header file
And hope that there won't be any more generic utility types like it…

Part of P0133, funded by [Anonymous].
2021-01-30 18:31:54 +01:00
nmlgc b75556c06e [Maintenance] [th01] Reorder shared .BOS code
Part of P0123, funded by Yanga.
2020-10-13 21:34:24 +02:00
nmlgc cacb9361c7 [Decompilation] [th01] Skipping past the palette when loading .BOS files
At least the upcoming player animation load function was smart enough
to do that.

Part of P0123, funded by Yanga.
2020-10-13 20:51:52 +02:00
nmlgc b974c1a915 [Maintenance] Add separate macros for GRCG/EGC-accelerated reads and writes
Not only getting rid of the "useless" (and thankfully, consistent)
bitplane parameter, but also allowing those shortened macros to be
redefined for the upcoming little ZUN inconsistency.

Part of P0120, funded by Yanga.
2020-09-28 12:51:01 +02:00
nmlgc 95c6936d99 [Decompilation] [th01] Non-entity boss animations: .BOS slot freeing function
What was the thought process behind this inconsistency?! Oh well, that
was still an entire class decompiled for almost free.

Part of P0120, funded by Yanga.
2020-09-28 12:42:24 +02:00
nmlgc 8d39276732 [Decompilation] [th01] Non-entity boss animations: Byte-aligned blitting
And that's all we have for this class. Again, ever so slightly not
identical to the same CBossEntity function.

Part of P0120, funded by Yanga.
2020-09-28 12:38:31 +02:00
nmlgc 719668d51e [Decompilation] [th01] Non-entity boss animations: .BOS load function
Only adding a single stupidly placed `for` loop into the CBossEntity
version of the same function…

Part of P0120, funded by Yanga.
2020-09-28 12:37:42 +02:00
nmlgc 9738ba921a [Decompilation] [th01] Boss entities: .BOS slot freeing function
Still no need for the classic `if(ptr) { delete[] ptr; ptr = NULL }`
macro, since the `ptr` is unconditionally set to NULL here…

Part of P0120, funded by Yanga.
2020-09-28 12:37:33 +02:00
nmlgc d48e553d9e [Maintenance] [th01] Move shared .BOS loading snippets to separate functions
Part of P0120, funded by Yanga.
2020-09-28 12:33:02 +02:00
nmlgc 0fe23cb8a0 [Maintenance] [th01] Clearly distinguish entity and animation .BOS slots
… now that we have a better idea about the differences of both classes.
Also, no transitive dependency on bos.hpp for either class.

Part of P0120, funded by Yanga.
2020-09-28 12:32:52 +02:00