Previous 15994 Revisions Next

r7675 Friday 2nd April, 2010 at 05:37:45 UTC by Fabio Priuli
[SNES] one more variable moved from snes_ram to the driver state
[src/mame/video]snes.c

src/mame/video/snes.c
r7674r7675
17371737INLINE UINT32 snes_get_vram_address( running_machine *machine )
17381738{
17391739   snes_state *state = (snes_state *)machine->driver_data;
1740   UINT32 addr = (snes_ram[VMADDH] << 8) | snes_ram[VMADDL];
1740   UINT32 addr = state->vmadd;
17411741
17421742   if (state->vram_fgr_count)
17431743   {
r7674r7675
20272027               state->vram_read_buffer = snes_vram_read(space, addr);
20282028               state->vram_read_buffer |= (snes_vram_read(space, addr + 1) << 8);
20292029
2030               addr = ((snes_ram[VMADDH] << 8) | snes_ram[VMADDL]) + state->vram_fgr_increment;
2031               snes_ram[VMADDL] = addr & 0xff;
2032               snes_ram[VMADDH] = (addr >> 8) & 0xff;
2030               state->vmadd = (state->vmadd + state->vram_fgr_increment) & 0xffff;
20332031            }
20342032
20352033            return snes_ppu.ppu1_open_bus;
r7674r7675
20442042               state->vram_read_buffer = snes_vram_read(space, addr);
20452043               state->vram_read_buffer |= (snes_vram_read(space, addr + 1) << 8);
20462044
2047               addr = ((snes_ram[VMADDH] << 8) | snes_ram[VMADDL]) + state->vram_fgr_increment;
2048               snes_ram[VMADDL] = addr & 0xff;
2049               snes_ram[VMADDH] = (addr >> 8) & 0xff;
2045               state->vmadd = (state->vmadd + state->vram_fgr_increment) & 0xffff;
20502046            }
20512047
20522048            return snes_ppu.ppu1_open_bus;
r7674r7675
22702266//          printf("VMAIN: high %x inc %x count %x mask %x shift %x\n", state->vram_fgr_high, state->vram_fgr_increment, state->vram_fgr_count, state->vram_fgr_mask, state->vram_fgr_shift);
22712267         break;
22722268      case VMADDL:   /* Address for VRAM read/write (low) */
2269         {
2270            UINT32 addr;
2271            state->vmadd = (state->vmadd & 0xff00) | (data << 0);
2272            addr = snes_get_vram_address(space->machine) << 1;
2273            state->vram_read_buffer = snes_vram_read(space, addr);
2274            state->vram_read_buffer |= (snes_vram_read(space, addr + 1) << 8);
2275         }
2276         break;
22732277      case VMADDH:   /* Address for VRAM read/write (high) */
22742278         {
22752279            UINT32 addr;
2276            snes_ram[offset] = data;
2280            state->vmadd = (state->vmadd & 0x00ff) | (data << 8);
22772281            addr = snes_get_vram_address(space->machine) << 1;
22782282            state->vram_read_buffer = snes_vram_read(space, addr);
22792283            state->vram_read_buffer |= (snes_vram_read(space, addr + 1) << 8);
r7674r7675
22852289            snes_vram_write(space, addr, data);
22862290
22872291            if (!state->vram_fgr_high)
2288            {
2289               addr = ((snes_ram[VMADDH] << 8) | snes_ram[VMADDL]) + state->vram_fgr_increment;
2290               snes_ram[VMADDL] = addr & 0xff;
2291               snes_ram[VMADDH] = (addr >> 8) & 0xff;
2292            }
2292               state->vmadd = (state->vmadd + state->vram_fgr_increment) & 0xffff;
22932293         }
22942294         return;
22952295      case VMDATAH:   /* 2119: Data for VRAM write (high) */
r7674r7675
22982298            snes_vram_write(space, addr + 1, data);
22992299
23002300            if (state->vram_fgr_high)
2301            {
2302               addr = ((snes_ram[VMADDH] << 8) | snes_ram[VMADDL]) + state->vram_fgr_increment;
2303               snes_ram[VMADDL] = addr & 0xff;
2304               snes_ram[VMADDH] = (addr >> 8) & 0xff;
2305            }
2301               state->vmadd = (state->vmadd + state->vram_fgr_increment) & 0xffff;
23062302         }
23072303         return;
23082304      case M7SEL:      /* Mode 7 initial settings */

Previous 15994 Revisions Next


© 1998-2018 The MESS Team