2019-12-01 21:19:23 +00:00
|
|
|
PLAYFIELD_COUNT = 2
|
2019-11-21 20:53:24 +00:00
|
|
|
PLAYFIELD_W = 288
|
|
|
|
PLAYFIELD_BORDER = 16
|
2019-12-01 21:19:23 +00:00
|
|
|
PLAYFIELD_X = PLAYFIELD_BORDER
|
[Decompilation] [th03] Sprite display calls
Yes, decompilation, of something that was so obviously originally
written in ASM. We're still left with two un-decompilable instructions
here, but I'm amazed at how nicely I was able to abstract away all of
the gory register details, leading to pretty clear, readable, and dare
I say *portable* code?! Turbo C++ was once again pretty helpful here:
• `static_cast<char>(_BX) = _AL` actually compiles into `MOV BL, AL`,
as you would have intended,
• and no-op assignments like _DI = _DI are optimized away, allowing
us to leave them in for clarity, so that we can have all parameter
assignments for the SPRITE16 display call in a single place.
I love this compiler.
Part of P0060, funded by Touhou Patch Center.
2019-11-22 21:25:41 +00:00
|
|
|
PLAYFIELD_Y = PLAYFIELD_BORDER
|
2019-11-21 20:53:24 +00:00
|
|
|
|
|
|
|
PLAYFIELD_W_BORDERED = (PLAYFIELD_BORDER + PLAYFIELD_W + PLAYFIELD_BORDER)
|
|
|
|
PLAYFIELD1_CLIP_LEFT = 0
|
|
|
|
PLAYFIELD1_CLIP_RIGHT = (PLAYFIELD1_CLIP_LEFT + PLAYFIELD_W_BORDERED - 1)
|
|
|
|
PLAYFIELD2_CLIP_LEFT = (PLAYFIELD1_CLIP_RIGHT + 1)
|
|
|
|
PLAYFIELD2_CLIP_RIGHT = (PLAYFIELD2_CLIP_LEFT + PLAYFIELD_W_BORDERED - 1)
|