CFGW
CFGW(OPTION, CFGR(OPTION) | 0x04);
CFGW(OPTION, CFGR(OPTION) & 0xfffffffc);
CFGW(OPTION, CFGR(OPTION) & 0xfffffffb);
CFGW(OPTION, CFGR(OPTION) | 0x04);
CFGW(OPTION, temp);
CFGW(OPTION, (CFGR(OPTION) & 0xfffffffb) | 0x20);
CFGW(OPTION, CFGR(OPTION) | 0x04);
CFGW(OPTION, CFGR(OPTION) & 0xfffffffc);
CFGW(OPTION, CFGR(OPTION) & 0xfffffffb);
CFGW(OPTION, CFGR(OPTION) | 0x04);
CFGW(OPTION2, temp);
CFGW(OPTION, temp);
CFGW(OPTION, (CFGR(OPTION) & 0xfffffffb) | 0x20);
CFGW(OPTION2, 0);
CFGW(OPTION, CFGR(OPTION) | 0x04);
CFGW(OPTION3, 0);
CFGW(OPTION, CFGR(OPTION) & 0xfffffffb);
CFGW(OPTION, CFGR(OPTION) | 0x04);
CFGW(OPTION3, si->ps.option3_reg);
CFGW(OPTION, CFGR(OPTION) & 0xffffffbf);
CFGW(OPTION, (CFGR(OPTION) & 0xfffffffb) | 0x20);
CFGW(OPTION2, 0);
CFGW(OPTION, si->ps.option_reg);
CFGW(OPTION, CFGR(OPTION) | 0x04);
CFGW(OPTION3, 0);
CFGW(OPTION, CFGR(OPTION) & 0xfffffffb);
CFGW(OPTION, CFGR(OPTION) | 0x04);
CFGW(OPTION3, si->ps.option3_reg);
CFGW(OPTION2, si->ps.option2_reg);
CFGW(OPTION, CFGR(OPTION) & 0xffffffbf);
CFGW(OPTION, (CFGR(OPTION) & 0xfffffffb) | 0x20);
CFGW(OPTION,CFGR(OPTION)|0x20);
CFGW(OPTION,(CFGR(OPTION)&0xFFFF8FFF) | ((si->ps.v3_mem_type & 0x04) << 10));
CFGW(OPTION2,(CFGR(OPTION2)&0xFFFFCFFF)|((si->ps.v3_mem_type & 0x01) << 12));
CFGW(OPTION2,(CFGR(OPTION2)&0xFFFFFFF0) | ((si->ps.v3_mem_type & 0xf0) >> 4));
CFGW(OPTION,(CFGR(OPTION)&0xffe07fff) | (si->ps.option_reg & 0x001f8000));
CFGW(OPTION,(CFGR(OPTION)|(1<<22)|(0<<29)));
CFGW(OPTION,CFGR(OPTION)|0x20);
if (si->ps.sdram) CFGW(OPTION,(CFGR(OPTION) & 0xffffbfff));
CFGW(OPTION,(CFGR(OPTION)&0xFFFF83FF) | ((si->ps.v3_mem_type & 0x07) << 10));
if (!si->ps.sdram) CFGW(OPTION,(CFGR(OPTION) | (0x01 << 14)));
CFGW(OPTION2,(CFGR(OPTION2)&0xFFFFCFFF)|((si->ps.v3_option2_reg & 0x03) << 12));
CFGW(OPTION,(CFGR(OPTION)&0xffe07fff) | (si->ps.option_reg & 0x001f8000));
CFGW(OPTION,(CFGR(OPTION)|(1<<22)|(0<<29)));
CFGW(OPTION,CFGR(OPTION)|0x20);
if (si->ps.sdram) CFGW(OPTION,(CFGR(OPTION) & 0xffffbfff));
CFGW(OPTION,(CFGR(OPTION)&0xFFFF83FF) | (si->ps.option_reg & 0x00001c00));
if (!si->ps.sdram) CFGW(OPTION,(CFGR(OPTION) | (0x01 << 14)));
CFGW(OPTION,(CFGR(OPTION)&0xffe07fff) | (si->ps.option_reg & 0x001f8000));
CFGW(OPTION, ((CFGR(OPTION) & 0xefbfffff) | (si->ps.option_reg & 0x10400000)));
CFGW(OPTION,CFGR(OPTION)|0x20);
CFGW(OPTION, ((CFGR(OPTION) & 0xf8400164) | (si->ps.option_reg & 0x00207e00)));
CFGW(OPTION2, ((CFGR(OPTION2) & 0xffff0200) | (si->ps.option2_reg & 0x0000fc00)));
CFGW(OPTION4, (si->ps.option4_reg & 0x6000000f));
CFGW(OPTION4, ((si->ps.option4_reg & 0x60000004) | 0x80000000));
CFGW(OPTION,(CFGR(OPTION)&0xffe07fff) | (si->ps.option_reg & 0x001f8000));
CFGW(DEVCTRL,(2|CFGR(DEVCTRL)));
CFGW(DEVCTRL,(2|CFGR(DEVCTRL))); // enable device response (already enabled here!)
CFGW(OPTION, option | (nogscale << 21) | (rfhcnt << 16) | (memconfig << 12));
CFGW(AGPCMD, 0x00000000);
CFGW(ROMSHADOW, (CFGR(ROMSHADOW) & 0xfffffffe));
CFGW(ROMSHADOW, (CFGR(ROMSHADOW) |= 0x00000001));
CFGW(ROMSHADOW, (CFGR(ROMSHADOW) |= 0x00000001));
CFGW(ROMSHADOW, (CFGR(ROMSHADOW) & 0xfffffffe));
CFGW(ROMSHADOW, (CFGR(ROMSHADOW) & 0xfffffffe));
CFGW(ROMSHADOW, (CFGR(ROMSHADOW) |= 0x00000001));
CFGW(ROMSHADOW, (CFGR(ROMSHADOW) |= 0x00000001));
CFGW(ROMSHADOW, (CFGR(ROMSHADOW) & 0xfffffffe));