trunk/src/mame/drivers/raiden2.c
| r243649 | r243650 | |
| 1 | | // license:? |
| 1 | // license:? (pending decision) |
| 2 | 2 | // copyright-holders:Olivier Galibert, Angelo Salese, David Haywood, Tomasz Slanina |
| 3 | 3 | /******************************************************************************************************** |
| 4 | 4 | |
| 5 | 5 | Seibu Protected 1993-94 era hardware, V30 based (sequel to the 68k based hardware) |
| 6 | | TODO: figure out the rest of the protection |
| 7 | | TODO: Zero Team presumably needs additive blending on the character screen |
| 8 | 6 | |
| 9 | | TODO: |
| 10 | | - Zero Team currently crashes due of an unknown check with collision detection. |
| 11 | | Additionally: |
| 12 | | 8E377: C7 06 00 05 80 A9 mov word ptr [500h],0A980h |
| 13 | | 8E37D: C7 06 00 05 00 B9 mov word ptr [500h],0B900h |
| 14 | | 8E383: F7 06 88 05 FF FF test word ptr [588h],0FFFFh ;checks unknown collision detection port with 0xffff? |
| 15 | | 8E389: 75 0A bne 8E395h |
| 7 | TODO: |
| 8 | * zeroteam - sort-DMA doesn't seem to work too well, sprite-sprite priorities are broken as per now |
| 16 | 9 | |
| 10 | * xsedae - it does an "8-liner"-style scroll during attract, doesn't work too well. |
| 11 | |
| 12 | * sprite chip is the same as seibuspi.c and feversoc.c, needs device-ification and merging. |
| 13 | |
| 14 | * sprite chip also uses first entry for "something" that isn't sprite, some of them looks clipping |
| 15 | regions (150 - ff in zeroteam, 150 - 0 and 150 - 80 in raiden2). Latter probably do double buffering |
| 16 | on odd/even frames, by updating only top or bottom part of screen. |
| 17 | |
| 17 | 18 | =========================================================================================================== |
| 18 | 19 | |
| 19 | 20 | raiden 2 board test note 17/04/08 (based on test by dox) |
| r243649 | r243650 | |
| 24 | 25 | value of 0x80 puts 0x00000-0x1ffff at 0x20000 - 0x3ffff |
| 25 | 26 | value of 0x00 puts 0x20000-0x3ffff at 0x20000 - 0x3ffff |
| 26 | 27 | |
| 27 | | === |
| 28 | 28 | |
| 29 | 29 | =========================================================================================================== |
| 30 | 30 | |
| r243649 | r243650 | |
| 130 | 130 | |
| 131 | 131 | The games in legionna.c use (almost?) the same protection chips. |
| 132 | 132 | |
| 133 | | Current Problem(s) - in order of priority |
| 134 | | |
| 135 | | High Priority |
| 136 | | |
| 137 | | Protection |
| 138 | | - zeroteam has bogus collision detection; |
| 139 | | - raiden2 has a weird movement after that the ship completes animation from the aircraft. Probably 42c2 should be floating point rounded ... |
| 140 | | - (and probably more) |
| 141 | | |
| 142 | | Unemulated 0-0x3ffff ROM banking for raidendx, but it's unknown if/where it's used (hopefully NOT on getting perfect on Alpha course). |
| 143 | | |
| 144 | | zeroteam - sort-DMA doesn't seem to work too well, sprite-sprite priorities are broken as per now |
| 145 | | |
| 146 | | xsedae - do an "8-liner"-style scroll during attract, doesn't work too well. |
| 147 | | |
| 148 | | sprite chip is the same as seibuspi.c and feversoc.c, needs device-ification and merging. |
| 149 | | |
| 150 | | sprite chip also uses first entry for "something" that isn't sprite, some of them looks clipping |
| 151 | | regions (150 - ff in zeroteam, 150 - 0 and 150 - 80 in raiden2). Latter probably do double buffering |
| 152 | | on odd/even frames, by updating only top or bottom part of screen. |
| 153 | | |
| 154 | | Low Priority |
| 155 | | |
| 156 | 133 | ********************************************************************************************************/ |
| 157 | 134 | |
| 158 | 135 | #include "emu.h" |
| r243649 | r243650 | |
| 1367 | 1344 | |
| 1368 | 1345 | /* video hardware */ |
| 1369 | 1346 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1370 | | MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) |
| 1371 | | #if 1 |
| 1372 | | MCFG_SCREEN_REFRESH_RATE(55.47) /* verified on pcb */ |
| 1373 | | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(500) /* not accurate */) |
| 1374 | | MCFG_SCREEN_SIZE(44*8, 34*8) |
| 1375 | | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1) |
| 1376 | | #else // this should be correct but currently causes sprite flickering, visible from the very start of the intro |
| 1347 | MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) |
| 1377 | 1348 | MCFG_SCREEN_RAW_PARAMS(XTAL_32MHz/4,512,0,40*8,282,0,30*8) /* hand-tuned to match ~55.47 */ |
| 1378 | | #endif |
| 1379 | 1349 | MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2) |
| 1380 | 1350 | |
| 1381 | 1351 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", raiden2) |