nmlgc
deb1b73016
[Maintenance] Use a single DEFCONV definition file to cover all games
...
This makes a lot more sense in C land, where we can then #include this
tiny file in front of all DEFCONV declarations.
2019-12-17 23:27:01 +01:00
wintiger0222
13e4476cc8
[Naming] [th04/th05] MPTN functions
2019-12-17 23:27:01 +01:00
wintiger0222
67ab2f4a41
[Naming] [th01] Game init and exit functions
2019-12-17 23:27:01 +01:00
wintiger0222
990a1e2c94
[Naming] [th03/th04/th05] Main and option menu functions
2019-12-17 23:27:00 +01:00
wintiger0222
04f0491885
[Naming] [th03/th04/th05] .cfg file functions
2019-12-17 23:27:00 +01:00
wintiger0222
e219527964
[Naming] [th03/th04/th05] High score menu functions
2019-12-17 23:27:00 +01:00
wintiger0222
b95a625d87
[Naming] [th04/th05] Character select screens
2019-12-17 23:27:00 +01:00
wintiger0222
02d1c04858
[Reverse-engineering] [th05] Character selection and unlock variables
2019-12-17 23:27:00 +01:00
nmlgc
50c36f5551
[Reverse-engineering] Player character constants
2019-12-17 23:26:59 +01:00
wintiger0222
6e741bb1e1
[Reverse-engineering] [th04] cdg_put_plane_roll
...
Used for the falling blue stars in TH04 Stage 5 --Nmlgc
2019-12-17 23:26:59 +01:00
nmlgc
417ba80c00
[Decompilation] Add a separate segment type
...
At least wherever Turbo C++ and master.lib want us to use a
non-pointer, since both use uint16_t for segment values throughout
their APIs instead of the more sensible void __seg*. Maybe, integer
arithmetic on segment values was widely considered more important than
dereferencing?
2019-12-17 23:26:59 +01:00
nmlgc
59bbe313ad
[Decompilation] Add separate types for 1bpp planar pixel lines
2019-12-17 23:26:59 +01:00
nmlgc
9cb6cc527a
[Decompilation] Finally declare <stdint.h> types
...
*Finally*. We already used `(unsigned) int` in quite a few places where
we actually want a 16-bit value, which was bound to annoy future port
developers.
2019-12-17 23:26:58 +01:00
wintiger0222
cb45bf5a80
[Reverse-engineering] [th04/th05] EGC-powered page 1→0 region copies
2019-12-17 23:26:58 +01:00
wintiger0222
0dcfc445b8
[Reverse-engineering] [th03] input_wait_for_ok_or_measure()
...
Moving this into hardware/, since we already have an
input_wait_for_change() function there. --Nmlgc
2019-12-17 23:26:58 +01:00
wintiger0222
c140281ba7
[Naming] [th01] graph_putsa_fx
2019-12-17 23:26:58 +01:00
wintiger0222
590436dfa8
[Reduction] [th03] graph_putsa_fx
...
Fine, let's drag that ASM slice along, instead of immediately reusing
the already decompiled TH02 version… The website really needs a
decompilation metric soon, anyway. --Nmlgc
2019-12-17 23:26:58 +01:00
wintiger0222
9173833a8d
[Reverse-engineering] [th01] grcg_setcolor() C reimplementations
2019-12-17 23:26:57 +01:00
wintiger0222
88a9143309
[Reverse-engineering] [th01] JIS X 0208 東方★靈異伝 code points
2019-12-17 23:26:57 +01:00
wintiger0222
c0705c395c
[Naming] [th03/th04/th05] Music Room functions changed from TH02
2019-12-17 23:26:57 +01:00
wintiger0222
d7906ef78e
[Reverse-engineering] [th04/th05] ZUN Soft logo
2019-12-17 23:26:57 +01:00
nmlgc
c6ab779897
[Maintenance] [th04/th05] Correctly declare the ZUN Soft explosion functions
2019-12-17 23:26:57 +01:00
wintiger0222
38e8fd6a8d
[Reverse-engineering] [th04/th05] Music Room / ending background image buffers
...
"bgimage" really was the best name I could come up with here, given
what it's used for. Everything else sounded way too ambiguous. Even
something like "mempage", in the meaning of "a third memory-backed
graphics page"… --Nmlgc
2019-12-17 23:26:56 +01:00
wintiger0222
9684cf5312
[Reduction] [th03] Music Room comment back buffer
...
I think cmt_back_* type functions need more universal name
Because at th04 and th05, it used in zunsoft opening animation
--WindowsTiger
And in MAINE.EXE. So I agree for TH04 and TH05, but TH03 still only
allocates, snaps, and recovers only the VRAM area occupied by the music
comments. --Nmlgc
2019-12-17 23:26:56 +01:00
wintiger0222
1317273aa0
[Reduction] [th03/th04/th05] Music Room code identical to TH02
2019-12-17 23:26:56 +01:00
wintiger0222
680af1afd9
[Position independence] [th03/th04/th05] Music Room file names and titles
2019-12-17 23:26:56 +01:00
wintiger0222
2a722db215
[Reverse-engineering] [th05] Music Room piano functions
...
No need to declare most of these in C land if 1) it isn't even clear
yet whether we can even decompile these functions with their 2)
complex __usercall conventions, which 3) aren't even called from
outside this slice. --Nmlgc
2019-12-17 23:26:56 +01:00
wintiger0222
53f316792f
[Reverse-engineering] [th05] Music Room piano sprite data
2019-12-17 23:26:56 +01:00
wintiger0222
b25ec3d138
[Reverse-engineering] [th05] PMD work area and piano note data
...
Good job identifying what is bascially the QQ structure from PMDWin!
--Nmlgc
2019-12-17 23:26:55 +01:00
wintiger0222
2b617dfa75
[Reverse-engineering] [th05] Music Room piano coordinates
2019-12-17 23:26:55 +01:00
wintiger0222
b74b7f9bce
[Reverse-engineering] [th05] Music Room piano label font
2019-12-17 23:26:55 +01:00
wintiger0222
d0c4de0c7f
[Naming] [th04/th05] GameCore
2019-12-17 23:26:55 +01:00
wintiger0222
895884fc7a
[Naming] [th02/th04/th05] HUD display functions
2019-12-17 23:26:55 +01:00
wintiger0222
25903719a3
[Naming] [th02] Current and high score
2019-12-17 23:26:55 +01:00
wintiger0222
1ffa121821
[Naming] [th02] Gaiji loading
...
Renaming these to gaiji_load() and gaiji_free() for consistency with
other functions that load files. --Nmlgc
2019-12-17 23:26:54 +01:00
wintiger0222
0b084b83c3
[Reverse-engineering] [th04/th05] graph_putsa_fx
2019-12-17 23:26:54 +01:00
wintiger0222
75f05c8b90
[Reverse-engineering] [th04/th05] graph_putsa_fx tables
2019-12-17 23:26:54 +01:00
wintiger0222
6e09a2c15f
[Naming] [th04/th05] graph_putsa_fx
2019-12-17 22:44:30 +01:00
wintiger0222
811ba84e3f
[Reverse-engineering] [th03/th04/th05] snd_delay_until_measure
2019-12-17 22:44:27 +01:00
wintiger0222
e8c9876bef
[Reverse-engineering] [th05] Current BGM measure
...
Split off from the delay function in this game, since the ending syncs
a bunch of things independent from any frame delays. -Nmlgc
2019-12-17 22:44:23 +01:00
nmlgc
a23dab3154
[Reverse-engineering] MMD ticks-per-quarter-note constant
...
And then, ZUN hardcodes all measure-related functions to 4/4…
2019-12-17 22:40:05 +01:00
nmlgc
5f4f5d87dc
[Decompilation] [th03] Shot update and render functions
...
Meh, can't overload arithmetic operators that take a Subpixel without
generating a needless load and store, even with -Z. But heck, slightly
uglifying subpixel/subpixel arithmetic is exactly the right trade-off.
Completes P0061, funded by Touhou Patch Center.
2019-12-05 21:41:31 +01:00
nmlgc
8b01c60f44
[Maintenance] Move PC-98 hardware constants to a separate include file
...
SPRITE16 would also like to refer to those later.
Part of P0061, funded by Touhou Patch Center.
2019-12-05 21:38:39 +01:00
nmlgc
5c1a864432
[Reverse-engineering] [th03] Shot pair structure
...
Yup, one structure instance describes one *pair* of shot sprites in
TH03.
Part of P0061, funded by Touhou Patch Center.
2019-12-05 21:38:32 +01:00
nmlgc
296f9f61c2
[Reverse-engineering] [th03] Playfield shaking
...
Which only applies to the set of sprites considered to be in the
foreground, so no EGC acceleration.
Part of P0061, funded by Touhou Patch Center.
2019-12-05 21:36:02 +01:00
nmlgc
4030ef737a
[Reverse-engineering] [th03] Character movement and gauge charge speeds
...
Part of P0061, funded by Touhou Patch Center.
2019-12-05 21:35:02 +01:00
nmlgc
4d3d6acd28
[Decompilation] Templatize subpixels to offer both 16-bit and 8-bit variants
...
Yup, TH03 actually uses a 4.4 fixed-point format.
Part of P0061, funded by Touhou Patch Center.
2019-12-05 21:27:53 +01:00
nmlgc
bb6b0f1cc3
[Maintenance] Move the Subpixel class to a separate header, under TH03
...
Part of P0061, funded by Touhou Patch Center.
2019-12-05 21:21:56 +01:00
nmlgc
04d24ccf1c
[Reverse-engineering] [th03] Character IDs
...
Part of P0061, funded by Touhou Patch Center.
2019-12-05 21:21:49 +01:00
32th System
96684f45dc
[Reverse-engineering] [th04/th05] Pause menu
2019-11-30 19:36:07 +01:00