@@ -3427,3 +3427,129 @@ Dbinh[7] := NAN2 (dbinh\[7], di7t[2], phrase_mode);*/
34273427}
34283428
34293429#endif
3430+
3431+
3432+ /* Save state serialization for Blitter */
3433+
3434+ #include "state.h"
3435+
3436+ size_t BlitterStateSave (uint8_t * buf )
3437+ {
3438+ uint8_t * start = buf ;
3439+
3440+ STATE_SAVE_BUF (buf , blitter_ram , sizeof (blitter_ram ));
3441+ STATE_SAVE_VAR (buf , src );
3442+ STATE_SAVE_VAR (buf , dst );
3443+ STATE_SAVE_VAR (buf , misc );
3444+ STATE_SAVE_VAR (buf , a1ctl );
3445+ STATE_SAVE_VAR (buf , mode );
3446+ STATE_SAVE_VAR (buf , ity );
3447+ STATE_SAVE_VAR (buf , zop );
3448+ STATE_SAVE_VAR (buf , op );
3449+ STATE_SAVE_VAR (buf , ctrl );
3450+ STATE_SAVE_VAR (buf , a1_addr );
3451+ STATE_SAVE_VAR (buf , a2_addr );
3452+ STATE_SAVE_VAR (buf , a1_zoffs );
3453+ STATE_SAVE_VAR (buf , a2_zoffs );
3454+ STATE_SAVE_VAR (buf , xadd_a1_control );
3455+ STATE_SAVE_VAR (buf , xadd_a2_control );
3456+ STATE_SAVE_VAR (buf , a1_pitch );
3457+ STATE_SAVE_VAR (buf , a2_pitch );
3458+ STATE_SAVE_VAR (buf , n_pixels );
3459+ STATE_SAVE_VAR (buf , n_lines );
3460+ STATE_SAVE_VAR (buf , a1_x );
3461+ STATE_SAVE_VAR (buf , a1_y );
3462+ STATE_SAVE_VAR (buf , a1_width );
3463+ STATE_SAVE_VAR (buf , a2_x );
3464+ STATE_SAVE_VAR (buf , a2_y );
3465+ STATE_SAVE_VAR (buf , a2_width );
3466+ STATE_SAVE_VAR (buf , a2_mask_x );
3467+ STATE_SAVE_VAR (buf , a2_mask_y );
3468+ STATE_SAVE_VAR (buf , a1_xadd );
3469+ STATE_SAVE_VAR (buf , a1_yadd );
3470+ STATE_SAVE_VAR (buf , a2_xadd );
3471+ STATE_SAVE_VAR (buf , a2_yadd );
3472+ STATE_SAVE_VAR (buf , a1_phrase_mode );
3473+ STATE_SAVE_VAR (buf , a2_phrase_mode );
3474+ STATE_SAVE_VAR (buf , a1_step_x );
3475+ STATE_SAVE_VAR (buf , a1_step_y );
3476+ STATE_SAVE_VAR (buf , a2_step_x );
3477+ STATE_SAVE_VAR (buf , a2_step_y );
3478+ STATE_SAVE_VAR (buf , outer_loop );
3479+ STATE_SAVE_VAR (buf , inner_loop );
3480+ STATE_SAVE_VAR (buf , a2_psize );
3481+ STATE_SAVE_VAR (buf , a1_psize );
3482+ STATE_SAVE_VAR (buf , gouraud_add );
3483+ STATE_SAVE_BUF (buf , gd_i , sizeof (gd_i ));
3484+ STATE_SAVE_BUF (buf , gd_c , sizeof (gd_c ));
3485+ STATE_SAVE_VAR (buf , gd_ia );
3486+ STATE_SAVE_VAR (buf , gd_ca );
3487+ STATE_SAVE_VAR (buf , colour_index );
3488+ STATE_SAVE_VAR (buf , zadd );
3489+ STATE_SAVE_BUF (buf , z_i , sizeof (z_i ));
3490+ STATE_SAVE_VAR (buf , a1_clip_x );
3491+ STATE_SAVE_VAR (buf , a1_clip_y );
3492+
3493+ return (size_t )(buf - start );
3494+ }
3495+
3496+
3497+ size_t BlitterStateLoad (const uint8_t * buf )
3498+ {
3499+ const uint8_t * start = buf ;
3500+
3501+ STATE_LOAD_BUF (buf , blitter_ram , sizeof (blitter_ram ));
3502+ STATE_LOAD_VAR (buf , src );
3503+ STATE_LOAD_VAR (buf , dst );
3504+ STATE_LOAD_VAR (buf , misc );
3505+ STATE_LOAD_VAR (buf , a1ctl );
3506+ STATE_LOAD_VAR (buf , mode );
3507+ STATE_LOAD_VAR (buf , ity );
3508+ STATE_LOAD_VAR (buf , zop );
3509+ STATE_LOAD_VAR (buf , op );
3510+ STATE_LOAD_VAR (buf , ctrl );
3511+ STATE_LOAD_VAR (buf , a1_addr );
3512+ STATE_LOAD_VAR (buf , a2_addr );
3513+ STATE_LOAD_VAR (buf , a1_zoffs );
3514+ STATE_LOAD_VAR (buf , a2_zoffs );
3515+ STATE_LOAD_VAR (buf , xadd_a1_control );
3516+ STATE_LOAD_VAR (buf , xadd_a2_control );
3517+ STATE_LOAD_VAR (buf , a1_pitch );
3518+ STATE_LOAD_VAR (buf , a2_pitch );
3519+ STATE_LOAD_VAR (buf , n_pixels );
3520+ STATE_LOAD_VAR (buf , n_lines );
3521+ STATE_LOAD_VAR (buf , a1_x );
3522+ STATE_LOAD_VAR (buf , a1_y );
3523+ STATE_LOAD_VAR (buf , a1_width );
3524+ STATE_LOAD_VAR (buf , a2_x );
3525+ STATE_LOAD_VAR (buf , a2_y );
3526+ STATE_LOAD_VAR (buf , a2_width );
3527+ STATE_LOAD_VAR (buf , a2_mask_x );
3528+ STATE_LOAD_VAR (buf , a2_mask_y );
3529+ STATE_LOAD_VAR (buf , a1_xadd );
3530+ STATE_LOAD_VAR (buf , a1_yadd );
3531+ STATE_LOAD_VAR (buf , a2_xadd );
3532+ STATE_LOAD_VAR (buf , a2_yadd );
3533+ STATE_LOAD_VAR (buf , a1_phrase_mode );
3534+ STATE_LOAD_VAR (buf , a2_phrase_mode );
3535+ STATE_LOAD_VAR (buf , a1_step_x );
3536+ STATE_LOAD_VAR (buf , a1_step_y );
3537+ STATE_LOAD_VAR (buf , a2_step_x );
3538+ STATE_LOAD_VAR (buf , a2_step_y );
3539+ STATE_LOAD_VAR (buf , outer_loop );
3540+ STATE_LOAD_VAR (buf , inner_loop );
3541+ STATE_LOAD_VAR (buf , a2_psize );
3542+ STATE_LOAD_VAR (buf , a1_psize );
3543+ STATE_LOAD_VAR (buf , gouraud_add );
3544+ STATE_LOAD_BUF (buf , gd_i , sizeof (gd_i ));
3545+ STATE_LOAD_BUF (buf , gd_c , sizeof (gd_c ));
3546+ STATE_LOAD_VAR (buf , gd_ia );
3547+ STATE_LOAD_VAR (buf , gd_ca );
3548+ STATE_LOAD_VAR (buf , colour_index );
3549+ STATE_LOAD_VAR (buf , zadd );
3550+ STATE_LOAD_BUF (buf , z_i , sizeof (z_i ));
3551+ STATE_LOAD_VAR (buf , a1_clip_x );
3552+ STATE_LOAD_VAR (buf , a1_clip_y );
3553+
3554+ return (size_t )(buf - start );
3555+ }
0 commit comments