This website requires JavaScript.
Explore
Help
Register
Sign In
Rooba
/
ReC98
mirror of
https://github.com/nmlgc/ReC98.git
Watch
1
Star
1
Fork
You've already forked ReC98
0
Code
Issues
Packages
Projects
Releases
Wiki
Activity
c90c7d52c4
ReC98
/
th04
/
score[data].asm
4 lines
92 B
NASM
Raw
Normal View
History
Unescape
Escape
[Maintenance] [th04/th05] Assemble 16-bit .ASM files case-sensitively Otherwise, TASM would simply convert all EXTRN declarations in those files to uppercase. Then, the linker would expect them in uppercase, forcing both the case-sensitive big 32-bit .ASM files *and* the entire C land to declare them as uppercase as well. For functions with __pascal convention which are always uppercased anyway, this makes no difference. It does matter for regular __cdecl variables, though, and the C declaration of [score_delta] in e6294c2 already showed that we'd then be forced to use macros if we wanted to pretend that these names still had lowercase characters. Doing this for every variable referenced in both C land and 16-bit ASM land gets annoying quickly. So, no need to force this inconsistency if we can get rid of it by slightly uglifying ASM land. Part of P0089, funded by [Anonymous] and Blue Bolt.
2020-04-28 16:10:07 +00:00
public
_extends_gained
,
_hiscore_popup_shown
[Reverse-engineering] [th04/th05] Item collection counters Naming hell: Storing one and the same amount in two different variables which are used in three places Part of P0065, funded by Touhou Patch Center.
2019-12-31 14:35:08 +00:00
_extends_gained
db
0
[Reverse-engineering] [th02/th04/th05] Score update and display The TH02 version is a piece of cake… … but TH04 starts turning it into this un-decompilable piece of unnecessarily micro-optimized ZUN code. Couldn't have chosen anything better for the first separate ASM translation unit. Aside from now having to convert names of exported *variables* to uppercase for visibility in ASM translation units, the most notable lesson in this was the one about avoiding fixup overflows. From the Borland C++ Version 4.0 User's Guide: "In an assembly language program, a fixup overflow frequently occurs if you have declared an external variable within a segment definition, but this variable actually exists in a different segment." Can't be restated often enough. Completes P0032, funded by zorg.
2019-09-18 16:33:38 +00:00
_hiscore_popup_shown
db
0