trunk/src/mame/drivers/aleck64.c
| r242938 | r242939 | |
| 103 | 103 | JAPAN |
| 104 | 104 | |
| 105 | 105 | |
| 106 | | On bootup, they also mention 'T.L.S' (Temporary Landing System), which seems |
| 107 | | to be the hardware system, designed by Arika Co. Ltd. |
| 108 | 106 | |
| 109 | 107 | |
| 110 | 108 | PCB Layout |
| r242938 | r242939 | |
| 185 | 183 | DECLARE_DRIVER_INIT(aleck64); |
| 186 | 184 | DECLARE_WRITE32_MEMBER(aleck_dips_w); |
| 187 | 185 | DECLARE_READ32_MEMBER(aleck_dips_r); |
| 186 | DECLARE_READ16_MEMBER(e90_prot_r); |
| 187 | DECLARE_WRITE16_MEMBER(e90_prot_w); |
| 188 | 188 | private: |
| 189 | 189 | UINT32 m_dip_read_offset; |
| 190 | 190 | }; |
| r242938 | r242939 | |
| 311 | 311 | AM_RANGE(0x1fc00000, 0x1fc007bf) AM_ROM AM_REGION("user1", 0) // PIF ROM |
| 312 | 312 | AM_RANGE(0x1fc007c0, 0x1fc007ff) AM_DEVREADWRITE("rcp", n64_periphs, pif_ram_r, pif_ram_w) |
| 313 | 313 | |
| 314 | | /* |
| 315 | | Surely this should mirror main ram? srmvs crashes, and |
| 316 | | vivdolls overwrites it's memory test code if it does mirror |
| 317 | | */ |
| 318 | | AM_RANGE(0xc0000000, 0xc07fffff) AM_RAM |
| 314 | AM_RANGE(0xc0000000, 0xc07fffff) AM_RAM // SDRAM, Aleck 64 specific |
| 319 | 315 | |
| 320 | 316 | AM_RANGE(0xc0800000, 0xc0800fff) AM_READWRITE(aleck_dips_r,aleck_dips_w) |
| 321 | | AM_RANGE(0xd0000000, 0xd00fffff) AM_RAM // mtetrisc, write only, mirror? |
| 317 | ADDRESS_MAP_END |
| 322 | 318 | |
| 319 | /* |
| 320 | E90 protection handlers |
| 321 | */ |
| 322 | |
| 323 | READ16_MEMBER(aleck64_state::e90_prot_r) |
| 324 | { |
| 325 | // offset 0 $800 = status ready, active high |
| 326 | return 0; |
| 327 | } |
| 328 | |
| 329 | WRITE16_MEMBER(aleck64_state::e90_prot_w) |
| 330 | { |
| 331 | switch(offset*2) |
| 332 | { |
| 333 | case 0x16: |
| 334 | if(data != 6 && data != 7) |
| 335 | printf("! %04x %04x %08x\n",offset*2,data,mem_mask); |
| 336 | |
| 337 | if(data & 1) // 0 -> 1 transition |
| 338 | { |
| 339 | for(int i=0;i<0x1000;i+=4) |
| 340 | space.write_dword(0x007502f4+i,space.read_dword(0xd0000000+i)); |
| 341 | } |
| 342 | break; |
| 343 | //0x1e bit 0 probably enables the chip |
| 344 | default: |
| 345 | printf("%04x %04x %08x\n",offset*2,data,mem_mask); |
| 346 | break; |
| 347 | } |
| 348 | } |
| 349 | |
| 350 | static ADDRESS_MAP_START( e90_map, AS_PROGRAM, 32, aleck64_state ) |
| 351 | AM_IMPORT_FROM( n64_map ) |
| 352 | AM_RANGE(0xd0000000, 0xd0000fff) AM_RAM |
| 353 | AM_RANGE(0xd0010000, 0xd0010fff) AM_RAM |
| 354 | AM_RANGE(0xd0030000, 0xd003001f) AM_READWRITE16(e90_prot_r, e90_prot_w,0xffffffff) |
| 323 | 355 | ADDRESS_MAP_END |
| 324 | 356 | |
| 325 | 357 | static ADDRESS_MAP_START( rsp_map, AS_PROGRAM, 32, aleck64_state ) |
| r242938 | r242939 | |
| 841 | 873 | MCFG_N64_PERIPHS_ADD("rcp"); |
| 842 | 874 | MACHINE_CONFIG_END |
| 843 | 875 | |
| 876 | static MACHINE_CONFIG_DERIVED( a64_e90, aleck64 ) |
| 877 | MCFG_CPU_MODIFY("maincpu") |
| 878 | MCFG_CPU_PROGRAM_MAP(e90_map) |
| 879 | MACHINE_CONFIG_END |
| 880 | |
| 844 | 881 | DRIVER_INIT_MEMBER(aleck64_state,aleck64) |
| 845 | 882 | { |
| 846 | 883 | UINT8 *rom = memregion("user2")->base(); |
| r242938 | r242939 | |
| 1075 | 1112 | |
| 1076 | 1113 | // games |
| 1077 | 1114 | GAME( 1998, 11beat, aleck64, aleck64, 11beat, aleck64_state, aleck64, ROT0, "Hudson", "Eleven Beat", GAME_NOT_WORKING ) // crashes at kick off / during attract with DRC |
| 1078 | | GAME( 1998, mtetrisc, aleck64, aleck64, mtetrisc, aleck64_state, aleck64, ROT0, "Capcom", "Magical Tetris Challenge (981009 Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) |
| 1115 | GAME( 1998, mtetrisc, aleck64, a64_e90, mtetrisc, aleck64_state, aleck64, ROT0, "Capcom", "Magical Tetris Challenge (981009 Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) |
| 1079 | 1116 | GAME( 1998, starsldr, aleck64, aleck64, starsldr, aleck64_state, aleck64, ROT0, "Hudson / Seta", "Star Soldier: Vanishing Earth", GAME_IMPERFECT_GRAPHICS ) |
| 1080 | 1117 | GAME( 1998, vivdolls, aleck64, aleck64, aleck64, aleck64_state, aleck64, ROT0, "Visco", "Vivid Dolls", GAME_IMPERFECT_GRAPHICS ) |
| 1081 | 1118 | GAME( 1999, srmvs, aleck64, aleck64, srmvs, aleck64_state, aleck64, ROT0, "Seta", "Super Real Mahjong VS", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) |