trunk/src/mame/drivers/decocass.c
| r19829 | r19830 | |
| 48 | 48 | |
| 49 | 49 | /*************************************************************************** |
| 50 | 50 | * |
| 51 | | * write decrypted opcodes |
| 51 | * swizzled mirror handlers |
| 52 | 52 | * |
| 53 | 53 | ***************************************************************************/ |
| 54 | 54 | |
| 55 | WRITE8_MEMBER(decocass_state::mirrorvideoram_w) { offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); decocass_fgvideoram_w(space, offset, data, mem_mask); } |
| 56 | WRITE8_MEMBER(decocass_state::mirrorcolorram_w) { offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); decocass_colorram_w(space, offset, data, mem_mask); } |
| 55 | 57 | |
| 56 | | WRITE8_MEMBER(decocass_state::charram_w) |
| 57 | | { |
| 58 | | decocass_charram_w(space, offset, data); |
| 59 | | } |
| 60 | | |
| 61 | | WRITE8_MEMBER(decocass_state::fgvideoram_w) |
| 62 | | { |
| 63 | | decocass_fgvideoram_w(space, offset, data); |
| 64 | | } |
| 65 | | |
| 66 | | WRITE8_MEMBER(decocass_state::fgcolorram_w) |
| 67 | | { |
| 68 | | decocass_colorram_w(space, offset, data); |
| 69 | | } |
| 70 | | |
| 71 | | WRITE8_MEMBER(decocass_state::tileram_w) |
| 72 | | { |
| 73 | | decocass_tileram_w(space, offset, data); |
| 74 | | } |
| 75 | | |
| 76 | | WRITE8_MEMBER(decocass_state::objectram_w) |
| 77 | | { |
| 78 | | decocass_objectram_w(space, offset, data); |
| 79 | | } |
| 80 | | |
| 81 | | WRITE8_MEMBER(decocass_state::mirrorvideoram_w) { offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); fgvideoram_w(space, offset, data, mem_mask); } |
| 82 | | WRITE8_MEMBER(decocass_state::mirrorcolorram_w) { offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); fgcolorram_w(space, offset, data, mem_mask); } |
| 83 | | |
| 84 | 58 | READ8_MEMBER(decocass_state::mirrorvideoram_r) |
| 85 | 59 | { |
| 86 | 60 | offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); |
| r19829 | r19830 | |
| 96 | 70 | |
| 97 | 71 | static ADDRESS_MAP_START( decocass_map, AS_PROGRAM, 8, decocass_state ) |
| 98 | 72 | AM_RANGE(0x0000, 0x5fff) AM_RAM AM_SHARE("rambase") |
| 99 | | AM_RANGE(0x6000, 0xbfff) AM_RAM_WRITE(charram_w) AM_SHARE("charram") /* still RMS3 RAM */ |
| 100 | | AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram") /* DSP3 RAM */ |
| 101 | | AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(fgcolorram_w) AM_SHARE("colorram") |
| 73 | AM_RANGE(0x6000, 0xbfff) AM_RAM_WRITE(decocass_charram_w) AM_SHARE("charram") /* still RMS3 RAM */ |
| 74 | AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(decocass_fgvideoram_w) AM_SHARE("fgvideoram") /* DSP3 RAM */ |
| 75 | AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(decocass_colorram_w) AM_SHARE("colorram") |
| 102 | 76 | AM_RANGE(0xc800, 0xcbff) AM_READWRITE(mirrorvideoram_r, mirrorvideoram_w) |
| 103 | 77 | AM_RANGE(0xcc00, 0xcfff) AM_READWRITE(mirrorcolorram_r, mirrorcolorram_w) |
| 104 | | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tileram_w) AM_SHARE("tileram") |
| 105 | | AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(objectram_w) AM_SHARE("objectram") |
| 78 | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(decocass_tileram_w) AM_SHARE("tileram") |
| 79 | AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(decocass_objectram_w) AM_SHARE("objectram") |
| 106 | 80 | AM_RANGE(0xe000, 0xe0ff) AM_RAM_WRITE(decocass_paletteram_w) AM_SHARE("paletteram") |
| 107 | 81 | AM_RANGE(0xe300, 0xe300) AM_READ_PORT("DSW1") AM_WRITE(decocass_watchdog_count_w) |
| 108 | 82 | AM_RANGE(0xe301, 0xe301) AM_READ_PORT("DSW2") AM_WRITE(decocass_watchdog_flip_w) |
| r19829 | r19830 | |
| 1698 | 1672 | /* 27 */ GAME( 1982, cburnrub, decocass, cburnrub, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Burnin' Rubber (DECO Cassette, set 1)", 0 ) |
| 1699 | 1673 | GAME( 1982, cburnrub2, cburnrub, cburnrub, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Burnin' Rubber (DECO Cassette, set 2)", 0 ) |
| 1700 | 1674 | GAME( 1982, cbnj, cburnrub, cburnrub, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Bump 'n' Jump (DECO Cassette)", 0 ) |
| 1701 | | /* 28 */ GAME( 1983, cgraplop, decocass, cgraplop, cgraplop, decocass_state, decocass, ROT270, "Data East Corporation", "Cluster Buster / Graplop (DECO Cassette, set 1)", 0 ) |
| 1702 | | GAME( 1983, cgraplop2, cgraplop, cgraplop2,cgraplop, decocass_state, decocass, ROT270, "Data East Corporation", "Cluster Buster / Graplop (DECO Cassette, set 2)", GAME_NOT_WORKING ) |
| 1675 | /* 28 */ GAME( 1983, cgraplop, decocass, cgraplop, cgraplop, decocass_state, decocass, ROT270, "Data East Corporation", "Cluster Buster (DECO Cassette)", 0 ) |
| 1676 | GAME( 1983, cgraplop2, cgraplop, cgraplop2,cgraplop, decocass_state, decocass, ROT270, "Data East Corporation", "Graplop (no title screen) (DECO Cassette)", 0 ) // a version with title screen exists, see reference videos |
| 1703 | 1677 | /* 29 */ GAME( 1983, clapapa, decocass, clapapa, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Rootin' Tootin' / La-Pa-Pa (DECO Cassette)" , 0) /* Displays 'La-Pa-Pa during attract */ |
| 1704 | 1678 | GAME( 1983, clapapa2, clapapa, clapapa, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Rootin' Tootin' (DECO Cassette)" , 0) /* Displays 'Rootin' Tootin' during attract */ |
| 1705 | 1679 | /* 30 */ GAME( 1983, cskater, decocass, cskater, cskater, decocass_state, decocass, ROT270, "Data East Corporation", "Skater (DECO Cassette, Japan)", 0 ) |
trunk/src/mame/video/decocass.c
| r19829 | r19830 | |
| 12 | 12 | Additionally it supports the headlight effect also needed for |
| 13 | 13 | a Highway Chase style game. |
| 14 | 14 | |
| 15 | --- |
| 16 | |
| 17 | Notes with reference to video recordings. |
| 18 | These video recordings should be from real hardware because |
| 19 | they predate the emulation and include undumped games, so |
| 20 | unless they're from some other private / unreleased emulator |
| 21 | then they can't be anything else. |
| 22 | |
| 23 | Mirrored from NicoVideo |
| 24 | -=====================- |
| 25 | |
| 26 | mamedev.emulab.it/haze/reference/sm18976245-DISCO_NO1.mp4 |
| 27 | - no notes |
| 28 | |
| 29 | mamedev.emulab.it/haze/reference/sm18976058-ASTRO_FANTASIA.mp4 |
| 30 | - different game revision to emulated version, main |
| 31 | boss enemy shown at the top of the scoreboard differs |
| 32 | so notes below could be invalid |
| 33 | |
| 34 | - bullets should be white, not black |
| 35 | - BG layer changes to orange colours for first level |
| 36 | (this would require a palette bitplane re-order we |
| 37 | don't currently support) |
| 38 | |
| 39 | mamedev.emulab.it/haze/reference/sm18975592-HWY_CHASE.mp4 |
| 40 | - road / bg colour should be darkish blue outside of tunnels |
| 41 | - road / bg colour should be black in tunnels |
| 42 | - headlight should be the same darkish blue as the road |
| 43 | at all times, so only visible in tunnels |
| 44 | - our headlight is misplaced (should be simple fix) |
| 45 | - center line of road does not exist on hw! |
| 46 | - enemies are hidden in tunnels (like madalien) |
| 47 | - road / bg flashs regular blue when enemy is hit revealing |
| 48 | them |
| 49 | - some glitchy enemies visible even over tunnel bg for |
| 50 | some frames |
| 51 | - colours of BG tilemap are glitchy even on hardware eg. |
| 52 | Pink desert after first tunnel, Green water after 2nd |
| 53 | tunnel even when the right palettes exist! |
| 54 | - enemy bullets are red |
| 55 | |
| 56 | mamedev.emulab.it/haze/reference/sm17433759-PRO_BOWLING.mp4 |
| 57 | - no notes |
| 58 | |
| 59 | mamedev.emulab.it/haze/reference/sm17401258-GRAPLOP.mp4 |
| 60 | - different game revision to emulated version, this |
| 61 | seems to be a more finished version of cgralop2, the |
| 62 | emulated version lacks a title screen (the parent |
| 63 | cgraplop has a cluster buster title, but that is |
| 64 | again different) |
| 65 | |
| 66 | |
| 67 | mamedev.emulab.it/haze/reference/sm17387280-BURNIN_RUBBER.mp4 |
| 68 | - seems to be the cburnrub2 set, or close to it, plain |
| 69 | white title text |
| 70 | |
| 71 | mamedev.emulab.it/haze/reference/sm17370209-NIGHT_STAR.mp4 |
| 72 | - no notes |
| 73 | |
| 74 | mamedev.emulab.it/haze/reference/sm17203184-HAMBURGER.mp4 |
| 75 | - no notes |
| 76 | |
| 77 | mamedev.emulab.it/haze/reference/sm17202585-SUPER_DOUBLE_TENNIS.mp4 |
| 78 | - background colours during high-score / title ar shades of |
| 79 | blue, they appear green in our emulation |
| 80 | |
| 81 | mamedev.emulab.it/haze/reference/sm17202201-SKATER.mp4 |
| 82 | - shadow handling (headlight sprite) positioning is wrong, the |
| 83 | game also turns on the 'cross' bit, why? |
| 84 | |
| 85 | mamedev.emulab.it/haze/reference/sm17201813-ZEROIZE.mp4 |
| 86 | - no notes |
| 87 | |
| 88 | mamedev.emulab.it/haze/reference/sm17183561-FISHING.mp4 |
| 89 | - first title screen has no background, this is not a bug in |
| 90 | our emulation |
| 91 | - can show glitchy tiles when constructing the background, |
| 92 | this is not a bug in our emulation either |
| 93 | |
| 94 | mamedev.emulab.it/haze/reference/sm17181931-MISSION_X.mp4 |
| 95 | - no notes |
| 96 | |
| 97 | mamedev.emulab.it/haze/reference/sm17180950-DSTELEJAN.mp4 |
| 98 | - no notes |
| 99 | |
| 100 | Mirrored from YouTube |
| 101 | -===================- |
| 102 | |
| 103 | mamedev.emulab.it/haze/reference/manhattan01-04.webm |
| 104 | mamedev.emulab.it/haze/reference/manhattan05-08.webm |
| 105 | mamedev.emulab.it/haze/reference/manhattan09-12.webm |
| 106 | - the BG tilemap pen ordering changes between levels, most of |
| 107 | the arrangements aren't supported by our current code, and |
| 108 | I can't find the writes to change it! Level 1 in the |
| 109 | video uses what we have as palette 1, not 0. |
| 110 | ToDo: list combinations |
| 111 | |
| 112 | mamedev.emulab.it/haze/reference/flashboy.webm |
| 113 | - game is not emulated |
| 114 | |
| 115 | |
| 116 | --- |
| 117 | |
| 118 | I'd quite like a reference video for the Cassette Pro Soccer, |
| 119 | the game appears ugly (center circle vanishing as soon as you do |
| 120 | a long ball etc.) but the ugly backwards scrolling after you kick |
| 121 | the ball still happens even on the standalone version, so I'm |
| 122 | wondering if it's just a glitchy game. |
| 123 | |
| 15 | 124 | ***********************************************************************/ |
| 16 | 125 | |
| 17 | 126 | #include "emu.h" |
| r19829 | r19830 | |
| 284 | 393 | (data & 0x04) ? " ptn1/2" : "", |
| 285 | 394 | (data & 0x08) ? " bkg_ena" : "", |
| 286 | 395 | (data & 0x10) ? " center_l_on" : "", |
| 287 | | (data & 0x20) ? " cross_on" : "", |
| 396 | (data & 0x20) ? " cross_on" : "", /* skater enables this, why? */ |
| 288 | 397 | (data & 0x40) ? " tunnel" : "", |
| 289 | 398 | (data & 0x80) ? " part_h_enable" : "")); |
| 290 | 399 | |