Commit Graph

20 Commits

Author SHA1 Message Date
nmlgc f5da2a50a5 [Maintenance] [th02/th04/th05] Stage tiles: Move metrics to a separate header
The vertical shmup counterpart to 841d8be. Cleans up the subsystem
hierarchy by ensuring that at least all tile /formats/ code does not
depend on /main/ code.

Part of P0258, funded by [Anonymous] and Blue Bolt.
2023-10-31 22:33:10 +01:00
nmlgc 0c39c6b239 [Maintenance] [th02] Stage tiles: Don't publicly declare the tile ring array
Luckily, it's not directly mutated from outside in this game.

Part of P0258, funded by [Anonymous] and Blue Bolt.
2023-10-31 22:33:07 +01:00
nmlgc 9aad9ad114 [Maintenance] Declare 8-bit pixel delta and length types
Part of P0242, funded by Yanga.
2023-06-06 21:02:47 +02:00
nmlgc df539f13da [Maintenance] [th02/th04/th05] Stage tiles: Separate ID → VRAM offset function
Perfectly inlines in the one place in TH02 that uses it, and will be
constant-folded away for the few calls in TH04 where ZUN originally
hardcoded VRAM offsets.

Part of P0240, funded by JonathKane.
2023-05-29 21:23:00 +02:00
nmlgc 679553fb4d [Decompilation] [th02] Stage tiles: Resetting an incomplete bunch of state
And that's all we can do for now. Almost done with stage tiles!

Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc caa4b6747b [Decompilation] [th02] Stage tiles: .MAP file loading
Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc 366cd1bf95 [Decompilation] [th02] Stage tiles: VRAM source area initialization
So silly.

Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc 1778006684 [Decompilation] [th02] Stage tiles: Low-level EGC-accelerated blitting
Batched this time around!

Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc fdee90a499 [Decompilation] [th02] Stage tiles: Regular scroll and render function
Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc 29cde9b5de [Decompilation] [th02] Stage tiles: Initial screen of a stage
Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc 6acb385a5a [Decompilation] [th02] Stage tiles: Rectangular invalidation
Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc 62c4b7f1c2 [Decompilation] [th02] Stage tiles: Regular rendering
Completes P0235, funded by Ember2528.
2023-03-29 12:36:55 +02:00
nmlgc 59564b3ecf [Decompilation] [th02] Stage tiles: Re-rendering the entire playfield
Part of P0235, funded by Ember2528.
2023-03-29 12:36:55 +02:00
nmlgc 9c95ddace3 [Decompilation] [th02] Stage tiles: Setting and blitting single tiles
Used e.g. for the track marks that the Stage 1 midboss leaves on the
bridge. Nice detail… if it weren't for the wrong rendering order 🎺

Part of P0235, funded by Ember2528.
2023-03-29 12:36:55 +02:00
nmlgc e1ccf2d67d [Decompilation] [th02] Stage tiles: EGC-accelerated single-tile blitting
From the tile source area to the right of the HUD, obviously. So glad
that vram_offset_shift_fast() is possible without inline ASM, we're
definitely going to see that one more often.

Part of P0235, funded by Ember2528.
2023-03-29 12:36:55 +02:00
nmlgc ca0a076e92 [Naming] [th02] Stage tiles: Rendering helper functions
Part of P0235, funded by Ember2528.
2023-03-29 12:36:55 +02:00
nmlgc 7cbaf4a123 [Reverse-engineering] [th02] Stage tiles: Public state
Part of P0235, funded by Ember2528.
2023-03-29 12:36:54 +02:00
nmlgc 54e72475c6 [Reverse-engineering] [th02] Stage tiles: Internal state
Part of P0235, funded by Ember2528.
2023-03-29 12:36:54 +02:00
nmlgc 0a71be2188 [Reverse-engineering] [th02/th04/th05] Stage tiles: VRAM source area offsets
Part of P0235, funded by Ember2528.
2023-03-29 12:36:54 +02:00
nmlgc ebbb5b8255 [Maintenance] Move tile-related files to their own subdirectory
The next commit will make clear that tile functionality is not a subset
of the non-boss stage code.

Part of P0147, funded by -Tom- and Ember2528.
2021-06-20 19:37:20 +02:00