libsnes-add missing variable initializations for ppu/cpu/dsp/smp components. every one of them was fundamentally untasworthy.

This commit is contained in:
zeromus 2012-12-01 08:29:47 +00:00
parent 7722344e55
commit 093eda8cdd
4 changed files with 24 additions and 0 deletions

View File

@ -350,6 +350,17 @@ void PPU::reset() {
PPUcounter::reset();
memset(surface, 0, 512 * 512 * sizeof(uint32));
//zero 01-dec-2012 - gotta reset these sometime, somewhere
memset(oam_itemlist, 0, sizeof(oam_itemlist));
memset(oam_tilelist, 0, sizeof(oam_tilelist));
memset(oam_line_pal, 0, sizeof(oam_line_pal));
memset(oam_line_pri, 0, sizeof(oam_line_pri));
active_sprite = sprite_list_valid = 0;
memset(bg_info, 0, sizeof(bg_info));
memset(window, 0, sizeof(window));
memset(pixel_cache, 0, sizeof(pixel_cache));
regs.oam_tilecount = regs.oam_itemcount = 0;
frame();
//$2100

View File

@ -124,6 +124,10 @@ void CPU::power() {
mmio_power();
dma_power();
timing_power();
//zero 01-dec-2012
//gotta clear these to something, sometime
aa.d = rd.d = sp = dp = 0;
}
void CPU::reset() {

View File

@ -223,6 +223,10 @@ void DSP::write(uint8 addr, uint8 data) {
void DSP::power() {
memset(&state.regs, 0, sizeof state.regs);
//zero 01-dec-2012 - gotta reset these sometime, somewhere
state.echo_hist[0] = state.echo_hist[1] = 0;
state.echo_hist_pos = 0;
state.every_other_sample = false;
state.kon = 0;

View File

@ -49,6 +49,10 @@ void SMP::power() {
timer0.target = 0;
timer1.target = 0;
timer2.target = 0;
//zero 01-dec-2012
//gotta clear these to something, sometime
dp.w = sp.w = rd.w = wr.w = bit.w = ya.w = 0;
}
void SMP::reset() {
@ -115,6 +119,7 @@ void SMP::reset() {
}
SMP::SMP() {
}
SMP::~SMP() {