trunk/src/mame/drivers/alinvade.c
| r241881 | r241882 | |
| 14 | 14 | { |
| 15 | 15 | public: |
| 16 | 16 | alinvade_state(const machine_config &mconfig, device_type type, const char *tag) |
| 17 | | : driver_device(mconfig, type, tag) |
| 17 | : driver_device(mconfig, type, tag), |
| 18 | m_videoram(*this, "videoram") |
| 18 | 19 | { } |
| 19 | 20 | |
| 21 | required_shared_ptr<UINT8> m_videoram; |
| 20 | 22 | |
| 21 | 23 | public: |
| 22 | 24 | virtual void machine_start(); |
| r241881 | r241882 | |
| 27 | 29 | |
| 28 | 30 | |
| 29 | 31 | static ADDRESS_MAP_START( alinvade_map, AS_PROGRAM, 8, alinvade_state ) |
| 30 | | AM_RANGE(0x0000, 0x0fff) AM_RAM |
| 32 | AM_RANGE(0x0000, 0x01ff) AM_RAM |
| 33 | AM_RANGE(0x0400, 0x0bff) AM_RAM AM_SHARE("videoram") |
| 34 | |
| 31 | 35 | AM_RANGE(0xe000, 0xe3ff) AM_ROM |
| 32 | 36 | AM_RANGE(0xe800, 0xebff) AM_RAM |
| 33 | 37 | AM_RANGE(0xec00, 0xffff) AM_ROM |
| r241881 | r241882 | |
| 51 | 55 | |
| 52 | 56 | UINT32 alinvade_state::screen_update_alinvade(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 53 | 57 | { |
| 58 | offs_t offs; |
| 59 | |
| 60 | for (offs = 0; offs < m_videoram.bytes(); offs++) |
| 61 | { |
| 62 | int i; |
| 63 | |
| 64 | UINT8 x = (offs << 3)&0x7f; |
| 65 | int y = (offs >> 4)&0x7f; |
| 66 | UINT8 data = m_videoram[offs]; |
| 67 | |
| 68 | for (i = 0; i < 8; i++) |
| 69 | { |
| 70 | pen_t pen = (data & 0x01) ? rgb_t::white : rgb_t::black; |
| 71 | bitmap.pix32(y, x) = pen; |
| 72 | |
| 73 | data = data >> 1; |
| 74 | x = x + 1; |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | |
| 54 | 79 | return 0; |
| 55 | 80 | } |
| 56 | 81 | |
| r241881 | r241882 | |
| 60 | 85 | /* basic machine hardware */ |
| 61 | 86 | MCFG_CPU_ADD("maincpu", M6502,2000000) /* ? MHz */ |
| 62 | 87 | MCFG_CPU_PROGRAM_MAP(alinvade_map) |
| 63 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", alinvade_state, irq0_line_hold) |
| 88 | // MCFG_CPU_VBLANK_INT_DRIVER("screen", alinvade_state, irq0_line_hold) |
| 64 | 89 | |
| 65 | 90 | /* video hardware */ |
| 66 | 91 | MCFG_SCREEN_ADD("screen", RASTER) |
| 67 | 92 | MCFG_SCREEN_REFRESH_RATE(60) |
| 68 | 93 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 69 | | MCFG_SCREEN_SIZE(256, 256) |
| 70 | | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
| 94 | MCFG_SCREEN_SIZE(128, 128) |
| 95 | MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0, 128-1) |
| 71 | 96 | MCFG_SCREEN_UPDATE_DRIVER(alinvade_state, screen_update_alinvade) |
| 72 | 97 | |
| 73 | 98 | /* sound hardware */ |
| r241881 | r241882 | |
| 77 | 102 | |
| 78 | 103 | |
| 79 | 104 | ROM_START( alinvade ) |
| 80 | | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 105 | ROM_REGION( 0x10000, "maincpu", 0 ) // todo, check mapping |
| 81 | 106 | ROM_LOAD( "alien28.708", 0xe000, 0x0400, CRC(de376295) SHA1(e8eddbb1be1f8661c6b5b39c0d78a65bded65db2) ) |
| 82 | 107 | ROM_LOAD( "alien29.708", 0xec00, 0x0400, CRC(20212977) SHA1(9d24a6b403d968267079fa6241545bd5a01afebb) ) |
| 83 | 108 | ROM_LOAD( "alien30.708", 0xf000, 0x0400, CRC(734b691c) SHA1(9e562159061eecf4b1dee4ea0ee4752c901a54aa) ) |
| r241881 | r241882 | |
| 87 | 112 | ROM_END |
| 88 | 113 | |
| 89 | 114 | |
| 90 | | GAME( 198?, alinvade, 0, alinvade, alinvade, driver_device, 0, ROT0, "Forbes?", "Alien Invaders", GAME_NOT_WORKING ) |
| 115 | GAME( 198?, alinvade, 0, alinvade, alinvade, driver_device, 0, ROT90, "Forbes?", "Alien Invaders", GAME_NOT_WORKING ) |