Previous 199869 Revisions Next

r33392 Saturday 15th November, 2014 at 15:07:30 UTC by Angelo Salese
Merge branch 'master' of https://github.com/mamedev/mame

Conflicts:
  src/mame/drivers/alinvade.c
[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/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
r241903r241904
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;
r241903r241904
5151   // initialize cache
5252   m_cache2_ptr = 0;
5353   for (int i = 0; i < CACHE2_SIZE; i++)
54      m_cache2[i] = 0;
54      m_cache2[i] = 0x80000000;
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
r241903r241904
183183
184184      // end of file
185185      case 'e':
186         printf("End of file\n");
186         if (LOG_PARSE) printf("End of file\n");
187187         break;
188188   }
189189
trunk/src/mame/drivers/alinvade.c
r241903r241904
22
33 tiny bartop b&w Space Invaders type game with colour overlay
44 
5 does it use any off-the shelf chips in addition to the 6502?
5 Driver by David Haywood and Mariusz Wojcieszek
66
77 TODO:
88 - 16 bytes are protected in the c*** range. I'm guessing they used a PROM to protect a
99 simple sub-routine because just after that the program has a left-over located at 0xe000-0xe00f (yup, NOPs + a RTS)
1010 It's unknown at current stage what it really protects tho ...
1111 
12*/
12 */
1313
1414#include "emu.h"
1515#include "cpu/m6502/m6502.h"
r241903r241904
5454static ADDRESS_MAP_START( alinvade_map, AS_PROGRAM, 8, alinvade_state )
5555    AM_RANGE(0x0000, 0x01ff) AM_RAM
5656    AM_RANGE(0x0400, 0x0bff) AM_RAM AM_SHARE("videoram")
57   AM_RANGE(0x0c00, 0x0fff) AM_RAM
57   AM_RANGE(0x0c00, 0x0dff) AM_RAM
5858    AM_RANGE(0x2000, 0x2000) AM_WRITENOP //??
5959    AM_RANGE(0x4000, 0x4000) AM_READ_PORT("COIN")
6060    AM_RANGE(0x6000, 0x6000) AM_READ_PORT("DSW")
r241903r241904
190190ROM_END
191191
192192
193GAME( 198?, alinvade,  0,    alinvade, alinvade, driver_device,  0, ROT90, "Forbes?", "Alien Invaders", GAME_UNEMULATED_PROTECTION )
193GAME( 198?, alinvade,  0,    alinvade, alinvade, driver_device,  0, ROT90, "Forbes?", "Alien Invaders", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND )
trunk/src/mame/drivers/goldngam.c
r241903r241904
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());
271267   int index = 0;
272268
273   for(y = 0; y < 512; ++y)
269   for(int y = 0; y < 512; ++y)
274270   {
275      for(x = 0; x < 384; ++x)
271      for(int x = 0; x < 384; x += 2)
276272      {
277         bitmap.pix16(y, x) = tmp[index ^ 1]; /* swapped bytes in 16 bit word */
273         UINT16 word = m_videoram[index];
274         bitmap.pix16(y, x) = word >> 8;
275         bitmap.pix16(y, x+1) = word & 0xff;
278276         ++index;
279277      }
280278   }
trunk/src/mame/drivers/lethal.c
r241903r241904
109109---------------- --- -------- --------- -----------------------
110110000xxxxxxxxxxxxx R   xxxxxxxx PROM      program ROM (banked)
111111001xxxxxxxxxxxxx R/W xxxxxxxx WRAM      work RAM
112010000--00xxxxxx   W xxxxxxxx VREG      056832 control
113010000--01--xxxx   W xxxxxxxx VSCG      056832 control
112010000--00xxxxxx   W xxxxxxxx VREG      054156 control
113010000--01--xxxx   W xxxxxxxx VSCG      054157 control
114114010000--1000---- R/W -------- AFR       watchdog reset
115115010000--1001----   W          SDON      sound enable?
116116010000--1010                  CCLR      ?
r241903r241904
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 4800-7FFF region between palette and 053245/056832
124010000--11-001--   W ---x---- CBNK      bank switch 4400-7FFF region between palette and 053245/054156
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)
r241903r241904
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
141010010--01---xxx R/W xxxxxxxx OREG      053244/053245 control
142142010010--10-xxxxx R/W xxxxxxxx HIP       054000
143143010010--11       R/W xxxxxxxx PAR       sound communication
144010100xxxxxxxxxx R/W xxxxxxxx OBJ       053245
145011xxxxxxxxxxxxx R/W xxxxxxxx VRAM      056832
144010100xxxxxxxxxx R/W xxxxxxxx OBJ       053245 sprite RAM
145011xxxxxxxxxxxxx R/W xxxxxxxx VRAM      054156 video RAM
1461461xxxxxxxxxxxxxxx R   xxxxxxxx PROM      program ROM
147147
148148
r241903r241904
231231
232232note:
233233
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.
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.
237240
238241mirror not set up correctly
239242
r241903r241904
265268   /* bit 1 is cs (active low) */
266269   /* bit 2 is clock (active high) */
267270   /* bit 3 is "MUT" on the schematics (audio mute?) */
268   /* bit 4 bankswitches the 4800-7fff region: 0 = registers, 1 = RAM ("CBNK" on schematics) */
271   /* bit 4 bankswitches the 4400-7fff region: 0 = registers, 1 = palette RAM ("CBNK" on schematics) */
269272   /* bit 6 is "SHD0" (some kind of shadow control) */
270273   /* bit 7 is "SHD1" (ditto) */
271274
272275   m_cur_control2 = data;
273276
274   m_bank4800->set_bank((m_cur_control2 >> 4) & 1);
277   m_bank4000->set_bank(BIT(m_cur_control2, 4));
275278
276279   ioport("EEPROMOUT")->write(m_cur_control2, 0xff);
277280}
r241903r241904
302305   membank("bank1")->set_entry(data);
303306}
304307
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
311308READ8_MEMBER(lethal_state::guns_r)
312309{
313310   switch (offset)
r241903r241904
356353   AM_RANGE(0x40d9, 0x40d9) AM_READ_PORT("INPUTS")
357354   AM_RANGE(0x40db, 0x40db) AM_READ(gunsaux_r)     // top X bit of guns
358355   AM_RANGE(0x40dc, 0x40dc) AM_WRITE(le_bankswitch_w)
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)
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)
361358   AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x38000)
362359ADDRESS_MAP_END
363360
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
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")
376381ADDRESS_MAP_END
377382
378383static ADDRESS_MAP_START( le_sound, AS_PROGRAM, 8, lethal_state )
r241903r241904
467472   membank("bank1")->set_entry(0);
468473
469474   save_item(NAME(m_cur_control2));
475   save_item(NAME(m_layer_colorbase));
470476   save_item(NAME(m_sprite_colorbase));
471   save_item(NAME(m_layer_colorbase));
477   save_item(NAME(m_back_colorbase));
472478}
473479
474480void lethal_state::machine_reset()
r241903r241904
477483      m_layer_colorbase[i] = 0;
478484
479485   m_sprite_colorbase = 0;
486   m_back_colorbase = 0;
480487   m_cur_control2 = 0;
481   m_bank4800->set_bank(0);
488   m_bank4000->set_bank(0);
482489}
483490
484491static MACHINE_CONFIG_START( lethalen, lethal_state )
r241903r241904
491498   MCFG_CPU_ADD("soundcpu", Z80, MAIN_CLOCK/4)  /* verified on pcb */
492499   MCFG_CPU_PROGRAM_MAP(le_sound)
493500
494   MCFG_DEVICE_ADD("bank4800", ADDRESS_MAP_BANK, 0)
495   MCFG_DEVICE_PROGRAM_MAP(bank4800_map)
501   MCFG_DEVICE_ADD("bank4000", ADDRESS_MAP_BANK, 0)
502   MCFG_DEVICE_PROGRAM_MAP(bank4000_map)
496503   MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
497504   MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
498   MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(15)
499   MCFG_ADDRESS_MAP_BANK_STRIDE(0x3800)
505   MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(16)
506   MCFG_ADDRESS_MAP_BANK_STRIDE(0x4000)
500507
501508   MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
502509
r241903r241904
511518   MCFG_SCREEN_UPDATE_DRIVER(lethal_state, screen_update_lethalen)
512519   MCFG_SCREEN_PALETTE("palette")
513520
514   MCFG_PALETTE_ADD("palette", 7168+1)
521   MCFG_PALETTE_ADD("palette", 8192)
515522   MCFG_PALETTE_ENABLE_SHADOWS()
516523   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
517524
trunk/src/mame/drivers/naomi.c
r241903r241904
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
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
259260Ferrari F355 Challenge 2 (twin)                 no cart  23399   21 (64Mb)   present  315-6206  317-0287-COM  content is the same as regular 171-7919A cart
260261House of the Dead 2 (prototype)                 no cart  A1E2    21 (64Mb)   present  315-6206  present       no label on IC42
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
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
264266Star Horse (server)                           840-0055C  23626   17 (64Mb)   present  315-6206  not present
265267The 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
266Virtua NBA (prototype)                          no cart  *       21 (64Mb)   present  315-6206  317-0271-COM  *instead of EPROM have tiny PCB with 2 flashroms on it
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
267270
268271
269272837-13668  171-7919A (C) Sega 1998
r241903r241904
30130418 Wheeler (deluxe) (Rev A)                     840-0023C    22185A  20 (64Mb)   present     315-6213  317-0273-COM
30230518 Wheeler (standard)                           840-0036C    23298   20 (64Mb)   present     315-6213  317-0273-COM
30330618 Wheeler (upright)                            840-0037C    23299   20 (64Mb)   present     315-6213  317-0273-COM
304Airline Pilots (deluxe) (Rev B)                 ?            21787B  11 (64Mb)   present     315-6213  317-0251-COM   2 know BIOS 21801 (USA), 21802 (EXP)
307Airline Pilots (deluxe) (Rev B)                 ?            21787B  11 (64Mb)   present     315-6213  317-0251-COM   2 known BIOS 21801 (USA), 21802 (EXP)
305308Airline Pilots (Rev A)                          840-0005C    21739A  11 (64Mb)   present     315-6213  317-0251-COM
306309Cosmic Smash                                    840-0044C    23428    8 (64Mb)   ?           315-6213  317-0289-COM   joystick + 2 buttons
307310Cosmic Smash (Rev A)                            840-0044C    23428A   8 (64Mb)   ?           315-6213  317-0289-COM   joystick + 2 buttons
r241903r241904
314317Derby Owners Club 2000 Ver.2 (Rev A)            840-0052C    22284A  16 (64Mb)   present     315-6213  not present
315318Dynamite 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)
316319Dynamite Baseball Naomi                         840-0001C    21575   21 (64Mb)   ?           315-6213  317-0246-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
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)
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)
320323Giant Gram: All Japan Pro Wrestling 2           840-0007C    21820    9 (64Mb)   ?           315-6213  317-0253-JPN   joystick + 3 buttons
321324Guilty Gear X                                   841-0013C    23356   14 (64Mb)   ?           315-6213  317-5063-COM
322325Gun Spike / Cannon Spike                        841-0012C    23210   12 (64Mb)   present     315-6213  317-5060-COM
323326Heavy Metal Geomatrix (Rev A)                   HMG016007    23716A  11 (64Mb)   present     315-6213  317-5071-COM   joystick + 2 buttons
324327House of the Dead 2 (original)                  834-13636    21385   20 (64Mb)   not present 315-6213  not present
325328House of the Dead 2                             834-13636-01 21585   20 (64Mb)   not present 315-6213  not present
326Idol Janshi Suchie-Pai 3                        841-0002C    21979   14 (64Mb)   ?           315-6213  317-5047-JPN   requires special I/O board and mahjong panel
329Idol Janshi Suchie-Pai 3                        841-0002C    21979   14 (64Mb)   ?           315-6213  317-5047-JPN   requires mahjong panel
327330Jambo! Safari (Rev A)                           840-0013C    22826A   8 (64Mb)   ?           315-6213  317-0264-COM
328331Mars TV                                         840-0025C    22993   15 (64Mb)   present     315-6213  317-0074-JPN
329OutTrigger                                      840-0017C    22163   19 (64Mb)   ?           315-6213  317-0266-COM   requires analog controllers/special panel
332OutTrigger                                      840-0017C    22163   19 (64Mb)   ?           315-6213  317-0266-COM   requires regular 837-13551 and 837-13938 rotary JVS boards, and special panel
330333Power Stone                                     841-0001C    21597    8 (64Mb)   present     315-6213  317-5046-COM   joystick + 3 buttons
331334Power Stone 2                                   841-0008C    23127    9 (64Mb)   present     315-6213  317-5054-COM   joystick + 3 buttons
332335Puyo Puyo Da!                                   841-0006C    22206   20 (64Mb)   ?           315-6213  ?
333Ring Out 4x4                                    840-0004C    21779   10 (64Mb)   present     315-6213  317-0250-COM
336Ring Out 4x4                                    840-0004C    21779   10 (64Mb)   present     315-6213  317-0250-COM   requires 2 JVS boards
334337Samba de Amigo (Rev B)                          840-0020C    22966B  16 (64Mb)   present     315-6213  317-0270-COM   will boot but requires special controller to play it
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
338Sega Marine Fishing                             840-0027C    22221   10 (64Mb)   ?           315-6213  not present    ROM 3&4 not present. Requires fishing controller
336339Sega Strike Fighter (Rev A)                     840-0035C    23323A  20 (64Mb)   present     315-6213  317-0281-COM
337340Sega Tetris                                     840-0018C    22909    6 (64Mb)   present     315-6213  317-0268-COM
338341Slashout                                        840-0041C    23341   17 (64Mb)   ?           315-6213  317-0286-COM   joystick + 4 buttons
339342Spawn In the Demon's Hand (Rev B)               841-0005C    22977B  10 (64Mb)   ?           315-6213  317-5051-COM   joystick + 4 buttons
340343Super Major League '99                          840-0012C    22059   21 (64Mb)   ?           315-6213  ?
341344The Typing of the Dead (Rev A)                  840-0026C    23021A  20 (64Mb)   present     315-6213  not present
342Touch de UNO! / Unou Nouryoku Check Machine     840-0008C    22073    4 (64Mb)   present     315-6213  317-0255-JPN
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
343346Toy Fighter / Waffupu                           840-0011C    22035   10 (64Mb)   present     315-6212  317-0257-COM   joystick + 3 buttons
344347Virtua NBA                                      840-0021C-01 23073   21 (64Mb)   present     315-6213  not present
345348Virtua NBA (original)                           840-0021C    22949   21 (64Mb)   present     315-6213  317-0271-COM
r241903r241904
444447                                               Sticker      EPROM   MASKROMs    25LC040  A54SX32
445448Game                                           on cart      IC11#   # of SOP44  IC13S#   IC1#          Notes
446449-------------------------------------------------------------------------------------------------------------------------------
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
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)
449452Giant Gram 2000                                840-0039C    23377   20 (64Mb)   present  317-0296-COM
450Kick '4' Cash                                  840-0140C    24212   16 (64Mb)   present  317-0397-COM  A54SX32A
453Kick '4' Cash                                  840-0140C    24212   16 (64Mb)   present  317-0397-COM  requires 837-14438 "SH I/O BD" hopper controller (not dumped)
451454Marvel Vs. Capcom 2 New Age of Heroes (Rev A)  841-0007C-02 23085A  14 (64Mb)*  present  317-5058-COM  *(+2x 32Mb)
452MushiKing The King of Beetles 2K3 2ND          840-0150C    24217    6 (64Mb)   present  317-0394-COM
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
453456Quiz Ah Megamisama                             840-0030C    23227   16 (64Mb)   present  317-0280-JPN
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
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
457460SWP 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
458Touch de UNO! 2                                840-0022C    23071    6 (64Mb)   present  317-0276-JPN
461Touch de UNO! 2                                840-0022C    23071    6 (64Mb)   present  317-0276-JPN  requires special JVS board with touch input and printer
459462Virtua Fighter 4 Evolution                     840-0106B    23934   20 (64Mb)   present  317-0339-COM
460463Virtua Tennis 2 / Power Smash 2 (Rev A)        840-0084C    22327A  18 (64Mb)   present  317-0320-COM
461464
r241903r241904
502505Club Kart: European Session                     840-0062C  23704   11 (128Mb)  315-6319A  315-6213  317-0313-COM
503506Club 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'
504507Club Kart: European Session (Rev D)             840-0062C  23704D  11 (128Mb)  315-6319A  315-6213  317-0313-COM
505Crackin' DJ                                     840-0043C  23450   10 (128Mb)  315-6319   315-6213  317-0288-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
506509Derby Owners Club II (Rev B)                    840-0083C  22306B  11 (128Mb)  315-6319A  315-6213  not present
507510Derby Owners Club World Edition (Rev C)         840-0088C  22336C   7 (128Mb)  315-6319A  315-6213  not present
508511Derby Owners Club World Edition (Rev D)         840-0088C  22336D   7 (128Mb)  315-6319A  315-6213  not present   2 MaskROM are different from Rev C
509512Giga Wing 2                                     841-0014C  22270    5 (128Mb)  315-6319A  315-6213  317-5064-COM
510513Mobile Suit Gundam: Federation Vs. Zeon         841-0017C  23638   10 (128Mb)  315-6319A  315-6213  ?
511514Moero Justice Gakuen / Project Justice (Rev A)  841-0015C  23548A  11 (128Mb)  315-6319A  315-6213  317-5065-COM
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
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)
514517Samba de Amigo Ver. 2000                        840-0047C  23600   11 (128Mb)  315-6319A  315-6213  317-0295-COM
515518Star Horse (big screens)                        840-0054C  23625    4 (128Mb)  315-6319   315-6213  not present
516519Star Horse (client)                             840-0056C  23627    6 (128Mb)* 315-6319   315-6213  not present   * +1 (64Mb)
r241903r241904
566569Dynamite Deka EX / Asian Dynamite                   840-0175C  not present  4 (512Mb)   present  317-0495-COM  present  IC2# is labeled "VER.2"
567570Illmatic Envelope                                   841-0059C  not present  4 (512Mb)   present  317-5131-JPN  present  IC2# is labeled "VER.2" - IC#11 is empty
568571Mamoru-kun wa Norowarete Shimatta                   841-0060C  not present  4 (512Mb)   present  317-5132-JPN  present  IC2# is labeled "VER.2"
569Manic Panic Ghost!                                  840-0170C  not present  5 (512Mb)   present  317-0461-COM  present
572Manic Panic Ghost!                                  840-0170C  not present  5 (512Mb)   present  317-0461-COM  present  requires 837-14672 sensor board (SH4 based)
570573Melty Blood Actress Again                           841-0061C  not present  6 (512Mb)   present  317-5133-JPN  present  IC2# is labeled "REV.A" - IC4# is marked "5A"
571574Melty Blood Actress Again (Rev A)                   841-0061C  24455        6 (512Mb)   present  317-5133-JPN  present  IC2# is labeled "REV.A" - IC4# is marked "5A"
572Mushiking - The King Of Beetles II ENG (Ver. 1.001) 840-0164C  not present  2 (512Mb)   present  317-0437-COM  present
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
573576Mushiking - The King Of Beetles II ENG (Ver. 2.001) 840-0164C  24357        2 (512Mb)   present  317-0437-COM  present  IC4# is marked "18"
574Poka Suka Ghost                                     840-0170C  not present  5 (512Mb)   present  317-0461-COM  present
577Poka Suka Ghost                                     840-0170C  not present  5 (512Mb)   present  317-0461-COM  present  requires 837-14672 sensor board (SH4 based)
575578Radirgy Noa                                         841-0062C  not present  4 (512Mb)   present  317-5138-JPN  present  IC2# is labeled "VER.2" - IC4# is marked "8A"
576579Rythm Tengoku                                       841-0177C  not present  4 (512Mb)   present  317-0503-JPN  present  IC2# is labeled "VER.2" - IC4# is marked "8A"
577580Shooting Love 2007                                  841-0057C  not present  4 (512Mb)   present  317-5129-JPN  present  IC2# is labeled "VER.2"
578Touch De Zunou (Rev A)                              840-0166C  not present  2 (512Mb)   present  317-0435-JPN  present  IC4# is marked "18"
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)
579582
580583
581584
r241903r241904
624627 Game                                Type  on cart   FLASHROM  # of SOP48  IC @ 1F      IC @ 1H   IC @ 2K   IC @ 1M       code (1)    Notes
625628------------------------------------------------------------------------------------------------------------------------------------------------------
626629/Gun Survivor 2 Biohazard
627\Code: Veronica                      F1X   25709801  1 (64Mb)  14 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5075-COM  BHF1
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
628631/Gun Survivor 2 Biohazard
629632\Code: Veronica (Ver. E)             F1X   25709801  1 (64Mb)  14 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5075-COM  BHF2
630633/Shin Nihon Prowrestling Toukon                                                                                                       /FL0 & FL1 have pin55 raised from PCB.
631634\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.
632World Kicks PCB (WKC1 Ver. A)        F2    25509801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5040-COM  WKC1
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
633636World Kicks (WK2 Ver. A)             F2    25209801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1A  317-5040-COM  WK2
634637World Kicks (WK3 Ver. A)             F2    25209801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1A  317-5040-COM  WK3
635638
r241903r241904
677680                                    Cart  Sticker   FL0-FL3   FLASHROMs   X76F100  CY37128  315-5881      Known Game
678681 Game                               Type  on cart   FLASHROM  # of SOP48  IC @ 1F  IC @ 2J  IC @ 1M       code (1)    Notes
679682--------------------------------------------------------------------------------------------------------------------------------
680Mazan: Flash of the Blade (Ver. A)  F1X   25869812  1 (64Mb)   8 (128Mb)  present  NAODEC3  317-0266-COM  MAZ2
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
681684Mazan: Flash of the Blade (Ver. A)  F1X   25869812  1 (64Mb)   8 (128Mb)  present  NAODEC3  317-0266-COM  MAZ3
682Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA1
685Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA1        uses Namco JYU JVS I/O
683686Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA2
684687Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA3
685688Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA4
r241903r241904
27762779
27772780Ferrari F355 specific Naomi BIOS roms:
27782781
2782EPR-21863 - NAOMI BOOT ROM 1999 07/02  1.34 (USA)
27792783EPR-22850 - NAOMI BOOT ROM 1999 08/30  1.35 (USA)
27802784EPR-22851 - NAOMI BOOT ROM 1999 08/30  1.35 (Export)
27812785
r241903r241904
28642868   ROM_SYSTEM_BIOS( 2, "bios2", "HOTD2 (Proto)" ) \
28652869   ROM_LOAD16_WORD_SWAP_BIOS( 2,  "hotd2biosproto.ic27", 0x000000, 0x200000, CRC(ea74e967) SHA1(e4d037480eb6555d335a8ab9cd6c56122335586d) )
28662870
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
28672876#define F355_BIOS \
28682877   ROM_REGION( 0x200000, "maincpu", 0) \
28692878   ROM_SYSTEM_BIOS( 0, "bios0", "Ferrari F355 (Export)" ) \
r241903r241904
30013010   ROM_REGION( 0x8400000, "rom_board", ROMREGION_ERASE)
30023011ROM_END
30033012
3013ROM_START( f355dlx )
3014   F355DLX_BIOS
3015   NAOMI_DEFAULT_EEPROM
3016
3017   ROM_REGION( 0x8400000, "rom_board", ROMREGION_ERASE)
3018ROM_END
3019
30043020ROM_START( f355bios )
30053021   F355_BIOS
30063022   NAOMI_DEFAULT_EEPROM
r241903r241904
37003716*/
37013717
37023718ROM_START( f355 )
3703   F355_BIOS /* note: require (undumped) special BIOS, game not compatible with EPR-22850/EPR-22851 from twin-versions */
3719   F355DLX_BIOS
37043720   NAOMI_DEFAULT_EEPROM
37053721
37063722   ROM_REGION( 0xb000000, "rom_board", ROMREGION_ERASEFF)
r241903r241904
51655181   ROM_REGION( 4, "rom_key", ROMREGION_ERASE00 )
51665182ROM_END
51675183
5168/*
5184// Shootout Pool
5185ROM_START( shootopl )
5186   NAOMI_BIOS
5187   NAOMI_DEFAULT_EEPROM
51695188
5170SYSTEMID: NAOMI
5171JAP: SHOOTOUT POOL
5172USA: SHOOTOUT POOL
5173EXP: SHOOTOUT POOL PRIZE
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) )
51745195
5175*/
5196   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
51765197
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
51775203ROM_START( shootpl )
51785204   NAOMI_BIOS
51795205   NAOMI_DEFAULT_EEPROM
r241903r241904
51915217   ROM_LOAD( "shootpl-key.bin", 0, 4, CRC(03c30b17) SHA1(e8e8659aa27b3d1cac2268850d3973d9afeaeba9) )
51925218ROM_END
51935219
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 */
5220// Shootout Pool Prize Ver. B
52135221ROM_START( shootplm )
52145222   NAOMI_BIOS
52155223   NAOMI_DEFAULT_EEPROM
r241903r241904
88468854/* Main board and game specific BIOS */
88478855/* Naomi */ GAME( 1998, naomi,    0, naomi, naomi, naomi_state,   naomi, ROT0, "Sega", "Naomi Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88488856/* 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 )
8849/* game  */ GAME( 1999, f355bios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Ferrari F355 Challenge 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 )
88508859/* game  */ GAME( 1999, airlbios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Airline Pilots (deluxe) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88518860/* Naomi2*/ GAME( 2001, naomi2,   0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi 2 Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88528861/* GDROM */ GAME( 2001, naomigd,  0, naomi, naomi, naomi_state,   naomi, ROT0, "Sega", "Naomi GD-ROM Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
r241903r241904
88548863/* 834-xxxxx (Sega Naomi cart with game specific BIOS sets) */
88558864/* 13636-01 */ GAME( 1998, hotd2,  hod2bios, naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
88568865/* 13636  */ GAME( 1998, hotd2o,   hotd2,    naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2 (original)", GAME_FLAGS ) /* specific BIOS "hod2bios" 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 */
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 */
88598868/* 13950  */ GAME( 1999, f355twin, f355bios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge (twin)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */
88608869/* ?????  */ GAME( 2001, f355twn2, f355bios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge 2 (twin)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */
88618870/* ?????  */ GAME( 1999, alpiltdx, airlbios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Airline Pilots (deluxe) (Rev B)", GAME_FLAGS ) /* specific BIOS "airlbios" needed */
r241903r241904
88788887/* 0018 */ GAME( 1999, sgtetris, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Sega Tetris", GAME_FLAGS )
88798888/* 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 )
88808889/* 0020 */ GAME( 1999, samba,    naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Samba De Amigo (JPN) (Rev B)", 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 )
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 )
88838892/* 0021 */ GAME( 2000, virnbao,  virnba,   naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (JPN, USA, EXP, KOR, AUS) (original)", GAME_FLAGS )
88848893/* 0021-01*/GAME( 2000,virnba,   naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS )
88858894/* 0022 */ GAME( 2000, tduno2,   naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Touch de Uno! 2", GAME_FLAGS )
r241903r241904
89148923/* 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 )
89158924/* 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 )
89168925/* 0098 */ GAME( 2002, shootopl, naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool", GAME_FLAGS )
8917/* 0123 */ GAME( 2001, starhrsp, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Star Horse Progress (Rev A)", GAME_FLAGS )
8926/* 0123 */ GAME( 2003, starhrsp, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Star Horse Progress (Rev A)", GAME_FLAGS )
89188927/* 0126 */ GAME( 2003, oinori,   naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Oinori-daimyoujin Matsuri", 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 )
8928/* 0128 */ GAME( 2003, shootpl,  naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool The Medal / Shootout Pool Prize (Rev A)", GAME_FLAGS )
89208929/* 0130 */ GAME( 2002, hopper,   naomi,    naomi,   naomi,   naomi_state, naomi,   ROT0, "Sega", "SWP Hopper Board", GAME_FLAGS )
8921/* 0136 */ GAME( 2001, shootplm, naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool Medal", 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 )
89228931/* 0140 */ GAME( 2004, kick4csh, naomi,    naomim1, naomi,   naomi_state, kick4csh,ROT0, "Sega", "Kick '4' Cash", GAME_FLAGS )
89238932/* 0150 */ GAME( 2003, mtkob2,   naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Mushiking The King Of Beetle 2K3 2nd", GAME_FLAGS )
89248933/* 0158 */ GAME( 2005, mushi2k5, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Mushiking The King Of Beetle 2K5 1st", GAME_FLAGS )
r241903r241904
89298938/* 0170 */ GAME( 2007, pokasuka, manicpnc, naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega", "Pokasuka Ghost", GAME_FLAGS )
89308939/* 0175 */ GAME( 2007, asndynmt, naomi,    naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega", "Asian Dynamite", GAME_FLAGS )
89318940/* 0177 */ GAME( 2007, rhytngk,  naomi,    naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega/Nintendo", "Rhythm Tengoku", GAME_FLAGS )
8941// 01?? Star Horse Progress Returns
89328942// 00xx Mayjinsen (Formation Battle in May) - prototype, never released
89338943
89348944/* Cartridge prototypes of games released on GD-ROM */
r241903r241904
89508960/* 0137 */ GAME( 2004, clubkpzb, naomi2,  naomi2m1, naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart Prize Ver. B", GAME_FLAGS )
89518961// needs verification is this dump really from 840-0139C cart
89528962/* 0139 */ GAME( 2003, clubk2k3, naomi2,  naomi2m1, naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003)", GAME_FLAGS )
8953/* ??? */ GAME( 2003, clubk2kp, clubk2k3,naomi2,   naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003, prototype)", GAME_FLAGS )
8963/* none */ GAME( 2003, clubk2kp, clubk2k3,naomi2,   naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003, prototype)", GAME_FLAGS )
89548964
89558965/* 841-xxxxx ("Licensed by Sega" Naomi cart games)*/
89568966/* 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
r241903r241904
8989      : driver_device(mconfig, type, tag),
9090      m_maincpu(*this,"maincpu"),
9191      m_spr(*this, "spr"),
92      m_vram(*this, "vram"),
9293      m_vregs(*this, "vregs"),
9394      m_gfxdecode(*this, "gfxdecode"),
9495      m_palette(*this, "palette")
r241903r241904
9899      tilemap_base[1] = 0xf4000;
99100      tilemap_base[2] = 0xf8000;
100101      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;
106102   }
107103
108104   required_device<cpu_device> m_maincpu;
109105   required_shared_ptr<UINT16> m_spr;
106   required_shared_ptr<UINT16> m_vram;
110107   required_shared_ptr<UINT16> m_vregs;
111108   optional_device<gfxdecode_device> m_gfxdecode;
112109   required_device<palette_device> m_palette;
113110
114   UINT16* m_vram;
115   UINT16* m_vram_rearranged;
111   dynamic_array<UINT16> m_vram_rearranged;
116112
117113   int tilemap_base[4];
118   int tilemap_size[4];
119114
120115   DECLARE_READ8_MEMBER(popo_620000_r);
121116   DECLARE_WRITE8_MEMBER(popobear_irq_ack_w);
r241903r241904
124119   TIMER_DEVICE_CALLBACK_MEMBER(popobear_irq);
125120   void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
126121
127   int m_gfx_index;
128122   tilemap_t    *m_bg_tilemap[4];
129123   TILE_GET_INFO_MEMBER(get_popobear_bg0_tile_info);
130124   TILE_GET_INFO_MEMBER(get_popobear_bg1_tile_info);
r241903r241904
149143
150144
151145      COMBINE_DATA(&m_vram_rearranged[swapped_offset]);
152      m_gfxdecode->gfx(m_gfx_index)->mark_dirty((swapped_offset)/32);
146      m_gfxdecode->gfx(0)->mark_dirty((swapped_offset)/32);
153147
154148      // unfortunately tilemaps and tilegfx share the same ram so we're always dirty if we write to RAM
155149      m_bg_tilemap[0]->mark_all_dirty();
r241903r241904
158152      m_bg_tilemap[3]->mark_all_dirty();
159153
160154   }
161   DECLARE_READ16_MEMBER(popo_vram_r) { return m_vram[offset]; }
162155
163156};
164157
r241903r241904
166159static const gfx_layout popobear_char_layout =
167160{
168161   8,8,
169   0x4000,
162   RGN_FRAC(1,1),
170163   8,
171164   { 0,1,2,3,4,5,6,7 },
172165   { STEP8(0, 8) },
r241903r241904
174167   8*64
175168};
176169
170GFXDECODE_START(popobear)
171   GFXDECODE_RAM( "vram", 0, popobear_char_layout, 0, 1 )
172GFXDECODE_END
177173
178174TILE_GET_INFO_MEMBER(popobear_state::get_popobear_bg0_tile_info)
179175{
r241903r241904
212208
213209void popobear_state::video_start()
214210{
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;
211   m_vram_rearranged.resize(0x100000 / 2);
219212
220   assert(m_gfx_index != MAX_GFX_ELEMENTS);
213   m_gfxdecode->gfx(0)->set_source(reinterpret_cast<UINT8 *>(&m_vram_rearranged[0]));
221214
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
229215   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);
230216   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);
231217   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);
r241903r241904
243229
244230void popobear_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect)
245231{
246   // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
247232   UINT8* vram = reinterpret_cast<UINT8 *>(m_spr.target());
248233   int i;
249234
r241903r241904
264249      /* 0x*29 = 32 x 32 */
265250      for(i = 0x800-8;i >= 0; i-=8)
266251      {
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);
252         UINT16 *sprdata = &m_spr[(0x7f800 + i) / 2];
271253
254         int param = sprdata[0];
272255         int pri = (param & 0x0f00)>>8;
273256
274257         // we do this because it's sprite<->sprite priority,
275258         if (pri!=drawpri)
276259            continue;
277260
261         int y = sprdata[1];
262         int x = sprdata[2];
263         int spr_num = sprdata[3];
264
278265         int width = 8 << ((param & 0x30)>>4);
279266         int height = width; // sprites are always square?
280267
r241903r241904
327314
328315            for(int xi=0;xi<width;xi++)
329316            {
330               UINT8 pix = (vram[spr_num^1] & 0xff);
317               UINT8 pix = vram[BYTE_XOR_BE(spr_num)];
331318               int x_draw = (x_dir) ? x+((width-1) - xi) : x+xi;
332319
333320               if(cliprect.contains(x_draw, y_draw))
r241903r241904
479466   AM_RANGE(0x000000, 0x03ffff) AM_ROM
480467   AM_RANGE(0x210000, 0x21ffff) AM_RAM
481468   AM_RANGE(0x280000, 0x2fffff) AM_RAM AM_SHARE("spr") // unknown boundaries, 0x2ff800 contains a sprite list, lower area = sprite gfx
482   AM_RANGE(0x300000, 0x3fffff) AM_READWRITE( popo_vram_r, popo_vram_w ) // tile definitions + tilemaps
469   AM_RANGE(0x300000, 0x3fffff) AM_RAM_WRITE( popo_vram_w ) AM_SHARE("vram") // tile definitions + tilemaps
483470
484471
485472   /* Most if not all of these are vregs */
r241903r241904
660647
661648   MCFG_SPEAKER_STANDARD_MONO("mono")
662649
663   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
650   MCFG_GFXDECODE_ADD("gfxdecode", "palette", popobear)
664651
665652   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_42MHz/16)  // XTAL CORRECT, DIVISOR GUESSED
666653   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
trunk/src/mame/includes/lethal.h
r241903r241904
1818      : driver_device(mconfig, type, tag),
1919      m_maincpu(*this, "maincpu"),
2020      m_soundcpu(*this, "soundcpu"),
21      m_bank4800(*this, "bank4800"),
21      m_bank4000(*this, "bank4000"),
2222      m_k056832(*this, "k056832"),
2323      m_k053244(*this, "k053244"),
2424      m_palette(*this, "palette") { }
r241903r241904
2626   /* video-related */
2727   int        m_layer_colorbase[4];
2828   int        m_sprite_colorbase;
29   int        m_back_colorbase;
2930
3031   /* misc */
3132   UINT8      m_cur_control2;
r241903r241904
3334   /* devices */
3435   required_device<cpu_device> m_maincpu;
3536   required_device<cpu_device> m_soundcpu;
36   required_device<address_map_bank_device> m_bank4800;
37   required_device<address_map_bank_device> m_bank4000;
3738   required_device<k056832_device> m_k056832;
3839   required_device<k05324x_device> m_k053244;
3940   required_device<palette_device> m_palette;
r241903r241904
4344   DECLARE_WRITE8_MEMBER(sound_irq_w);
4445   DECLARE_READ8_MEMBER(sound_status_r);
4546   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
r241903r241904
52775277ggram2          // 1999.04 Giant Gram: All Japan Pro Wrestling 2
52785278            // 1999.05 Taisen Puzzle Kurutto Stone
52795279ringout         // 1999.06 Ring Out 4x4
5280f355bios        // 1999.07 F355 Challenge (BIOS)
5281f355            // 1999.07 F355 Challenge
5280f355dlx         // 1999.07 F355 Challenge Deluxe (BIOS)
5281f355bios        // 1999.08 F355 Challenge Twin (BIOS)
5282f355            // 1999.07 F355 Challenge Deluxe
52825283f355twin        // 1999.07 F355 Challenge Twin
52835284shangril        // 1999.08 Dengen Tenshi Taisen Janshi Shangri-la
52845285tduno           // 1999.08 Touch de UNO! / Unou Nouryoku Check Machine
r241903r241904
53225323qmegamis        // 2000.05 Quiz Ah Megamisama
53235324derbyo2k        // 2000.06 Derby Owners Club 2000 Ver.2 (Rev A)
53245325starhrse        // 2000.?? Star Horse (big screens)
5325starhrct        // 2000.?? Star Horse (server)
5326starhrct        // 2000.12 Star Horse (server)
53265327starhrcl        // 2000.?? Star Horse (client)
53275328vonot           // 2000.06 Virtual-on Oratorio Tangram M.S.B.S. Ver.5.66 2000 Edition
53285329ggx             // 2000.07 Guilty Gear X
r241903r241904
53565357sfz3ugd         // 2001.02 Street Fighter ZERO3 Upper
53575358gundmgd         // 2001.03 Mobile Suit Gundam: Federation Vs. Zeon (GD-ROM)
53585359gundmct         // 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
r241903r241904
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
53895388            // 2001.?? Star Horse 2001
53905389hopper          // 2002.?? SWP Hopper Board
53915390vathlete        // 2002.03 Virtua Athletics / Virtua Athlete
r241903r241904
54025401            // 2002.?? Pochinya
54035402quizqgd         // 2002.?? Quiz Keitai Q mode
54045403shootopl        // 2002.?? Shootout Pool
5405shootpl         // 2002.?? Shootout Pool / Shootout Pool Prize (Rev A)
5404shootpl         // 2003.?? Shootout Pool The Medal / Shootout Pool Prize (Rev A)
54065405mtkob2          // 2003.02 MushiKing The King Of Beetle
54075406            // 2003.03 Sega Network Taisen Mahjong MJ
54085407ggxxrl          // 2003.03 Guilty Gear XX # Reload (Rev A)
r241903r241904
54135412oinori          // 2003.08 Oinori-daimyoujin Matsuri
54145413psyvar2         // 2003.11 Psyvariar 2 - The Will To Fabricate
54155414puyofev         // 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
r241903r241904
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
54235424kick4csh        // 2004.?? Kick '4' Cash
54245425            // 2004.?? The Quiz Show
54255426            // 2005.03 Melty Blood Act Cadenza
trunk/src/mame/video/lethal.c
r241903r241904
1414{
1515   int pri = (*color & 0xfff0);
1616   *color = *color & 0x000f;
17   *color += 0x400 / 64; // colourbase?
17   *color += m_sprite_colorbase;
1818
1919   /* this isn't ideal.. shouldn't need to hardcode it? not 100% sure about it anyway*/
2020   if (pri == 0x10)
r241903r241904
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;
7368}
7469
7570WRITE8_MEMBER(lethal_state::lethalen_palette_control)
r241903r241904
7772   switch (offset)
7873   {
7974      case 0: // 40c8 - PCU1 from schematics
80         m_layer_colorbase[0] = ((data & 0x7) - 1) * 0x40;
81         m_layer_colorbase[1] = (((data >> 4) & 0x7) - 1) * 0x40;
75         m_layer_colorbase[0] = (data & 0x7) * 1024 / 16;
76         m_layer_colorbase[1] = ((data >> 4) & 0x7) * 1024 / 16;
8277         m_k056832->mark_plane_dirty( 0);
8378         m_k056832->mark_plane_dirty( 1);
8479         break;
8580
8681      case 4: // 40cc - PCU2 from schematics
87         m_layer_colorbase[2] = ((data & 0x7) - 1) * 0x40;
88         m_layer_colorbase[3] = (((data >> 4) & 0x7) - 1) * 0x40;
82         m_layer_colorbase[2] = (data & 0x7) * 1024 / 16;
83         m_layer_colorbase[3] = ((data >> 4) & 0x7) * 1024 / 16;
8984         m_k056832->mark_plane_dirty( 2);
9085         m_k056832->mark_plane_dirty( 3);
9186         break;
9287
9388      case 8: // 40d0 - PCU3 from schematics
94         m_sprite_colorbase = ((data & 0x7) - 1) * 0x40;
89         m_sprite_colorbase = (data & 0x7) * 1024 / 64;
90         m_back_colorbase = ((data >> 4) & 0x7) * 1024 + 1023;
9591         break;
9692   }
9793}
9894
9995UINT32 lethal_state::screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10096{
101   bitmap.fill(7168, cliprect);
97   bitmap.fill(m_back_colorbase, cliprect);
10298   screen.priority().fill(0, cliprect);
10399
104100   m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
trunk/src/mess/drivers/ngen.c
r241903r241904
1414#include "machine/am9517a.h"
1515#include "machine/pic8259.h"
1616#include "machine/pit8253.h"
17#include "machine/z80dart.h"
1718
1819class ngen_state : public driver_device
1920{
r241903r241904
2324      m_maincpu(*this,"maincpu"),
2425      m_crtc(*this,"crtc"),
2526      m_viduart(*this,"videouart"),
27      m_iouart(*this,"iouart"),
2628      m_dmac(*this,"dmac"),
2729      m_pic(*this,"pic"),
28      m_pit(*this,"pit")
30      m_pit(*this,"pit"),
31      m_vram(*this,"vram"),
32      m_fontram(*this,"fontram")
2933   {}
3034
3135   DECLARE_WRITE_LINE_MEMBER(pit_out0_w);
r241903r241904
4347   required_device<cpu_device> m_maincpu;
4448   required_device<mc6845_device> m_crtc;
4549   required_device<i8251_device> m_viduart;
50   required_device<upd7201_device> m_iouart;
4651   required_device<am9517a_device> m_dmac;
4752   required_device<pic8259_device> m_pic;
4853   required_device<pit8254_device> m_pit;
54   required_shared_ptr<UINT16> m_vram;
55   required_shared_ptr<UINT16> m_fontram;
4956
5057   UINT16 m_peripheral;
5158   UINT16 m_upper;
5259   UINT16 m_middle;
5360   UINT16 m_port00;
61   UINT16 m_periph141;
5462};
5563
5664WRITE_LINE_MEMBER(ngen_state::pit_out0_w)
5765{
58   m_pic->ir0_w(state);
66   //m_pic->ir0_w(state);
67   logerror("80186 Timer 1 state %i\n",state);
5968}
6069
6170WRITE_LINE_MEMBER(ngen_state::pit_out1_w)
6271{
72   logerror("PIT Timer 1 state %i\n",state);
6373}
6474
6575WRITE_LINE_MEMBER(ngen_state::pit_out2_w)
6676{
77   logerror("PIT Timer 2 state %i\n",state);
6778}
6879
6980WRITE16_MEMBER(ngen_state::cpu_peripheral_cb)
r241903r241904
97108}
98109
99110// 80186 peripheral space
111// Largely guesswork at this stage
100112WRITE16_MEMBER(ngen_state::peripheral_w)
101113{
102114   switch(offset)
103115   {
116   case 0x141:
117      // bit 1 enables speaker?
118      COMBINE_DATA(&m_periph141);
119      break;
104120   case 0x144:
105121      if(mem_mask & 0x00ff)
106122         m_crtc->address_w(space,0,data & 0xff);
r241903r241904
111127      break;
112128   case 0x146:
113129      if(mem_mask & 0x00ff)
114         m_pic->write(space,0,data & 0xff);
130         m_iouart->ba_cd_w(space,0,data & 0xff);
131      logerror("Video write offset 0x146 data %04x mask %04x\n",data,mem_mask);
115132      break;
116133   case 0x147:
117134      if(mem_mask & 0x00ff)
118         m_pic->write(space,1,data & 0xff);
135         m_iouart->ba_cd_w(space,1,data & 0xff);
136      logerror("Video write offset 0x147 data %04x mask %04x\n",data,mem_mask);
119137      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);
120140   }
121   logerror("Peripheral write offset %04x data %04x mask %04x\n",offset,data,mem_mask);
122141}
123142
124143READ16_MEMBER(ngen_state::peripheral_r)
125144{
126   UINT16 ret = 0xff;
145   UINT16 ret = 0xffff;
127146   switch(offset)
128147   {
148   case 0x141:
149      ret = m_periph141;
150      break;
129151   case 0x144:
130152      if(mem_mask & 0x00ff)
131153         ret = m_crtc->status_r(space,0);
r241903r241904
136158      break;
137159   case 0x146:
138160      if(mem_mask & 0x00ff)
139         ret = m_pic->read(space,0);
161         ret = m_iouart->ba_cd_r(space,0);
140162      break;
141   case 0x147:
163   case 0x147:  // definitely video related, likely UART sending data to the video board
142164      if(mem_mask & 0x00ff)
143         ret = m_pic->read(space,1);
165         ret = m_iouart->ba_cd_r(space,1);
166      // expects bit 0 to be set (Video ready signal?)
167      ret |= 1;
144168      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);
145171   }
146   logerror("Peripheral read offset %04x mask %04x\n",offset,mem_mask);
147172   return ret;
148173}
149174
r241903r241904
165190
166191MC6845_UPDATE_ROW( ngen_state::crtc_update_row )
167192{
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   }
168206}
169207
170208static ADDRESS_MAP_START( ngen_mem, AS_PROGRAM, 16, ngen_state )
171   AM_RANGE(0x00000, 0xfdfff) AM_RAM
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")
172212   AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION("bios",0)
173213ADDRESS_MAP_END
174214
r241903r241904
215255
216256   MCFG_DEVICE_ADD("dmac", AM9517A, XTAL_14_7456MHz / 3)  // NEC D8237A, divisor unknown
217257
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
218261   // video board
219262   MCFG_SCREEN_ADD("screen", RASTER)
220263   MCFG_SCREEN_SIZE(720,348)
trunk/src/mess/includes/gamecom.h
r241903r241904
211211{
212212public:
213213   gamecom_state(const machine_config &mconfig, device_type type, const char *tag)
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")
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")
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;
237233   DECLARE_READ8_MEMBER( gamecom_internal_r );
238234   DECLARE_READ8_MEMBER( gamecom_pio_r );
239235   DECLARE_WRITE8_MEMBER( gamecom_internal_w );
240236   DECLARE_WRITE8_MEMBER( gamecom_pio_w );
241   required_shared_ptr<UINT8> m_p_nvram;
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:
242248   UINT8 *m_p_ram;
243   required_shared_ptr<UINT8> m_p_videoram;
244249   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;
245255   memory_region *m_cart1_rom;
246256   memory_region *m_cart2_rom;
247257   emu_timer *m_clock_timer;
r241903r241904
249259   GAMECOM_DMA m_dma;
250260   GAMECOM_TIMER m_timer[2];
251261   gamecom_sound_t m_sound;
252   int m_scanline;
253   unsigned int m_base_address;
254262   bitmap_ind16 m_bitmap;
255263   void gamecom_set_mmu(UINT8 mmu, UINT8 data);
256264   void handle_stylus_press(int column);
257   UINT8 m_lcdc_reg;
258   UINT8 m_lch_reg;
259   UINT8 m_lcv_reg;
260265   void recompute_lcd_params();
261266   void handle_input_press(UINT16 mux_data);
262
263   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
264   DECLARE_DRIVER_INIT(gamecom);
267   int common_load(device_image_interface &image, generic_slot_device *slot);
265268   virtual void machine_reset();
266269   virtual void video_start();
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:
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;
278276   required_memory_bank m_bank1;
279277   required_memory_bank m_bank2;
280278   required_memory_bank m_bank3;
trunk/src/mess/layout/gamecom.lay
r241903r241904
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="16" width="16" height="16" />
13         <bounds x="16" y="0" width="16" height="16" />
1414      </backdrop>
1515      <backdrop element="grid" inputtag="GRID.2" inputmask="0x01" >
16         <bounds x="32" y="16" width="16" height="16" />
16         <bounds x="32" y="0" width="16" height="16" />
1717      </backdrop>
1818      <backdrop element="grid" inputtag="GRID.3" inputmask="0x01" >
19         <bounds x="48" y="16" width="16" height="16" />
19         <bounds x="48" y="0" width="16" height="16" />
2020      </backdrop>
2121      <backdrop element="grid" inputtag="GRID.4" inputmask="0x01" >
22         <bounds x="64" y="16" width="16" height="16" />
22         <bounds x="64" y="0" width="16" height="16" />
2323      </backdrop>
2424      <backdrop element="grid" inputtag="GRID.5" inputmask="0x01" >
25         <bounds x="80" y="16" width="16" height="16" />
25         <bounds x="80" y="0" width="16" height="16" />
2626      </backdrop>
2727      <backdrop element="grid" inputtag="GRID.6" inputmask="0x01" >
28         <bounds x="96" y="16" width="16" height="16" />
28         <bounds x="96" y="0" width="16" height="16" />
2929      </backdrop>
3030      <backdrop element="grid" inputtag="GRID.7" inputmask="0x01" >
31         <bounds x="112" y="16" width="16" height="16" />
31         <bounds x="112" y="0" width="16" height="16" />
3232      </backdrop>
3333      <backdrop element="grid" inputtag="GRID.8" inputmask="0x01" >
34         <bounds x="128" y="16" width="16" height="16" />
34         <bounds x="128" y="0" width="16" height="16" />
3535      </backdrop>
3636      <backdrop element="grid" inputtag="GRID.9" inputmask="0x01" >
37         <bounds x="144" y="16" width="16" height="16" />
37         <bounds x="144" y="0" width="16" height="16" />
3838      </backdrop>
3939      <backdrop element="grid" inputtag="GRID.10" inputmask="0x01" >
40         <bounds x="160" y="16" width="16" height="16" />
40         <bounds x="160" y="0" width="16" height="16" />
4141      </backdrop>
4242      <backdrop element="grid" inputtag="GRID.11" inputmask="0x01" >
43         <bounds x="176" y="16" width="16" height="16" />
43         <bounds x="176" y="0" width="16" height="16" />
4444      </backdrop>
4545      <backdrop element="grid" inputtag="GRID.12" inputmask="0x01" >
46         <bounds x="192" y="16" width="16" height="16" />
46         <bounds x="192" y="0" 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