trunk/src/mame/drivers/cps1.c
r241545 | r241546 | |
4002 | 4002 | ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) |
4003 | 4003 | |
4004 | 4004 | ROM_REGION( 0x0200, "bboardplds", 0 ) |
4005 | | ROM_LOAD( "sth63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(c706b773) SHA1(ddfe2e747637eec081a5125cfefcb478a4ba9e76) ) /* Handcrafted but works on actual PCB. Redump needed */ |
| 4005 | ROM_LOAD( "sth63b.1a", 0x0000, 0x0117, NO_DUMP ) |
4006 | 4006 | ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) |
4007 | 4007 | ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) |
4008 | 4008 | |
r241545 | r241546 | |
4483 | 4483 | ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) |
4484 | 4484 | |
4485 | 4485 | ROM_REGION( 0x0200, "bboardplds", 0 ) |
4486 | | ROM_LOAD( "ara63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(f5569c93) SHA1(7db7cf23639036590eef1e5e309f08560859efaf) ) /* Handcrafted but works on actual PCB. Redump needed */ |
| 4486 | ROM_LOAD( "ara63b.1a", 0x0000, 0x0117, NO_DUMP ) |
4487 | 4487 | ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) |
4488 | 4488 | ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) ) |
4489 | 4489 | |
trunk/src/mame/drivers/naomi.c
r241545 | r241546 | |
493 | 493 | Capcom Vs. SNK Millennium Fight 2000 841-0011C 23511 7 (128Mb) 315-6219 present 317-5059-COM (000802) |
494 | 494 | Capcom Vs. SNK Millennium Fight 2000 (Rev A) 841-0011C 23511A 7 (128Mb) 315-6219 present 317-5059-COM (000804) |
495 | 495 | Capcom Vs. SNK Millennium Fight 2000 (Rev C) 841-0011C 23511C 7 (128Mb) 315-6319 present 317-5059-COM (000904) |
496 | | Club Kart: European Session (Rev E) 840-0062C 23704E 11 (128Mb) 315-6319A present 317-0313-COM |
497 | | Club Kart: European Session (Rev D) 840-0062C 23704D 11 (128Mb) 315-6319A present 317-0313-COM |
498 | | Club Kart: European Session (Rev C) 840-0062C 23704C 11 (128Mb) 315-6319A present 317-0313-COM |
| 496 | Club Kart: European Session 840-0062C 23704 11 (128Mb) 315-6319A present 317-0313-COM |
| 497 | Club Kart: European Session (Rev D) 840-0062C 21473D 11 (128Mb) 315-6319A present 317-0313-COM |
499 | 498 | Crackin' DJ 840-0043C 23450D 10 (128Mb) 315-6319 present ? |
500 | 499 | Derby Owners Club II (Rev B) 840-0083C 22306B 11 (128Mb) 315-6319A present not present |
501 | 500 | Derby Owners Club World Edition (Rev C) 840-0088C 22336C 7 (128Mb) 315-6319A present not present |
r241545 | r241546 | |
7918 | 7917 | NAOMI_DEFAULT_EEPROM |
7919 | 7918 | |
7920 | 7919 | ROM_REGION( 0xb800000, "rom_board", ROMREGION_ERASEFF) |
7921 | | ROM_LOAD( "epr-23704d.ic22",0x0000000, 0x0400000, CRC(60ac770c) SHA1(2f1688f2046e794d1c1e06912b46c1573d934608) ) |
| 7920 | ROM_LOAD( "epr-21473d.ic22",0x0000000, 0x0400000, CRC(60ac770c) SHA1(2f1688f2046e794d1c1e06912b46c1573d934608) ) |
7922 | 7921 | ROM_LOAD( "mpr-23693.ic1", 0x0800000, 0x1000000, CRC(28995764) SHA1(a1457f9935dde2e5aaa5ef245c736c0f2f8c74b7) ) |
7923 | 7922 | ROM_LOAD( "mpr-23694.ic2", 0x1800000, 0x1000000, CRC(37d30111) SHA1(4c07df8cd548cac79d48709e61f692d762471f8f) ) |
7924 | 7923 | ROM_LOAD( "mpr-23695.ic3", 0x2800000, 0x1000000, CRC(41ac1510) SHA1(01b889b627fdfc1f12a0c84fcc36debdfb1cf377) ) |
r241545 | r241546 | |
7935 | 7934 | ROM_LOAD( "clubkrte-key.bin", 0, 4, CRC(db426a5d) SHA1(6a6a0b80ec0416605541159efea379dc19fe796d) ) |
7936 | 7935 | ROM_END |
7937 | 7936 | |
7938 | | ROM_START( clubkrtc ) |
7939 | | NAOMI2_BIOS |
7940 | | NAOMI_DEFAULT_EEPROM |
7941 | | |
7942 | | ROM_REGION( 0xb800000, "rom_board", ROMREGION_ERASEFF) |
7943 | | ROM_LOAD( "epr-23704c.ic22",0x0000000, 0x0400000, CRC(45ea13c3) SHA1(48cddba0506010dc705f04457f784a1d455ef3a6) ) |
7944 | | ROM_LOAD( "mpr-23693.ic1", 0x0800000, 0x1000000, CRC(28995764) SHA1(a1457f9935dde2e5aaa5ef245c736c0f2f8c74b7) ) |
7945 | | ROM_LOAD( "mpr-23694.ic2", 0x1800000, 0x1000000, CRC(37d30111) SHA1(4c07df8cd548cac79d48709e61f692d762471f8f) ) |
7946 | | ROM_LOAD( "mpr-23695.ic3", 0x2800000, 0x1000000, CRC(41ac1510) SHA1(01b889b627fdfc1f12a0c84fcc36debdfb1cf377) ) |
7947 | | ROM_LOAD( "mpr-23696.ic4", 0x3800000, 0x1000000, CRC(6f2da455) SHA1(b655757bc513398820bfeae07dca8a4f3ea9752c) ) |
7948 | | ROM_LOAD( "mpr-23697.ic5", 0x4800000, 0x1000000, CRC(1383c742) SHA1(6efd17632a277a4bb0e47cc912fbc9865a8b14c3) ) |
7949 | | ROM_LOAD( "mpr-23698.ic6", 0x5800000, 0x1000000, CRC(da79cd06) SHA1(fdfe068caca1eb764dec28ab327e56b39144f3ae) ) |
7950 | | ROM_LOAD( "mpr-23699.ic7", 0x6800000, 0x1000000, CRC(ea77f000) SHA1(35aa8ee804d9429e72f516137a3b06c585a57b6d) ) |
7951 | | ROM_LOAD( "mpr-23700.ic8", 0x7800000, 0x1000000, CRC(db9e5c1d) SHA1(db918c0fa1860f4345806e574d44354aba5fcd54) ) |
7952 | | ROM_LOAD( "mpr-23701.ic9", 0x8800000, 0x1000000, CRC(0fa92fd7) SHA1(67a1cf085101884a17a4783d0d509ab198aa6425) ) |
7953 | | ROM_LOAD( "mpr-23702.ic10", 0x9800000, 0x1000000, CRC(e302b582) SHA1(787192ed9f9a08541eecc3128855485cad802a42) ) |
7954 | | ROM_LOAD( "mpr-23703.ic11", 0xa800000, 0x1000000, CRC(702b8b4a) SHA1(3a8dfde458f341e7db20664382b9fce2b6e5d462) ) |
7955 | | |
7956 | | ROM_REGION( 4, "rom_key", 0 ) |
7957 | | ROM_LOAD( "clubkrte-key.bin", 0, 4, CRC(db426a5d) SHA1(6a6a0b80ec0416605541159efea379dc19fe796d) ) |
7958 | | ROM_END |
7959 | | |
7960 | 7937 | ROM_START( clubkprz ) |
7961 | 7938 | NAOMI2_BIOS |
7962 | 7939 | NAOMI_DEFAULT_EEPROM |
r241545 | r241546 | |
8952 | 8929 | /* 0046 */ GAME( 2001, wldrider, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Wild Riders (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS ) |
8953 | 8930 | /* 0061 */ GAME( 2001, vstrik3c, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Striker 3 (USA, EXP, KOR, AUS) (Cart, Rev C)", GAME_FLAGS ) |
8954 | 8931 | /* 0061 */ GAME( 2001, vstrik3cb,vstrik3c,naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Striker 3 (USA, EXP, KOR, AUS) (Cart, Rev B)", GAME_FLAGS ) |
8955 | | /* 0062 */ GAME( 2001, clubkrte, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session (Rev E)", GAME_FLAGS ) |
| 8932 | /* 0062 */ GAME( 2001, clubkrte, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session", GAME_FLAGS ) |
8956 | 8933 | /* 0062 */ GAME( 2001, clubkrtd, clubkrte,naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session (Rev D)", GAME_FLAGS ) |
8957 | | /* 0062 */ GAME( 2001, clubkrtc, clubkrte,naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session (Rev C)", GAME_FLAGS ) |
8958 | 8934 | /* 0080 */ GAME( 2002, vf4cart, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Fighter 4 (Cartridge)", GAME_FLAGS ) |
8959 | 8935 | /* 0087 */ GAME( 2002, kingrt66, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "King of Route 66 (Rev A)", GAME_FLAGS ) |
8960 | 8936 | /* 0095 */ GAME( 2002, soulsurf, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Soul Surfer (Rev A)", GAME_FLAGS ) |
trunk/src/mame/video/konamigx.c
r241545 | r241546 | |
276 | 276 | #define GX_MAX_OBJECTS (GX_MAX_SPRITES + GX_MAX_LAYERS) |
277 | 277 | |
278 | 278 | static struct GX_OBJ { int order, offs, code, color; } *gx_objpool; |
| 279 | static UINT16 *gx_spriteram; |
279 | 280 | |
| 281 | // mirrored K054338 settings |
| 282 | static int *K054338_shdRGB; |
| 283 | |
| 284 | |
280 | 285 | void konamigx_state::konamigx_mixer_init(screen_device &screen, int objdma) |
281 | 286 | { |
282 | 287 | m_gx_objdma = 0; |
r241545 | r241546 | |
286 | 291 | m_gx_shdzbuf = auto_alloc_array(machine(), UINT8, GX_ZBUFSIZE); |
287 | 292 | gx_objpool = auto_alloc_array(machine(), struct GX_OBJ, GX_MAX_OBJECTS); |
288 | 293 | |
289 | | m_k054338->export_config(&m_K054338_shdRGB); |
| 294 | m_k054338->export_config(&K054338_shdRGB); |
290 | 295 | |
291 | 296 | if (objdma) |
292 | 297 | { |
293 | | m_gx_spriteram = auto_alloc_array(machine(), UINT16, 0x1000/2); |
| 298 | gx_spriteram = auto_alloc_array(machine(), UINT16, 0x1000/2); |
294 | 299 | m_gx_objdma = 1; |
295 | 300 | } |
296 | 301 | else |
297 | | m_k055673->k053247_get_ram(&m_gx_spriteram); |
| 302 | m_k055673->k053247_get_ram(&gx_spriteram); |
298 | 303 | |
299 | 304 | m_palette->set_shadow_dRGB32(3,-80,-80,-80, 0); |
300 | 305 | m_k054338->invert_alpha(1); |
r241545 | r241546 | |
310 | 315 | UINT16* k053247_ram; |
311 | 316 | m_k055673->k053247_get_ram(&k053247_ram); |
312 | 317 | |
313 | | if (m_gx_objdma && m_gx_spriteram && k053247_ram) memcpy(m_gx_spriteram, k053247_ram, 0x1000); |
| 318 | if (m_gx_objdma && gx_spriteram && k053247_ram) memcpy(gx_spriteram, k053247_ram, 0x1000); |
314 | 319 | } |
315 | 320 | |
316 | 321 | void konamigx_state::konamigx_mixer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, |
r241545 | r241546 | |
411 | 416 | // only enable shadows beyond a +/-7 RGB threshold |
412 | 417 | for (j=0,i=0; i<3; j+=3,i++) |
413 | 418 | { |
414 | | k = m_K054338_shdRGB[j ]; if (k < -7 || k > 7) { shadowon[i] = 1; continue; } |
415 | | k = m_K054338_shdRGB[j+1]; if (k < -7 || k > 7) { shadowon[i] = 1; continue; } |
416 | | k = m_K054338_shdRGB[j+2]; if (k < -7 || k > 7) { shadowon[i] = 1; } |
| 419 | k = K054338_shdRGB[j ]; if (k < -7 || k > 7) { shadowon[i] = 1; continue; } |
| 420 | k = K054338_shdRGB[j+1]; if (k < -7 || k > 7) { shadowon[i] = 1; continue; } |
| 421 | k = K054338_shdRGB[j+2]; if (k < -7 || k > 7) { shadowon[i] = 1; } |
417 | 422 | } |
418 | 423 | |
419 | 424 | // SHDON specifies layers on which shadows can be projected (see detail on p.65 7.2.8) |
r241545 | r241546 | |
491 | 496 | { |
492 | 497 | int pri = 0; |
493 | 498 | |
494 | | if (!(m_gx_spriteram[offs] & 0x8000)) continue; |
| 499 | if (!(gx_spriteram[offs] & 0x8000)) continue; |
495 | 500 | |
496 | | int zcode = m_gx_spriteram[offs] & 0xff; |
| 501 | int zcode = gx_spriteram[offs] & 0xff; |
497 | 502 | |
498 | 503 | // invert z-order when opset_pri is set (see p.51 OPSET PRI) |
499 | 504 | if (m_k053247_opset & 0x10) zcode = 0xff - zcode; |
500 | 505 | |
501 | | int code = m_gx_spriteram[offs+1]; |
502 | | int color = k = m_gx_spriteram[offs+6]; |
503 | | l = m_gx_spriteram[offs+7]; |
| 506 | int code = gx_spriteram[offs+1]; |
| 507 | int color = k = gx_spriteram[offs+6]; |
| 508 | l = gx_spriteram[offs+7]; |
504 | 509 | |
505 | 510 | m_k055673->m_k053247_cb(&code, &color, &pri); |
506 | 511 | |
r241545 | r241546 | |
864 | 869 | |
865 | 870 | |
866 | 871 | m_k055673->k053247_draw_single_sprite_gxcore(bitmap, cliprect, |
867 | | m_gx_objzbuf, m_gx_shdzbuf, code, m_gx_spriteram, offs, |
| 872 | m_gx_objzbuf, m_gx_shdzbuf, code, gx_spriteram, offs, |
868 | 873 | color, alpha, drawmode, zcode, pri, |
869 | 874 | /* non-gx only */ |
870 | 875 | 0,0,NULL,NULL,0 |
r241545 | r241546 | |
922 | 927 | SET_TILE_INFO_MEMBER(0, tileno, colour, TILE_FLIPYX(flip)); |
923 | 928 | } |
924 | 929 | |
| 930 | static int konamigx_type3_psac2_actual_bank; |
| 931 | //int konamigx_type3_psac2_actual_last_bank = 0; |
925 | 932 | |
926 | 933 | WRITE32_MEMBER(konamigx_state::konamigx_type3_psac2_bank_w) |
927 | 934 | { |
928 | 935 | // other bits are used for something... |
929 | 936 | |
930 | 937 | COMBINE_DATA(&m_konamigx_type3_psac2_bank[offset]); |
931 | | m_konamigx_type3_psac2_actual_bank = (m_konamigx_type3_psac2_bank[0] & 0x10000000) >> 28; |
| 938 | konamigx_type3_psac2_actual_bank = (m_konamigx_type3_psac2_bank[0] & 0x10000000) >> 28; |
932 | 939 | |
933 | 940 | /* handle this by creating 2 roz tilemaps instead, otherwise performance dies completely on dual screen mode |
934 | | if (m_konamigx_type3_psac2_actual_bank!=m_konamigx_type3_psac2_actual_last_bank) |
| 941 | if (konamigx_type3_psac2_actual_bank!=konamigx_type3_psac2_actual_last_bank) |
935 | 942 | { |
936 | 943 | m_gx_psac_tilemap->mark_all_dirty(); |
937 | | m_konamigx_type3_psac2_actual_last_bank = m_konamigx_type3_psac2_actual_bank; |
| 944 | konamigx_type3_psac2_actual_last_bank = konamigx_type3_psac2_actual_bank; |
938 | 945 | } |
939 | 946 | */ |
940 | 947 | } |
r241545 | r241546 | |
949 | 956 | |
950 | 957 | int base_index = tile_index; |
951 | 958 | |
952 | | // if (m_konamigx_type3_psac2_actual_bank) |
| 959 | // if (konamigx_type3_psac2_actual_bank) |
953 | 960 | // base_index+=0x20000/2; |
954 | 961 | |
955 | 962 | |
r241545 | r241546 | |
970 | 977 | |
971 | 978 | int base_index = tile_index; |
972 | 979 | |
973 | | // if (m_konamigx_type3_psac2_actual_bank) |
| 980 | // if (konamigx_type3_psac2_actual_bank) |
974 | 981 | // base_index+=0x20000/2; |
975 | 982 | |
976 | 983 | |
r241545 | r241546 | |
1425 | 1432 | temprect = cliprect; |
1426 | 1433 | temprect.max_x = cliprect.min_x+320; |
1427 | 1434 | |
1428 | | if (m_konamigx_type3_psac2_actual_bank == 1) K053936_0_zoom_draw(screen, *m_type3_roz_temp_bitmap, temprect,m_gx_psac_tilemap_alt, 0,0,0); // soccerss playfield |
| 1435 | if (konamigx_type3_psac2_actual_bank == 1) K053936_0_zoom_draw(screen, *m_type3_roz_temp_bitmap, temprect,m_gx_psac_tilemap_alt, 0,0,0); // soccerss playfield |
1429 | 1436 | else K053936_0_zoom_draw(screen, *m_type3_roz_temp_bitmap, temprect,m_gx_psac_tilemap, 0,0,0); // soccerss playfield |
1430 | 1437 | |
1431 | 1438 | |
trunk/src/mess/machine/coco.c
r241545 | r241546 | |
681 | 681 | /* determine the sound mux status */ |
682 | 682 | soundmux_status_t status = soundmux_status(); |
683 | 683 | |
684 | | /* the SC77526 DAC chip internally biases the AC-coupled sound inputs for Cassette and Cartridge at the midpoint of the 3.9v output range */ |
685 | | bool bCassSoundEnable = (status == (SOUNDMUX_ENABLE | SOUNDMUX_SEL1)); |
686 | | bool bCartSoundEnable = (status == (SOUNDMUX_ENABLE | SOUNDMUX_SEL2)); |
687 | | UINT8 cassette_sound = (bCassSoundEnable ? 0x40 : 0); |
688 | | UINT8 cart_sound = (bCartSoundEnable ? 0x40 : 0); |
689 | | |
690 | 684 | /* determine the value to send to the DAC */ |
691 | 685 | m_dac_output = (m_pia_1->a_output() & 0xFC) >> 2; |
692 | | UINT8 dac_sound = (status == SOUNDMUX_ENABLE ? m_dac_output << 1 : 0); |
693 | | m_dac->write_unsigned8(single_bit_sound + dac_sound + cassette_sound + cart_sound); |
| 686 | UINT8 sound_output = single_bit_sound + (status == SOUNDMUX_ENABLE ? m_dac_output << 1 : 0); |
| 687 | m_dac->write_unsigned8(sound_output); |
694 | 688 | |
695 | 689 | /* determine the cassette sound status */ |
696 | | cassette_state cas_sound = bCassSoundEnable ? CASSETTE_SPEAKER_ENABLED : CASSETTE_SPEAKER_MUTED; |
| 690 | cassette_state cas_sound = (status == (SOUNDMUX_ENABLE | SOUNDMUX_SEL1)) |
| 691 | ? CASSETTE_SPEAKER_ENABLED |
| 692 | : CASSETTE_SPEAKER_MUTED; |
697 | 693 | m_cassette->change_state(cas_sound, CASSETTE_MASK_SPEAKER); |
698 | 694 | |
699 | 695 | /* determine the cartridge sound status */ |
700 | | m_cococart->cart_set_line(COCOCART_LINE_SOUND_ENABLE, bCartSoundEnable ? COCOCART_LINE_VALUE_ASSERT : COCOCART_LINE_VALUE_CLEAR); |
| 696 | m_cococart->cart_set_line( |
| 697 | COCOCART_LINE_SOUND_ENABLE, |
| 698 | (status == (SOUNDMUX_ENABLE | SOUNDMUX_SEL2)) ? COCOCART_LINE_VALUE_ASSERT : COCOCART_LINE_VALUE_CLEAR); |
701 | 699 | } |
702 | 700 | |
703 | 701 | |
trunk/src/mess/machine/ti85.c
r241545 | r241546 | |
154 | 154 | { |
155 | 155 | //address_space &space = m_maincpu->space(AS_PROGRAM); |
156 | 156 | |
157 | | m_membank1->set_bank(0); //Always flash page 0, well allmost |
| 157 | m_membank1->set_bank(m_booting ? 0x1f : 0); //Always flash page 0, well allmost |
158 | 158 | |
159 | 159 | if (m_ti83p_port4 & 1) |
160 | 160 | { |
r241545 | r241546 | |
182 | 182 | { |
183 | 183 | //address_space &space = m_maincpu->space(AS_PROGRAM); |
184 | 184 | |
185 | | m_membank1->set_bank(m_ti8x_memory_page_0); |
| 185 | m_membank1->set_bank(m_booting ? (m_model==TI84P ? 0x3f : 0x7f) : 0); |
186 | 186 | |
187 | 187 | if (m_ti83p_port4 & 1) |
188 | 188 | { |
r241545 | r241546 | |
273 | 273 | m_PCR = 0xc0; |
274 | 274 | } |
275 | 275 | |
| 276 | DIRECT_UPDATE_MEMBER(ti85_state::ti83p_direct_update_handler) |
| 277 | { |
| 278 | if (m_booting) |
| 279 | { |
| 280 | if (((m_ti83p_port4 & 1) && (address >= 0x4000 && address < 0xc000)) || (address >= 0x4000 && address < 0x8000)) |
| 281 | { |
| 282 | m_booting = false; |
| 283 | update_ti83p_memory(); |
| 284 | } |
| 285 | } |
| 286 | return address; |
| 287 | } |
| 288 | |
| 289 | |
276 | 290 | MACHINE_RESET_MEMBER(ti85_state,ti83p) |
277 | 291 | { |
278 | 292 | m_red_out = 0x00; |
279 | 293 | m_white_out = 0x00; |
280 | 294 | m_PCR = 0xc0; |
281 | 295 | |
282 | | m_ti8x_memory_page_0 = 0;//0x1f; |
283 | 296 | |
284 | | if (m_model == TI83P) |
285 | | { |
286 | | m_ti8x_memory_page_1 = 0x1f; |
287 | | } |
288 | | else if (m_model == TI84P) |
289 | | { |
290 | | m_ti8x_memory_page_1 = 0x3f; |
291 | | } |
292 | | else |
293 | | { |
294 | | m_ti8x_memory_page_1 = 0x7f; |
295 | | } |
296 | | |
| 297 | m_ti8x_memory_page_1 = 0; |
297 | 298 | m_ti8x_memory_page_2 = 0; |
298 | 299 | m_ti8x_memory_page_3 = 0; |
299 | 300 | m_ti83p_port4 = 1; |
| 301 | m_booting = true; |
300 | 302 | if (m_model == TI83P) |
301 | 303 | { |
302 | 304 | update_ti83p_memory(); |
r241545 | r241546 | |
305 | 307 | { |
306 | 308 | update_ti83pse_memory(); |
307 | 309 | } |
308 | | |
309 | | m_maincpu->set_pc(0x8000); |
310 | 310 | } |
311 | 311 | |
312 | 312 | MACHINE_START_MEMBER(ti85_state,ti83p) |
r241545 | r241546 | |
314 | 314 | m_model = TI83P; |
315 | 315 | //address_space &space = m_maincpu->space(AS_PROGRAM); |
316 | 316 | //m_bios = memregion("flash")->base(); |
| 317 | m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(ti85_state::ti83p_direct_update_handler), this)); |
317 | 318 | |
318 | 319 | m_timer_interrupt_mask = 0; |
319 | 320 | m_timer_interrupt_status = 0; |
320 | 321 | m_ON_interrupt_mask = 0; |
321 | 322 | m_ON_interrupt_status = 0; |
322 | 323 | m_ON_pressed = 0; |
323 | | m_ti8x_memory_page_0 = 0;//0x1f; |
324 | | m_ti8x_memory_page_1 = 0x1f; |
| 324 | m_ti8x_memory_page_1 = 0; |
325 | 325 | m_ti8x_memory_page_2 = 0; |
326 | 326 | m_ti8x_memory_page_3 = 0; |
327 | 327 | m_LCD_memory_base = 0; |
r241545 | r241546 | |
334 | 334 | m_ti83p_port4 = 1; |
335 | 335 | m_flash_unlocked = 0; |
336 | 336 | |
| 337 | m_booting = true; |
| 338 | |
337 | 339 | ti85_state::update_ti83p_memory(); |
338 | | m_maincpu->set_pc(0x8000); //this is a hack due to incomplete memory mapping emulation |
339 | 340 | |
340 | 341 | |
341 | 342 | machine().scheduler().timer_pulse(attotime::from_hz(256), timer_expired_delegate(FUNC(ti85_state::ti83_timer1_callback),this)); |
r241545 | r241546 | |
345 | 346 | /* save states and debugging */ |
346 | 347 | save_item(NAME(m_timer_interrupt_status)); |
347 | 348 | save_item(NAME(m_timer_interrupt_mask)); |
348 | | save_item(NAME(m_ti8x_memory_page_0)); |
349 | 349 | save_item(NAME(m_ti8x_memory_page_1)); |
350 | 350 | save_item(NAME(m_ti8x_memory_page_2)); |
351 | 351 | save_item(NAME(m_ti8x_memory_page_3)); |
352 | 352 | save_item(NAME(m_ti83p_port4)); |
| 353 | save_item(NAME(m_booting)); |
353 | 354 | } |
354 | 355 | |
355 | 356 | void ti85_state::ti8xpse_init_common() |
r241545 | r241546 | |
363 | 364 | m_ON_interrupt_mask = 0; |
364 | 365 | m_ON_interrupt_status = 0; |
365 | 366 | m_ON_pressed = 0; |
366 | | m_ti8x_memory_page_0 = 00;//0x7f; |
367 | | m_ti8x_memory_page_1 = (m_model != TI84P ) ? 0x7f : 0x3f ; |
| 367 | m_ti8x_memory_page_1 = 0; |
368 | 368 | m_ti8x_memory_page_2 = 0; |
369 | 369 | m_ti8x_memory_page_3 = 0; |
370 | 370 | m_LCD_memory_base = 0; |
r241545 | r241546 | |
378 | 378 | m_flash_unlocked = 0; |
379 | 379 | |
380 | 380 | ti85_state::update_ti83pse_memory(); |
381 | | m_maincpu->set_pc(0x8000);//same as above, hack to work around incomplete memory mapping emulation |
| 381 | m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(ti85_state::ti83p_direct_update_handler), this)); |
382 | 382 | |
383 | 383 | |
384 | 384 | machine().scheduler().timer_pulse(attotime::from_hz(256), timer_expired_delegate(FUNC(ti85_state::ti83_timer1_callback),this)); |
r241545 | r241546 | |
391 | 391 | /* save states and debugging */ |
392 | 392 | save_item(NAME(m_ctimer_interrupt_status)); |
393 | 393 | save_item(NAME(m_timer_interrupt_status)); |
394 | | save_item(NAME(m_ti8x_memory_page_0)); |
395 | 394 | save_item(NAME(m_ti8x_memory_page_1)); |
396 | 395 | save_item(NAME(m_ti8x_memory_page_2)); |
397 | 396 | save_item(NAME(m_ti8x_memory_page_3)); |