trunk/src/mame/drivers/supduck.c
| r242055 | r242056 | |
| 237 | 237 | |
| 238 | 238 | } |
| 239 | 239 | |
| 240 | | WRITE16_MEMBER(supduck_state::supduck_paletteram_w) // wrong |
| 240 | WRITE16_MEMBER(supduck_state::supduck_paletteram_w) |
| 241 | 241 | { |
| 242 | 242 | int r, g, b; |
| 243 | 243 | data = COMBINE_DATA(&m_paletteram[offset]); |
| 244 | 244 | |
| 245 | 245 | r = ((data >> 8) & 0x0f); |
| 246 | if (data & 0x4000) r |= 0x10; |
| 247 | |
| 246 | 248 | g = ((data >> 4 ) & 0x0f); |
| 249 | if (data & 0x2000) g |= 0x10; |
| 250 | |
| 247 | 251 | b = ((data >> 0 ) & 0x0f); |
| 252 | if (data & 0x1000) b |= 0x10; |
| 248 | 253 | |
| 249 | | int bright = (data & 0x7000) >> 12; |
| 250 | | |
| 251 | | bright += 1; |
| 252 | | |
| 253 | | r = r * bright * 2; |
| 254 | | g = g * bright * 2; |
| 255 | | b = b * bright * 2; |
| 256 | | |
| 257 | | |
| 258 | | m_palette->set_pen_color (offset, rgb_t(r, g, b)); |
| 254 | m_palette->set_pen_color (offset, rgb_t(r<<3, g<<3, b<<3)); |
| 259 | 255 | } |
| 260 | 256 | |
| 261 | 257 | WRITE16_MEMBER(supduck_state::supduck_4002_w) |
| r242055 | r242056 | |
| 275 | 271 | { |
| 276 | 272 | case 0: |
| 277 | 273 | m_back_tilemap->set_scrollx(0, data); |
| 278 | | // printf("fore x scroll %04x\n", data); |
| 279 | | |
| 280 | 274 | break; |
| 281 | 275 | case 1: |
| 282 | 276 | m_back_tilemap->set_scrolly(0, -data - 32 * 8); |
| 283 | | // printf("fore y scroll %04x\n", data); |
| 284 | | |
| 285 | 277 | break; |
| 286 | 278 | case 2: |
| 287 | 279 | m_fore_tilemap->set_scrollx(0, data); |
| 288 | | // printf("back x scroll %04x\n", data); |
| 289 | | |
| 290 | 280 | break; |
| 291 | 281 | case 3: |
| 292 | 282 | m_fore_tilemap->set_scrolly(0, -data - 32 * 8); |
| 293 | | // printf("back y scroll %04x\n", data); |
| 294 | | |
| 295 | 283 | break; |
| 296 | 284 | } |
| 297 | 285 | } |
| r242055 | r242056 | |
| 312 | 300 | AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(text_videoram_w) AM_SHARE("textvideoram") |
| 313 | 301 | AM_RANGE(0xff0000, 0xff3fff) AM_RAM_WRITE(back_videoram_w) AM_SHARE("backvideoram") |
| 314 | 302 | AM_RANGE(0xff4000, 0xff7fff) AM_RAM_WRITE(fore_videoram_w) AM_SHARE("forevideoram") |
| 315 | | AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(supduck_paletteram_w) AM_SHARE("paletteram") |
| 303 | AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(supduck_paletteram_w) AM_SHARE("paletteram") // AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 316 | 304 | AM_RANGE(0xffc000, 0xffffff) AM_RAM /* working RAM */ |
| 317 | 305 | ADDRESS_MAP_END |
| 318 | 306 | |
| r242055 | r242056 | |
| 527 | 515 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", supduck) |
| 528 | 516 | |
| 529 | 517 | MCFG_PALETTE_ADD("palette", 0x800/2) |
| 530 | | // MCFG_PALETTE_FORMAT(IIIIRRRRGGGGBBBB) |
| 518 | // MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB) // can't use this, the RGB bits are the lowest bits with this format, for this game they're the highest bits |
| 531 | 519 | |
| 532 | 520 | /* sound hardware */ |
| 533 | 521 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r242055 | r242056 | |
| 582 | 570 | ROM_LOAD( "1.su13", 0x00000, 0x80000, CRC(7fb1ed42) SHA1(77ec86a6454398e329066aa060e9b6a39085ce71) ) // banked sample data |
| 583 | 571 | ROM_END |
| 584 | 572 | |
| 585 | | GAME( 1992, supduck, 0, supduck, supduck, driver_device, 0, ROT0, "Comad", "Super Duck", GAME_IMPERFECT_COLORS ) |
| 573 | GAME( 1992, supduck, 0, supduck, supduck, driver_device, 0, ROT0, "Comad", "Super Duck", 0 ) |