trunk/src/mame/drivers/stv.c
| r21325 | r21326 | |
| 60 | 60 | 0x001f PORT-AD |
| 61 | 61 | */ |
| 62 | 62 | |
| 63 | | READ8_MEMBER(saturn_state::stv_ioga_r) |
| 63 | READ8_MEMBER(stv_state::stv_ioga_r) |
| 64 | 64 | { |
| 65 | 65 | UINT8 res; |
| 66 | 66 | |
| r21325 | r21326 | |
| 84 | 84 | return res; |
| 85 | 85 | } |
| 86 | 86 | |
| 87 | | WRITE8_MEMBER(saturn_state::stv_ioga_w) |
| 87 | WRITE8_MEMBER(stv_state::stv_ioga_w) |
| 88 | 88 | { |
| 89 | 89 | offset &= 0x1f; // mirror? |
| 90 | 90 | |
| r21325 | r21326 | |
| 104 | 104 | } |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | | READ8_MEMBER(saturn_state::critcrsh_ioga_r) |
| 107 | READ8_MEMBER(stv_state::critcrsh_ioga_r) |
| 108 | 108 | { |
| 109 | 109 | UINT8 res; |
| 110 | 110 | const char *const lgnames[] = { "LIGHTX", "LIGHTY" }; |
| r21325 | r21326 | |
| 125 | 125 | return res; |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | | READ8_MEMBER(saturn_state::magzun_ioga_r) |
| 128 | READ8_MEMBER(stv_state::magzun_ioga_r) |
| 129 | 129 | { |
| 130 | 130 | UINT8 res; |
| 131 | 131 | |
| r21325 | r21326 | |
| 150 | 150 | return res; |
| 151 | 151 | } |
| 152 | 152 | |
| 153 | | WRITE8_MEMBER(saturn_state::magzun_ioga_w) |
| 153 | WRITE8_MEMBER(stv_state::magzun_ioga_w) |
| 154 | 154 | { |
| 155 | 155 | switch(offset) |
| 156 | 156 | { |
| r21325 | r21326 | |
| 160 | 160 | } |
| 161 | 161 | } |
| 162 | 162 | |
| 163 | | READ8_MEMBER(saturn_state::stvmp_ioga_r) |
| 163 | READ8_MEMBER(stv_state::stvmp_ioga_r) |
| 164 | 164 | { |
| 165 | 165 | const char *const mpnames[2][5] = { |
| 166 | 166 | {"P1_KEY0", "P1_KEY1", "P1_KEY2", "P1_KEY3", "P1_KEY4"}, |
| r21325 | r21326 | |
| 192 | 192 | return res; |
| 193 | 193 | } |
| 194 | 194 | |
| 195 | | WRITE8_MEMBER(saturn_state::stvmp_ioga_w) |
| 195 | WRITE8_MEMBER(stv_state::stvmp_ioga_w) |
| 196 | 196 | { |
| 197 | 197 | switch(offset) |
| 198 | 198 | { |
| r21325 | r21326 | |
| 203 | 203 | } |
| 204 | 204 | |
| 205 | 205 | /* remaps with a 8-bit handler because MAME can't install r/w handlers with a different bus parallelism than the CPU native one, shrug ... */ |
| 206 | | READ32_MEMBER(saturn_state::stv_ioga_r32) |
| 206 | READ32_MEMBER(stv_state::stv_ioga_r32) |
| 207 | 207 | { |
| 208 | 208 | UINT32 res; |
| 209 | 209 | |
| r21325 | r21326 | |
| 219 | 219 | return res; |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | | WRITE32_MEMBER(saturn_state::stv_ioga_w32) |
| 222 | WRITE32_MEMBER(stv_state::stv_ioga_w32) |
| 223 | 223 | { |
| 224 | 224 | if(ACCESSING_BITS_16_23) |
| 225 | 225 | stv_ioga_w(space,offset*4+1,data >> 16); |
| r21325 | r21326 | |
| 232 | 232 | return; |
| 233 | 233 | } |
| 234 | 234 | |
| 235 | | READ32_MEMBER(saturn_state::critcrsh_ioga_r32) |
| 235 | READ32_MEMBER(stv_state::critcrsh_ioga_r32) |
| 236 | 236 | { |
| 237 | 237 | UINT32 res; |
| 238 | 238 | |
| r21325 | r21326 | |
| 249 | 249 | return res; |
| 250 | 250 | } |
| 251 | 251 | |
| 252 | | READ32_MEMBER(saturn_state::stvmp_ioga_r32) |
| 252 | READ32_MEMBER(stv_state::stvmp_ioga_r32) |
| 253 | 253 | { |
| 254 | 254 | UINT32 res; |
| 255 | 255 | |
| r21325 | r21326 | |
| 266 | 266 | return res; |
| 267 | 267 | } |
| 268 | 268 | |
| 269 | | WRITE32_MEMBER(saturn_state::stvmp_ioga_w32) |
| 269 | WRITE32_MEMBER(stv_state::stvmp_ioga_w32) |
| 270 | 270 | { |
| 271 | 271 | if(ACCESSING_BITS_16_23) |
| 272 | 272 | stvmp_ioga_w(space,offset*4+1,data >> 16); |
| r21325 | r21326 | |
| 278 | 278 | printf("Warning: IOGA writes to odd offset %02x (%08x) -> %08x!",offset*4,mem_mask,data); |
| 279 | 279 | } |
| 280 | 280 | |
| 281 | | READ32_MEMBER(saturn_state::magzun_ioga_r32) |
| 281 | READ32_MEMBER(stv_state::magzun_ioga_r32) |
| 282 | 282 | { |
| 283 | 283 | UINT32 res; |
| 284 | 284 | |
| r21325 | r21326 | |
| 295 | 295 | return res; |
| 296 | 296 | } |
| 297 | 297 | |
| 298 | | WRITE32_MEMBER(saturn_state::magzun_ioga_w32) |
| 298 | WRITE32_MEMBER(stv_state::magzun_ioga_w32) |
| 299 | 299 | { |
| 300 | 300 | if(ACCESSING_BITS_16_23) |
| 301 | 301 | magzun_ioga_w(space,offset*4+1,data >> 16); |
| r21325 | r21326 | |
| 327 | 327 | |
| 328 | 328 | */ |
| 329 | 329 | |
| 330 | | void saturn_state::install_stvbios_speedups( void ) |
| 330 | void stv_state::install_stvbios_speedups( void ) |
| 331 | 331 | { |
| 332 | 332 | // flushes 0 & 1 on both CPUs are for the BIOS speedups |
| 333 | 333 | sh2drc_add_pcflush(machine().device("maincpu"), 0x60154b2); |
| r21325 | r21326 | |
| 337 | 337 | sh2drc_add_pcflush(machine().device("slave"), 0x6013aee); |
| 338 | 338 | } |
| 339 | 339 | |
| 340 | | DRIVER_INIT_MEMBER(saturn_state,stv) |
| 340 | DRIVER_INIT_MEMBER(stv_state,stv) |
| 341 | 341 | { |
| 342 | 342 | system_time systime; |
| 343 | 343 | |
| r21325 | r21326 | |
| 361 | 361 | sh2drc_set_options(machine().device("maincpu"), SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL); |
| 362 | 362 | sh2drc_set_options(machine().device("slave"), SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL); |
| 363 | 363 | |
| 364 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(saturn_state::stv_ioga_r32),this), write32_delegate(FUNC(saturn_state::stv_ioga_w32),this)); |
| 365 | | machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(saturn_state::stv_ioga_r32),this), write32_delegate(FUNC(saturn_state::stv_ioga_w32),this)); |
| 364 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this)); |
| 365 | machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this)); |
| 366 | 366 | |
| 367 | 367 | m_vdp2.pal = 0; |
| 368 | 368 | } |
| 369 | 369 | |
| 370 | | DRIVER_INIT_MEMBER(saturn_state,critcrsh) |
| 370 | DRIVER_INIT_MEMBER(stv_state,critcrsh) |
| 371 | 371 | { |
| 372 | 372 | DRIVER_INIT_CALL(stv); |
| 373 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(saturn_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(saturn_state::stv_ioga_w32),this)); |
| 374 | | machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(saturn_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(saturn_state::stv_ioga_w32),this)); |
| 373 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this)); |
| 374 | machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this)); |
| 375 | 375 | } |
| 376 | 376 | |
| 377 | 377 | /* |
| r21325 | r21326 | |
| 382 | 382 | TODO: game doesn't work if not in debugger? |
| 383 | 383 | */ |
| 384 | 384 | |
| 385 | | READ32_MEMBER(saturn_state::magzun_hef_hack_r) |
| 385 | READ32_MEMBER(stv_state::magzun_hef_hack_r) |
| 386 | 386 | { |
| 387 | 387 | if(space.device().safe_pc()==0x604bf20) return 0x00000001; //HWEF |
| 388 | 388 | |
| r21325 | r21326 | |
| 391 | 391 | return m_workram_h[0x08e830/4]; |
| 392 | 392 | } |
| 393 | 393 | |
| 394 | | READ32_MEMBER(saturn_state::magzun_rx_hack_r) |
| 394 | READ32_MEMBER(stv_state::magzun_rx_hack_r) |
| 395 | 395 | { |
| 396 | 396 | if(space.device().safe_pc()==0x604c006) return 0x40; |
| 397 | 397 | |
| 398 | 398 | return m_workram_h[0x0ff3b4/4]; |
| 399 | 399 | } |
| 400 | 400 | |
| 401 | | DRIVER_INIT_MEMBER(saturn_state,magzun) |
| 401 | DRIVER_INIT_MEMBER(stv_state,magzun) |
| 402 | 402 | { |
| 403 | 403 | sh2drc_add_pcflush(machine().device("maincpu"), 0x604bf20); |
| 404 | 404 | sh2drc_add_pcflush(machine().device("maincpu"), 0x604bfbe); |
| r21325 | r21326 | |
| 406 | 406 | |
| 407 | 407 | DRIVER_INIT_CALL(stv); |
| 408 | 408 | |
| 409 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(saturn_state::magzun_ioga_r32),this), write32_delegate(FUNC(saturn_state::magzun_ioga_w32),this)); |
| 410 | | machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(saturn_state::magzun_ioga_r32),this), write32_delegate(FUNC(saturn_state::magzun_ioga_w32),this)); |
| 409 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::magzun_ioga_r32),this), write32_delegate(FUNC(stv_state::magzun_ioga_w32),this)); |
| 410 | machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::magzun_ioga_r32),this), write32_delegate(FUNC(stv_state::magzun_ioga_w32),this)); |
| 411 | 411 | |
| 412 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x608e830, 0x608e833, read32_delegate(FUNC(saturn_state::magzun_hef_hack_r),this)); |
| 413 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x60ff3b4, 0x60ff3b7, read32_delegate(FUNC(saturn_state::magzun_rx_hack_r),this)); |
| 412 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x608e830, 0x608e833, read32_delegate(FUNC(stv_state::magzun_hef_hack_r),this)); |
| 413 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x60ff3b4, 0x60ff3b7, read32_delegate(FUNC(stv_state::magzun_rx_hack_r),this)); |
| 414 | 414 | |
| 415 | 415 | /* Program ROM patches, don't understand how to avoid these two checks ... */ |
| 416 | 416 | { |
| r21325 | r21326 | |
| 423 | 423 | } |
| 424 | 424 | |
| 425 | 425 | |
| 426 | | DRIVER_INIT_MEMBER(saturn_state,stvmp) |
| 426 | DRIVER_INIT_MEMBER(stv_state,stvmp) |
| 427 | 427 | { |
| 428 | 428 | DRIVER_INIT_CALL(stv); |
| 429 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(saturn_state::stvmp_ioga_r32),this), write32_delegate(FUNC(saturn_state::stvmp_ioga_w32),this)); |
| 430 | | machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(saturn_state::stvmp_ioga_r32),this), write32_delegate(FUNC(saturn_state::stvmp_ioga_w32),this)); |
| 429 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stvmp_ioga_r32),this), write32_delegate(FUNC(stv_state::stvmp_ioga_w32),this)); |
| 430 | machine().device("slave")->memory().space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stvmp_ioga_r32),this), write32_delegate(FUNC(stv_state::stvmp_ioga_w32),this)); |
| 431 | 431 | } |
| 432 | 432 | |
| 433 | 433 | |
| 434 | | DRIVER_INIT_MEMBER(saturn_state,shienryu) |
| 434 | DRIVER_INIT_MEMBER(stv_state,shienryu) |
| 435 | 435 | { |
| 436 | 436 | // master |
| 437 | 437 | sh2drc_add_pcflush(machine().device("maincpu"), 0x60041c6); |
| r21325 | r21326 | |
| 441 | 441 | DRIVER_INIT_CALL(stv); |
| 442 | 442 | } |
| 443 | 443 | |
| 444 | | DRIVER_INIT_MEMBER(saturn_state,prikura) |
| 444 | DRIVER_INIT_MEMBER(stv_state,prikura) |
| 445 | 445 | { |
| 446 | 446 | /* |
| 447 | 447 | 06018640: MOV.B @R14,R0 // 60b9228 |
| r21325 | r21326 | |
| 462 | 462 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 463 | 463 | } |
| 464 | 464 | |
| 465 | | DRIVER_INIT_MEMBER(saturn_state,hanagumi) |
| 465 | DRIVER_INIT_MEMBER(stv_state,hanagumi) |
| 466 | 466 | { |
| 467 | 467 | /* |
| 468 | 468 | 06013E1E: NOP |
| r21325 | r21326 | |
| 505 | 505 | |
| 506 | 506 | */ |
| 507 | 507 | |
| 508 | | DRIVER_INIT_MEMBER(saturn_state,puyosun) |
| 508 | DRIVER_INIT_MEMBER(stv_state,puyosun) |
| 509 | 509 | { |
| 510 | 510 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6021cf0); |
| 511 | 511 | |
| r21325 | r21326 | |
| 527 | 527 | |
| 528 | 528 | */ |
| 529 | 529 | |
| 530 | | DRIVER_INIT_MEMBER(saturn_state,mausuke) |
| 530 | DRIVER_INIT_MEMBER(stv_state,mausuke) |
| 531 | 531 | { |
| 532 | 532 | sh2drc_add_pcflush(machine().device("maincpu"), 0x60461A0); |
| 533 | 533 | |
| r21325 | r21326 | |
| 537 | 537 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 538 | 538 | } |
| 539 | 539 | |
| 540 | | DRIVER_INIT_MEMBER(saturn_state,cottonbm) |
| 540 | DRIVER_INIT_MEMBER(stv_state,cottonbm) |
| 541 | 541 | { |
| 542 | 542 | // sh2drc_add_pcflush(machine().device("maincpu"), 0x6030ee2); |
| 543 | 543 | // sh2drc_add_pcflush(machine().device("slave"), 0x6032b52); |
| r21325 | r21326 | |
| 547 | 547 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(10); |
| 548 | 548 | } |
| 549 | 549 | |
| 550 | | DRIVER_INIT_MEMBER(saturn_state,cotton2) |
| 550 | DRIVER_INIT_MEMBER(stv_state,cotton2) |
| 551 | 551 | { |
| 552 | 552 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6031c7a); |
| 553 | 553 | sh2drc_add_pcflush(machine().device("slave"), 0x60338ea); |
| r21325 | r21326 | |
| 557 | 557 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 558 | 558 | } |
| 559 | 559 | |
| 560 | | DRIVER_INIT_MEMBER(saturn_state,dnmtdeka) |
| 560 | DRIVER_INIT_MEMBER(stv_state,dnmtdeka) |
| 561 | 561 | { |
| 562 | 562 | // install all 3 speedups on both master and slave |
| 563 | 563 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6027c90); |
| r21325 | r21326 | |
| 571 | 571 | DRIVER_INIT_CALL(stv); |
| 572 | 572 | } |
| 573 | 573 | |
| 574 | | DRIVER_INIT_MEMBER(saturn_state,diehard) |
| 574 | DRIVER_INIT_MEMBER(stv_state,diehard) |
| 575 | 575 | { |
| 576 | 576 | // install all 3 speedups on both master and slave |
| 577 | 577 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6027c98); |
| r21325 | r21326 | |
| 585 | 585 | DRIVER_INIT_CALL(stv); |
| 586 | 586 | } |
| 587 | 587 | |
| 588 | | DRIVER_INIT_MEMBER(saturn_state,fhboxers) |
| 588 | DRIVER_INIT_MEMBER(stv_state,fhboxers) |
| 589 | 589 | { |
| 590 | 590 | sh2drc_add_pcflush(machine().device("maincpu"), 0x60041c2); |
| 591 | 591 | sh2drc_add_pcflush(machine().device("maincpu"), 0x600bb0a); |
| r21325 | r21326 | |
| 596 | 596 | // m_instadma_hack = 1; |
| 597 | 597 | } |
| 598 | 598 | |
| 599 | | DRIVER_INIT_MEMBER(saturn_state,groovef) |
| 599 | DRIVER_INIT_MEMBER(stv_state,groovef) |
| 600 | 600 | { |
| 601 | 601 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6005e7c); |
| 602 | 602 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6005e86); |
| r21325 | r21326 | |
| 610 | 610 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 611 | 611 | } |
| 612 | 612 | |
| 613 | | DRIVER_INIT_MEMBER(saturn_state,danchih) |
| 613 | DRIVER_INIT_MEMBER(stv_state,danchih) |
| 614 | 614 | { |
| 615 | 615 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6028b28); |
| 616 | 616 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6028c8e); |
| r21325 | r21326 | |
| 621 | 621 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); |
| 622 | 622 | } |
| 623 | 623 | |
| 624 | | DRIVER_INIT_MEMBER(saturn_state,danchiq) |
| 624 | DRIVER_INIT_MEMBER(stv_state,danchiq) |
| 625 | 625 | { |
| 626 | 626 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6028b28); |
| 627 | 627 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6028c8e); |
| r21325 | r21326 | |
| 632 | 632 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); |
| 633 | 633 | } |
| 634 | 634 | |
| 635 | | DRIVER_INIT_MEMBER(saturn_state,astrass) |
| 635 | DRIVER_INIT_MEMBER(stv_state,astrass) |
| 636 | 636 | { |
| 637 | 637 | sh2drc_add_pcflush(machine().device("maincpu"), 0x60011ba); |
| 638 | 638 | sh2drc_add_pcflush(machine().device("maincpu"), 0x605b9da); |
| r21325 | r21326 | |
| 642 | 642 | DRIVER_INIT_CALL(stv); |
| 643 | 643 | } |
| 644 | 644 | |
| 645 | | DRIVER_INIT_MEMBER(saturn_state,thunt) |
| 645 | DRIVER_INIT_MEMBER(stv_state,thunt) |
| 646 | 646 | { |
| 647 | 647 | sh2drc_add_pcflush(machine().device("maincpu"), 0x602A024); |
| 648 | 648 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6013EEA); |
| r21325 | r21326 | |
| 653 | 653 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(1); |
| 654 | 654 | } |
| 655 | 655 | |
| 656 | | DRIVER_INIT_MEMBER(saturn_state,sandor) |
| 656 | DRIVER_INIT_MEMBER(stv_state,sandor) |
| 657 | 657 | { |
| 658 | 658 | sh2drc_add_pcflush(machine().device("maincpu"), 0x602a0f8); |
| 659 | 659 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6013fbe); |
| r21325 | r21326 | |
| 663 | 663 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(1); |
| 664 | 664 | } |
| 665 | 665 | |
| 666 | | DRIVER_INIT_MEMBER(saturn_state,grdforce) |
| 666 | DRIVER_INIT_MEMBER(stv_state,grdforce) |
| 667 | 667 | { |
| 668 | 668 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6041e32); |
| 669 | 669 | sh2drc_add_pcflush(machine().device("slave"), 0x6043aa2); |
| r21325 | r21326 | |
| 673 | 673 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 674 | 674 | } |
| 675 | 675 | |
| 676 | | DRIVER_INIT_MEMBER(saturn_state,batmanfr) |
| 676 | DRIVER_INIT_MEMBER(stv_state,batmanfr) |
| 677 | 677 | { |
| 678 | 678 | sh2drc_add_pcflush(machine().device("maincpu"), 0x60121c0); |
| 679 | 679 | sh2drc_add_pcflush(machine().device("slave"), 0x60125bc); |
| r21325 | r21326 | |
| 684 | 684 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 685 | 685 | } |
| 686 | 686 | |
| 687 | | DRIVER_INIT_MEMBER(saturn_state,colmns97) |
| 687 | DRIVER_INIT_MEMBER(stv_state,colmns97) |
| 688 | 688 | { |
| 689 | 689 | sh2drc_add_pcflush(machine().device("slave"), 0x60298a2); |
| 690 | 690 | |
| r21325 | r21326 | |
| 693 | 693 | m_minit_boost = m_sinit_boost = 0; |
| 694 | 694 | } |
| 695 | 695 | |
| 696 | | DRIVER_INIT_MEMBER(saturn_state,winterht) |
| 696 | DRIVER_INIT_MEMBER(stv_state,winterht) |
| 697 | 697 | { |
| 698 | 698 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6098aea); |
| 699 | 699 | sh2drc_add_pcflush(machine().device("slave"), 0x609ae4e); |
| r21325 | r21326 | |
| 703 | 703 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(2); |
| 704 | 704 | } |
| 705 | 705 | |
| 706 | | DRIVER_INIT_MEMBER(saturn_state,seabass) |
| 706 | DRIVER_INIT_MEMBER(stv_state,seabass) |
| 707 | 707 | { |
| 708 | 708 | sh2drc_add_pcflush(machine().device("maincpu"), 0x602cbfa); |
| 709 | 709 | sh2drc_add_pcflush(machine().device("slave"), 0x60321ee); |
| r21325 | r21326 | |
| 713 | 713 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); |
| 714 | 714 | } |
| 715 | 715 | |
| 716 | | DRIVER_INIT_MEMBER(saturn_state,vfremix) |
| 716 | DRIVER_INIT_MEMBER(stv_state,vfremix) |
| 717 | 717 | { |
| 718 | 718 | sh2drc_add_pcflush(machine().device("maincpu"), 0x602c30c); |
| 719 | 719 | sh2drc_add_pcflush(machine().device("slave"), 0x604c332); |
| r21325 | r21326 | |
| 723 | 723 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(20); |
| 724 | 724 | } |
| 725 | 725 | |
| 726 | | DRIVER_INIT_MEMBER(saturn_state,sss) |
| 726 | DRIVER_INIT_MEMBER(stv_state,sss) |
| 727 | 727 | { |
| 728 | 728 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6026398); |
| 729 | 729 | sh2drc_add_pcflush(machine().device("slave"), 0x6028cd6); |
| r21325 | r21326 | |
| 735 | 735 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 736 | 736 | } |
| 737 | 737 | |
| 738 | | DRIVER_INIT_MEMBER(saturn_state,othellos) |
| 738 | DRIVER_INIT_MEMBER(stv_state,othellos) |
| 739 | 739 | { |
| 740 | 740 | sh2drc_add_pcflush(machine().device("maincpu"), 0x602bcbe); |
| 741 | 741 | sh2drc_add_pcflush(machine().device("slave"), 0x602d92e); |
| r21325 | r21326 | |
| 745 | 745 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 746 | 746 | } |
| 747 | 747 | |
| 748 | | DRIVER_INIT_MEMBER(saturn_state,sasissu) |
| 748 | DRIVER_INIT_MEMBER(stv_state,sasissu) |
| 749 | 749 | { |
| 750 | 750 | sh2drc_add_pcflush(machine().device("slave"), 0x60710be); |
| 751 | 751 | |
| r21325 | r21326 | |
| 754 | 754 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(2); |
| 755 | 755 | } |
| 756 | 756 | |
| 757 | | DRIVER_INIT_MEMBER(saturn_state,gaxeduel) |
| 757 | DRIVER_INIT_MEMBER(stv_state,gaxeduel) |
| 758 | 758 | { |
| 759 | 759 | // sh2drc_add_pcflush(machine().device("maincpu"), 0x6012ee4); |
| 760 | 760 | |
| 761 | 761 | DRIVER_INIT_CALL(stv); |
| 762 | 762 | } |
| 763 | 763 | |
| 764 | | DRIVER_INIT_MEMBER(saturn_state,suikoenb) |
| 764 | DRIVER_INIT_MEMBER(stv_state,suikoenb) |
| 765 | 765 | { |
| 766 | 766 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6013f7a); |
| 767 | 767 | |
| r21325 | r21326 | |
| 769 | 769 | } |
| 770 | 770 | |
| 771 | 771 | |
| 772 | | DRIVER_INIT_MEMBER(saturn_state,sokyugrt) |
| 772 | DRIVER_INIT_MEMBER(stv_state,sokyugrt) |
| 773 | 773 | { |
| 774 | 774 | DRIVER_INIT_CALL(stv); |
| 775 | 775 | |
| 776 | 776 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 777 | 777 | } |
| 778 | 778 | |
| 779 | | DRIVER_INIT_MEMBER(saturn_state,znpwfv) |
| 779 | DRIVER_INIT_MEMBER(stv_state,znpwfv) |
| 780 | 780 | { |
| 781 | 781 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6012ec2); |
| 782 | 782 | sh2drc_add_pcflush(machine().device("slave"), 0x60175a6); |
| r21325 | r21326 | |
| 785 | 785 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_nsec(500); |
| 786 | 786 | } |
| 787 | 787 | |
| 788 | | DRIVER_INIT_MEMBER(saturn_state,twcup98) |
| 788 | DRIVER_INIT_MEMBER(stv_state,twcup98) |
| 789 | 789 | { |
| 790 | 790 | sh2drc_add_pcflush(machine().device("maincpu"), 0x605edde); |
| 791 | 791 | sh2drc_add_pcflush(machine().device("slave"), 0x6062bca); |
| r21325 | r21326 | |
| 796 | 796 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); |
| 797 | 797 | } |
| 798 | 798 | |
| 799 | | DRIVER_INIT_MEMBER(saturn_state,smleague) |
| 799 | DRIVER_INIT_MEMBER(stv_state,smleague) |
| 800 | 800 | { |
| 801 | 801 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6063bf4); |
| 802 | 802 | sh2drc_add_pcflush(machine().device("slave"), 0x6062bca); |
| r21325 | r21326 | |
| 808 | 808 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5000); |
| 809 | 809 | } |
| 810 | 810 | |
| 811 | | DRIVER_INIT_MEMBER(saturn_state,finlarch) |
| 811 | DRIVER_INIT_MEMBER(stv_state,finlarch) |
| 812 | 812 | { |
| 813 | 813 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6064d60); |
| 814 | 814 | |
| r21325 | r21326 | |
| 819 | 819 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5000); |
| 820 | 820 | } |
| 821 | 821 | |
| 822 | | DRIVER_INIT_MEMBER(saturn_state,maruchan) |
| 822 | DRIVER_INIT_MEMBER(stv_state,maruchan) |
| 823 | 823 | { |
| 824 | 824 | sh2drc_add_pcflush(machine().device("maincpu"), 0x601ba46); |
| 825 | 825 | sh2drc_add_pcflush(machine().device("slave"), 0x601ba46); |
| r21325 | r21326 | |
| 829 | 829 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); |
| 830 | 830 | } |
| 831 | 831 | |
| 832 | | DRIVER_INIT_MEMBER(saturn_state,pblbeach) |
| 832 | DRIVER_INIT_MEMBER(stv_state,pblbeach) |
| 833 | 833 | { |
| 834 | 834 | sh2drc_add_pcflush(machine().device("maincpu"), 0x605eb78); |
| 835 | 835 | |
| 836 | 836 | DRIVER_INIT_CALL(stv); |
| 837 | 837 | } |
| 838 | 838 | |
| 839 | | DRIVER_INIT_MEMBER(saturn_state,shanhigw) |
| 839 | DRIVER_INIT_MEMBER(stv_state,shanhigw) |
| 840 | 840 | { |
| 841 | 841 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6020c5c); |
| 842 | 842 | |
| 843 | 843 | DRIVER_INIT_CALL(stv); |
| 844 | 844 | } |
| 845 | 845 | |
| 846 | | DRIVER_INIT_MEMBER(saturn_state,elandore) |
| 846 | DRIVER_INIT_MEMBER(stv_state,elandore) |
| 847 | 847 | { |
| 848 | 848 | sh2drc_add_pcflush(machine().device("maincpu"), 0x604eac0); |
| 849 | 849 | sh2drc_add_pcflush(machine().device("slave"), 0x605340a); |
| r21325 | r21326 | |
| 854 | 854 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(0); |
| 855 | 855 | } |
| 856 | 856 | |
| 857 | | DRIVER_INIT_MEMBER(saturn_state,rsgun) |
| 857 | DRIVER_INIT_MEMBER(stv_state,rsgun) |
| 858 | 858 | { |
| 859 | 859 | sh2drc_add_pcflush(machine().device("maincpu"), 0x6034d04); |
| 860 | 860 | sh2drc_add_pcflush(machine().device("slave"), 0x6036152); |
| r21325 | r21326 | |
| 866 | 866 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(20); |
| 867 | 867 | } |
| 868 | 868 | |
| 869 | | DRIVER_INIT_MEMBER(saturn_state,ffreveng) |
| 869 | DRIVER_INIT_MEMBER(stv_state,ffreveng) |
| 870 | 870 | { |
| 871 | 871 | install_ffreveng_protection(machine()); |
| 872 | 872 | DRIVER_INIT_CALL(stv); |
| 873 | 873 | } |
| 874 | 874 | |
| 875 | | DRIVER_INIT_MEMBER(saturn_state,decathlt) |
| 875 | DRIVER_INIT_MEMBER(stv_state,decathlt) |
| 876 | 876 | { |
| 877 | 877 | install_decathlt_protection(machine()); |
| 878 | 878 | DRIVER_INIT_CALL(stv); |
| 879 | 879 | } |
| 880 | 880 | |
| 881 | | DRIVER_INIT_MEMBER(saturn_state,nameclv3) |
| 881 | DRIVER_INIT_MEMBER(stv_state,nameclv3) |
| 882 | 882 | { |
| 883 | 883 | sh2drc_add_pcflush(machine().device("maincpu"), 0x601eb4c); |
| 884 | 884 | sh2drc_add_pcflush(machine().device("slave"), 0x602b80e); |
| r21325 | r21326 | |
| 897 | 897 | DEVCB_DRIVER_LINE_MEMBER(saturn_state, scsp_to_main_irq) |
| 898 | 898 | }; |
| 899 | 899 | |
| 900 | | static ADDRESS_MAP_START( stv_mem, AS_PROGRAM, 32, saturn_state ) |
| 900 | static ADDRESS_MAP_START( stv_mem, AS_PROGRAM, 32, stv_state ) |
| 901 | 901 | AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_SHARE("share6") // bios |
| 902 | 902 | AM_RANGE(0x00100000, 0x0010007f) AM_READWRITE8_LEGACY(stv_SMPC_r, stv_SMPC_w,0xffffffff) |
| 903 | 903 | AM_RANGE(0x00180000, 0x0018ffff) AM_READWRITE8(saturn_backupram_r,saturn_backupram_w,0xffffffff) AM_SHARE("share1") |
| r21325 | r21326 | |
| 924 | 924 | AM_RANGE(0xc0000000, 0xc00007ff) AM_RAM // cache RAM |
| 925 | 925 | ADDRESS_MAP_END |
| 926 | 926 | |
| 927 | | static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 16, saturn_state ) |
| 927 | static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 16, stv_state ) |
| 928 | 928 | AM_RANGE(0x000000, 0x0fffff) AM_RAM AM_SHARE("sound_ram") |
| 929 | 929 | AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE_LEGACY("scsp", scsp_r, scsp_w) |
| 930 | 930 | ADDRESS_MAP_END |
| r21325 | r21326 | |
| 935 | 935 | MCFG_CPU_ADD("maincpu", SH2, MASTER_CLOCK_352/2) // 28.6364 MHz |
| 936 | 936 | MCFG_CPU_PROGRAM_MAP(stv_mem) |
| 937 | 937 | MCFG_CPU_CONFIG(sh2_conf_master) |
| 938 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", saturn_state, saturn_scanline, "screen", 0, 1) |
| 938 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", stv_state, saturn_scanline, "screen", 0, 1) |
| 939 | 939 | |
| 940 | 940 | MCFG_CPU_ADD("slave", SH2, MASTER_CLOCK_352/2) // 28.6364 MHz |
| 941 | 941 | MCFG_CPU_PROGRAM_MAP(stv_mem) |
| 942 | 942 | MCFG_CPU_CONFIG(sh2_conf_slave) |
| 943 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("slave_scantimer", saturn_state, saturn_slave_scanline, "screen", 0, 1) |
| 943 | MCFG_TIMER_DRIVER_ADD_SCANLINE("slave_scantimer", stv_state, saturn_slave_scanline, "screen", 0, 1) |
| 944 | 944 | |
| 945 | 945 | MCFG_CPU_ADD("audiocpu", M68000, 11289600) //11.2896 MHz |
| 946 | 946 | MCFG_CPU_PROGRAM_MAP(sound_mem) |
| 947 | 947 | |
| 948 | | MCFG_MACHINE_START_OVERRIDE(saturn_state,stv) |
| 949 | | MCFG_MACHINE_RESET_OVERRIDE(saturn_state,stv) |
| 948 | MCFG_MACHINE_START_OVERRIDE(stv_state,stv) |
| 949 | MCFG_MACHINE_RESET_OVERRIDE(stv_state,stv) |
| 950 | 950 | |
| 951 | 951 | MCFG_EEPROM_93C46_ADD("eeprom") /* Actually 93c45 */ |
| 952 | 952 | |
| 953 | | MCFG_TIMER_DRIVER_ADD("sector_timer", saturn_state, stv_sector_cb) |
| 954 | | MCFG_TIMER_DRIVER_ADD("sh1_cmd", saturn_state, stv_sh1_sim) |
| 953 | MCFG_TIMER_DRIVER_ADD("sector_timer", stv_state, stv_sector_cb) |
| 954 | MCFG_TIMER_DRIVER_ADD("sh1_cmd", stv_state, stv_sh1_sim) |
| 955 | 955 | |
| 956 | 956 | /* video hardware */ |
| 957 | 957 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) |
| 958 | 958 | MCFG_SCREEN_ADD("screen", RASTER) |
| 959 | 959 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224) |
| 960 | | MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_stv_vdp2) |
| 960 | MCFG_SCREEN_UPDATE_DRIVER(stv_state, screen_update_stv_vdp2) |
| 961 | 961 | MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. |
| 962 | 962 | |
| 963 | 963 | MCFG_GFXDECODE(stv) |
| 964 | 964 | |
| 965 | | MCFG_VIDEO_START_OVERRIDE(saturn_state,stv_vdp2) |
| 965 | MCFG_VIDEO_START_OVERRIDE(stv_state,stv_vdp2) |
| 966 | 966 | |
| 967 | 967 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 968 | 968 | |
| r21325 | r21326 | |
| 979 | 979 | #define MCFG_STV_CARTSLOT_ADD(_tag) \ |
| 980 | 980 | MCFG_CARTSLOT_ADD(_tag) \ |
| 981 | 981 | MCFG_CARTSLOT_INTERFACE("stv_cart") \ |
| 982 | | MCFG_CARTSLOT_LOAD(saturn_state,stv_cart) |
| 982 | MCFG_CARTSLOT_LOAD(stv_state,stv_cart) |
| 983 | 983 | |
| 984 | 984 | MACHINE_CONFIG_FRAGMENT( stv_cartslot ) |
| 985 | 985 | MCFG_STV_CARTSLOT_ADD("cart1") |
| r21325 | r21326 | |
| 1011 | 1011 | { 0 } |
| 1012 | 1012 | }; |
| 1013 | 1013 | |
| 1014 | | DEVICE_IMAGE_LOAD_MEMBER( saturn_state, stv_cart ) |
| 1014 | MACHINE_RESET_MEMBER(stv_state,stv) |
| 1015 | 1015 | { |
| 1016 | | // saturn_state *state = image.device().machine().driver_data<saturn_state>(); |
| 1016 | m_scsp_last_line = 0; |
| 1017 | |
| 1018 | // don't let the slave cpu and the 68k go anywhere |
| 1019 | machine().device("slave")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1020 | machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1021 | |
| 1022 | m_en_68k = 0; |
| 1023 | m_NMI_reset = 0; |
| 1024 | |
| 1025 | m_port_sel = m_mux_data = 0; |
| 1026 | |
| 1027 | machine().device("maincpu")->set_unscaled_clock(MASTER_CLOCK_320/2); |
| 1028 | machine().device("slave")->set_unscaled_clock(MASTER_CLOCK_320/2); |
| 1029 | |
| 1030 | stvcd_reset(); |
| 1031 | |
| 1032 | m_stv_rtc_timer->adjust(attotime::zero, 0, attotime::from_seconds(1)); |
| 1033 | m_prev_bankswitch = 0xff; |
| 1034 | |
| 1035 | scu_reset(); |
| 1036 | |
| 1037 | m_vdp2.old_crmd = -1; |
| 1038 | m_vdp2.old_tvmd = -1; |
| 1039 | } |
| 1040 | |
| 1041 | DEVICE_IMAGE_LOAD_MEMBER( stv_state, stv_cart ) |
| 1042 | { |
| 1043 | // stv_state *state = image.device().machine().driver_data<stv_state>(); |
| 1017 | 1044 | const struct stv_cart_region *stv_cart = &stv_cart_table[0], *this_cart; |
| 1018 | 1045 | //const char *pcb_name; |
| 1019 | 1046 | |
| r21325 | r21326 | |
| 1062 | 1089 | |
| 1063 | 1090 | |
| 1064 | 1091 | |
| 1092 | MACHINE_START_MEMBER(stv_state,stv) |
| 1093 | { |
| 1094 | system_time systime; |
| 1095 | machine().base_datetime(systime); |
| 1096 | |
| 1097 | m_maincpu = downcast<legacy_cpu_device*>( machine().device<cpu_device>("maincpu") ); |
| 1098 | m_slave = downcast<legacy_cpu_device*>( machine().device("slave") ); |
| 1099 | m_audiocpu = downcast<legacy_cpu_device*>( machine().device<cpu_device>("audiocpu") ); |
| 1100 | |
| 1101 | scsp_set_ram_base(machine().device("scsp"), m_sound_ram); |
| 1102 | |
| 1103 | // save states |
| 1104 | state_save_register_global_pointer(machine(), m_scu_regs, 0x100/4); |
| 1105 | state_save_register_global_pointer(machine(), m_scsp_regs, 0x1000/2); |
| 1106 | state_save_register_global(machine(), m_NMI_reset); |
| 1107 | state_save_register_global(machine(), m_en_68k); |
| 1108 | // state_save_register_global(machine(), scanline); |
| 1109 | state_save_register_global(machine(), m_smpc.IOSEL1); |
| 1110 | state_save_register_global(machine(), m_smpc.IOSEL2); |
| 1111 | state_save_register_global(machine(), m_smpc.EXLE1); |
| 1112 | state_save_register_global(machine(), m_smpc.EXLE2); |
| 1113 | state_save_register_global(machine(), m_smpc.PDR1); |
| 1114 | state_save_register_global(machine(), m_smpc.PDR2); |
| 1115 | state_save_register_global(machine(), m_port_sel); |
| 1116 | state_save_register_global(machine(), m_mux_data); |
| 1117 | state_save_register_global(machine(), m_scsp_last_line); |
| 1118 | |
| 1119 | stv_register_protection_savestates(machine()); // machine/stvprot.c |
| 1120 | |
| 1121 | machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(stv_state::stvcd_exit), this)); |
| 1122 | |
| 1123 | m_smpc.rtc_data[0] = DectoBCD(systime.local_time.year /100); |
| 1124 | m_smpc.rtc_data[1] = DectoBCD(systime.local_time.year %100); |
| 1125 | m_smpc.rtc_data[2] = (systime.local_time.weekday << 4) | (systime.local_time.month+1); |
| 1126 | m_smpc.rtc_data[3] = DectoBCD(systime.local_time.mday); |
| 1127 | m_smpc.rtc_data[4] = DectoBCD(systime.local_time.hour); |
| 1128 | m_smpc.rtc_data[5] = DectoBCD(systime.local_time.minute); |
| 1129 | m_smpc.rtc_data[6] = DectoBCD(systime.local_time.second); |
| 1130 | |
| 1131 | m_stv_rtc_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(stv_state::stv_rtc_increment),this)); |
| 1132 | |
| 1133 | m68k_set_reset_callback(m_audiocpu, &saturn_state::m68k_reset_callback); |
| 1134 | } |
| 1135 | |
| 1136 | |
| 1065 | 1137 | #define STV_PLAYER_INPUTS(_n_, _b1_, _b2_, _b3_,_b4_) \ |
| 1066 | 1138 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_##_b1_ ) PORT_PLAYER(_n_) \ |
| 1067 | 1139 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_##_b2_ ) PORT_PLAYER(_n_) \ |
| r21325 | r21326 | |
| 1532 | 1604 | by Sega titles,and this is a Sunsoft game)It's likely to be a left-over... |
| 1533 | 1605 | */ |
| 1534 | 1606 | |
| 1535 | | DRIVER_INIT_MEMBER(saturn_state,sanjeon) |
| 1607 | DRIVER_INIT_MEMBER(stv_state,sanjeon) |
| 1536 | 1608 | { |
| 1537 | 1609 | UINT8 *src = memregion ( "game0" )->base(); |
| 1538 | 1610 | int x; |
| r21325 | r21326 | |
| 2746 | 2818 | ROM_END |
| 2747 | 2819 | |
| 2748 | 2820 | |
| 2749 | | GAME( 1996, stvbios, 0, stv_slot, stv, saturn_state, stv, ROT0, "Sega", "ST-V Bios", GAME_IS_BIOS_ROOT ) |
| 2821 | GAME( 1996, stvbios, 0, stv_slot, stv, stv_state, stv, ROT0, "Sega", "ST-V Bios", GAME_IS_BIOS_ROOT ) |
| 2750 | 2822 | |
| 2751 | 2823 | //GAME YEAR, NAME, PARENT, MACH, INP, INIT, MONITOR |
| 2752 | 2824 | /* Playable */ |
| 2753 | | GAME( 1998, astrass, stvbios, stv, stv6b, saturn_state, astrass, ROT0, "Sunsoft", "Astra SuperStars (J 980514 V1.002)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2754 | | GAME( 1995, bakubaku, stvbios, stv, stv, saturn_state, stv, ROT0, "Sega", "Baku Baku Animal (J 950407 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2755 | | GAME( 1996, batmanfr, stvbios, stv, stv, saturn_state, batmanfr, ROT0, "Acclaim", "Batman Forever (JUE 960507 V1.000)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2756 | | GAME( 1996, colmns97, stvbios, stv, stv, saturn_state, colmns97, ROT0, "Sega", "Columns '97 (JET 961209 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2757 | | GAME( 1997, cotton2, stvbios, stv, stv, saturn_state, cotton2, ROT0, "Success", "Cotton 2 (JUET 970902 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2758 | | GAME( 1998, cottonbm, stvbios, stv, stv, saturn_state, cottonbm, ROT0, "Success", "Cotton Boomerang (JUET 980709 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2759 | | GAME( 1995, critcrsh, stvbios, stv, critcrsh, saturn_state, critcrsh, ROT0, "Sega", "Critter Crusher (EA 951204 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2760 | | GAME( 1999, danchih, stvbios, stv, stvmp, saturn_state, danchih, ROT0, "Altron (Tecmo license)", "Danchi de Hanafuda (J 990607 V1.400)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2761 | | GAME( 2000, danchiq, stvbios, stv, stv, saturn_state, danchiq, ROT0, "Altron", "Danchi de Quiz Okusan Yontaku Desuyo! (J 001128 V1.200)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2762 | | GAME( 1996, diehard, stvbios, stv, stv, saturn_state, diehard, ROT0, "Sega", "Die Hard Arcade (UET 960515 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2763 | | GAME( 1996, dnmtdeka, diehard, stv, stv, saturn_state, dnmtdeka, ROT0, "Sega", "Dynamite Deka (J 960515 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2764 | | GAME( 1995, ejihon, stvbios, stv, stv, saturn_state, stv, ROT0, "Sega", "Ejihon Tantei Jimusyo (J 950613 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2765 | | GAME( 1995, fhboxers, stvbios, stv, stv, saturn_state, fhboxers, ROT0, "Sega", "Funky Head Boxers (JUETBKAL 951218 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2766 | | GAME( 1997, findlove, stvbios, stv, stv, saturn_state, stv, ROT0, "Daiki / FCF", "Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2767 | | GAME( 1994, gaxeduel, stvbios, stv, stv6b, saturn_state, gaxeduel, ROT0, "Sega", "Golden Axe - The Duel (JUETL 950117 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS) |
| 2768 | | GAME( 1998, grdforce, stvbios, stv, stv, saturn_state, grdforce, ROT0, "Success", "Guardian Force (JUET 980318 V0.105)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2769 | | GAME( 1998, groovef, stvbios, stv, stv6b, saturn_state, groovef, ROT0, "Atlus", "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2770 | | GAME( 1997, hanagumi, stvbios, stv, stv, saturn_state, hanagumi, ROT0, "Sega", "Hanagumi Taisen Columns - Sakura Wars (J 971007 V1.010)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2771 | | GAME( 1996, introdon, stvbios, stv, stv, saturn_state, stv, ROT0, "Sunsoft / Success", "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2772 | | GAME( 1995, kiwames, stvbios, stv, stvmp, saturn_state, stvmp, ROT0, "Athena", "Pro Mahjong Kiwame S (J 951020 V1.208)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2773 | | GAME( 1997, maruchan, stvbios, stv, stv, saturn_state, maruchan, ROT0, "Sega / Toyosuisan", "Maru-Chan de Goo! (J 971216 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2774 | | GAME( 1996, mausuke, stvbios, stv, stv, saturn_state, mausuke, ROT0, "Data East", "Mausuke no Ojama the World (J 960314 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2775 | | GAME( 1998, myfairld, stvbios, stv, myfairld, saturn_state, stvmp, ROT0, "Micronet", "Virtual Mahjong 2 - My Fair Lady (J 980608 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2776 | | GAME( 1998, othellos, stvbios, stv, stv, saturn_state, othellos, ROT0, "Success", "Othello Shiyouyo (J 980423 V1.002)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2777 | | GAME( 1995, pblbeach, stvbios, stv, stv, saturn_state, pblbeach, ROT0, "T&E Soft", "Pebble Beach - The Great Shot (JUE 950913 V0.990)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2778 | | GAME( 1996, prikura, stvbios, stv, stv, saturn_state, prikura, ROT0, "Atlus", "Princess Clara Daisakusen (J 960910 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2779 | | GAME( 1996, puyosun, stvbios, stv, stv, saturn_state, puyosun, ROT0, "Compile", "Puyo Puyo Sun (J 961115 V0.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2780 | | GAME( 1998, rsgun, stvbios, stv, stv, saturn_state, rsgun, ROT0, "Treasure", "Radiant Silvergun (JUET 980523 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2781 | | GAME( 1998, sasissu, stvbios, stv, stv, saturn_state, sasissu, ROT0, "Sega", "Taisen Tanto-R Sashissu!! (J 980216 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2782 | | GAME( 1999, sanjeon, sasissu, stv, stv, saturn_state, sanjeon, ROT0, "Sega / Deniam", "DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2783 | | GAME( 1997, seabass, stvbios, stv, stv, saturn_state, seabass, ROT0, "A wave inc. (Able license)", "Sea Bass Fishing (JUET 971110 V0.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2784 | | GAME( 1995, shanhigw, stvbios, stv, stv, saturn_state, shanhigw, ROT0, "Sunsoft / Activision", "Shanghai - The Great Wall / Shanghai Triple Threat (JUE 950623 V1.005)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2785 | | GAME( 1997, shienryu, stvbios, stv, stv, saturn_state, shienryu, ROT270, "Warashi", "Shienryu (JUET 961226 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2786 | | GAME( 1998, sss, stvbios, stv, stv, saturn_state, sss, ROT0, "Capcom / Cave / Victor", "Steep Slope Sliders (JUET 981110 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2787 | | GAME( 1995, sandor, stvbios, stv, stv, saturn_state, sandor, ROT0, "Sega", "Puzzle & Action: Sando-R (J 951114 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2788 | | GAME( 1997, thunt, sandor, stv, stv, saturn_state, thunt, ROT0, "Sega", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2789 | | GAME( 1997, thuntk, sandor, stv, stv, saturn_state, sandor, ROT0, "Sega / Deniam", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2790 | | GAME( 1995, smleague, stvbios, stv, stv, saturn_state, smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2791 | | GAME( 1995, finlarch, smleague,stv, stv, saturn_state, finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2792 | | GAME( 1996, sokyugrt, stvbios, stv, stv, saturn_state, sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2793 | | GAME( 1995, suikoenb, stvbios, stv, stv6b, saturn_state, suikoenb, ROT0, "Data East", "Suikoenbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2794 | | GAME( 1996, vfkids, stvbios, stv, stv, saturn_state, stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2795 | | GAME( 1997, vmahjong, stvbios, stv, myfairld, saturn_state, stvmp, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2796 | | GAME( 1997, winterht, stvbios, stv, stv, saturn_state, winterht, ROT0, "Sega", "Winter Heat (JUET 971012 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2797 | | GAME( 1997, znpwfv, stvbios, stv, stv, saturn_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2825 | GAME( 1998, astrass, stvbios, stv, stv6b, stv_state, astrass, ROT0, "Sunsoft", "Astra SuperStars (J 980514 V1.002)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2826 | GAME( 1995, bakubaku, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Baku Baku Animal (J 950407 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2827 | GAME( 1996, batmanfr, stvbios, stv, stv, stv_state, batmanfr, ROT0, "Acclaim", "Batman Forever (JUE 960507 V1.000)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2828 | GAME( 1996, colmns97, stvbios, stv, stv, stv_state, colmns97, ROT0, "Sega", "Columns '97 (JET 961209 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2829 | GAME( 1997, cotton2, stvbios, stv, stv, stv_state, cotton2, ROT0, "Success", "Cotton 2 (JUET 970902 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2830 | GAME( 1998, cottonbm, stvbios, stv, stv, stv_state, cottonbm, ROT0, "Success", "Cotton Boomerang (JUET 980709 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2831 | GAME( 1995, critcrsh, stvbios, stv, critcrsh, stv_state, critcrsh, ROT0, "Sega", "Critter Crusher (EA 951204 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2832 | GAME( 1999, danchih, stvbios, stv, stvmp, stv_state, danchih, ROT0, "Altron (Tecmo license)", "Danchi de Hanafuda (J 990607 V1.400)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2833 | GAME( 2000, danchiq, stvbios, stv, stv, stv_state, danchiq, ROT0, "Altron", "Danchi de Quiz Okusan Yontaku Desuyo! (J 001128 V1.200)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2834 | GAME( 1996, diehard, stvbios, stv, stv, stv_state, diehard, ROT0, "Sega", "Die Hard Arcade (UET 960515 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2835 | GAME( 1996, dnmtdeka, diehard, stv, stv, stv_state, dnmtdeka, ROT0, "Sega", "Dynamite Deka (J 960515 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2836 | GAME( 1995, ejihon, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Ejihon Tantei Jimusyo (J 950613 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2837 | GAME( 1995, fhboxers, stvbios, stv, stv, stv_state, fhboxers, ROT0, "Sega", "Funky Head Boxers (JUETBKAL 951218 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2838 | GAME( 1997, findlove, stvbios, stv, stv, stv_state, stv, ROT0, "Daiki / FCF", "Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2839 | GAME( 1994, gaxeduel, stvbios, stv, stv6b, stv_state, gaxeduel, ROT0, "Sega", "Golden Axe - The Duel (JUETL 950117 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS) |
| 2840 | GAME( 1998, grdforce, stvbios, stv, stv, stv_state, grdforce, ROT0, "Success", "Guardian Force (JUET 980318 V0.105)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2841 | GAME( 1998, groovef, stvbios, stv, stv6b, stv_state, groovef, ROT0, "Atlus", "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2842 | GAME( 1997, hanagumi, stvbios, stv, stv, stv_state, hanagumi, ROT0, "Sega", "Hanagumi Taisen Columns - Sakura Wars (J 971007 V1.010)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2843 | GAME( 1996, introdon, stvbios, stv, stv, stv_state, stv, ROT0, "Sunsoft / Success", "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2844 | GAME( 1995, kiwames, stvbios, stv, stvmp, stv_state, stvmp, ROT0, "Athena", "Pro Mahjong Kiwame S (J 951020 V1.208)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2845 | GAME( 1997, maruchan, stvbios, stv, stv, stv_state, maruchan, ROT0, "Sega / Toyosuisan", "Maru-Chan de Goo! (J 971216 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2846 | GAME( 1996, mausuke, stvbios, stv, stv, stv_state, mausuke, ROT0, "Data East", "Mausuke no Ojama the World (J 960314 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2847 | GAME( 1998, myfairld, stvbios, stv, myfairld, stv_state, stvmp, ROT0, "Micronet", "Virtual Mahjong 2 - My Fair Lady (J 980608 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2848 | GAME( 1998, othellos, stvbios, stv, stv, stv_state, othellos, ROT0, "Success", "Othello Shiyouyo (J 980423 V1.002)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2849 | GAME( 1995, pblbeach, stvbios, stv, stv, stv_state, pblbeach, ROT0, "T&E Soft", "Pebble Beach - The Great Shot (JUE 950913 V0.990)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2850 | GAME( 1996, prikura, stvbios, stv, stv, stv_state, prikura, ROT0, "Atlus", "Princess Clara Daisakusen (J 960910 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2851 | GAME( 1996, puyosun, stvbios, stv, stv, stv_state, puyosun, ROT0, "Compile", "Puyo Puyo Sun (J 961115 V0.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2852 | GAME( 1998, rsgun, stvbios, stv, stv, stv_state, rsgun, ROT0, "Treasure", "Radiant Silvergun (JUET 980523 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2853 | GAME( 1998, sasissu, stvbios, stv, stv, stv_state, sasissu, ROT0, "Sega", "Taisen Tanto-R Sashissu!! (J 980216 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2854 | GAME( 1999, sanjeon, sasissu, stv, stv, stv_state, sanjeon, ROT0, "Sega / Deniam", "DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2855 | GAME( 1997, seabass, stvbios, stv, stv, stv_state, seabass, ROT0, "A wave inc. (Able license)", "Sea Bass Fishing (JUET 971110 V0.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2856 | GAME( 1995, shanhigw, stvbios, stv, stv, stv_state, shanhigw, ROT0, "Sunsoft / Activision", "Shanghai - The Great Wall / Shanghai Triple Threat (JUE 950623 V1.005)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2857 | GAME( 1997, shienryu, stvbios, stv, stv, stv_state, shienryu, ROT270, "Warashi", "Shienryu (JUET 961226 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2858 | GAME( 1998, sss, stvbios, stv, stv, stv_state, sss, ROT0, "Capcom / Cave / Victor", "Steep Slope Sliders (JUET 981110 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2859 | GAME( 1995, sandor, stvbios, stv, stv, stv_state, sandor, ROT0, "Sega", "Puzzle & Action: Sando-R (J 951114 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2860 | GAME( 1997, thunt, sandor, stv, stv, stv_state, thunt, ROT0, "Sega", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2861 | GAME( 1997, thuntk, sandor, stv, stv, stv_state, sandor, ROT0, "Sega / Deniam", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2862 | GAME( 1995, smleague, stvbios, stv, stv, stv_state, smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2863 | GAME( 1995, finlarch, smleague,stv, stv, stv_state, finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2864 | GAME( 1996, sokyugrt, stvbios, stv, stv, stv_state, sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2865 | GAME( 1995, suikoenb, stvbios, stv, stv6b, stv_state, suikoenb, ROT0, "Data East", "Suikoenbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2866 | GAME( 1996, vfkids, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2867 | GAME( 1997, vmahjong, stvbios, stv, myfairld, stv_state, stvmp, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2868 | GAME( 1997, winterht, stvbios, stv, stv, stv_state, winterht, ROT0, "Sega", "Winter Heat (JUET 971012 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2869 | GAME( 1997, znpwfv, stvbios, stv, stv, stv_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2798 | 2870 | |
| 2799 | 2871 | /* Almost */ |
| 2800 | | GAME( 1998, twcup98, stvbios, stv, stv, saturn_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2801 | | GAME( 1998, elandore, stvbios, stv, stv6b, saturn_state, elandore, ROT0, "Sai-Mate", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2872 | GAME( 1998, twcup98, stvbios, stv, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2873 | GAME( 1998, elandore, stvbios, stv, stv6b, stv_state, elandore, ROT0, "Sai-Mate", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) |
| 2802 | 2874 | |
| 2803 | 2875 | /* Unemulated printer / camera devices */ |
| 2804 | | GAME( 1998, stress, stvbios, stv, stv, saturn_state, stv, ROT0, "Sega", "Stress Busters (J 981020 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2805 | | GAME( 1997, nclubv3, stvbios, stv, stv, saturn_state, nameclv3, ROT0, "Sega", "Name Club Ver.3 (J 970723 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 2806 | | GAME( 1997, pclub2, stvbios, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club 2 (U 970921 V1.000)", GAME_NOT_WORKING ) |
| 2807 | | GAME( 1999, pclub2fc, pclub2, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", GAME_NOT_WORKING ) |
| 2808 | | GAME( 1997, pclb297w, pclub2, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100)", GAME_NOT_WORKING ) |
| 2809 | | GAME( 1997, pclub298, pclub2, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", GAME_NOT_WORKING ) |
| 2810 | | GAME( 1998, pclb298a, pclub2, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", GAME_NOT_WORKING ) |
| 2811 | | GAME( 1999, pclubor, stvbios, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club Goukakenran (J 991104 V1.000)", GAME_NOT_WORKING ) |
| 2812 | | GAME( 1999, pclubol, stvbios, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club Olive (J 980717 V1.000)", GAME_NOT_WORKING ) |
| 2813 | | GAME( 1999, pclub2v3, pclub2, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 3 (U 990310 V1.000)", GAME_NOT_WORKING ) |
| 2814 | | GAME( 1999, pclubpok, stvbios, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club Pokemon B (U 991126 V1.000)", GAME_NOT_WORKING ) |
| 2815 | | GAME( 1997, pclub2kc, stvbios, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club Kome Kome Club (J 970203 V1.000)", GAME_NOT_WORKING ) |
| 2816 | | GAME( 1997, pclb2elk, stvbios, stv, stv, saturn_state, stv, ROT0, "Atlus", "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)", GAME_NOT_WORKING ) |
| 2876 | GAME( 1998, stress, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Stress Busters (J 981020 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 2877 | GAME( 1997, nclubv3, stvbios, stv, stv, stv_state, nameclv3, ROT0, "Sega", "Name Club Ver.3 (J 970723 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 2878 | GAME( 1997, pclub2, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 (U 970921 V1.000)", GAME_NOT_WORKING ) |
| 2879 | GAME( 1999, pclub2fc, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", GAME_NOT_WORKING ) |
| 2880 | GAME( 1997, pclb297w, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100)", GAME_NOT_WORKING ) |
| 2881 | GAME( 1997, pclub298, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", GAME_NOT_WORKING ) |
| 2882 | GAME( 1998, pclb298a, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", GAME_NOT_WORKING ) |
| 2883 | GAME( 1999, pclubor, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Goukakenran (J 991104 V1.000)", GAME_NOT_WORKING ) |
| 2884 | GAME( 1999, pclubol, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Olive (J 980717 V1.000)", GAME_NOT_WORKING ) |
| 2885 | GAME( 1999, pclub2v3, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 3 (U 990310 V1.000)", GAME_NOT_WORKING ) |
| 2886 | GAME( 1999, pclubpok, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Pokemon B (U 991126 V1.000)", GAME_NOT_WORKING ) |
| 2887 | GAME( 1997, pclub2kc, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Kome Kome Club (J 970203 V1.000)", GAME_NOT_WORKING ) |
| 2888 | GAME( 1997, pclb2elk, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)", GAME_NOT_WORKING ) |
| 2817 | 2889 | |
| 2818 | 2890 | |
| 2819 | 2891 | /* Doing something.. but not enough yet */ |
| 2820 | | GAME( 1995, vfremix, stvbios, stv, stv, saturn_state, vfremix, ROT0, "Sega", "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 2821 | | GAME( 1996, decathlt, stvbios, stv, stv, saturn_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960709 V1.001)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 2822 | | GAME( 1996, decathlto, decathlt,stv, stv, saturn_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960424 V1.000)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 2892 | GAME( 1995, vfremix, stvbios, stv, stv, stv_state, vfremix, ROT0, "Sega", "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 2893 | GAME( 1996, decathlt, stvbios, stv, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960709 V1.001)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 2894 | GAME( 1996, decathlto, decathlt,stv, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960424 V1.000)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 2823 | 2895 | |
| 2824 | 2896 | /* Gives I/O errors */ |
| 2825 | | GAME( 1996, magzun, stvbios, stv, stv, saturn_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", GAME_NOT_WORKING ) |
| 2826 | | GAME( 1997, techbowl, stvbios, stv, stv, saturn_state, stv, ROT0, "Sega", "Technical Bowling (J 971212 V1.000)", GAME_NOT_WORKING ) |
| 2827 | | GAME( 1999, micrombc, stvbios, stv, stv, saturn_state, stv, ROT0, "Sega", "Microman Battle Charge (J 990326 V1.000)", GAME_NOT_WORKING ) |
| 2897 | GAME( 1996, magzun, stvbios, stv, stv, stv_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", GAME_NOT_WORKING ) |
| 2898 | GAME( 1997, techbowl, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Technical Bowling (J 971212 V1.000)", GAME_NOT_WORKING ) |
| 2899 | GAME( 1999, micrombc, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Microman Battle Charge (J 990326 V1.000)", GAME_NOT_WORKING ) |
| 2828 | 2900 | |
| 2829 | 2901 | /* Black screen */ |
| 2830 | | GAME( 1999, ffreveng, stvbios, stv, stv, saturn_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990714 V1.000)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 2902 | GAME( 1999, ffreveng, stvbios, stv, stv, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990714 V1.000)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 2831 | 2903 | |
| 2832 | 2904 | /* CD games */ |
| 2833 | | GAME( 1995, sfish2, 0, stv, stv, saturn_state, stv, ROT0, "Sega", "Sport Fishing 2 (UET 951106 V1.10e)", GAME_NO_SOUND | GAME_NOT_WORKING ) |
| 2834 | | GAME( 1995, sfish2j, sfish2, stv, stv, saturn_state, stv, ROT0, "Sega", "Sport Fishing 2 (J 951201 V1.100)", GAME_NO_SOUND | GAME_NOT_WORKING ) |
| 2905 | GAME( 1995, sfish2, 0, stv, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (UET 951106 V1.10e)", GAME_NO_SOUND | GAME_NOT_WORKING ) |
| 2906 | GAME( 1995, sfish2j, sfish2, stv, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (J 951201 V1.100)", GAME_NO_SOUND | GAME_NOT_WORKING ) |
| 2835 | 2907 | |
| 2836 | 2908 | /* |
| 2837 | 2909 | This is the known list of undumped ST-V games: |