void eprom_scanline_update(int scanline) { /* update the playfield */ if (scanline == 0) { pf_state.hscroll = (READ_WORD(&atarigen_alpharam[0xf00]) >> 7) & 0x1ff; pf_state.vscroll = (READ_WORD(&atarigen_alpharam[0xf02]) >> 7) & 0x1ff; atarigen_pf_update(&pf_state, scanline); }
void badlands_pf_bank_w(int offset, int data) { int oldword = READ_WORD(&atarigen_playfieldram[offset]); int newword = COMBINE_WORD(oldword, data); if (oldword != newword) { pf_state.param[0] = data & 1; atarigen_pf_update(&pf_state, cpu_getscanline()); } }
void relief_scanline_update(int scanline) { /* update the playfield */ if (scanline == 0) { atarigen_video_control_update(&atarigen_alpharam[0xf00]); /* copy in the scroll values */ pf_state.hscroll = atarigen_video_control_state.pf1_xscroll + (atarigen_video_control_state.pf2_xscroll & 7); pf_state.vscroll = atarigen_video_control_state.pf1_yscroll; pf2_state.hscroll = atarigen_video_control_state.pf2_xscroll + 4; pf2_state.vscroll = atarigen_video_control_state.pf2_yscroll; /* update the two playfields */ atarigen_pf_update(&pf_state, scanline); atarigen_pf2_update(&pf2_state, scanline); } /* update the MOs from the SLIP table */ atarigen_mo_update_slip_512(atarigen_spriteram, atarigen_video_control_state.sprite_yscroll, scanline, &atarigen_alpharam[0xf80]); }