trunk/src/mame/audio/cclimber.cpp
| r252881 | r252882 | |
| 12 | 12 | |
| 13 | 13 | SAMPLES_START_CB_MEMBER( cclimber_audio_device::sh_start ) |
| 14 | 14 | { |
| 15 | | if (machine().root_device().memregion("samples")->base()) |
| 16 | | m_sample_buf = std::make_unique<INT16[]>(2 * machine().root_device().memregion("samples")->bytes()); |
| 17 | | save_pointer(NAME(m_sample_buf.get()), 2 * machine().root_device().memregion("samples")->bytes()); |
| 15 | if (m_samples_region) |
| 16 | { |
| 17 | m_sample_buf = std::make_unique<INT16[]>(2 * m_samples_region.bytes()); |
| 18 | save_pointer(NAME(m_sample_buf.get()), 2 * m_samples_region.bytes()); |
| 19 | } |
| 18 | 20 | } |
| 19 | 21 | |
| 20 | 22 | MACHINE_CONFIG_FRAGMENT( cclimber_audio ) |
| r252881 | r252882 | |
| 49 | 51 | m_sample_num(0), |
| 50 | 52 | m_sample_freq(0), |
| 51 | 53 | m_sample_volume(0), |
| 52 | | m_samples(*this, "samples") |
| 54 | m_samples(*this, "samples"), |
| 55 | m_samples_region(*this, "samples") |
| 53 | 56 | { |
| 54 | 57 | } |
| 55 | 58 | |
| r252881 | r252882 | |
| 102 | 105 | void cclimber_audio_device::play_sample(int start,int freq,int volume) |
| 103 | 106 | { |
| 104 | 107 | int len; |
| 105 | | int romlen = machine().root_device().memregion("samples")->bytes(); |
| 106 | | const UINT8 *rom = machine().root_device().memregion("samples")->base(); |
| 108 | int romlen = m_samples_region.bytes(); |
| 107 | 109 | |
| 108 | | if (!rom) return; |
| 110 | if (m_samples_region == NULL) |
| 111 | { |
| 112 | return; |
| 113 | } |
| 109 | 114 | |
| 110 | 115 | /* decode the rom samples */ |
| 111 | 116 | len = 0; |
| 112 | | while (start + len < romlen && rom[start+len] != 0x70) |
| 117 | while (start + len < romlen && m_samples_region[start+len] != 0x70) |
| 113 | 118 | { |
| 114 | 119 | int sample; |
| 115 | 120 | |
| 116 | | sample = (rom[start + len] & 0xf0) >> 4; |
| 121 | sample = (m_samples_region[start + len] & 0xf0) >> 4; |
| 117 | 122 | m_sample_buf[2*len] = SAMPLE_CONV4(sample) * volume / 31; |
| 118 | 123 | |
| 119 | | sample = rom[start + len] & 0x0f; |
| 124 | sample = m_samples_region[start + len] & 0x0f; |
| 120 | 125 | m_sample_buf[2*len + 1] = SAMPLE_CONV4(sample) * volume / 31; |
| 121 | 126 | |
| 122 | 127 | len++; |
trunk/src/mame/includes/4enraya.h
| r252881 | r252882 | |
| 12 | 12 | { |
| 13 | 13 | public: |
| 14 | 14 | _4enraya_state(const machine_config &mconfig, device_type type, const char *tag) |
| 15 | | : driver_device(mconfig, type, tag), |
| 16 | | m_maincpu(*this, "maincpu"), |
| 17 | | m_ay(*this, "aysnd"), |
| 18 | | m_gfxdecode(*this, "gfxdecode"), |
| 19 | | m_palette(*this, "palette") |
| 20 | | { } |
| 15 | : driver_device(mconfig, type, tag) |
| 16 | , m_maincpu(*this, "maincpu") |
| 17 | , m_ay(*this, "aysnd") |
| 18 | , m_gfxdecode(*this, "gfxdecode") |
| 19 | , m_palette(*this, "palette") |
| 20 | , m_prom(*this, "pal_prom") |
| 21 | , m_rom(*this, "maincpu") |
| 22 | { |
| 23 | } |
| 21 | 24 | |
| 22 | 25 | required_device<cpu_device> m_maincpu; |
| 23 | 26 | required_device<ay8910_device> m_ay; |
| r252881 | r252882 | |
| 28 | 31 | UINT8 m_videoram[0x1000]; |
| 29 | 32 | UINT8 m_workram[0x1000]; |
| 30 | 33 | |
| 31 | | UINT8* m_prom; |
| 32 | | UINT8* m_rom; |
| 34 | optional_region_ptr<UINT8> m_prom; |
| 35 | optional_region_ptr<UINT8> m_rom; |
| 33 | 36 | |
| 34 | 37 | /* video-related */ |
| 35 | 38 | tilemap_t *m_bg_tilemap; |
trunk/src/mame/includes/dkong.h
| r252881 | r252882 | |
| 94 | 94 | { |
| 95 | 95 | public: |
| 96 | 96 | dkong_state(const machine_config &mconfig, device_type type, const char *tag) |
| 97 | | : driver_device(mconfig, type, tag), |
| 98 | | m_maincpu(*this, "maincpu"), |
| 99 | | m_soundcpu(*this, "soundcpu"), |
| 100 | | m_eeprom(*this, "eeprom"), |
| 101 | | m_dev_n2a03a(*this, "n2a03a"), |
| 102 | | m_dev_n2a03b(*this, "n2a03b"), |
| 103 | | m_dev_vp2(*this, "virtual_p2"), |
| 104 | | m_dev_6h(*this, "ls259.6h"), |
| 105 | | m_discrete(*this, "discrete"), |
| 106 | | m_video_ram(*this,"video_ram"), |
| 107 | | m_sprite_ram(*this,"sprite_ram"), |
| 108 | | m_vidhw(DKONG_BOARD), |
| 109 | | m_sig30Hz(0), |
| 110 | | m_blue_level(0), |
| 111 | | m_cv1(0), |
| 112 | | m_cv2(0), |
| 113 | | m_vg1(0), |
| 114 | | m_vg2(0), |
| 115 | | m_vg3(0), |
| 116 | | m_cv3(0), |
| 117 | | m_cv4(0), |
| 118 | | m_gfxdecode(*this, "gfxdecode"), |
| 119 | | m_screen(*this, "screen"), |
| 120 | | m_palette(*this, "palette"), |
| 121 | | m_z80dma(*this, "z80dma"), |
| 122 | | m_dma8257(*this, "dma8257") |
| 123 | | { } |
| 97 | : driver_device(mconfig, type, tag) |
| 98 | , m_maincpu(*this, "maincpu") |
| 99 | , m_soundcpu(*this, "soundcpu") |
| 100 | , m_eeprom(*this, "eeprom") |
| 101 | , m_dev_n2a03a(*this, "n2a03a") |
| 102 | , m_dev_n2a03b(*this, "n2a03b") |
| 103 | , m_dev_vp2(*this, "virtual_p2") |
| 104 | , m_dev_6h(*this, "ls259.6h") |
| 105 | , m_discrete(*this, "discrete") |
| 106 | , m_video_ram(*this,"video_ram") |
| 107 | , m_sprite_ram(*this,"sprite_ram") |
| 108 | , m_snd_rom(*this, "soundcpu") |
| 109 | , m_vidhw(DKONG_BOARD) |
| 110 | , m_sig30Hz(0) |
| 111 | , m_blue_level(0) |
| 112 | , m_cv1(0) |
| 113 | , m_cv2(0) |
| 114 | , m_vg1(0) |
| 115 | , m_vg2(0) |
| 116 | , m_vg3(0) |
| 117 | , m_cv3(0) |
| 118 | , m_cv4(0) |
| 119 | , m_gfxdecode(*this, "gfxdecode") |
| 120 | , m_screen(*this, "screen") |
| 121 | , m_palette(*this, "palette") |
| 122 | , m_z80dma(*this, "z80dma") |
| 123 | , m_dma8257(*this, "dma8257") |
| 124 | { |
| 125 | } |
| 124 | 126 | |
| 125 | 127 | /* devices */ |
| 126 | 128 | required_device<cpu_device> m_maincpu; |
| r252881 | r252882 | |
| 141 | 143 | UINT8 m_nmi_mask; |
| 142 | 144 | |
| 143 | 145 | std::unique_ptr<UINT8[]> m_decrypted; |
| 146 | |
| 144 | 147 | /* sound state */ |
| 145 | | const UINT8 *m_snd_rom; |
| 148 | optional_region_ptr<UINT8> m_snd_rom; |
| 146 | 149 | |
| 147 | 150 | /* video state */ |
| 148 | 151 | tilemap_t *m_bg_tilemap; |
trunk/src/mame/video/n64.cpp
| r252881 | r252882 | |
| 2285 | 2285 | ewdata[0] = (0x24 << 24) | ((0x80 | tilenum) << 16) | yl; // command, flipped, tile, yl |
| 2286 | 2286 | ewdata[1] = (yl << 16) | yh; // ym, yh |
| 2287 | 2287 | ewdata[2] = (xlint << 16) | ((xl & 3) << 14); // xl, xl frac |
| 2288 | | ewdata[3] = 0; // dxldy, dxldy frac |
| 2288 | // ewdata[3] = 0; dxldy, dxldy frac |
| 2289 | 2289 | ewdata[4] = (xhint << 16) | ((xh & 3) << 14); // xh, xh frac |
| 2290 | | ewdata[5] = 0; // dxhdy, dxhdy frac |
| 2290 | // ewdata[5] = 0; dxhdy, dxhdy frac |
| 2291 | 2291 | ewdata[6] = (xlint << 16) | ((xl & 3) << 14); // xm, xm frac |
| 2292 | | ewdata[7] = 0; // dxmdy, dxmdy frac |
| 2292 | //ewdata[7] = 0; dxmdy, dxmdy frac |
| 2293 | 2293 | memset(&ewdata[8], 0, 16 * sizeof(UINT32)); // shade |
| 2294 | 2294 | ewdata[24] = (s << 16) | t; // s, t |
| 2295 | | ewdata[25] = 0; // w |
| 2295 | // ewdata[25] = 0; w |
| 2296 | 2296 | ewdata[26] = ((dsdx >> 5) << 16); // dsdx, dtdx |
| 2297 | | ewdata[27] = 0; // dwdx |
| 2298 | | ewdata[28] = 0; // s frac, t frac |
| 2299 | | ewdata[29] = 0; // w frac |
| 2297 | // ewdata[27] = 0; dwdx |
| 2298 | // ewdata[28] = 0; s frac, t frac |
| 2299 | // ewdata[29] = 0; w frac |
| 2300 | 2300 | ewdata[30] = ((dsdx & 0x1f) << 11) << 16; // dsdx frac, dtdx frac |
| 2301 | | ewdata[31] = 0; // dwdx frac |
| 2302 | | ewdata[32] = (dtdy >> 5) & 0xffff;//dsde, dtde |
| 2303 | | ewdata[33] = 0;//dwde |
| 2304 | | ewdata[34] = (dtdy >> 5) & 0xffff;//dsdy, dtdy |
| 2305 | | ewdata[35] = 0;//dwdy |
| 2306 | | ewdata[36] = (dtdy & 0x1f) << 11;//dsde frac, dtde frac |
| 2307 | | ewdata[37] = 0;//dwde frac |
| 2308 | | ewdata[38] = (dtdy & 0x1f) << 11;//dsdy frac, dtdy frac |
| 2309 | | ewdata[39] = 0;//dwdy frac |
| 2310 | | memset(&ewdata[40], 0, 4 * sizeof(UINT32));//depth |
| 2301 | // ewdata[31] = 0; dwdx frac |
| 2302 | ewdata[32] = (dtdy >> 5) & 0xffff; // dsde, dtde |
| 2303 | // ewdata[33] = 0; dwde |
| 2304 | ewdata[34] = (dtdy >> 5) & 0xffff; // dsdy, dtdy |
| 2305 | // ewdata[35] = 0; dwdy |
| 2306 | ewdata[36] = (dtdy & 0x1f) << 11; // dsde frac, dtde frac |
| 2307 | // ewdata[37] = 0; dwde frac |
| 2308 | ewdata[38] = (dtdy & 0x1f) << 11; // dsdy frac, dtdy frac |
| 2309 | // ewdata[39] = 0; // dwdy frac |
| 2310 | // ewdata[40-43] = 0; // depth |
| 2311 | 2311 | |
| 2312 | 2312 | draw_triangle(true, true, false, true); |
| 2313 | 2313 | } |
| r252881 | r252882 | |
| 2339 | 2339 | const INT32 xhint = (xh >> 2) & 0x3ff; |
| 2340 | 2340 | |
| 2341 | 2341 | UINT32* ewdata = m_temp_rect_data; |
| 2342 | | ewdata[0] = (0x25 << 24) | ((0x80 | tilenum) << 16) | yl;//command, flipped, tile, yl |
| 2343 | | ewdata[1] = (yl << 16) | yh;//ym, yh |
| 2344 | | ewdata[2] = (xlint << 16) | ((xl & 3) << 14);//xl, xl frac |
| 2345 | | ewdata[3] = 0;//dxldy, dxldy frac |
| 2346 | | ewdata[4] = (xhint << 16) | ((xh & 3) << 14);//xh, xh frac |
| 2347 | | ewdata[5] = 0;//dxhdy, dxhdy frac |
| 2348 | | ewdata[6] = (xlint << 16) | ((xl & 3) << 14);//xm, xm frac |
| 2349 | | ewdata[7] = 0;//dxmdy, dxmdy frac |
| 2350 | | memset(&ewdata[8], 0, 16 * sizeof(UINT32));//shade |
| 2351 | | ewdata[24] = (s << 16) | t;//s, t |
| 2352 | | ewdata[25] = 0;//w |
| 2353 | | ewdata[26] = (dtdy >> 5) & 0xffff;//dsdx, dtdx |
| 2354 | | ewdata[27] = 0;//dwdx |
| 2355 | | ewdata[28] = 0;//s frac, t frac |
| 2356 | | ewdata[29] = 0;//w frac |
| 2357 | | ewdata[30] = ((dtdy & 0x1f) << 11);//dsdx frac, dtdx frac |
| 2358 | | ewdata[31] = 0;//dwdx frac |
| 2359 | | ewdata[32] = (dsdx >> 5) << 16;//dsde, dtde |
| 2360 | | ewdata[33] = 0;//dwde |
| 2361 | | ewdata[34] = (dsdx >> 5) << 16;//dsdy, dtdy |
| 2362 | | ewdata[35] = 0;//dwdy |
| 2363 | | ewdata[36] = (dsdx & 0x1f) << 27;//dsde frac, dtde frac |
| 2364 | | ewdata[37] = 0;//dwde frac |
| 2365 | | ewdata[38] = (dsdx & 0x1f) << 27;//dsdy frac, dtdy frac |
| 2366 | | ewdata[39] = 0;//dwdy frac |
| 2367 | | memset(&ewdata[40], 0, 4 * sizeof(UINT32));//depth |
| 2342 | ewdata[0] = (0x25 << 24) | ((0x80 | tilenum) << 16) | yl; // command, flipped, tile, yl |
| 2343 | ewdata[1] = (yl << 16) | yh; // ym, yh |
| 2344 | ewdata[2] = (xlint << 16) | ((xl & 3) << 14); // xl, xl frac |
| 2345 | // ewdata[3] = 0; dxldy, dxldy frac |
| 2346 | ewdata[4] = (xhint << 16) | ((xh & 3) << 14); // xh, xh frac |
| 2347 | // ewdata[5] = 0; dxhdy, dxhdy frac |
| 2348 | ewdata[6] = (xlint << 16) | ((xl & 3) << 14); // xm, xm frac |
| 2349 | // ewdata[7] = 0; dxmdy, dxmdy frac |
| 2350 | memset(&ewdata[8], 0, 16 * sizeof(UINT32)); // shade |
| 2351 | ewdata[24] = (s << 16) | t; // s, t |
| 2352 | // ewdata[25] = 0; // w |
| 2353 | ewdata[26] = (dtdy >> 5) & 0xffff; // dsdx, dtdx |
| 2354 | // ewdata[27] = 0; dwdx |
| 2355 | // ewdata[28] = 0; s frac, t frac |
| 2356 | // ewdata[29] = 0; w frac |
| 2357 | ewdata[30] = ((dtdy & 0x1f) << 11); // dsdx frac, dtdx frac |
| 2358 | // ewdata[31] = 0; dwdx frac |
| 2359 | ewdata[32] = (dsdx >> 5) << 16; // dsde, dtde |
| 2360 | // ewdata[33] = 0; dwde |
| 2361 | ewdata[34] = (dsdx >> 5) << 16; // dsdy, dtdy |
| 2362 | // ewdata[35] = 0; dwdy |
| 2363 | ewdata[36] = (dsdx & 0x1f) << 27; // dsde frac, dtde frac |
| 2364 | // ewdata[37] = 0; dwde frac |
| 2365 | ewdata[38] = (dsdx & 0x1f) << 27; // dsdy frac, dtdy frac |
| 2366 | // ewdata[39] = 0; // dwdy frac |
| 2367 | // ewdata[40-43] = 0; // depth |
| 2368 | 2368 | |
| 2369 | 2369 | draw_triangle(true, true, false, true); |
| 2370 | 2370 | } |
| r252881 | r252882 | |
| 3158 | 3158 | m_prim_lod_fraction.set(0, 0, 0, 0); |
| 3159 | 3159 | z_build_com_table(); |
| 3160 | 3160 | |
| 3161 | memset(m_temp_rect_data, 0, sizeof(UINT32) * 0x1000); |
| 3162 | |
| 3161 | 3163 | for (INT32 i = 0; i < 0x4000; i++) |
| 3162 | 3164 | { |
| 3163 | 3165 | UINT32 exponent = (i >> 11) & 7; |