/* ** The init, reset and shutdown functions */ void TMS9928A_reset () { int i; for (i=0;i<8;i++) tms.Regs[i] = 0; tms.StatusReg = 0; tms.nametbl = tms.pattern = tms.colour = 0; tms.spritepattern = tms.spriteattribute = 0; tms.colourmask = tms.patternmask = 0; tms.Addr = tms.ReadAhead = tms.INT = 0; tms.mode = tms.BackColour = 0; tms.Change = 1; tms.FirstByte = 0; tms.latch = 0; _TMS9928A_set_dirty (1); }
/* ** The init, reset and shutdown functions */ void TMS9928A_reset (int which) { int i; for (i=0;i<8;i++) tms[which].Regs[i] = 0; tms[which].StatusReg = 0; tms[which].nametbl = tms[which].pattern = tms[which].colour = 0; tms[which].spritepattern = tms[which].spriteattribute = 0; tms[which].colourmask = tms[which].patternmask = 0; tms[which].Addr = tms[which].ReadAhead = tms[which].INT = 0; tms[which].mode = tms[which].BackColour = 0; tms[which].Change = 1; tms[which].FirstByte = 0; tms[which].latch = 0; _TMS9928A_set_dirty (which,1); }
void TMS9928A_post_load (void) { int i; /* mark the screen as dirty */ _TMS9928A_set_dirty (1); /* all registers need to be re-written, so tables are recalculated */ for (i=0;i<8;i++) _TMS9928A_change_register (i, tms.Regs[i]); /* make sure the back ground colour is reset */ tms.BackColour = -1; /* make sure the interrupt request is set properly */ if (tms.INTCallback) tms.INTCallback (tms.INT); }