Files
Sprinter-SDCC/docs/size_baseline.tsv
T
snark13 ee1ca00c6f libbgi: funcptr-диспетч clip/noclip спрайтовых ядер + снятие src[0]-фикса
Диспетчеризация clip/noclip через указатели _gfx_blit_fn/_gfx_heal_fn
(common/_gfx_sprite_fns.c, дефолт clip): gfx_sprite_clip() — теперь
модуль, переключает указатели один раз; sprite_update/putsprite/
movesprite зовут через указатель — ветка if(clip) из горячего цикла
убрана (съедала половину выигрыша noclip). Программа без вызова
gfx_sprite_clip() noclip-ядра не линкует.

Замер dev-MAME (16 шаров, uncapped): clip 50 → noclip 60-61 fps
(+20-22%). Регресс tests/sprites (A/B PASS), size-check OK
(balls −237 Б, sprites −3177 Б — отвязались лишние ядра).

Фикс CPU-байта write-триггера (preread + EX AF,AF') снят: точная
dev-MAME эмулирует ПЛМ, подавляющую CPU-байт при активном burst'е —
подтверждено по байтам VRAM (tests/blitw col0 = GREEN через
read_vram MCP-моста). Для heal фикс был избыточен всегда (банк 0x50
перезаписывает dst[0]). Строки фикса оставлены закомментированными
в трёх leaf'ах на случай отличий реального железа; шапки и §9а/§9б
дизайна обновлены. НА ЖЕЛЕЗЕ ПЕРЕПРОВЕРИТЬ.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 11:37:54 +03:00

782 B

1# Эталон размеров _CODE (байт); обновление: python3 toolchain/size_check.py --update
2accfill3772
3argv3431
4assrtest3847
5attrprob4087
6balls6156
7banked1056
8bankedbg1067
9banklocl4683
10banktest3767
11bgi_img7060
12bgitest3737
13bios_text4461
14blitperf5860
15blitw4939
16cat913
17cblstream6217
18cbltest6366
19cblwav6434
20conio4605
21conio23929
22dec_test860
23errno5966
24fbench8085
25fdmax6023
26filetest10547
27gets509
28gfx_dbuf5032
29gfx_demo4103
30gfxbanks6044
31hello4167
32hello24244
33irqtest5850
34ls4835
35malloc4461
36mdview18878
37mdview227031
38mem_test4555
39mouse4382
40openenv6124
41ptime5744
42rt_test4892
43seek4188
44simple955
45solidt11531
46spriteclip4187
47sprites6791
48stattest7549
49stdlib6643
50stest23644
51strtest1340
52text_palette5024
53timedir5454
54winrest4459