Previous 15994 Revisions Next

r7481 Monday 1st March, 2010 at 23:24:08 UTC by Fabio Priuli
[SNES] a bunch of cosmetic changes
[src/mame/machine]snes.c

src/mame/machine/snes.c
r7480r7481
655655            }
656656            value = ((joy2l | (joy2h << 8) | 0x10000) >> (16 - (joypad[1].oldrol & 0xf))) & 0x1;
657657            joypad[1].oldrol++;
658            joypad[1].oldrol&=0xf;
658            joypad[1].oldrol &= 0xf;
659659            if (!(joypad[1].oldrol % 17))
660660               value = 0x1;
661661            //value |= 0x1c;    // bits 4, 3, and 2 are always set
662            return value | 0x1c | (snes_open_bus_r(space,0) & 0xe0); //correct?
662            return value | 0x1c | (snes_open_bus_r(space, 0) & 0xe0); //correct?
663663         }
664664      case HTIMEL:
665665      case HTIMEH:
r7480r7481
918918      case BGMODE:   /* BG mode and character size settings */
919919         snes_ppu.mode = data & 0x07;
920920         snes_dynamic_res_change(space->machine);
921         snes_ppu.bg3_priority_bit = data & 0x08;
922         snes_ppu.layer[SNES_BG1].tile_size = (data >> 4) & 0x1;
923         snes_ppu.layer[SNES_BG2].tile_size = (data >> 5) & 0x1;
924         snes_ppu.layer[SNES_BG3].tile_size = (data >> 6) & 0x1;
925         snes_ppu.layer[SNES_BG4].tile_size = (data >> 7) & 0x1;
921         snes_ppu.bg3_priority_bit = BIT(data, 3);
922         snes_ppu.layer[SNES_BG1].tile_size = BIT(data, 4);
923         snes_ppu.layer[SNES_BG2].tile_size = BIT(data, 5);
924         snes_ppu.layer[SNES_BG3].tile_size = BIT(data, 6);
925         snes_ppu.layer[SNES_BG4].tile_size = BIT(data, 7);
926926         snes_ppu.update_offsets = 1;
927927         break;
928928      case MOSAIC:   /* Size and screen designation for mosaic */
929929         /* FIXME: We support horizontal mosaic only partially */
930930         snes_ppu.mosaic_size = (data & 0xf0) >> 4;
931         snes_ppu.layer[SNES_BG1].mosaic_enabled = data & 0x01;
932         snes_ppu.layer[SNES_BG2].mosaic_enabled = data & 0x02;
933         snes_ppu.layer[SNES_BG3].mosaic_enabled = data & 0x04;
934         snes_ppu.layer[SNES_BG4].mosaic_enabled = data & 0x08;
931         snes_ppu.layer[SNES_BG1].mosaic_enabled = BIT(data, 0);
932         snes_ppu.layer[SNES_BG2].mosaic_enabled = BIT(data, 1);
933         snes_ppu.layer[SNES_BG3].mosaic_enabled = BIT(data, 2);
934         snes_ppu.layer[SNES_BG4].mosaic_enabled = BIT(data, 3);
935935         break;
936936      case BG1SC:      /* Address for storing SC data BG1 SC size designation */
937937      case BG2SC:      /* Address for storing SC data BG2 SC size designation  */
r7480r7481
10331033            }
10341034            else
10351035            {
1036               vram_read_buffer = snes_vram[(addr<<1)&0x1ffff] | snes_vram[((addr<<1)+1) & 0x1ffff]<<8;
1036               vram_read_buffer = snes_vram[(addr << 1) & 0x1ffff] | snes_vram[((addr << 1) + 1) & 0x1ffff] << 8;
10371037            }
10381038
10391039         }
r7480r7481
10471047               UINT32 rem = addr & vram_fgr_mask;
10481048               UINT32 faddr = (addr & ~vram_fgr_mask) + (rem >> vram_fgr_shift) + ((rem & (vram_fgr_count - 1)) << 3);
10491049
1050               snes_vram[(faddr<<1)&0x1ffff] = data;
1050               snes_vram[(faddr << 1) & 0x1ffff] = data;
10511051            }
10521052            else
10531053            {
1054               snes_vram[(addr<<1)&0x1ffff] = data;
1054               snes_vram[(addr << 1) & 0x1ffff] = data;
10551055            }
10561056
10571057            if (!vram_fgr_high)
10581058            {
10591059               addr += vram_fgr_increment;
1060               snes_ram[VMADDL] = addr&0xff;
1061               snes_ram[VMADDH] = (addr>>8)&0xff;
1060               snes_ram[VMADDL] = addr & 0xff;
1061               snes_ram[VMADDH] = (addr >> 8) & 0xff;
10621062            }
10631063         }
10641064         return;
r7480r7481
10711071               UINT32 rem = addr & vram_fgr_mask;
10721072               UINT32 faddr = (addr & ~vram_fgr_mask) + (rem >> vram_fgr_shift) + ((rem & (vram_fgr_count - 1)) << 3);
10731073
1074               snes_vram[((faddr<<1)+1)&0x1ffff] = data;
1074               snes_vram[((faddr << 1) + 1) & 0x1ffff] = data;
10751075            }
10761076            else
10771077            {
1078               snes_vram[((addr<<1)+1)&0x1ffff] = data;
1078               snes_vram[((addr << 1) + 1) & 0x1ffff] = data;
10791079            }
10801080
10811081            if (vram_fgr_high)
10821082            {
10831083               addr += vram_fgr_increment;
1084               snes_ram[VMADDL] = addr&0xff;
1085               snes_ram[VMADDH] = (addr>>8)&0xff;
1084               snes_ram[VMADDL] = addr & 0xff;
1085               snes_ram[VMADDH] = (addr >> 8) & 0xff;
10861086            }
10871087         }
10881088         return;
10891089      case M7SEL:      /* Mode 7 initial settings */
10901090         snes_ppu.mode7.repeat = (data >> 6) & 3;
1091         snes_ppu.mode7.vflip  = data & 0x02;
1092         snes_ppu.mode7.hflip  = data & 0x01;
1091         snes_ppu.mode7.vflip  = BIT(data, 1);
1092         snes_ppu.mode7.hflip  = BIT(data, 0);
10931093         break;
10941094      /* As per Anomie's doc: Reg = (Current<<8) | Prev; and there is only one Prev, shared by these matrix regs and Mode 7 scroll regs */
10951095      case M7A:      /* Mode 7 COS angle/x expansion (DW) */
r7480r7481
11281128      case W12SEL:   /* Window mask settings for BG1-2 */
11291129         if (data != snes_ram[offset])
11301130         {
1131            snes_ppu.layer[SNES_BG1].window1_invert = data & 0x01;
1132            snes_ppu.layer[SNES_BG1].window1_enabled = data & 0x02;
1133            snes_ppu.layer[SNES_BG1].window2_invert = data & 0x04;
1134            snes_ppu.layer[SNES_BG1].window2_enabled = data & 0x08;
1135            snes_ppu.layer[SNES_BG2].window1_invert = data & 0x10;
1136            snes_ppu.layer[SNES_BG2].window1_enabled = data & 0x20;
1137            snes_ppu.layer[SNES_BG2].window2_invert = data & 0x40;
1138            snes_ppu.layer[SNES_BG2].window2_enabled = data & 0x80;
1131            snes_ppu.layer[SNES_BG1].window1_invert  = BIT(data, 0);
1132            snes_ppu.layer[SNES_BG1].window1_enabled = BIT(data, 1);
1133            snes_ppu.layer[SNES_BG1].window2_invert  = BIT(data, 2);
1134            snes_ppu.layer[SNES_BG1].window2_enabled = BIT(data, 3);
1135            snes_ppu.layer[SNES_BG2].window1_invert  = BIT(data, 4);
1136            snes_ppu.layer[SNES_BG2].window1_enabled = BIT(data, 5);
1137            snes_ppu.layer[SNES_BG2].window2_invert  = BIT(data, 6);
1138            snes_ppu.layer[SNES_BG2].window2_enabled = BIT(data, 7);
11391139            snes_ppu.update_windows = 1;
11401140         }
11411141         break;
11421142      case W34SEL:   /* Window mask settings for BG3-4 */
11431143         if (data != snes_ram[offset])
11441144         {
1145            snes_ppu.layer[SNES_BG3].window1_invert = data & 0x01;
1146            snes_ppu.layer[SNES_BG3].window1_enabled = data & 0x02;
1147            snes_ppu.layer[SNES_BG3].window2_invert = data & 0x04;
1148            snes_ppu.layer[SNES_BG3].window2_enabled = data & 0x08;
1149            snes_ppu.layer[SNES_BG4].window1_invert = data & 0x10;
1150            snes_ppu.layer[SNES_BG4].window1_enabled = data & 0x20;
1151            snes_ppu.layer[SNES_BG4].window2_invert = data & 0x40;
1152            snes_ppu.layer[SNES_BG4].window2_enabled = data & 0x80;
1145            snes_ppu.layer[SNES_BG3].window1_invert  = BIT(data, 0);
1146            snes_ppu.layer[SNES_BG3].window1_enabled = BIT(data, 1);
1147            snes_ppu.layer[SNES_BG3].window2_invert  = BIT(data, 2);
1148            snes_ppu.layer[SNES_BG3].window2_enabled = BIT(data, 3);
1149            snes_ppu.layer[SNES_BG4].window1_invert  = BIT(data, 4);
1150            snes_ppu.layer[SNES_BG4].window1_enabled = BIT(data, 5);
1151            snes_ppu.layer[SNES_BG4].window2_invert  = BIT(data, 6);
1152            snes_ppu.layer[SNES_BG4].window2_enabled = BIT(data, 7);
11531153            snes_ppu.update_windows = 1;
11541154         }
11551155         break;
11561156      case WOBJSEL:   /* Window mask settings for objects */
11571157         if (data != snes_ram[offset])
11581158         {
1159            snes_ppu.layer[SNES_OAM].window1_invert = data & 0x01;
1160            snes_ppu.layer[SNES_OAM].window1_enabled = data & 0x02;
1161            snes_ppu.layer[SNES_OAM].window2_invert = data & 0x04;
1162            snes_ppu.layer[SNES_OAM].window2_enabled = data & 0x08;
1163            snes_ppu.layer[SNES_COLOR].window1_invert = data & 0x10;
1164            snes_ppu.layer[SNES_COLOR].window1_enabled = data & 0x20;
1165            snes_ppu.layer[SNES_COLOR].window2_invert = data & 0x40;
1166            snes_ppu.layer[SNES_COLOR].window2_enabled = data & 0x80;
1159            snes_ppu.layer[SNES_OAM].window1_invert  = BIT(data, 0);
1160            snes_ppu.layer[SNES_OAM].window1_enabled = BIT(data, 1);
1161            snes_ppu.layer[SNES_OAM].window2_invert  = BIT(data, 2);
1162            snes_ppu.layer[SNES_OAM].window2_enabled = BIT(data, 3);
1163            snes_ppu.layer[SNES_COLOR].window1_invert  = BIT(data, 4);
1164            snes_ppu.layer[SNES_COLOR].window1_enabled = BIT(data, 5);
1165            snes_ppu.layer[SNES_COLOR].window2_invert  = BIT(data, 6);
1166            snes_ppu.layer[SNES_COLOR].window2_enabled = BIT(data, 7);
11671167            snes_ppu.update_windows = 1;
11681168         }
11691169         break;
r7480r7481
12141214         }
12151215         break;
12161216      case TM:      /* Main screen designation */
1217         snes_ppu.main_bg_enabled[0] = data & 0x01;
1218         snes_ppu.main_bg_enabled[1] = data & 0x02;
1219         snes_ppu.main_bg_enabled[2] = data & 0x04;
1220         snes_ppu.main_bg_enabled[3] = data & 0x08;
1221         snes_ppu.main_bg_enabled[4] = data & 0x10;
1217         snes_ppu.main_bg_enabled[0] = BIT(data, 0);
1218         snes_ppu.main_bg_enabled[1] = BIT(data, 1);
1219         snes_ppu.main_bg_enabled[2] = BIT(data, 2);
1220         snes_ppu.main_bg_enabled[3] = BIT(data, 3);
1221         snes_ppu.main_bg_enabled[4] = BIT(data, 4);
12221222         break;
12231223      case TS:      /* Subscreen designation */
1224         snes_ppu.sub_bg_enabled[0] = data & 0x01;
1225         snes_ppu.sub_bg_enabled[1] = data & 0x02;
1226         snes_ppu.sub_bg_enabled[2] = data & 0x04;
1227         snes_ppu.sub_bg_enabled[3] = data & 0x08;
1228         snes_ppu.sub_bg_enabled[4] = data & 0x10;
1224         snes_ppu.sub_bg_enabled[0] = BIT(data, 0);
1225         snes_ppu.sub_bg_enabled[1] = BIT(data, 1);
1226         snes_ppu.sub_bg_enabled[2] = BIT(data, 2);
1227         snes_ppu.sub_bg_enabled[3] = BIT(data, 3);
1228         snes_ppu.sub_bg_enabled[4] = BIT(data, 4);
12291229         break;
12301230      case TMW:      /* Window mask for main screen designation */
1231         snes_ppu.layer[SNES_BG1].main_window_enabled = data & 0x01;
1232         snes_ppu.layer[SNES_BG2].main_window_enabled = data & 0x02;
1233         snes_ppu.layer[SNES_BG3].main_window_enabled = data & 0x04;
1234         snes_ppu.layer[SNES_BG4].main_window_enabled = data & 0x08;
1235         snes_ppu.layer[SNES_OAM].main_window_enabled = data & 0x10;
1231         snes_ppu.layer[SNES_BG1].main_window_enabled = BIT(data, 0);
1232         snes_ppu.layer[SNES_BG2].main_window_enabled = BIT(data, 1);
1233         snes_ppu.layer[SNES_BG3].main_window_enabled = BIT(data, 2);
1234         snes_ppu.layer[SNES_BG4].main_window_enabled = BIT(data, 3);
1235         snes_ppu.layer[SNES_OAM].main_window_enabled = BIT(data, 4);
12361236         break;
12371237      case TSW:      /* Window mask for subscreen designation */
1238         snes_ppu.layer[SNES_BG1].sub_window_enabled = data & 0x01;
1239         snes_ppu.layer[SNES_BG2].sub_window_enabled = data & 0x02;
1240         snes_ppu.layer[SNES_BG3].sub_window_enabled = data & 0x04;
1241         snes_ppu.layer[SNES_BG4].sub_window_enabled = data & 0x08;
1242         snes_ppu.layer[SNES_OAM].sub_window_enabled = data & 0x10;
1238         snes_ppu.layer[SNES_BG1].sub_window_enabled = BIT(data, 0);
1239         snes_ppu.layer[SNES_BG2].sub_window_enabled = BIT(data, 1);
1240         snes_ppu.layer[SNES_BG3].sub_window_enabled = BIT(data, 2);
1241         snes_ppu.layer[SNES_BG4].sub_window_enabled = BIT(data, 3);
1242         snes_ppu.layer[SNES_OAM].sub_window_enabled = BIT(data, 4);
12431243         break;
12441244      case CGWSEL:   /* Initial settings for Fixed colour addition or screen addition */
12451245         /* FIXME: We don't support direct select for modes 3 & 4 or subscreen window stuff */
12461246         snes_ppu.main_color_mask = (data >> 6) & 0x03;
12471247         snes_ppu.sub_color_mask = (data >> 4) & 0x03;
1248         snes_ppu.sub_add_mode = data & 0x02;
1249         snes_ppu.direct_color  = data & 0x01;
1248         snes_ppu.sub_add_mode = BIT(data, 1);
1249         snes_ppu.direct_color = BIT(data, 0);
12501250#ifdef SNES_DBG_REG_W
12511251         if ((data & 0x2) != (snes_ram[CGWSEL] & 0x2))
12521252            mame_printf_debug( "Add/Sub Layer: %s\n", ((data & 0x2) >> 1) ? "Subscreen" : "Fixed colour" );
r7480r7481
12541254         break;
12551255      case CGADSUB:   /* Addition/Subtraction designation for each screen */
12561256         snes_ppu.color_modes = data & 0xc0;
1257         snes_ppu.layer[SNES_BG1].color_math = data & 0x01;
1258         snes_ppu.layer[SNES_BG2].color_math = data & 0x02;
1259         snes_ppu.layer[SNES_BG3].color_math = data & 0x04;
1260         snes_ppu.layer[SNES_BG4].color_math = data & 0x08;
1261         snes_ppu.layer[SNES_OAM].color_math = data & 0x10;
1262         snes_ppu.layer[SNES_COLOR].color_math = data & 0x20;
1257         snes_ppu.layer[SNES_BG1].color_math = BIT(data, 0);
1258         snes_ppu.layer[SNES_BG2].color_math = BIT(data, 1);
1259         snes_ppu.layer[SNES_BG3].color_math = BIT(data, 2);
1260         snes_ppu.layer[SNES_BG4].color_math = BIT(data, 3);
1261         snes_ppu.layer[SNES_OAM].color_math = BIT(data, 4);
1262         snes_ppu.layer[SNES_COLOR].color_math = BIT(data, 5);
12631263         break;
12641264      case COLDATA:   /* Fixed colour data for fixed colour addition/subtraction */
12651265         {
r7480r7481
12841284         snes_ppu.interlace = (data & 0x01) ? 2 : 1;
12851285         snes_ppu.obj_interlace = (data & 0x02) ? 2 : 1;
12861286         snes_ppu.beam.last_visible_line = (data & 0x04) ? 240 : 225;
1287         snes_ppu.pseudo_hires = data & 0x08;
1288         snes_ppu.mode7.extbg = data & 0x40;
1287         snes_ppu.pseudo_hires = BIT(data, 3);
1288         snes_ppu.mode7.extbg = BIT(data, 6);
12891289         snes_dynamic_res_change(space->machine);
12901290#ifdef SNES_DBG_REG_W
12911291         if ((data & 0x8) != (snes_ram[SETINI] & 0x8))

Previous 15994 Revisions Next


© 1998-2018 The MESS Team