Commit d4bc447
committed
decomp: rewrite 4 countdown-then-unregister wrappers
Shape:
void f(char *obj) {
char *p = *(char **)(obj + 4);
int val = *(int *)(p + CTR_OFF) -
*(int *)(*(char **)obj + DELTA_OFF);
*(int *)(p + CTR_OFF) = val;
if (val > 0) return;
*(char *)(*(int *)p + 0x1c7) = 4;
func_0203c634(obj, *(signed char *)(obj + 0x20), 0);
}
Counterpart of the earlier accumulator dispatchers, but this variant
counts DOWN (subtracts a delta each tick) and only fires the tag +
unregister when the counter hits zero-or-negative. Uses LDMGTIA
(return if signed >) as the early exit. Byte-parity verified for
ov219_020d0b9c. Modules 269/37 unchanged.1 parent 6c4e6b7 commit d4bc447
8 files changed
Lines changed: 40 additions & 80 deletions
File tree
- src/overlays
- ov219
- asm_stubs/calls
- calls
- ov220
- asm_stubs/calls
- calls
- ov239
- asm_stubs/calls
- calls
- ov240
- asm_stubs/calls
- calls
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
0 commit comments