nmlgc
ea8c4b85a4
[Hooks] pre-commit: Preserve CRLF line endings
...
Part of P0239, funded by Ember2528.
2023-04-28 22:21:00 +02:00
nmlgc
c5e51e6cb2
[Maintenance] [th02] Properly declare lives and bombs, and their limits
...
Completes P0237, funded by Yanga.
2023-03-29 18:03:06 +02:00
nmlgc
71c010855d
[Maintenance] [th02/th04/th05] Properly declare shot power-related variables
...
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
ea59e023d0
[Maintenance] Gaiji: Move variable-width bars to TH02
...
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
1158e028ff
[Maintenance] Gaiji: Inline the declaration of TH04/TH05's filled 128-pixel bar
...
TH02's filled bar is only 80 pixels wide, so we'll have to declare that
one separately anyway.
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
152bbd6a0f
[Decompilation] [th02] Bombs: High-level update and render function
...
Containing no actual update and render code. (Which is also why we can
already cover it right now.)
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
fe93bc8218
[Decompilation] [th02] Bombs: Rendering bytes from BOMBS.BFT
...
Why keep it all in one function when you can split it up into three?
:onricdennat:
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
3afa60fbd0
[Decompilation] [th02] Bombs: Smear column rendering
...
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
e56fb33f71
[Decompilation] [th02] Bombs: Particle rendering
...
One of the few cases where byte alignment doesn't matter.
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
522976d668
[Decompilation] [th02] Bombs: Circle point rendering
...
An entire function that will just vanish in this game's Anniversary
Edition.
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
a6a3aaeb0a
[Reverse-engineering] [th02] Bombs: Particle sprites
...
The circle point sprite is technically identical to the pellet sprite,
but logically different.
Part of P0237, funded by Yanga.
2023-03-29 18:03:05 +02:00
nmlgc
1766178a0a
[Decompilation] [th02] Point number popups: Update/render function
...
Part of P0237, funded by Yanga.
2023-03-29 17:13:28 +02:00
nmlgc
19d5ebf4f9
[Decompilation] [th02] Point number popups: Rendering a single number
...
Part of P0237, funded by Yanga.
2023-03-29 17:13:28 +02:00
nmlgc
e708eadeab
[Decompilation] [th02] Point number popups: Tile invalidation
...
Part of P0237, funded by Yanga.
2023-03-29 12:36:56 +02:00
nmlgc
71094af6a0
[Decompilation] [th02] Point number popups: Spawn function
...
Someone liked the `register` keyword way too much.
Part of P0237, funded by Yanga.
2023-03-29 12:36:56 +02:00
nmlgc
eb52af752b
[Decompilation] [th02] Point number popups: Initialization/reset function
...
Part of P0237, funded by Yanga.
2023-03-29 12:36:56 +02:00
nmlgc
cffa0a0ede
[Reverse-engineering] [th02] Point number popups: Structure
...
Could it be? A sanely implemented feature with no quirks or bugs? Looks
like it!
Part of P0237, funded by Yanga.
2023-03-29 12:36:56 +02:00
nmlgc
3c0c6c7343
[Reverse-engineering] [th02] Sparks: Structure
...
First taste of how sprites are managed in this game. Expressing the
current and previous position in terms of the VRAM page is kind of
quirky, but not as bad as expected.
What *is* bad, however, is that the most natural next function is
undecompilable thanks to an inconsistent `LEAVE` instruction in its
epilog 🙄 And `codegen.hpp` has almost none of the instructions we
would need to hide the SI and DI registers from the compiler, and I'm
*really* not in the mood for another such mess anyway. I'd really like
to try patching these mistakes in a separate build step instead, but
unfortunately I'm out of research money as well. So let's go for
something else next.
Part of P0237, funded by Yanga.
2023-03-29 12:36:56 +02:00
nmlgc
7fa9038a5f
[Reverse-engineering] [th02] Slowdown factor
...
Completes P0236, funded by Yanga.
2023-03-29 12:36:56 +02:00
nmlgc
ebc766bbce
[Reverse-engineering] [th02] Reduced effect rendering flag
...
The 演出 option.
Part of P0236, funded by Yanga.
2023-03-29 12:36:56 +02:00
nmlgc
1f962c865e
[Maintenance] Introduce a generic entity flag enum
...
Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc
c6e2955e06
[Maintenance] Declare missing entity-specific flags in ASM land
...
Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +02:00
nmlgc
b9402be979
[Maintenance] Simplify two-state entity flags
...
Changing the type to `bool` highlights that these have only two states.
No `switch` required.
Part of P0236, funded by Yanga.
2023-03-29 12:36:55 +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
a51910c544
[Naming] [th02] Stage tiles: Public .MPN functions
...
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
8ed9343116
[Reverse-engineering] [th02] Stage tiles: Map sections and the .MAP format
...
8 rows per section, rather than the 5 that TH04 and TH05 would use.
Part of P0235, funded by Ember2528.
2023-03-29 12:36:54 +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
a5a1967367
[Reverse-engineering] [th02] Scrolling: Speed and interval
...
Part of P0235, funded by Ember2528.
2023-03-29 12:36:54 +02:00
nmlgc
172a6d2b2b
[Maintenance] Add a macro for alternate-instruction VRAM offset calculations
...
Part of P0235, funded by Ember2528.
2023-03-29 12:36:54 +02:00
nmlgc
f062e4b84e
[Decompilation] Add a macro for faster VRAM offset calculation with bit shifts
...
Part of P0235, funded by Ember2528.
2023-03-25 21:28:15 +01:00
nmlgc
0e103c6f88
[Maintenance] Add a VRAM offset roll macro
...
Part of P0235, funded by Ember2528.
2023-03-25 21:24:57 +01:00
nmlgc
6a92122432
[Maintenance] [th02] Remove invalid Shift-JIS code point in `th02_main.asm`
...
Would otherwise drive me nuts until I get to decompiling Meira.
Part of P0235, funded by Ember2528.
2023-03-25 21:24:47 +01:00
nmlgc
e7a9262f50
[Contributing] Remove trailing commas from `public` in a pre-commit hook
...
Starting more ore less simple with a shell script calling `sed`, which
should work anywhere Git is used.
2023-03-20 01:55:06 +01:00
nmlgc
0685bd0885
[Maintenance] [th03] Remove trailing comma from `public` directive
...
These break the build on TASM32 version 5.0… which means that
th03_main.asm didn't assemble on that version ever since 3072208
.
Thanks to mu021 for telling me about the resulting crash!
2023-03-20 00:29:02 +01:00
nmlgc
3afb73eada
[Reverse-engineering] [th01] Pellets: Document missing resets for delay clouds
...
The exact reason why pellets can be carried over from Sariel's first
form to her second… and why you probably shouldn't carelessly use that
redundant count of alive pellets to skip loops in the Anniversary
Edition, because that count will be incorrect after a reset.
Thanks to mu021 for reporting this issue!
2023-03-14 00:18:23 +01:00
nmlgc
6370f96d9a
[Reverse-engineering] [th01] Pellets: Correctly document interlacing
...
It *does* affect collision detection after all, making removal for the
Anniversary Edition slightly more tricky.
Part of P0234, funded by Ember2528.
2023-03-04 19:40:55 +01:00
nmlgc
6713b1bf9c
[Maintenance] [th01] 16× TRAM letters: Fix macro copy-pasting accidents
...
Part of P0234, funded by Ember2528.
2023-03-04 19:40:55 +01:00