src/mess/drivers/pce.c
| r988 | r989 | |
| 15 | 15 | - sprite precaching |
| 16 | 16 | - rewrite the base renderer loop |
| 17 | 17 | - Add CD support |
| 18 | | - SuperGrafix Driver |
| 19 | 18 | - Add 6 button joystick support |
| 20 | 19 | - Add 263 line mode |
| 21 | 20 | - Sprite DMA should use vdc VRAM functions |
| r988 | r989 | |
| 58 | 57 | AM_RANGE( 0x00, 0x03) AM_READWRITE( vdc_0_r, vdc_0_w ) |
| 59 | 58 | ADDRESS_MAP_END |
| 60 | 59 | |
| 60 | ADDRESS_MAP_START( sgx_mem , ADDRESS_SPACE_PROGRAM, 8) |
| 61 | AM_RANGE( 0x000000, 0x07FFFF) AM_ROMBANK(1) |
| 62 | AM_RANGE( 0x080000, 0x0FFFFF) AM_ROMBANK(2) |
| 63 | AM_RANGE( 0x100000, 0x1EDFFF) AM_ROMBANK(3) |
| 64 | AM_RANGE( 0x1EE000, 0x1EFFFF) AM_RAM AM_BASE( &pce_nvram ) |
| 65 | AM_RANGE( 0x1F0000, 0x1F7FFF) AM_RAM AM_BASE( &pce_user_ram ) |
| 66 | AM_RANGE( 0x1FE000, 0x1FE007) AM_READWRITE( vdc_0_r, vdc_0_w ) AM_MIRROR(0x03E0) |
| 67 | AM_RANGE( 0x1FE008, 0x1FE00F) AM_READWRITE( vpc_r, vpc_w ) AM_MIRROR(0x03E0) |
| 68 | AM_RANGE( 0x1FE010, 0x1FE017) AM_READWRITE( vdc_1_r, vdc_1_w ) AM_MIRROR(0x03E0) |
| 69 | AM_RANGE( 0x1FE400, 0x1FE7FF) AM_READWRITE( vce_r, vce_w ) |
| 70 | AM_RANGE( 0x1FE800, 0x1FEBFF) AM_READWRITE( C6280_r, C6280_0_w ) |
| 71 | AM_RANGE( 0x1FEC00, 0x1FEFFF) AM_READWRITE( H6280_timer_r, H6280_timer_w ) |
| 72 | AM_RANGE( 0x1FF000, 0x1FF3FF) AM_READWRITE( pce_joystick_r, pce_joystick_w ) |
| 73 | AM_RANGE( 0x1FF400, 0x1FF7FF) AM_READWRITE( H6280_irq_status_r, H6280_irq_status_w ) |
| 74 | AM_RANGE( 0x1FF800, 0x1FFBFF) AM_READWRITE( pce_cd_intf_r, pce_cd_intf_w ) |
| 75 | ADDRESS_MAP_END |
| 76 | |
| 77 | ADDRESS_MAP_START( sgx_io , ADDRESS_SPACE_IO, 8) |
| 78 | AM_RANGE( 0x00, 0x03) AM_READWRITE( sgx_vdc_r, sgx_vdc_w ) |
| 79 | ADDRESS_MAP_END |
| 80 | |
| 61 | 81 | /* todo: alternate forms of input (multitap, mouse, etc.) */ |
| 62 | 82 | INPUT_PORTS_START( pce ) |
| 63 | 83 | |
| r988 | r989 | |
| 145 | 165 | MDRV_SOUND_ROUTE(1, "right", 1.00) |
| 146 | 166 | MACHINE_DRIVER_END |
| 147 | 167 | |
| 168 | static MACHINE_DRIVER_START( sgx ) |
| 169 | /* basic machine hardware */ |
| 170 | MDRV_CPU_ADD(H6280, MAIN_CLOCK/3) |
| 171 | MDRV_CPU_PROGRAM_MAP(sgx_mem, 0) |
| 172 | MDRV_CPU_IO_MAP(sgx_io, 0) |
| 173 | MDRV_CPU_VBLANK_INT(sgx_interrupt, VDC_LPF) |
| 174 | MDRV_SCREEN_REFRESH_RATE(60) |
| 175 | MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) |
| 176 | MDRV_INTERLEAVE(1) |
| 177 | |
| 178 | /* video hardware */ |
| 179 | MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) |
| 180 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 181 | MDRV_SCREEN_ADD("main",0) |
| 182 | MDRV_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242) |
| 183 | MDRV_PALETTE_LENGTH(1024) |
| 184 | MDRV_PALETTE_INIT( vce ) |
| 185 | MDRV_COLORTABLE_LENGTH(1024) |
| 186 | |
| 187 | MDRV_VIDEO_START( pce ) |
| 188 | MDRV_VIDEO_UPDATE( pce ) |
| 189 | |
| 190 | MDRV_NVRAM_HANDLER( pce ) |
| 191 | MDRV_SPEAKER_STANDARD_STEREO("left","right") |
| 192 | MDRV_SOUND_ADD(C6280, MAIN_CLOCK/6) |
| 193 | MDRV_SOUND_ROUTE(0, "left", 1.00) |
| 194 | MDRV_SOUND_ROUTE(1, "right", 1.00) |
| 195 | MACHINE_DRIVER_END |
| 196 | |
| 148 | 197 | static void pce_partialhash(char *dest, const unsigned char *data, |
| 149 | 198 | unsigned long length, unsigned int functions) |
| 150 | 199 | { |
| r988 | r989 | |
| 187 | 236 | |
| 188 | 237 | #define rom_pce NULL |
| 189 | 238 | #define rom_tg16 NULL |
| 239 | #define rom_sgx NULL |
| 190 | 240 | |
| 191 | 241 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ |
| 192 | 242 | CONS( 1987, pce, 0, 0, pce, pce, pce, pce, "Nippon Electronic Company", "PC Engine", GAME_IMPERFECT_SOUND ) |
| 193 | 243 | CONS( 1989, tg16, pce, 0, pce, pce, tg16, pce, "Nippon Electronic Company", "TurboGrafx 16", GAME_IMPERFECT_SOUND ) |
| 244 | CONS( 1989, sgx, pce, 0, sgx, pce, sgx, pce, "Nippon Electronic Company", "SuperGrafx", GAME_NOT_WORKING ) |
| 194 | 245 | |