Previous 199869 Revisions Next

r33389 Saturday 15th November, 2014 at 12:28:56 UTC by Angelo Salese
Improve template file family properties, added readme and licensed as BSD-3-Clause [Angelo Salese]
[src/emu/machine]pla.c
[src/lib/util]plaparse.c
[src/mame]mame.lst
[src/mame/drivers]alinvade.c goldngam.c lethal.c naomi.c popobear.c
[src/mame/etc]template_cpu.c template_cpu.h template_device.c template_device.h template_driver.c template_readme.txt*
[src/mame/includes]lethal.h
[src/mame/video]lethal.c
[src/mess/drivers]ngen.c
[src/mess/includes]gamecom.h
[src/mess/layout]gamecom.lay

trunk/src/emu/machine/pla.c
r241900r241901
3737
3838void pla_device::device_start()
3939{
40   assert(region() != NULL);
40   assert(*region() != NULL);
4141   assert(m_terms < MAX_TERMS);
42   assert(m_inputs < 32 && m_outputs <= 32);
42   assert(m_inputs <= 32 && m_outputs <= 32);
4343
4444   if (m_input_mask == 0)
4545      m_input_mask = ((UINT64)1 << m_inputs) - 1;
r241900r241901
5151   // initialize cache
5252   m_cache2_ptr = 0;
5353   for (int i = 0; i < CACHE2_SIZE; i++)
54      m_cache2[i] = 0x80000000;
54      m_cache2[i] = 0;
5555
5656   m_cache_size = 0;
5757   int csize = 1 << ((m_inputs > MAX_CACHE_BITS) ? MAX_CACHE_BITS : m_inputs);
trunk/src/lib/util/plaparse.c
r241900r241901
183183
184184      // end of file
185185      case 'e':
186         if (LOG_PARSE) printf("End of file\n");
186         printf("End of file\n");
187187         break;
188188   }
189189
trunk/src/mame/drivers/alinvade.c
r241900r241901
44 
55 does it use any off-the shelf chips in addition to the 6502?
66
7 Driver by David Haywood and Mariusz Wojcieszek
87
98*/
109
r241900r241901
3231static ADDRESS_MAP_START( alinvade_map, AS_PROGRAM, 8, alinvade_state )
3332    AM_RANGE(0x0000, 0x01ff) AM_RAM
3433    AM_RANGE(0x0400, 0x0bff) AM_RAM AM_SHARE("videoram")
35   AM_RANGE(0x0c00, 0x0dff) AM_RAM
3634    AM_RANGE(0x2000, 0x2000) AM_WRITENOP //??
3735    AM_RANGE(0x4000, 0x4000) AM_READ_PORT("COIN")
3836    AM_RANGE(0x6000, 0x6000) AM_READ_PORT("DSW")
r241900r241901
129127   /* basic machine hardware */
130128   MCFG_CPU_ADD("maincpu", M6502,2000000)         /* ? MHz */
131129   MCFG_CPU_PROGRAM_MAP(alinvade_map)
132   MCFG_CPU_VBLANK_INT_DRIVER("screen", alinvade_state,  irq0_line_hold)
130//   MCFG_CPU_VBLANK_INT_DRIVER("screen", alinvade_state,  irq0_line_hold)
133131
134132   /* video hardware */
135133   MCFG_SCREEN_ADD("screen", RASTER)
r241900r241901
159157ROM_END
160158
161159
162GAME( 198?, alinvade,  0,    alinvade, alinvade, driver_device,  0, ROT90, "Forbes?", "Alien Invaders", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
160GAME( 198?, alinvade,  0,    alinvade, alinvade, driver_device,  0, ROT90, "Forbes?", "Alien Invaders", GAME_NOT_WORKING )
trunk/src/mame/drivers/goldngam.c
r241900r241901
264264
265265UINT32 goldngam_state::screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
266266{
267   int x, y;
268
269   // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
270   UINT8 *tmp = reinterpret_cast<UINT8 *>(m_videoram.target());
267271   int index = 0;
268272
269   for(int y = 0; y < 512; ++y)
273   for(y = 0; y < 512; ++y)
270274   {
271      for(int x = 0; x < 384; x += 2)
275      for(x = 0; x < 384; ++x)
272276      {
273         UINT16 word = m_videoram[index];
274         bitmap.pix16(y, x) = word >> 8;
275         bitmap.pix16(y, x+1) = word & 0xff;
277         bitmap.pix16(y, x) = tmp[index ^ 1]; /* swapped bytes in 16 bit word */
276278         ++index;
277279      }
278280   }
trunk/src/mame/drivers/lethal.c
r241900r241901
109109---------------- --- -------- --------- -----------------------
110110000xxxxxxxxxxxxx R   xxxxxxxx PROM      program ROM (banked)
111111001xxxxxxxxxxxxx R/W xxxxxxxx WRAM      work RAM
112010000--00xxxxxx   W xxxxxxxx VREG      054156 control
113010000--01--xxxx   W xxxxxxxx VSCG      054157 control
112010000--00xxxxxx   W xxxxxxxx VREG      056832 control
113010000--01--xxxx   W xxxxxxxx VSCG      056832 control
114114010000--1000---- R/W -------- AFR       watchdog reset
115115010000--1001----   W          SDON      sound enable?
116116010000--1010                  CCLR      ?
r241900r241901
121121010000--11-000--   W --x----- CRDB      /
122122010000--11-001--   W -----xxx EEP       EEPROM DI, CS, CLK
123123010000--11-001--   W ----x--- MUT       sound mute?
124010000--11-001--   W ---x---- CBNK      bank switch 4400-7FFF region between palette and 053245/054156
124010000--11-001--   W ---x---- CBNK      bank switch 4800-7FFF region between palette and 053245/056832
125125010000--11-001--   W --x----- n.c.
126126010000--11-001--   W xx------ SHD0/1    shadow control
127127010000--11-010--   W -----xxx PCU1/XBA  palette bank (tilemap A)
r241900r241901
138138010000--11-11011 R   -------x NCPU      ?
139139010000--11-111--   W --xxxxxx BREG      ROM bank select
140140010010--00------              n.c.
141010010--01---xxx R/W xxxxxxxx OREG      053244/053245 control
141010010--01---xxx R/W xxxxxxxx OREG      053244
142142010010--10-xxxxx R/W xxxxxxxx HIP       054000
143143010010--11       R/W xxxxxxxx PAR       sound communication
144010100xxxxxxxxxx R/W xxxxxxxx OBJ       053245 sprite RAM
145011xxxxxxxxxxxxx R/W xxxxxxxx VRAM      054156 video RAM
144010100xxxxxxxxxx R/W xxxxxxxx OBJ       053245
145011xxxxxxxxxxxxx R/W xxxxxxxx VRAM      056832
1461461xxxxxxxxxxxxxxx R   xxxxxxxx PROM      program ROM
147147
148148
r241900r241901
231231
232232note:
233233
234Lethal Enforcers has two sprite rendering chips working in parallel with their
235output mixed to give 6bpp, and two tilemap rendering chips working in parallel
236to give 8bpp. We currently cheat, using just one of each device but using
237alternate gfx layouts. Emulating it accurately will require separating the
238"front end" chips (053245, 054156) from the "back end" chips (053244, 054157)
239as only the latter are doubled.
234lethal enforcers has 2 sprite rendering chips working in parallel mixing
235data together to give 6bpp.. we cheat by using a custom function in
236konamiic.c and a fixed 6bpp decode.
240237
241238mirror not set up correctly
242239
r241900r241901
268265   /* bit 1 is cs (active low) */
269266   /* bit 2 is clock (active high) */
270267   /* bit 3 is "MUT" on the schematics (audio mute?) */
271   /* bit 4 bankswitches the 4400-7fff region: 0 = registers, 1 = palette RAM ("CBNK" on schematics) */
268   /* bit 4 bankswitches the 4800-7fff region: 0 = registers, 1 = RAM ("CBNK" on schematics) */
272269   /* bit 6 is "SHD0" (some kind of shadow control) */
273270   /* bit 7 is "SHD1" (ditto) */
274271
275272   m_cur_control2 = data;
276273
277   m_bank4000->set_bank(BIT(m_cur_control2, 4));
274   m_bank4800->set_bank((m_cur_control2 >> 4) & 1);
278275
279276   ioport("EEPROMOUT")->write(m_cur_control2, 0xff);
280277}
r241900r241901
305302   membank("bank1")->set_entry(data);
306303}
307304
305// use one more palette entry for the BG color
306WRITE8_MEMBER(lethal_state::le_bgcolor_w)
307{
308   m_palette->write(space, 0x3800 + offset, data);
309}
310
308311READ8_MEMBER(lethal_state::guns_r)
309312{
310313   switch (offset)
r241900r241901
353356   AM_RANGE(0x40d9, 0x40d9) AM_READ_PORT("INPUTS")
354357   AM_RANGE(0x40db, 0x40db) AM_READ(gunsaux_r)     // top X bit of guns
355358   AM_RANGE(0x40dc, 0x40dc) AM_WRITE(le_bankswitch_w)
356   AM_RANGE(0x4000, 0x43ff) AM_UNMAP // first 0x400 bytes of palette RAM are inaccessible
357   AM_RANGE(0x4000, 0x7fff) AM_DEVICE("bank4000", address_map_bank_device, amap8)
359   AM_RANGE(0x47fe, 0x47ff) AM_WRITE(le_bgcolor_w)     // BG color
360   AM_RANGE(0x4800, 0x7fff) AM_DEVICE("bank4800", address_map_bank_device, amap8)
358361   AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x38000)
359362ADDRESS_MAP_END
360363
361static ADDRESS_MAP_START( bank4000_map, AS_PROGRAM, 8, lethal_state )
362    // VRD = 0 or 1, CBNK = 0
363   AM_RANGE(0x0840, 0x084f) AM_MIRROR(0x8000) AM_DEVREADWRITE("k053244", k05324x_device, k053244_r, k053244_w)
364   AM_RANGE(0x0880, 0x089f) AM_MIRROR(0x8000) AM_DEVREADWRITE("k054000", k054000_device, read, write)
365   AM_RANGE(0x08c6, 0x08c6) AM_MIRROR(0x8000) AM_WRITE(sound_cmd_w)
366   AM_RANGE(0x08c7, 0x08c7) AM_MIRROR(0x8000) AM_WRITE(sound_irq_w)
367   AM_RANGE(0x08ca, 0x08ca) AM_MIRROR(0x8000) AM_READ(sound_status_r)
368   AM_RANGE(0x1000, 0x17ff) AM_MIRROR(0x8000) AM_DEVREADWRITE("k053244", k05324x_device, k053245_r, k053245_w)
369
370   // VRD = 0, CBNK = 0
371   AM_RANGE(0x2000, 0x27ff) AM_DEVREADWRITE("k056832", k056832_device, ram_code_lo_r, ram_code_lo_w)
372   AM_RANGE(0x2800, 0x2fff) AM_DEVREADWRITE("k056832", k056832_device, ram_code_hi_r, ram_code_hi_w)
373   AM_RANGE(0x3000, 0x37ff) AM_DEVREADWRITE("k056832", k056832_device, ram_attr_lo_r, ram_attr_lo_w)
374   AM_RANGE(0x3800, 0x3fff) AM_DEVREADWRITE("k056832", k056832_device, ram_attr_hi_r, ram_attr_hi_w)
375
376   // VRD = 1, CBNK = 0 or 1
377   AM_RANGE(0xa000, 0xbfff) AM_MIRROR(0x4000) AM_UNMAP // AM_DEVREAD("k056832", k056832_device, rom_byte_r)
378
379   // CBNK = 1; partially overlaid when VRD = 1
380   AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
364static ADDRESS_MAP_START( bank4800_map, AS_PROGRAM, 8, lethal_state )
365   AM_RANGE(0x0040, 0x004f) AM_DEVREADWRITE("k053244", k05324x_device, k053244_r, k053244_w)
366   AM_RANGE(0x0080, 0x009f) AM_DEVREADWRITE("k054000", k054000_device, read, write)
367   AM_RANGE(0x00c6, 0x00c6) AM_WRITE(sound_cmd_w)
368   AM_RANGE(0x00c7, 0x00c7) AM_WRITE(sound_irq_w)
369   AM_RANGE(0x00ca, 0x00ca) AM_READ(sound_status_r)
370   AM_RANGE(0x0800, 0x17ff) AM_MASK(0x07ff) AM_DEVREADWRITE("k053244", k05324x_device, k053245_r, k053245_w)
371   AM_RANGE(0x1800, 0x1fff) AM_DEVREADWRITE("k056832", k056832_device, ram_code_lo_r, ram_code_lo_w)
372   AM_RANGE(0x2000, 0x27ff) AM_DEVREADWRITE("k056832", k056832_device, ram_code_hi_r, ram_code_hi_w)
373   AM_RANGE(0x2800, 0x2fff) AM_DEVREADWRITE("k056832", k056832_device, ram_attr_lo_r, ram_attr_lo_w)
374   AM_RANGE(0x3000, 0x37ff) AM_DEVREADWRITE("k056832", k056832_device, ram_attr_hi_r, ram_attr_hi_w)
375   AM_RANGE(0x3800, 0x7001) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // 2 extra bytes for the BG color
381376ADDRESS_MAP_END
382377
383378static ADDRESS_MAP_START( le_sound, AS_PROGRAM, 8, lethal_state )
r241900r241901
472467   membank("bank1")->set_entry(0);
473468
474469   save_item(NAME(m_cur_control2));
475   save_item(NAME(m_layer_colorbase));
476470   save_item(NAME(m_sprite_colorbase));
477   save_item(NAME(m_back_colorbase));
471   save_item(NAME(m_layer_colorbase));
478472}
479473
480474void lethal_state::machine_reset()
r241900r241901
483477      m_layer_colorbase[i] = 0;
484478
485479   m_sprite_colorbase = 0;
486   m_back_colorbase = 0;
487480   m_cur_control2 = 0;
488   m_bank4000->set_bank(0);
481   m_bank4800->set_bank(0);
489482}
490483
491484static MACHINE_CONFIG_START( lethalen, lethal_state )
r241900r241901
498491   MCFG_CPU_ADD("soundcpu", Z80, MAIN_CLOCK/4)  /* verified on pcb */
499492   MCFG_CPU_PROGRAM_MAP(le_sound)
500493
501   MCFG_DEVICE_ADD("bank4000", ADDRESS_MAP_BANK, 0)
502   MCFG_DEVICE_PROGRAM_MAP(bank4000_map)
494   MCFG_DEVICE_ADD("bank4800", ADDRESS_MAP_BANK, 0)
495   MCFG_DEVICE_PROGRAM_MAP(bank4800_map)
503496   MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
504497   MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
505   MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(16)
506   MCFG_ADDRESS_MAP_BANK_STRIDE(0x4000)
498   MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(15)
499   MCFG_ADDRESS_MAP_BANK_STRIDE(0x3800)
507500
508501   MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
509502
r241900r241901
518511   MCFG_SCREEN_UPDATE_DRIVER(lethal_state, screen_update_lethalen)
519512   MCFG_SCREEN_PALETTE("palette")
520513
521   MCFG_PALETTE_ADD("palette", 8192)
514   MCFG_PALETTE_ADD("palette", 7168+1)
522515   MCFG_PALETTE_ENABLE_SHADOWS()
523516   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
524517
trunk/src/mame/drivers/naomi.c
r241900r241901
254254                                              Sticker    EPROM   FLASHROMs   X76F100  EPM7064S  315-5881
255255Game                                          on cart    IC22#   # of SOP56  IC37#    IC41#     IC42#         Notes
256256----------------------------------------------------------------------------------------------------------------------------------
257Club Kart: European Session (2003, prototype)   no cart  *       21 (64Mb)   present  315-6206  not present   * instead of EPROM have tiny PCB with 2 flashroms on it
258Crackin' DJ part 2                            840-0068C  23674   20 (64Mb)   present  315-6206  317-0311-COM  PCB have label 840-0068B-01 837-14124, requires regular 837-13551 and 837-13938 rotary JVS boards, and turntable simulation
259Ferrari F355 Challenge (twin, prototype)        no cart  22848P* 21 (64Mb)   present  315-6206  317-0267-COM  * flash-PCB have CRC 330B A417, the rest is the same as regular cart, not dumped but known to exist
257Club Kart: European Session (2003, prototype)   no cart  *       21 (64Mb)   present  315-6206  not present   *instead of EPROM have tiny PCB with 2 flashroms on it
258Crackin' DJ part 2                            840-0068C  23674   20 (64Mb)   present  315-6206  317-0311-COM  PCB have label 840-0068B-01 837-14124
260259Ferrari F355 Challenge 2 (twin)                 no cart  23399   21 (64Mb)   present  315-6206  317-0287-COM  content is the same as regular 171-7919A cart
261260House of the Dead 2 (prototype)                 no cart  A1E2    21 (64Mb)   present  315-6206  present       no label on IC42
262Inu No Osanpo / Dog Walking (Rev A)           840-0073C  22294A  16 (64Mb)   present  315-6206  317-0316-JPN  requires 837-13844 JVS IO with special jumpers settings enabling rotary
263Maze of the Kings The (prototype)               no cart  *       21 (64Mb)   present  315-6206  FRI           * flash-PCB, not dumped but known to exist
264Samba de Amigo (prototype)                      no cart  *       21 (64Mb)   present  315-6206  317-0270-COM  * instead of EPROM have tiny PCB with 2 flashroms on it
265Soul Surfer (Rev A)                           840-0095C  23838C  21 (64Mb)   present  315-6206  not present
261Inu No Osanpo / Dog Walking (Rev A)           840-0073C  22294A  16 (64Mb)   present  315-6206  317-0316-JPN
262Samba de Amigo (prototype)                      no cart  *       21 (64Mb)   present  315-6206  317-0270-COM  *instead of EPROM have tiny PCB with 2 flashroms on it
263Soul Surfer (Rev A)                           840-0095C  23838C  21 (64Mb)   present  315-6206  not present   todo: verify if it's Rev A or Rev C
266264Star Horse (server)                           840-0055C  23626   17 (64Mb)   present  315-6206  not present
267265The King of Route 66 (Rev A)                  840-0087C  23819A  20 (64Mb)   present  315-6206  not present   content is the same as regular 171-8132A cart
268Virtua NBA (prototype)                          no cart  *       21 (64Mb)   present  315-6206  317-0271-COM  * instead of EPROM have tiny PCB with 2 flashroms on it
269Virtua Tennis / Power Smash (prototype)         no cart  *       21 (64Mb)   present  315-6206  317-0263-COM  * flash-PCB, title screen have label "SOFT R&D Dept.#3", not dumped but known to exist
266Virtua NBA (prototype)                          no cart  *       21 (64Mb)   present  315-6206  317-0271-COM  *instead of EPROM have tiny PCB with 2 flashroms on it
270267
271268
272269837-13668  171-7919A (C) Sega 1998
r241900r241901
30430118 Wheeler (deluxe) (Rev A)                     840-0023C    22185A  20 (64Mb)   present     315-6213  317-0273-COM
30530218 Wheeler (standard)                           840-0036C    23298   20 (64Mb)   present     315-6213  317-0273-COM
30630318 Wheeler (upright)                            840-0037C    23299   20 (64Mb)   present     315-6213  317-0273-COM
307Airline Pilots (deluxe) (Rev B)                 ?            21787B  11 (64Mb)   present     315-6213  317-0251-COM   2 known BIOS 21801 (USA), 21802 (EXP)
304Airline Pilots (deluxe) (Rev B)                 ?            21787B  11 (64Mb)   present     315-6213  317-0251-COM   2 know BIOS 21801 (USA), 21802 (EXP)
308305Airline Pilots (Rev A)                          840-0005C    21739A  11 (64Mb)   present     315-6213  317-0251-COM
309306Cosmic Smash                                    840-0044C    23428    8 (64Mb)   ?           315-6213  317-0289-COM   joystick + 2 buttons
310307Cosmic Smash (Rev A)                            840-0044C    23428A   8 (64Mb)   ?           315-6213  317-0289-COM   joystick + 2 buttons
r241900r241901
317314Derby Owners Club 2000 Ver.2 (Rev A)            840-0052C    22284A  16 (64Mb)   present     315-6213  not present
318315Dynamite Baseball '99 / World Series'99 (Rev B) 840-0019C    22141B  19 (64Mb)   ?           315-6213  317-0269-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
319316Dynamite Baseball Naomi                         840-0001C    21575   21 (64Mb)   ?           315-6213  317-0246-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
320Ferrari F355 Challenge (deluxe)                 834-13842    21902   21 (64Mb)   present     315-6213  317-0254-COM   BIOS 21863 (USA), also known  to exists Japanese BIOS, not dumped
321Ferrari F355 Challenge (twin)                   834-13950    22848   21 (64Mb)   present     315-6213  317-0267-COM   2 known BIOS 22850 (USA), 22851 (EXP)
322Ferrari F355 Challenge 2 (twin)                 840-0042C    23399   21 (64Mb)   present     315-6213  317-0287-COM   2 known BIOS 22850 (USA), 22851 (EXP)
317Ferrari F355 Challenge                          834-13842    21902   21 (64Mb)   present     315-6213  317-0254-COM   requires special BIOS not yet dumped
318Ferrari F355 Challenge (twin)                   834-13950    22848   21 (64Mb)   present     315-6213  317-0267-COM   2 know BIOS 22850 (USA), 22851 (EXP)
319Ferrari F355 Challenge 2 (twin)                 840-0042C    23399   21 (64Mb)   present     315-6213  317-0287-COM   2 know BIOS 22850 (USA), 22851 (EXP)
323320Giant Gram: All Japan Pro Wrestling 2           840-0007C    21820    9 (64Mb)   ?           315-6213  317-0253-JPN   joystick + 3 buttons
324321Guilty Gear X                                   841-0013C    23356   14 (64Mb)   ?           315-6213  317-5063-COM
325322Gun Spike / Cannon Spike                        841-0012C    23210   12 (64Mb)   present     315-6213  317-5060-COM
326323Heavy Metal Geomatrix (Rev A)                   HMG016007    23716A  11 (64Mb)   present     315-6213  317-5071-COM   joystick + 2 buttons
327324House of the Dead 2 (original)                  834-13636    21385   20 (64Mb)   not present 315-6213  not present
328325House of the Dead 2                             834-13636-01 21585   20 (64Mb)   not present 315-6213  not present
329Idol Janshi Suchie-Pai 3                        841-0002C    21979   14 (64Mb)   ?           315-6213  317-5047-JPN   requires mahjong panel
326Idol Janshi Suchie-Pai 3                        841-0002C    21979   14 (64Mb)   ?           315-6213  317-5047-JPN   requires special I/O board and mahjong panel
330327Jambo! Safari (Rev A)                           840-0013C    22826A   8 (64Mb)   ?           315-6213  317-0264-COM
331328Mars TV                                         840-0025C    22993   15 (64Mb)   present     315-6213  317-0074-JPN
332OutTrigger                                      840-0017C    22163   19 (64Mb)   ?           315-6213  317-0266-COM   requires regular 837-13551 and 837-13938 rotary JVS boards, and special panel
329OutTrigger                                      840-0017C    22163   19 (64Mb)   ?           315-6213  317-0266-COM   requires analog controllers/special panel
333330Power Stone                                     841-0001C    21597    8 (64Mb)   present     315-6213  317-5046-COM   joystick + 3 buttons
334331Power Stone 2                                   841-0008C    23127    9 (64Mb)   present     315-6213  317-5054-COM   joystick + 3 buttons
335332Puyo Puyo Da!                                   841-0006C    22206   20 (64Mb)   ?           315-6213  ?
336Ring Out 4x4                                    840-0004C    21779   10 (64Mb)   present     315-6213  317-0250-COM   requires 2 JVS boards
333Ring Out 4x4                                    840-0004C    21779   10 (64Mb)   present     315-6213  317-0250-COM
337334Samba de Amigo (Rev B)                          840-0020C    22966B  16 (64Mb)   present     315-6213  317-0270-COM   will boot but requires special controller to play it
338Sega Marine Fishing                             840-0027C    22221   10 (64Mb)   ?           315-6213  not present    ROM 3&4 not present. Requires fishing controller
335Sega Marine Fishing                             840-0027C    22221   10 (64Mb)   ?           315-6213  not present    ROM 3&4 not present. Requires special I/O board and fishing controller
339336Sega Strike Fighter (Rev A)                     840-0035C    23323A  20 (64Mb)   present     315-6213  317-0281-COM
340337Sega Tetris                                     840-0018C    22909    6 (64Mb)   present     315-6213  317-0268-COM
341338Slashout                                        840-0041C    23341   17 (64Mb)   ?           315-6213  317-0286-COM   joystick + 4 buttons
342339Spawn In the Demon's Hand (Rev B)               841-0005C    22977B  10 (64Mb)   ?           315-6213  317-5051-COM   joystick + 4 buttons
343340Super Major League '99                          840-0012C    22059   21 (64Mb)   ?           315-6213  ?
344341The Typing of the Dead (Rev A)                  840-0026C    23021A  20 (64Mb)   present     315-6213  not present
345Touch de UNO! / Unou Nouryoku Check Machine     840-0008C    22073    4 (64Mb)   present     315-6213  317-0255-JPN   requires special JVS board with touch input and printer
342Touch de UNO! / Unou Nouryoku Check Machine     840-0008C    22073    4 (64Mb)   present     315-6213  317-0255-JPN
346343Toy Fighter / Waffupu                           840-0011C    22035   10 (64Mb)   present     315-6212  317-0257-COM   joystick + 3 buttons
347344Virtua NBA                                      840-0021C-01 23073   21 (64Mb)   present     315-6213  not present
348345Virtua NBA (original)                           840-0021C    22949   21 (64Mb)   present     315-6213  317-0271-COM
r241900r241901
447444                                               Sticker      EPROM   MASKROMs    25LC040  A54SX32
448445Game                                           on cart      IC11#   # of SOP44  IC13S#   IC1#          Notes
449446-------------------------------------------------------------------------------------------------------------------------------
450Club Kart Prize (Rev A)                        840-0129C    24082A  16 (64Mb)   present  317-0368-COM  requires Naomi-based hopper controller (Naomi bd + 840-0130 cart + 837-14381 "G2 EXPANSION BD")
451Club Kart Prize Ver. B                         840-0137C    24149   16 (64Mb)   present  317-0368-COM  requires 837-14438 "SH I/O BD" hopper controller (not dumped)
447Club Kart Prize (Rev A)                        840-0129C    24082A  16 (64Mb)   present  317-0368-COM  A54SX32A
448Club Kart Prize Ver. B                         840-0137C    24149   16 (64Mb)   present  317-0368-COM  A54SX32A
452449Giant Gram 2000                                840-0039C    23377   20 (64Mb)   present  317-0296-COM
453Kick '4' Cash                                  840-0140C    24212   16 (64Mb)   present  317-0397-COM  requires 837-14438 "SH I/O BD" hopper controller (not dumped)
450Kick '4' Cash                                  840-0140C    24212   16 (64Mb)   present  317-0397-COM  A54SX32A
454451Marvel Vs. Capcom 2 New Age of Heroes (Rev A)  841-0007C-02 23085A  14 (64Mb)*  present  317-5058-COM  *(+2x 32Mb)
455MushiKing The King of Beetles 2K3 2ND          840-0150C    24217    6 (64Mb)   present  317-0394-COM  requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip
452MushiKing The King of Beetles 2K3 2ND          840-0150C    24217    6 (64Mb)   present  317-0394-COM
456453Quiz Ah Megamisama                             840-0030C    23227   16 (64Mb)   present  317-0280-JPN
457Shootout Pool                                  840-0098C    23844    4 (64Mb)   present  317-0336-COM  requires regular 837-13551 and 837-13938 rotary JVS boards
458Shootout Pool Prize / The Medal (Rev A)        840-0128C    24065A   4 (64Mb)   present  317-0367-COM  requires Naomi-based hopper controller
459Shootout Pool Prize / The Medal Ver. B         840-0136C    24148    4 (64Mb)   present  317-0367-COM  requires Naomi-based or 837-14438 hopper controller
454Shootout Pool                                  840-0098C    23844    4 (64Mb)   present  317-0336-COM
455Shootout Pool - Shootout Pool Prize (Rev A)    840-0128C    24065A   4 (64Mb)   present  317-0367-COM
456Shootout Pool Medal                            840-0136C    24148    4 (64Mb)   present  317-0367-COM
460457SWP Hopper Board                               840-0130C    24083   20 (64Mb)   present  317-0339-COM  Maskroms are not really used, they are recycled from other games; there is an additional 837-14381 IO board
461Touch de UNO! 2                                840-0022C    23071    6 (64Mb)   present  317-0276-JPN  requires special JVS board with touch input and printer
458Touch de UNO! 2                                840-0022C    23071    6 (64Mb)   present  317-0276-JPN
462459Virtua Fighter 4 Evolution                     840-0106B    23934   20 (64Mb)   present  317-0339-COM
463460Virtua Tennis 2 / Power Smash 2 (Rev A)        840-0084C    22327A  18 (64Mb)   present  317-0320-COM
464461
r241900r241901
505502Club Kart: European Session                     840-0062C  23704   11 (128Mb)  315-6319A  315-6213  317-0313-COM
506503Club Kart: European Session (Rev C)             840-0062C      *   11 (128Mb)  315-6319A  315-6213  317-0313-COM  * EPR have handwritten Japanese label possibly readable as 'teteto 74 lcl'
507504Club Kart: European Session (Rev D)             840-0062C  23704D  11 (128Mb)  315-6319A  315-6213  317-0313-COM
508Crackin' DJ                                     840-0043C  23450   10 (128Mb)  315-6319   315-6213  317-0288-COM  requires regular 837-13551 and 837-13938 rotary JVS boards, and turntable simulation
505Crackin' DJ                                     840-0043C  23450   10 (128Mb)  315-6319   315-6213  317-0288-COM
509506Derby Owners Club II (Rev B)                    840-0083C  22306B  11 (128Mb)  315-6319A  315-6213  not present
510507Derby Owners Club World Edition (Rev C)         840-0088C  22336C   7 (128Mb)  315-6319A  315-6213  not present
511508Derby Owners Club World Edition (Rev D)         840-0088C  22336D   7 (128Mb)  315-6319A  315-6213  not present   2 MaskROM are different from Rev C
512509Giga Wing 2                                     841-0014C  22270    5 (128Mb)  315-6319A  315-6213  317-5064-COM
513510Mobile Suit Gundam: Federation Vs. Zeon         841-0017C  23638   10 (128Mb)  315-6319A  315-6213  ?
514511Moero Justice Gakuen / Project Justice (Rev A)  841-0015C  23548A  11 (128Mb)  315-6319A  315-6213  317-5065-COM
515MushiKing - The King Of Beetle 2K5 1ST          840-0158C  24286    7 (128Mb)  315-6319A  315-6213  not present   requires 610-0669 barcode reader
516Oinori-daimyoujin Matsuri                       840-0126B  24053    5 (128Mb)  315-6319A  315-6213  not present   requires 837-14274 "G2 EXPANSION BD" (similar to hopper 837-14381 but with ARC NET chip)
512MushiKing - The King Of Beetle 2K5 1ST         840-0158C  24286    7 (128Mb)  315-6319A  315-6213  not present
513Oinori-daimyoujin Matsuri                       840-0126B  24053    5 (128Mb)  315-6319A  315-6213  not present
517514Samba de Amigo Ver. 2000                        840-0047C  23600   11 (128Mb)  315-6319A  315-6213  317-0295-COM
518515Star Horse (big screens)                        840-0054C  23625    4 (128Mb)  315-6319   315-6213  not present
519516Star Horse (client)                             840-0056C  23627    6 (128Mb)* 315-6319   315-6213  not present   * +1 (64Mb)
r241900r241901
569566Dynamite Deka EX / Asian Dynamite                   840-0175C  not present  4 (512Mb)   present  317-0495-COM  present  IC2# is labeled "VER.2"
570567Illmatic Envelope                                   841-0059C  not present  4 (512Mb)   present  317-5131-JPN  present  IC2# is labeled "VER.2" - IC#11 is empty
571568Mamoru-kun wa Norowarete Shimatta                   841-0060C  not present  4 (512Mb)   present  317-5132-JPN  present  IC2# is labeled "VER.2"
572Manic Panic Ghost!                                  840-0170C  not present  5 (512Mb)   present  317-0461-COM  present  requires 837-14672 sensor board (SH4 based)
569Manic Panic Ghost!                                  840-0170C  not present  5 (512Mb)   present  317-0461-COM  present
573570Melty Blood Actress Again                           841-0061C  not present  6 (512Mb)   present  317-5133-JPN  present  IC2# is labeled "REV.A" - IC4# is marked "5A"
574571Melty Blood Actress Again (Rev A)                   841-0061C  24455        6 (512Mb)   present  317-5133-JPN  present  IC2# is labeled "REV.A" - IC4# is marked "5A"
575Mushiking - The King Of Beetles II ENG (Ver. 1.001) 840-0164C  not present  2 (512Mb)   present  317-0437-COM  present  requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip
572Mushiking - The King Of Beetles II ENG (Ver. 1.001) 840-0164C  not present  2 (512Mb)   present  317-0437-COM  present
576573Mushiking - The King Of Beetles II ENG (Ver. 2.001) 840-0164C  24357        2 (512Mb)   present  317-0437-COM  present  IC4# is marked "18"
577Poka Suka Ghost                                     840-0170C  not present  5 (512Mb)   present  317-0461-COM  present  requires 837-14672 sensor board (SH4 based)
574Poka Suka Ghost                                     840-0170C  not present  5 (512Mb)   present  317-0461-COM  present
578575Radirgy Noa                                         841-0062C  not present  4 (512Mb)   present  317-5138-JPN  present  IC2# is labeled "VER.2" - IC4# is marked "8A"
579576Rythm Tengoku                                       841-0177C  not present  4 (512Mb)   present  317-0503-JPN  present  IC2# is labeled "VER.2" - IC4# is marked "8A"
580577Shooting Love 2007                                  841-0057C  not present  4 (512Mb)   present  317-5129-JPN  present  IC2# is labeled "VER.2"
581Touch De Zunou (Rev A)                              840-0166C  not present  2 (512Mb)   present  317-0435-JPN  present  IC4# is marked "18", requires 837-14672 sensor board (SH4 based)
578Touch De Zunou (Rev A)                              840-0166C  not present  2 (512Mb)   present  317-0435-JPN  present  IC4# is marked "18"
582579
583580
584581
r241900r241901
627624 Game                                Type  on cart   FLASHROM  # of SOP48  IC @ 1F      IC @ 1H   IC @ 2K   IC @ 1M       code (1)    Notes
628625------------------------------------------------------------------------------------------------------------------------------------------------------
629626/Gun Survivor 2 Biohazard
630\Code: Veronica                      F1X   25709801  1 (64Mb)  14 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5075-COM  BHF1        uses Namco FCA JVS I/O, will crash if COMM.BOARD not present
627\Code: Veronica                      F1X   25709801  1 (64Mb)  14 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5075-COM  BHF1
631628/Gun Survivor 2 Biohazard
632629\Code: Veronica (Ver. E)             F1X   25709801  1 (64Mb)  14 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5075-COM  BHF2
633630/Shin Nihon Prowrestling Toukon                                                                                                       /FL0 & FL1 have pin55 raised from PCB.
634631\Retsuden 4 Arcade Edition (Ver. A)  F2X   25349801  2 (64Mb)  15 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5040-COM  TRF1        \They are connected togheter and go to pin89 on 2K.
635World Kicks PCB (WKC1 Ver. A)        F2    25509801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5040-COM  WKC1        uses Namco V226 JVS I/O
632World Kicks PCB (WKC1 Ver. A)        F2    25509801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5040-COM  WKC1
636633World Kicks (WK2 Ver. A)             F2    25209801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1A  317-5040-COM  WK2
637634World Kicks (WK3 Ver. A)             F2    25209801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1A  317-5040-COM  WK3
638635
r241900r241901
680677                                    Cart  Sticker   FL0-FL3   FLASHROMs   X76F100  CY37128  315-5881      Known Game
681678 Game                               Type  on cart   FLASHROM  # of SOP48  IC @ 1F  IC @ 2J  IC @ 1M       code (1)    Notes
682679--------------------------------------------------------------------------------------------------------------------------------
683Mazan: Flash of the Blade (Ver. A)  F1X   25869812  1 (64Mb)   8 (128Mb)  present  NAODEC3  317-0266-COM  MAZ2        uses 2x Namco FCB JVS I/O
680Mazan: Flash of the Blade (Ver. A)  F1X   25869812  1 (64Mb)   8 (128Mb)  present  NAODEC3  317-0266-COM  MAZ2
684681Mazan: Flash of the Blade (Ver. A)  F1X   25869812  1 (64Mb)   8 (128Mb)  present  NAODEC3  317-0266-COM  MAZ3
685Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA1        uses Namco JYU JVS I/O
682Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA1
686683Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA2
687684Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA3
688685Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA4
r241900r241901
27792776
27802777Ferrari F355 specific Naomi BIOS roms:
27812778
2782EPR-21863 - NAOMI BOOT ROM 1999 07/02  1.34 (USA)
27832779EPR-22850 - NAOMI BOOT ROM 1999 08/30  1.35 (USA)
27842780EPR-22851 - NAOMI BOOT ROM 1999 08/30  1.35 (Export)
27852781
r241900r241901
28682864   ROM_SYSTEM_BIOS( 2, "bios2", "HOTD2 (Proto)" ) \
28692865   ROM_LOAD16_WORD_SWAP_BIOS( 2,  "hotd2biosproto.ic27", 0x000000, 0x200000, CRC(ea74e967) SHA1(e4d037480eb6555d335a8ab9cd6c56122335586d) )
28702866
2871#define F355DLX_BIOS \
2872   ROM_REGION( 0x200000, "maincpu", 0) \
2873   ROM_SYSTEM_BIOS( 0, "bios0", "Ferrari F355 Deluxe (USA)" ) \
2874   ROM_LOAD16_WORD_SWAP_BIOS( 0,  "epr-21863.ic27", 0x000000, 0x200000, CRC(0615a4d1) SHA1(2c6986580b84278af75f396229fdd587bebc1768) )
2875
28762867#define F355_BIOS \
28772868   ROM_REGION( 0x200000, "maincpu", 0) \
28782869   ROM_SYSTEM_BIOS( 0, "bios0", "Ferrari F355 (Export)" ) \
r241900r241901
30103001   ROM_REGION( 0x8400000, "rom_board", ROMREGION_ERASE)
30113002ROM_END
30123003
3013ROM_START( f355dlx )
3014   F355DLX_BIOS
3015   NAOMI_DEFAULT_EEPROM
3016
3017   ROM_REGION( 0x8400000, "rom_board", ROMREGION_ERASE)
3018ROM_END
3019
30203004ROM_START( f355bios )
30213005   F355_BIOS
30223006   NAOMI_DEFAULT_EEPROM
r241900r241901
37163700*/
37173701
37183702ROM_START( f355 )
3719   F355DLX_BIOS
3703   F355_BIOS /* note: require (undumped) special BIOS, game not compatible with EPR-22850/EPR-22851 from twin-versions */
37203704   NAOMI_DEFAULT_EEPROM
37213705
37223706   ROM_REGION( 0xb000000, "rom_board", ROMREGION_ERASEFF)
r241900r241901
51815165   ROM_REGION( 4, "rom_key", ROMREGION_ERASE00 )
51825166ROM_END
51835167
5184// Shootout Pool
5185ROM_START( shootopl )
5186   NAOMI_BIOS
5187   NAOMI_DEFAULT_EEPROM
5168/*
51885169
5189   ROM_REGION( 0x3000000, "rom_board", ROMREGION_ERASEFF)
5190   ROM_LOAD( "epr-23844.ic11", 0x000000, 0x400000, CRC(5c229638) SHA1(9185f9f2369bb2423faff4222419001ac9037d3f) )
5191   ROM_LOAD32_WORD( "mtp-23840.ic17s", 0x1000000, 0x800000, CRC(985e5ff4) SHA1(a6f529b1855cc2aef3bed8503746c2e38061f944) )
5192   ROM_LOAD32_WORD( "mtp-23841.ic18",  0x1000002, 0x800000, CRC(255fc335) SHA1(34ffec963880383bb9c02642f73ba3c852699831) )
5193   ROM_LOAD32_WORD( "mtp-23842.ic19s", 0x2000000, 0x800000, CRC(80724895) SHA1(ed4fa1160b35b3987702c0178bd31c3c5db69e6e) )
5194   ROM_LOAD32_WORD( "mtp-23843.ic20",  0x2000002, 0x800000, CRC(3574f616) SHA1(40130e8f98fb31c98428d444b79491f6a06ac208) )
5170SYSTEMID: NAOMI
5171JAP: SHOOTOUT POOL
5172USA: SHOOTOUT POOL
5173EXP: SHOOTOUT POOL PRIZE
51955174
5196   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
5175*/
51975176
5198   ROM_REGION( 4, "rom_key", 0 )
5199   ROM_LOAD( "shootopl-key.bin", 0, 4, CRC(45547e02) SHA1(4f79f478ff1eea14bc939a67ff570143cb56a4bf) )
5200ROM_END
5201
5202// Shootout Pool Prize
52035177ROM_START( shootpl )
52045178   NAOMI_BIOS
52055179   NAOMI_DEFAULT_EEPROM
r241900r241901
52175191   ROM_LOAD( "shootpl-key.bin", 0, 4, CRC(03c30b17) SHA1(e8e8659aa27b3d1cac2268850d3973d9afeaeba9) )
52185192ROM_END
52195193
5220// Shootout Pool Prize Ver. B
5194// SHOOTOUT POOL (the original, the above set is a sequel)
5195ROM_START( shootopl )
5196   NAOMI_BIOS
5197   NAOMI_DEFAULT_EEPROM
5198
5199   ROM_REGION( 0x3000000, "rom_board", ROMREGION_ERASEFF)
5200   ROM_LOAD( "epr-23844.ic11", 0x000000, 0x400000, CRC(5c229638) SHA1(9185f9f2369bb2423faff4222419001ac9037d3f) )
5201   ROM_LOAD32_WORD( "mtp-23840.ic17s", 0x1000000, 0x800000, CRC(985e5ff4) SHA1(a6f529b1855cc2aef3bed8503746c2e38061f944) )
5202   ROM_LOAD32_WORD( "mtp-23841.ic18",  0x1000002, 0x800000, CRC(255fc335) SHA1(34ffec963880383bb9c02642f73ba3c852699831) )
5203   ROM_LOAD32_WORD( "mtp-23842.ic19s", 0x2000000, 0x800000, CRC(80724895) SHA1(ed4fa1160b35b3987702c0178bd31c3c5db69e6e) )
5204   ROM_LOAD32_WORD( "mtp-23843.ic20",  0x2000002, 0x800000, CRC(3574f616) SHA1(40130e8f98fb31c98428d444b79491f6a06ac208) )
5205
5206   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
5207
5208   ROM_REGION( 4, "rom_key", 0 )
5209   ROM_LOAD( "shootopl-key.bin", 0, 4, CRC(45547e02) SHA1(4f79f478ff1eea14bc939a67ff570143cb56a4bf) )
5210ROM_END
5211
5212/* Shootout Pool Medal */
52215213ROM_START( shootplm )
52225214   NAOMI_BIOS
52235215   NAOMI_DEFAULT_EEPROM
r241900r241901
88548846/* Main board and game specific BIOS */
88558847/* Naomi */ GAME( 1998, naomi,    0, naomi, naomi, naomi_state,   naomi, ROT0, "Sega", "Naomi Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88568848/* game  */ GAME( 1998, hod2bios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi House of the Dead 2 Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
8857/* game  */ GAME( 1999, f355dlx,  0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Ferrari F355 Challenge (deluxe) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
8858/* game  */ GAME( 1999, f355bios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Ferrari F355 Challenge (twin) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
8849/* game  */ GAME( 1999, f355bios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Ferrari F355 Challenge Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88598850/* game  */ GAME( 1999, airlbios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Airline Pilots (deluxe) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88608851/* Naomi2*/ GAME( 2001, naomi2,   0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi 2 Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88618852/* GDROM */ GAME( 2001, naomigd,  0, naomi, naomi, naomi_state,   naomi, ROT0, "Sega", "Naomi GD-ROM Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
r241900r241901
88638854/* 834-xxxxx (Sega Naomi cart with game specific BIOS sets) */
88648855/* 13636-01 */ GAME( 1998, hotd2,  hod2bios, naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
88658856/* 13636  */ GAME( 1998, hotd2o,   hotd2,    naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2 (original)", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
8866/* none   */ GAME( 1998, hotd2p,   hotd2,    naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2 (prototype)", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
8867/* 13842  */ GAME( 1999, f355,     f355dlx,  naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge (deluxe)", GAME_FLAGS ) /* specific BIOS "f355dlx" needed */
8857/* 13636? */ GAME( 1998, hotd2p,   hotd2,    naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2 (prototype)", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
8858/* 13842  */ GAME( 1999, f355,     f355bios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge", GAME_FLAGS ) /* specific BIOS "f355bios" needed */
88688859/* 13950  */ GAME( 1999, f355twin, f355bios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge (twin)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */
88698860/* ?????  */ GAME( 2001, f355twn2, f355bios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge 2 (twin)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */
88708861/* ?????  */ GAME( 1999, alpiltdx, airlbios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Airline Pilots (deluxe) (Rev B)", GAME_FLAGS ) /* specific BIOS "airlbios" needed */
r241900r241901
88878878/* 0018 */ GAME( 1999, sgtetris, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Sega Tetris", GAME_FLAGS )
88888879/* 0019 */ GAME( 1999, dybb99,   naomi,    naomim2, dybbnao, naomi_state, naomi,   ROT0, "Sega", "Dynamite Baseball '99 (JPN) / World Series '99 (USA, EXP, KOR, AUS) (Rev B)", GAME_FLAGS )
88898880/* 0020 */ GAME( 1999, samba,    naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Samba De Amigo (JPN) (Rev B)", GAME_FLAGS )
8890/* none */ GAME( 1999, sambap,   samba,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Samba De Amigo (prototype)", GAME_FLAGS )
8891/* none */ GAME( 2000, virnbap,  virnba,   naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (prototype)", GAME_FLAGS )
8881/* 0020? */GAME( 1999, sambap,   samba,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Samba De Amigo (prototype)", GAME_FLAGS )
8882/* 0021 */ GAME( 2000, virnbap,  virnba,   naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (prototype)", GAME_FLAGS )
88928883/* 0021 */ GAME( 2000, virnbao,  virnba,   naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (JPN, USA, EXP, KOR, AUS) (original)", GAME_FLAGS )
88938884/* 0021-01*/GAME( 2000,virnba,   naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS )
88948885/* 0022 */ GAME( 2000, tduno2,   naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Touch de Uno! 2", GAME_FLAGS )
r241900r241901
89238914/* 0088 */ GAME( 2001, derbyocw, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev D)", GAME_FLAGS )
89248915/* 0088 */ GAME( 2001, drbyocwc, derbyocw, naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev C)", GAME_FLAGS )
89258916/* 0098 */ GAME( 2002, shootopl, naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool", GAME_FLAGS )
8926/* 0123 */ GAME( 2003, starhrsp, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Star Horse Progress (Rev A)", GAME_FLAGS )
8917/* 0123 */ GAME( 2001, starhrsp, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Star Horse Progress (Rev A)", GAME_FLAGS )
89278918/* 0126 */ GAME( 2003, oinori,   naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Oinori-daimyoujin Matsuri", GAME_FLAGS )
8928/* 0128 */ GAME( 2003, shootpl,  naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool The Medal / Shootout Pool Prize (Rev A)", GAME_FLAGS )
8919/* 0128 */ GAME( 2002, shootpl,  naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool (JPN, USA, KOR, AUS) / Shootout Pool Prize (EXP) (Rev A)", GAME_FLAGS )
89298920/* 0130 */ GAME( 2002, hopper,   naomi,    naomi,   naomi,   naomi_state, naomi,   ROT0, "Sega", "SWP Hopper Board", GAME_FLAGS )
8930/* 0136 */ GAME( 2004, shootplm, naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool The Medal Ver. B / Shootout Pool Prize Ver. B", GAME_FLAGS )
8921/* 0136 */ GAME( 2001, shootplm, naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool Medal", GAME_FLAGS )
89318922/* 0140 */ GAME( 2004, kick4csh, naomi,    naomim1, naomi,   naomi_state, kick4csh,ROT0, "Sega", "Kick '4' Cash", GAME_FLAGS )
89328923/* 0150 */ GAME( 2003, mtkob2,   naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Mushiking The King Of Beetle 2K3 2nd", GAME_FLAGS )
89338924/* 0158 */ GAME( 2005, mushi2k5, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Mushiking The King Of Beetle 2K5 1st", GAME_FLAGS )
r241900r241901
89388929/* 0170 */ GAME( 2007, pokasuka, manicpnc, naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega", "Pokasuka Ghost", GAME_FLAGS )
89398930/* 0175 */ GAME( 2007, asndynmt, naomi,    naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega", "Asian Dynamite", GAME_FLAGS )
89408931/* 0177 */ GAME( 2007, rhytngk,  naomi,    naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega/Nintendo", "Rhythm Tengoku", GAME_FLAGS )
8941// 01?? Star Horse Progress Returns
89428932// 00xx Mayjinsen (Formation Battle in May) - prototype, never released
89438933
89448934/* Cartridge prototypes of games released on GD-ROM */
r241900r241901
89608950/* 0137 */ GAME( 2004, clubkpzb, naomi2,  naomi2m1, naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart Prize Ver. B", GAME_FLAGS )
89618951// needs verification is this dump really from 840-0139C cart
89628952/* 0139 */ GAME( 2003, clubk2k3, naomi2,  naomi2m1, naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003)", GAME_FLAGS )
8963/* none */ GAME( 2003, clubk2kp, clubk2k3,naomi2,   naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003, prototype)", GAME_FLAGS )
8953/* ??? */ GAME( 2003, clubk2kp, clubk2k3,naomi2,   naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003, prototype)", GAME_FLAGS )
89648954
89658955/* 841-xxxxx ("Licensed by Sega" Naomi cart games)*/
89668956/* 0001 */ GAME( 1999, pstone,   naomi, naomim2, naomi,   naomi_state, naomi,  ROT0,  "Capcom",          "Power Stone (JPN, USA, EUR, ASI, AUS)", GAME_FLAGS )
trunk/src/mame/drivers/popobear.c
r241900r241901
8989      : driver_device(mconfig, type, tag),
9090      m_maincpu(*this,"maincpu"),
9191      m_spr(*this, "spr"),
92      m_vram(*this, "vram"),
9392      m_vregs(*this, "vregs"),
9493      m_gfxdecode(*this, "gfxdecode"),
9594      m_palette(*this, "palette")
r241900r241901
9998      tilemap_base[1] = 0xf4000;
10099      tilemap_base[2] = 0xf8000;
101100      tilemap_base[3] = 0xfc000;
101
102      tilemap_size[0] = 0x04000;
103      tilemap_size[1] = 0x04000;
104      tilemap_size[2] = 0x04000;
105      tilemap_size[3] = 0x04000;
102106   }
103107
104108   required_device<cpu_device> m_maincpu;
105109   required_shared_ptr<UINT16> m_spr;
106   required_shared_ptr<UINT16> m_vram;
107110   required_shared_ptr<UINT16> m_vregs;
108111   optional_device<gfxdecode_device> m_gfxdecode;
109112   required_device<palette_device> m_palette;
110113
111   dynamic_array<UINT16> m_vram_rearranged;
114   UINT16* m_vram;
115   UINT16* m_vram_rearranged;
112116
113117   int tilemap_base[4];
118   int tilemap_size[4];
114119
115120   DECLARE_READ8_MEMBER(popo_620000_r);
116121   DECLARE_WRITE8_MEMBER(popobear_irq_ack_w);
r241900r241901
119124   TIMER_DEVICE_CALLBACK_MEMBER(popobear_irq);
120125   void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
121126
127   int m_gfx_index;
122128   tilemap_t    *m_bg_tilemap[4];
123129   TILE_GET_INFO_MEMBER(get_popobear_bg0_tile_info);
124130   TILE_GET_INFO_MEMBER(get_popobear_bg1_tile_info);
r241900r241901
143149
144150
145151      COMBINE_DATA(&m_vram_rearranged[swapped_offset]);
146      m_gfxdecode->gfx(0)->mark_dirty((swapped_offset)/32);
152      m_gfxdecode->gfx(m_gfx_index)->mark_dirty((swapped_offset)/32);
147153
148154      // unfortunately tilemaps and tilegfx share the same ram so we're always dirty if we write to RAM
149155      m_bg_tilemap[0]->mark_all_dirty();
r241900r241901
152158      m_bg_tilemap[3]->mark_all_dirty();
153159
154160   }
161   DECLARE_READ16_MEMBER(popo_vram_r) { return m_vram[offset]; }
155162
156163};
157164
r241900r241901
159166static const gfx_layout popobear_char_layout =
160167{
161168   8,8,
162   RGN_FRAC(1,1),
169   0x4000,
163170   8,
164171   { 0,1,2,3,4,5,6,7 },
165172   { STEP8(0, 8) },
r241900r241901
167174   8*64
168175};
169176
170GFXDECODE_START(popobear)
171   GFXDECODE_RAM( "vram", 0, popobear_char_layout, 0, 1 )
172GFXDECODE_END
173177
174178TILE_GET_INFO_MEMBER(popobear_state::get_popobear_bg0_tile_info)
175179{
r241900r241901
208212
209213void popobear_state::video_start()
210214{
211   m_vram_rearranged.resize(0x100000 / 2);
215   /* find first empty slot to decode gfx */
216   for (m_gfx_index = 0; m_gfx_index < MAX_GFX_ELEMENTS; m_gfx_index++)
217      if (m_gfxdecode->gfx(m_gfx_index) == 0)
218         break;
212219
213   m_gfxdecode->gfx(0)->set_source(reinterpret_cast<UINT8 *>(&m_vram_rearranged[0]));
220   assert(m_gfx_index != MAX_GFX_ELEMENTS);
214221
222   m_vram = auto_alloc_array_clear(machine(), UINT16, 0x100000/2);
223   m_vram_rearranged = auto_alloc_array_clear(machine(), UINT16, 0x100000/2);
224
225
226   /* create the char set (gfx will then be updated dynamically from RAM) */
227   m_gfxdecode->set_gfx(m_gfx_index, global_alloc(gfx_element(m_palette, popobear_char_layout, (UINT8 *)m_vram_rearranged, NATIVE_ENDIAN_VALUE_LE_BE(8,0), m_palette->entries() / 16, 0)));
228
215229   m_bg_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
216230   m_bg_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
217231   m_bg_tilemap[2] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
r241900r241901
229243
230244void popobear_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect)
231245{
246   // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
232247   UINT8* vram = reinterpret_cast<UINT8 *>(m_spr.target());
233248   int i;
234249
r241900r241901
249264      /* 0x*29 = 32 x 32 */
250265      for(i = 0x800-8;i >= 0; i-=8)
251266      {
252         UINT16 *sprdata = &m_spr[(0x7f800 + i) / 2];
267         int y = vram[i+0x7f800+2]|(vram[i+0x7f800+3]<<8);
268         int x = vram[i+0x7f800+4]|(vram[i+0x7f800+5]<<8);
269         int spr_num = vram[i+0x7f800+6]|(vram[i+0x7f800+7]<<8);
270         int param = vram[i+0x7f800+0]|(vram[i+0x7f800+1]<<8);
253271
254         int param = sprdata[0];
255272         int pri = (param & 0x0f00)>>8;
256273
257274         // we do this because it's sprite<->sprite priority,
258275         if (pri!=drawpri)
259276            continue;
260277
261         int y = sprdata[1];
262         int x = sprdata[2];
263         int spr_num = sprdata[3];
264
265278         int width = 8 << ((param & 0x30)>>4);
266279         int height = width; // sprites are always square?
267280
r241900r241901
314327
315328            for(int xi=0;xi<width;xi++)
316329            {
317               UINT8 pix = vram[BYTE_XOR_BE(spr_num)];
330               UINT8 pix = (vram[spr_num^1] & 0xff);
318331               int x_draw = (x_dir) ? x+((width-1) - xi) : x+xi;
319332
320333               if(cliprect.contains(x_draw, y_draw))
r241900r241901
466479   AM_RANGE(0x000000, 0x03ffff) AM_ROM
467480   AM_RANGE(0x210000, 0x21ffff) AM_RAM
468481   AM_RANGE(0x280000, 0x2fffff) AM_RAM AM_SHARE("spr") // unknown boundaries, 0x2ff800 contains a sprite list, lower area = sprite gfx
469   AM_RANGE(0x300000, 0x3fffff) AM_RAM_WRITE( popo_vram_w ) AM_SHARE("vram") // tile definitions + tilemaps
482   AM_RANGE(0x300000, 0x3fffff) AM_READWRITE( popo_vram_r, popo_vram_w ) // tile definitions + tilemaps
470483
471484
472485   /* Most if not all of these are vregs */
r241900r241901
647660
648661   MCFG_SPEAKER_STANDARD_MONO("mono")
649662
650   MCFG_GFXDECODE_ADD("gfxdecode", "palette", popobear)
663   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
651664
652665   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_42MHz/16)  // XTAL CORRECT, DIVISOR GUESSED
653666   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
trunk/src/mame/etc/template_cpu.c
r241900r241901
1// license: ?
1// license: BSD-3-Clause
22// copyright-holders: Angelo Salese
33/*****************************************************************************
44 *
trunk/src/mame/etc/template_cpu.h
r241900r241901
1// license: ?
1// license: BSD-3-Clause
22// copyright-holders: Angelo Salese
33/*****************************************************************************
44 *
r241900r241901
1313
1414enum
1515{
16   #if 0
16   #if UNUSED
1717   XXX_R0=1, XXX_R1, XXX_R2, XXX_R3,
1818   XXX_R4, XXX_R5, XXX_R6, XXX_R7
1919   #endif
trunk/src/mame/etc/template_device.c
r241900r241901
1// license: ?
1// license: BSD-3-Clause
22// copyright-holders: Angelo Salese
33/***************************************************************************
44
trunk/src/mame/etc/template_device.h
r241900r241901
1// license: ?
1// license: BSD-3-Clause
22// copyright-holders: Angelo Salese
33/***************************************************************************
44
trunk/src/mame/etc/template_driver.c
r241900r241901
1// license: ?
1// license: BSD-3-Clause
22// copyright-holders: Angelo Salese
33/***************************************************************************
44
r241900r241901
151151   MCFG_SCREEN_UPDATE_DRIVER(xxx_state, screen_update)
152152//  MCFG_SCREEN_SIZE(32*8, 32*8)
153153//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
154   MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 442, 0, 320, 264, 0, 240) /* generic video timing, change accordingly */
154   MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 442, 0, 320, 264, 0, 240) /* generic NTSC video timing, change accordingly */
155155   MCFG_SCREEN_PALETTE("palette")
156156
157157   MCFG_GFXDECODE_ADD("gfxdecode", "palette", xxx)
trunk/src/mame/etc/template_readme.txt
r0r241901
1The template family tree is an attempt to ease the pain to write CPUs/drivers/devices
2from scratch (especially for smaller projects).
3
4===
5Usage:
6- Any "xxx" name is case-sensitive (i.e., XXX -> NAMEOFDEVICE, xxx -> nameofdevice);
7
8===
9License:
10Copyright (c) 2014, Angelo Salese & the MAME team
11All rights reserved.
12
13Redistribution and use in source and binary forms, with or without
14modification, are permitted provided that the following conditions are met:
15    * Redistributions of source code must retain the above copyright
16      notice, this list of conditions and the following disclaimer.
17    * Redistributions in binary form must reproduce the above copyright
18      notice, this list of conditions and the following disclaimer in the
19      documentation and/or other materials provided with the distribution.
20    * Neither the name of the <organization> nor the
21      names of its contributors may be used to endorse or promote products
22      derived from this software without specific prior written permission.
23
24THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
25ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
28DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
35===
36TODO:
37- Define convention for template inputs (i.e. optimal for each host);
38- Write template drivers for different endianesses;
39- Write template header for drivers;
40- Write tool program that auto-generate contents;
trunk/src/mame/includes/lethal.h
r241900r241901
1818      : driver_device(mconfig, type, tag),
1919      m_maincpu(*this, "maincpu"),
2020      m_soundcpu(*this, "soundcpu"),
21      m_bank4000(*this, "bank4000"),
21      m_bank4800(*this, "bank4800"),
2222      m_k056832(*this, "k056832"),
2323      m_k053244(*this, "k053244"),
2424      m_palette(*this, "palette") { }
r241900r241901
2626   /* video-related */
2727   int        m_layer_colorbase[4];
2828   int        m_sprite_colorbase;
29   int        m_back_colorbase;
3029
3130   /* misc */
3231   UINT8      m_cur_control2;
r241900r241901
3433   /* devices */
3534   required_device<cpu_device> m_maincpu;
3635   required_device<cpu_device> m_soundcpu;
37   required_device<address_map_bank_device> m_bank4000;
36   required_device<address_map_bank_device> m_bank4800;
3837   required_device<k056832_device> m_k056832;
3938   required_device<k05324x_device> m_k053244;
4039   required_device<palette_device> m_palette;
r241900r241901
4443   DECLARE_WRITE8_MEMBER(sound_irq_w);
4544   DECLARE_READ8_MEMBER(sound_status_r);
4645   DECLARE_WRITE8_MEMBER(le_bankswitch_w);
46   DECLARE_WRITE8_MEMBER(le_bgcolor_w);
4747   DECLARE_READ8_MEMBER(guns_r);
4848   DECLARE_READ8_MEMBER(gunsaux_r);
4949   DECLARE_WRITE8_MEMBER(lethalen_palette_control);
trunk/src/mame/mame.lst
r241900r241901
52775277ggram2          // 1999.04 Giant Gram: All Japan Pro Wrestling 2
52785278            // 1999.05 Taisen Puzzle Kurutto Stone
52795279ringout         // 1999.06 Ring Out 4x4
5280f355dlx         // 1999.07 F355 Challenge Deluxe (BIOS)
5281f355bios        // 1999.08 F355 Challenge Twin (BIOS)
5282f355            // 1999.07 F355 Challenge Deluxe
5280f355bios        // 1999.07 F355 Challenge (BIOS)
5281f355            // 1999.07 F355 Challenge
52835282f355twin        // 1999.07 F355 Challenge Twin
52845283shangril        // 1999.08 Dengen Tenshi Taisen Janshi Shangri-la
52855284tduno           // 1999.08 Touch de UNO! / Unou Nouryoku Check Machine
r241900r241901
53235322qmegamis        // 2000.05 Quiz Ah Megamisama
53245323derbyo2k        // 2000.06 Derby Owners Club 2000 Ver.2 (Rev A)
53255324starhrse        // 2000.?? Star Horse (big screens)
5326starhrct        // 2000.12 Star Horse (server)
5325starhrct        // 2000.?? Star Horse (server)
53275326starhrcl        // 2000.?? Star Horse (client)
53285327vonot           // 2000.06 Virtual-on Oratorio Tangram M.S.B.S. Ver.5.66 2000 Edition
53295328ggx             // 2000.07 Guilty Gear X
r241900r241901
53575356sfz3ugd         // 2001.02 Street Fighter ZERO3 Upper
53585357gundmgd         // 2001.03 Mobile Suit Gundam: Federation Vs. Zeon (GD-ROM)
53595358gundmct         // 2001.03 Mobile Suit Gundam: Federation Vs. Zeon (cartridge)
5359starhrsp        // 2001.03 Star Horse Progress (Rev A)
53605360dygolf          // 2001.04.27 Dynamic Golf / Virtua Golf (Rev A)
53615361            // 2001.04 Shakatto Tambourine Motto Norinori Shinkyoku Tsuika
53625362shaktmsp        // 2001.04.04 Shakatto Tambourine 2K1 SPR
r241900r241901
53855385lupinsho        // 2001.12 Lupin the Third: the Shooting
53865386drbyocwc        // 2001.?? Derby Owners Club World Edition (Rev. C)
53875387derbyocw        // 2001.?? Derby Owners Club World Edition (Rev. D)
5388shootplm        // 2001.?? Shootout Pool Medal
53885389            // 2001.?? Star Horse 2001
53895390hopper          // 2002.?? SWP Hopper Board
53905391vathlete        // 2002.03 Virtua Athletics / Virtua Athlete
r241900r241901
54015402            // 2002.?? Pochinya
54025403quizqgd         // 2002.?? Quiz Keitai Q mode
54035404shootopl        // 2002.?? Shootout Pool
5404shootpl         // 2003.?? Shootout Pool The Medal / Shootout Pool Prize (Rev A)
5405shootpl         // 2002.?? Shootout Pool / Shootout Pool Prize (Rev A)
54055406mtkob2          // 2003.02 MushiKing The King Of Beetle
54065407            // 2003.03 Sega Network Taisen Mahjong MJ
54075408ggxxrl          // 2003.03 Guilty Gear XX # Reload (Rev A)
r241900r241901
54125413oinori          // 2003.08 Oinori-daimyoujin Matsuri
54135414psyvar2         // 2003.11 Psyvariar 2 - The Will To Fabricate
54145415puyofev         // 2003.11 Puyo Puyo Fever
5415starhrsp        // 2003.12 Star Horse Progress (Rev A)
54165416puyofevp        // 2003.?? Puyo Puyo Fever (prototype)
54175417            // 2003.?? Dragon Treasure
54185418            // 2003.?? Rabbit 2
r241900r241901
54205420tetkiwam        // 2004.06 Tetris Kiwamemichi (Arcade TV Game List - P.88, Right, 11 from bottom)
54215421trizeal         // 2004.09 Trizeal
54225422            // 2004.?? Dragon Treasure 2
5423shootplm        // 2004.?? Shootout Pool The Medal Ver. B / Shootout Pool Prize Ver. B
54245423kick4csh        // 2004.?? Kick '4' Cash
54255424            // 2004.?? The Quiz Show
54265425            // 2005.03 Melty Blood Act Cadenza
trunk/src/mame/video/lethal.c
r241900r241901
1414{
1515   int pri = (*color & 0xfff0);
1616   *color = *color & 0x000f;
17   *color += m_sprite_colorbase;
17   *color += 0x400 / 64; // colourbase?
1818
1919   /* this isn't ideal.. shouldn't need to hardcode it? not 100% sure about it anyway*/
2020   if (pri == 0x10)
r241900r241901
6565      m_k056832->set_layer_offs(2, 192, 0);
6666      m_k056832->set_layer_offs(3, 194, 0);
6767   }
68
69   m_layer_colorbase[0] = 0x00;
70   m_layer_colorbase[1] = 0x40;
71   m_layer_colorbase[2] = 0x80;
72   m_layer_colorbase[3] = 0xc0;
6873}
6974
7075WRITE8_MEMBER(lethal_state::lethalen_palette_control)
r241900r241901
7277   switch (offset)
7378   {
7479      case 0: // 40c8 - PCU1 from schematics
75         m_layer_colorbase[0] = (data & 0x7) * 1024 / 16;
76         m_layer_colorbase[1] = ((data >> 4) & 0x7) * 1024 / 16;
80         m_layer_colorbase[0] = ((data & 0x7) - 1) * 0x40;
81         m_layer_colorbase[1] = (((data >> 4) & 0x7) - 1) * 0x40;
7782         m_k056832->mark_plane_dirty( 0);
7883         m_k056832->mark_plane_dirty( 1);
7984         break;
8085
8186      case 4: // 40cc - PCU2 from schematics
82         m_layer_colorbase[2] = (data & 0x7) * 1024 / 16;
83         m_layer_colorbase[3] = ((data >> 4) & 0x7) * 1024 / 16;
87         m_layer_colorbase[2] = ((data & 0x7) - 1) * 0x40;
88         m_layer_colorbase[3] = (((data >> 4) & 0x7) - 1) * 0x40;
8489         m_k056832->mark_plane_dirty( 2);
8590         m_k056832->mark_plane_dirty( 3);
8691         break;
8792
8893      case 8: // 40d0 - PCU3 from schematics
89         m_sprite_colorbase = (data & 0x7) * 1024 / 64;
90         m_back_colorbase = ((data >> 4) & 0x7) * 1024 + 1023;
94         m_sprite_colorbase = ((data & 0x7) - 1) * 0x40;
9195         break;
9296   }
9397}
9498
9599UINT32 lethal_state::screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
96100{
97   bitmap.fill(m_back_colorbase, cliprect);
101   bitmap.fill(7168, cliprect);
98102   screen.priority().fill(0, cliprect);
99103
100104   m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
trunk/src/mess/drivers/ngen.c
r241900r241901
1414#include "machine/am9517a.h"
1515#include "machine/pic8259.h"
1616#include "machine/pit8253.h"
17#include "machine/z80dart.h"
1817
1918class ngen_state : public driver_device
2019{
r241900r241901
2423      m_maincpu(*this,"maincpu"),
2524      m_crtc(*this,"crtc"),
2625      m_viduart(*this,"videouart"),
27      m_iouart(*this,"iouart"),
2826      m_dmac(*this,"dmac"),
2927      m_pic(*this,"pic"),
30      m_pit(*this,"pit"),
31      m_vram(*this,"vram"),
32      m_fontram(*this,"fontram")
28      m_pit(*this,"pit")
3329   {}
3430
3531   DECLARE_WRITE_LINE_MEMBER(pit_out0_w);
r241900r241901
4743   required_device<cpu_device> m_maincpu;
4844   required_device<mc6845_device> m_crtc;
4945   required_device<i8251_device> m_viduart;
50   required_device<upd7201_device> m_iouart;
5146   required_device<am9517a_device> m_dmac;
5247   required_device<pic8259_device> m_pic;
5348   required_device<pit8254_device> m_pit;
54   required_shared_ptr<UINT16> m_vram;
55   required_shared_ptr<UINT16> m_fontram;
5649
5750   UINT16 m_peripheral;
5851   UINT16 m_upper;
5952   UINT16 m_middle;
6053   UINT16 m_port00;
61   UINT16 m_periph141;
6254};
6355
6456WRITE_LINE_MEMBER(ngen_state::pit_out0_w)
6557{
66   //m_pic->ir0_w(state);
67   logerror("80186 Timer 1 state %i\n",state);
58   m_pic->ir0_w(state);
6859}
6960
7061WRITE_LINE_MEMBER(ngen_state::pit_out1_w)
7162{
72   logerror("PIT Timer 1 state %i\n",state);
7363}
7464
7565WRITE_LINE_MEMBER(ngen_state::pit_out2_w)
7666{
77   logerror("PIT Timer 2 state %i\n",state);
7867}
7968
8069WRITE16_MEMBER(ngen_state::cpu_peripheral_cb)
r241900r241901
10897}
10998
11099// 80186 peripheral space
111// Largely guesswork at this stage
112100WRITE16_MEMBER(ngen_state::peripheral_w)
113101{
114102   switch(offset)
115103   {
116   case 0x141:
117      // bit 1 enables speaker?
118      COMBINE_DATA(&m_periph141);
119      break;
120104   case 0x144:
121105      if(mem_mask & 0x00ff)
122106         m_crtc->address_w(space,0,data & 0xff);
r241900r241901
127111      break;
128112   case 0x146:
129113      if(mem_mask & 0x00ff)
130         m_iouart->ba_cd_w(space,0,data & 0xff);
131      logerror("Video write offset 0x146 data %04x mask %04x\n",data,mem_mask);
114         m_pic->write(space,0,data & 0xff);
132115      break;
133116   case 0x147:
134117      if(mem_mask & 0x00ff)
135         m_iouart->ba_cd_w(space,1,data & 0xff);
136      logerror("Video write offset 0x147 data %04x mask %04x\n",data,mem_mask);
118         m_pic->write(space,1,data & 0xff);
137119      break;
138   default:
139      logerror("(PC=%06x) Unknown 80186 peripheral write offset %04x data %04x mask %04x\n",m_maincpu->device_t::safe_pc(),offset,data,mem_mask);
140120   }
121   logerror("Peripheral write offset %04x data %04x mask %04x\n",offset,data,mem_mask);
141122}
142123
143124READ16_MEMBER(ngen_state::peripheral_r)
144125{
145   UINT16 ret = 0xffff;
126   UINT16 ret = 0xff;
146127   switch(offset)
147128   {
148   case 0x141:
149      ret = m_periph141;
150      break;
151129   case 0x144:
152130      if(mem_mask & 0x00ff)
153131         ret = m_crtc->status_r(space,0);
r241900r241901
158136      break;
159137   case 0x146:
160138      if(mem_mask & 0x00ff)
161         ret = m_iouart->ba_cd_r(space,0);
139         ret = m_pic->read(space,0);
162140      break;
163   case 0x147:  // definitely video related, likely UART sending data to the video board
141   case 0x147:
164142      if(mem_mask & 0x00ff)
165         ret = m_iouart->ba_cd_r(space,1);
166      // expects bit 0 to be set (Video ready signal?)
167      ret |= 1;
143         ret = m_pic->read(space,1);
168144      break;
169   default:
170      logerror("(PC=%06x) Unknown 80186 peripheral read offset %04x mask %04x returning %04x\n",m_maincpu->device_t::safe_pc(),offset,mem_mask,ret);
171145   }
146   logerror("Peripheral read offset %04x mask %04x\n",offset,mem_mask);
172147   return ret;
173148}
174149
r241900r241901
190165
191166MC6845_UPDATE_ROW( ngen_state::crtc_update_row )
192167{
193   UINT16 addr = ma;
194
195   for(int x=0;x<bitmap.width();x+=9)
196   {
197      UINT8 ch = m_vram[addr++];
198      for(int z=0;z<9;z++)
199      {
200         if(BIT(m_fontram[ch*16+ra],8-z))
201            bitmap.pix32(y,x+z) = rgb_t(0,0xff,0);
202         else
203            bitmap.pix32(y,x+z) = rgb_t(0,0,0);
204      }
205   }
206168}
207169
208170static ADDRESS_MAP_START( ngen_mem, AS_PROGRAM, 16, ngen_state )
209   AM_RANGE(0x00000, 0xf7fff) AM_RAM
210   AM_RANGE(0xf8000, 0xf9fff) AM_RAM AM_SHARE("vram")
211   AM_RANGE(0xfa000, 0xfbfff) AM_RAM AM_SHARE("fontram")
171   AM_RANGE(0x00000, 0xfdfff) AM_RAM
212172   AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION("bios",0)
213173ADDRESS_MAP_END
214174
r241900r241901
255215
256216   MCFG_DEVICE_ADD("dmac", AM9517A, XTAL_14_7456MHz / 3)  // NEC D8237A, divisor unknown
257217
258   // I/O board
259   MCFG_UPD7201_ADD("iouart",XTAL_14_7456MHz / 3, 0,0,0,0) // no clock visible on I/O board, guessing for now
260
261218   // video board
262219   MCFG_SCREEN_ADD("screen", RASTER)
263220   MCFG_SCREEN_SIZE(720,348)
trunk/src/mess/includes/gamecom.h
r241900r241901
211211{
212212public:
213213   gamecom_state(const machine_config &mconfig, device_type type, const char *tag)
214      : driver_device(mconfig, type, tag)
215      , m_p_videoram(*this,"videoram")
216      , m_p_nvram(*this,"nvram")
217      , m_maincpu(*this, "maincpu")
218      , m_dac(*this, "dac")
219      , m_cart1(*this, "cartslot1")
220      , m_cart2(*this, "cartslot2")
221      , m_bank1(*this, "bank1")
222      , m_bank2(*this, "bank2")
223      , m_bank3(*this, "bank3")
224      , m_bank4(*this, "bank4")
225      , m_region_maincpu(*this, "maincpu")
226      , m_region_kernel(*this, "kernel")
227      , m_io_in0(*this, "IN0")
228      , m_io_in1(*this, "IN1")
229      , m_io_in2(*this, "IN2")
230      , m_io_grid(*this, "GRID")
214      : driver_device(mconfig, type, tag),
215      m_maincpu(*this, "maincpu"),
216      m_dac(*this, "dac"),
217      m_cart1(*this, "cartslot1"),
218      m_cart2(*this, "cartslot2"),
219      m_p_nvram(*this,"nvram"),
220      m_p_videoram(*this,"videoram"),
221      m_bank1(*this, "bank1"),
222      m_bank2(*this, "bank2"),
223      m_bank3(*this, "bank3"),
224      m_bank4(*this, "bank4"),
225      m_region_maincpu(*this, "maincpu"),
226      m_region_kernel(*this, "kernel"),
227      m_io_in0(*this, "IN0"),
228      m_io_in1(*this, "IN1"),
229      m_io_in2(*this, "IN2"),
230      m_io_grid(*this, "GRID")
231231      { }
232232
233   required_device<cpu_device> m_maincpu;
234   required_device<dac_device> m_dac;
235   required_device<generic_slot_device> m_cart1;
236   required_device<generic_slot_device> m_cart2;
233237   DECLARE_READ8_MEMBER( gamecom_internal_r );
234238   DECLARE_READ8_MEMBER( gamecom_pio_r );
235239   DECLARE_WRITE8_MEMBER( gamecom_internal_w );
236240   DECLARE_WRITE8_MEMBER( gamecom_pio_w );
237   DECLARE_DRIVER_INIT(gamecom);
238   DECLARE_PALETTE_INIT(gamecom);
239   INTERRUPT_GEN_MEMBER(gamecom_interrupt);
240   TIMER_CALLBACK_MEMBER(gamecom_clock_timer_callback);
241   TIMER_CALLBACK_MEMBER(gamecom_scanline);
242   DECLARE_WRITE8_MEMBER( gamecom_handle_dma );
243   DECLARE_WRITE8_MEMBER( gamecom_update_timers );
244   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( gamecom_cart1 );
245   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( gamecom_cart2 );
246   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
247private:
241   required_shared_ptr<UINT8> m_p_nvram;
248242   UINT8 *m_p_ram;
243   required_shared_ptr<UINT8> m_p_videoram;
249244   UINT8 *m_cart_ptr;
250   UINT8 m_lcdc_reg;
251   UINT8 m_lch_reg;
252   UINT8 m_lcv_reg;
253   UINT16 m_scanline;
254   UINT16 m_base_address;
255245   memory_region *m_cart1_rom;
256246   memory_region *m_cart2_rom;
257247   emu_timer *m_clock_timer;
r241900r241901
259249   GAMECOM_DMA m_dma;
260250   GAMECOM_TIMER m_timer[2];
261251   gamecom_sound_t m_sound;
252   int m_scanline;
253   unsigned int m_base_address;
262254   bitmap_ind16 m_bitmap;
263255   void gamecom_set_mmu(UINT8 mmu, UINT8 data);
264256   void handle_stylus_press(int column);
257   UINT8 m_lcdc_reg;
258   UINT8 m_lch_reg;
259   UINT8 m_lcv_reg;
265260   void recompute_lcd_params();
266261   void handle_input_press(UINT16 mux_data);
267   int common_load(device_image_interface &image, generic_slot_device *slot);
262
263   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
264   DECLARE_DRIVER_INIT(gamecom);
268265   virtual void machine_reset();
269266   virtual void video_start();
270   required_shared_ptr<UINT8> m_p_videoram;
271   required_shared_ptr<UINT8> m_p_nvram;
272   required_device<cpu_device> m_maincpu;
273   required_device<dac_device> m_dac;
274   required_device<generic_slot_device> m_cart1;
275   required_device<generic_slot_device> m_cart2;
267   DECLARE_PALETTE_INIT(gamecom);
268   INTERRUPT_GEN_MEMBER(gamecom_interrupt);
269   TIMER_CALLBACK_MEMBER(gamecom_clock_timer_callback);
270   TIMER_CALLBACK_MEMBER(gamecom_scanline);
271   DECLARE_WRITE8_MEMBER( gamecom_handle_dma );
272   DECLARE_WRITE8_MEMBER( gamecom_update_timers );
273   int common_load(device_image_interface &image, generic_slot_device *slot);
274   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( gamecom_cart1 );
275   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( gamecom_cart2 );
276
277protected:
276278   required_memory_bank m_bank1;
277279   required_memory_bank m_bank2;
278280   required_memory_bank m_bank3;
trunk/src/mess/layout/gamecom.lay
r241900r241901
1010         <bounds x="0" y="0" width="16" height="16" />
1111      </backdrop>
1212      <backdrop element="grid" inputtag="GRID.1" inputmask="0x01" >
13         <bounds x="16" y="0" width="16" height="16" />
13         <bounds x="16" y="16" width="16" height="16" />
1414      </backdrop>
1515      <backdrop element="grid" inputtag="GRID.2" inputmask="0x01" >
16         <bounds x="32" y="0" width="16" height="16" />
16         <bounds x="32" y="16" width="16" height="16" />
1717      </backdrop>
1818      <backdrop element="grid" inputtag="GRID.3" inputmask="0x01" >
19         <bounds x="48" y="0" width="16" height="16" />
19         <bounds x="48" y="16" width="16" height="16" />
2020      </backdrop>
2121      <backdrop element="grid" inputtag="GRID.4" inputmask="0x01" >
22         <bounds x="64" y="0" width="16" height="16" />
22         <bounds x="64" y="16" width="16" height="16" />
2323      </backdrop>
2424      <backdrop element="grid" inputtag="GRID.5" inputmask="0x01" >
25         <bounds x="80" y="0" width="16" height="16" />
25         <bounds x="80" y="16" width="16" height="16" />
2626      </backdrop>
2727      <backdrop element="grid" inputtag="GRID.6" inputmask="0x01" >
28         <bounds x="96" y="0" width="16" height="16" />
28         <bounds x="96" y="16" width="16" height="16" />
2929      </backdrop>
3030      <backdrop element="grid" inputtag="GRID.7" inputmask="0x01" >
31         <bounds x="112" y="0" width="16" height="16" />
31         <bounds x="112" y="16" width="16" height="16" />
3232      </backdrop>
3333      <backdrop element="grid" inputtag="GRID.8" inputmask="0x01" >
34         <bounds x="128" y="0" width="16" height="16" />
34         <bounds x="128" y="16" width="16" height="16" />
3535      </backdrop>
3636      <backdrop element="grid" inputtag="GRID.9" inputmask="0x01" >
37         <bounds x="144" y="0" width="16" height="16" />
37         <bounds x="144" y="16" width="16" height="16" />
3838      </backdrop>
3939      <backdrop element="grid" inputtag="GRID.10" inputmask="0x01" >
40         <bounds x="160" y="0" width="16" height="16" />
40         <bounds x="160" y="16" width="16" height="16" />
4141      </backdrop>
4242      <backdrop element="grid" inputtag="GRID.11" inputmask="0x01" >
43         <bounds x="176" y="0" width="16" height="16" />
43         <bounds x="176" y="16" width="16" height="16" />
4444      </backdrop>
4545      <backdrop element="grid" inputtag="GRID.12" inputmask="0x01" >
46         <bounds x="192" y="0" width="16" height="16" />
46         <bounds x="192" y="16" width="16" height="16" />
4747      </backdrop>
4848
4949      <backdrop element="grid" inputtag="GRID.0" inputmask="0x02" >


Previous 199869 Revisions Next


© 1997-2024 The MAME Team