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) |