Commit Graph

6 Commits

Author SHA1 Message Date
nmlgc f7931167fc [Decompilation] [th03] .MRS: Slot loading function
Still too micro-optimized to be decompilable into something sane…
Anyway, .MRS done.

Part of P0127, funded by [Anonymous].
2020-11-16 20:01:34 +01:00
nmlgc 1fe9863e47 [Decompilation] [th03] .MRS: Slot freeing function
How can you mess up *a freeing function* that badly?! In your third
game?!

Part of P0127, funded by [Anonymous].
2020-11-16 20:01:33 +01:00
nmlgc 00e65f4c6b [Decompilation] [th03] .MRS: Alpha-tested byte-aligned blitting
And since inlining even removes longer if-else chains if they branch
depending on a literal constant, we can use a regular parameter to
select either MOV or OR in our _FS and _GS poke() template functions,
without needing to duplicate them!

Part of P0127, funded by [Anonymous].
2020-11-16 20:01:32 +01:00
nmlgc 8b0165738a [Decompilation] [th03] .MRS: Byte-aligned, opaque blitting
Containing not one, but two decompilation innovations, one of which
works around a compiler bug using C++ template functions…

Completes P0126, funded by [Anonymous] and Blue Bolt.
2020-11-16 20:01:32 +01:00
nmlgc 5965930bd0 [Decompilation] [th03] .MRS: Persistent horizontal flipping
Another function consisting almost entirely of inline ASM. Still worth
it though, if only to save us from duplicating any declarations in ASM
land.

Part of P0126, funded by [Anonymous] and Blue Bolt.
2020-11-16 20:01:31 +01:00
nmlgc 08a09aabb2 [Reverse-engineering] [th03] .MRS: Bitplane pointers
Part of P0126, funded by [Anonymous] and Blue Bolt.
2020-11-16 20:01:26 +01:00