Commit Graph

13 Commits

Author SHA1 Message Date
nmlgc b539336ed3 [Decompilation] [th01] Stage objects: Portal update/render/reset function
Part of P0204, funded by [Anonymous] and Yanga.
2022-07-10 13:29:11 +02:00
nmlgc 86cdf5f655 [Decompilation] [th01] Stage objects: Turret fire/reset function
Completes P0203, funded by [Anonymous] and GhostRiderCog.
2022-07-10 13:28:38 +02:00
nmlgc f85587dda4 [Decompilation] [th01] Stage objects: Main obstacle update/render function
In which ZUN needs a hack to make columns of vertical bumper bars work
at all with the way the Orb's X velocity is implemented… and may have
just deliberately ensured that the Orb can definitely loop infinitely
between two bumpers.

(Those two wrong NOPCALLs aren't worth working around. It would
basically require taking apart the entire function, and they'll be gone
by the next two commits anyway.)

Part of P0203, funded by [Anonymous] and GhostRiderCog.
2022-07-10 13:28:27 +02:00
nmlgc 7bf183621c [Reverse-engineering] [th01] Bosses: .PTN slot IDs
Common sense: Entity backgrounds always go into slot X, missile sprites
into slot Y, and wave sprites into slot Z
ZUN: "Nah, let's set aside two slots, and bosses can just freely use
them as they want 🎺"

Part of P0165, funded by Ember2528.
2021-11-07 22:50:28 +01:00
nmlgc b28585efa0 [Maintenance] [th01] .PTN: Define the slot count in terms of used slot IDs
There's a reason why the game reserves memory for exactly this many,
after all. This way, we also stop pretending that the game's use of
.PTN is neatly decoupled from the format's interface…

Part of P0165, funded by Ember2528.
2021-11-07 22:48:07 +01:00
nmlgc 6d572b33cf [Decompilation] [th01] Player: Main control and rendering function
Yup, what a giant, unstructured mess. Enjoy the 85 conditional
branches.

Completes P0163, funded by Ember2528.
2021-10-20 10:59:36 +02:00
nmlgc 1dde208a92 [Reverse-engineering] [th01] Player: MIKO.PTN sprite IDs
Hooray, separate sprites for facing left and right. That huge function
would have probably been less than half as long if ZUN just implemented
sprite mirroring, but doing that on PC-98 might have been just a
little bit *too* nontrivial for a first game. (At least he did it in
TH03, where he couldn't get away with pre-mirrored sprites.)

Part of P0162, funded by Ember2528.
2021-10-20 09:24:55 +02:00
nmlgc 990b598292 [Decompilation] [th01] Point items: Unblit/update/render function
Items done, in 1¼ pushes… way too long for how simple their code could
actually be.

Part of P0159, funded by Yanga.
2021-09-28 18:05:25 +02:00
nmlgc 655d366166 [Decompilation] [th01] Point items: Blitting and sloppy unblitting loops
Part of P0159, funded by Yanga.
2021-09-28 18:05:25 +02:00
nmlgc a82725862a [Decompilation] [th01] Bomb items: Unblit/update/render function
Part of P0159, funded by Yanga.
2021-09-28 18:05:24 +02:00
nmlgc 54fc657902 [Decompilation] [th01] Bomb items: Blitting and sloppy unblitting loops
With the latter being unused, thankfully.

Part of P0158, funded by Yanga.
2021-09-28 18:05:24 +02:00
nmlgc dd74e8a3cd [Reverse-engineering] [th01] Stage objects: Sprite IDs
Part of P0129, funded by Yanga.
2020-12-01 00:34:22 +01:00
nmlgc e0bcdafb00 [Maintenance] [th01] Declare proper IDs for all .PTN sprites seen so far
Part of P0104, funded by Ember2528.
2020-07-27 17:19:48 +02:00