libbgi: gfx_pal_sync + палитра ↔ файл (gfx_pal_fsave/fload); все PASS
- gfx_pal_sync(): палитра страницы 1 := палитре 0 (все 256 записей, чанками по 64 через общий буфер _gfx_pal_buf в W2) — обязательный шаг дабл-буфера (грабли examples/space: без него флип на страницу 1 чёрный). examples/space переведён на хелпер. - gfx_pal_fsave(pal, path): 256 записей × 4 Б (B,G,R,0 — родной формат BIOS $A4) = 1024 Б. - gfx_pal_fload(pal, path): принимает и усечённый файл (64 Б = палитра 16 цветов) — грузит сколько есть, остальные слоты не трогает; возвращает число записей. tests/palfile (MAME dev, все PASS): fsave; fload восстанавливает испорченные слоты (n=256); усечённый файл на 2 записи чинит только их (n=2, слот 2 не тронут); sync чинит испорченный слот палитры 1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -104,13 +104,7 @@ int main(void)
|
||||
initgraph();
|
||||
gfx_sprite_clip(0); /* цели в пределах */
|
||||
|
||||
/* Палитра страницы 1 = палитре страницы 0 — иначе флип на page 1
|
||||
* показывает сцену ЧЁРНОЙ (у каждой страницы своя палитра). */
|
||||
{
|
||||
static uint8_t egapal[16 * 4];
|
||||
gfx_pal_get(0, 0, 16, egapal);
|
||||
gfx_pal_load(1, 0, 16, egapal);
|
||||
}
|
||||
gfx_pal_sync(); /* обязательный шаг дабл-буфера (см. gfx.h) */
|
||||
|
||||
/* Спрайты: астероиды (LOOP + цель), взрывы (скрыты), маяк (PINGPONG). */
|
||||
for (i = 0; i < NAST; i++) {
|
||||
|
||||
Reference in New Issue
Block a user