Previous 199869 Revisions Next

r29438 Tuesday 8th April, 2014 at 09:18:41 UTC by Nathan Woods
Merge branch 'master' of ssh://mess.org/mame into new_menus
[/branches/new_menus/hash]snes.xml tandy2k.xml
[/branches/new_menus/src/emu/bus/pci]southbridge.c
[/branches/new_menus/src/emu/machine]at_keybc.c at_keybc.h
[/branches/new_menus/src/emu/video]huc6202.c huc6202.h
[/branches/new_menus/src/mame/drivers]backfire.c boogwing.c cbuster.c cninja.c cobra.c darkseal.c dassault.c dblewing.c deco156.c deco32.c dietgo.c dreambal.c funkyjet.c ggconnie.c gticlub.c mirage.c nwk-tr.c pktgaldx.c rohga.c simpl156.c sshangha.c supbtime.c tumblep.c vaportra.c zr107.c
[/branches/new_menus/src/mame/includes]boogwing.h cbuster.h cninja.h darkseal.h dassault.h deco32.h dietgo.h pktgaldx.h rohga.h simpl156.h sshangha.h vaportra.h
[/branches/new_menus/src/mame/video]deco16ic.c deco16ic.h k001604.c k001604.h
[/branches/new_menus/src/mess/drivers]at.c ct486.c pce.c

branches/new_menus/hash/snes.xml
r29437r29438
2323  <Japan>
2424          o   PCB pic    Clock Tower / Prototype with 3 sample games
2525          o   PCB pic    Dai-3-Ji Super Robot Taisen / Revision C / C2941881
26          o   PCB pic    Doraemon - Nobita to Yousei no Kuni / Revision A / 55E44983
2726          ?              Dragon Slayer - Eiyuu Densetsu II / Prototype
2827          x   n/a        Eiga Shoukai Soft - Mizu no Tabinin
2928          o   Wii VC     Gakkou de Atta Kowai Hanashi / Revision A
r29437r29438
402401        </part>
403402    </software>
404403
405    <software name="doraemonra" cloneof="doraemon">
406        <description>Doraemon - Nobita to Yousei no Kuni (Jpn, Rev. A)</description>
407        <year>1993</year>
408        <publisher>Epoch</publisher>
409        <info name="serial" value="SHVC-DR" />
410        <info name="release" value="19930219" />
411        <info name="alt_title" value="ドラえもん のび太と妖精の国" />
412        <part name="cart" interface="snes_cart">
413            <feature name="pcb" value="SHVC-1J0N-01" />
414            <feature name="u1" value="U1 MASK ROM(N)" />
415            <feature name="u2" value="U2 CIC" />
416            <feature name="lockout" value="" />
417            <feature name="cart_revision" value="A" />
418            <feature name="cart_model" value="SHVC-006" />
419            <feature name="cart_back_label" value="920214" />
420            <dataarea name="rom" size="524288">
421                <rom name="shvc-dr-1.u1" size="524288" crc="55e44983" offset="0x000000" />
422            </dataarea>
423        </part>
424    </software>
425
426404    <software name="ggoemon3ra" cloneof="ggoemon3">
427405        <description>Ganbare Goemon 3 - Shishi Juurokubee no Karakuri Manjigatame (Jpn, Rev. A)</description>
428406        <year>1994</year>
r29437r29438
13761354      </part>
13771355   </software>
13781356
1357   <software name="hebepopnjp" cloneof="hebepopn">
1358      <!-- lytron -->
1359      <description>Hebereke no Popoon (Jpn, Prototype 19931101)</description>
1360      <year>1993</year>
1361      <publisher>Sunsoft</publisher>
1362      <info name="serial" value="37" />
1363      <info name="alt_title" value="へべれけのぽぷーん" />
1364      <part name="cart" interface="snes_cart">
1365         <feature name="cart_model" value="SHVC-006" />
1366         <feature name="slot" value="lorom" />
1367         <dataarea name="rom" size="1048576">
1368            <rom name="s931101-037.u1" size="524288" crc="da56ab79" sha1="1b12feb8c6863d94ec077c8d52cab2bc35f72956" offset="0x000000" />
1369            <rom name="u2"             size="524288" crc="b6cec398" sha1="6cf5153a056240b37f2ebfcaccf9828be9f55c87" offset="0x080000" />
1370         </dataarea>
1371      </part>
1372   </software>
1373
13791374   <software name="humangp2p" cloneof="f1polep2">
13801375      <!-- snescentral.com -->
13811376      <description>Human Grand Prix II (Jpn, Prototype)</description>
r29437r29438
32663261      </part>
32673262   </software>
32683263
3264   <software name="contra3p" cloneof="sprobot">
3265      <!-- Notes: this rom image was released in 2014 without any documentation, despite its name, it is a prototype of Contra III
3266                  the rom was overdumped to 4MiB likely due to header based dumping tools, the right size "should be" 1MiB -->
3267      <description>Contra IV - The Alien Wars (USA, Prototype)</description>
3268      <year>1992</year>
3269      <publisher>Konami</publisher>
3270      <part name="cart" interface="snes_cart">
3271         <feature name="slot" value="lorom" />
3272         <dataarea name="rom" size="4194304">
3273            <rom name="contra iv - the alien wars (prototype).sfc" size="4194304" crc="8f3deca5" sha1="daba9ebb5162fc4631d663ab5681c2518f6311e5" offset="0x000000" status="baddump" />
3274         </dataarea>
3275         <dataarea name="nvram" size="2048">
3276         </dataarea>
3277      </part>
3278   </software>
3279
32693280   <software name="cybernatup" cloneof="cybernat">
32703281      <!-- Notes: this rom image was released by retrology with only a picture of the cartridge (model SNS-006) -->
32713282      <description>Cybernator (USA, Prototype 199211)</description>
r29437r29438
1090110912      </part>
1090210913   </software>
1090310914
10904   <software name="doraemon">
10915   <software name="doraemona" cloneof="doraemon">
1090510916      <description>Doraemon - Nobita to Yousei no Kuni (Jpn)</description>
1090610917      <year>1993</year>
1090710918      <publisher>Epoch</publisher>
r29437r29438
2616526176      </part>
2616626177   </software>
2616726178
26168   <software name="sjinsei3">
26179   <software name="sjinsei3a" cloneof="sjinsei3">
2616926180      <description>Super Jinsei Game 3 (Jpn)</description>
2617026181      <year>1996</year>
2617126182      <publisher>Takara</publisher>
r29437r29438
2881728828   </software>
2881828829
2881928830   <software name="swordwl2a" cloneof="swordwl2">
28820      <!-- Notes: Revision A (firmware update? initial cart unknown) -->
2882128831      <description>Sword World SFC 2 - Inishie no Kyojin Densetsu (Jpn)</description>
2882228832      <year>1994</year>
2882328833      <publisher>T&amp;E Soft</publisher>
r29437r29438
2883128841         <feature name="u2" value="U2 64K SRAM" />
2883228842         <feature name="u3" value="U3 MAD-1" />
2883328843         <feature name="u4" value="U4 CIC" />
28834         <feature name="lockout" value="D411A (CB)" />
28844         <feature name="lockout" value="D411A 9353 CB" />
2883528845         <feature name="battery" value="BATT CR2032" />
2883628846         <feature name="cart_model" value="SHVC-006" />
28837         <feature name="cart_revision" value="A" />
28847         <!--feature name="cart_revision" value="A" factory issue? /-->
2883828848         <feature name="cart_back_label" value="901121" />
2883928849         <feature name="slot" value="lorom" />
2884028850         <dataarea name="rom" size="2097152">
r29437r29438
3219732207      </part>
3219832208   </software>
3219932209
32210   <software name="doraemon">
32211      <!-- single cartridge source: ototo -->
32212      <description>Doraemon - Nobita to Yousei no Kuni (Jpn, Rev. A)</description>
32213      <year>1993</year>
32214      <publisher>Epoch</publisher>
32215      <info name="serial" value="SHVC-DR" />
32216      <info name="release" value="19930219" />
32217      <info name="alt_title" value="ドラえもん のび太と妖精の国" />
32218      <part name="cart" interface="snes_cart">
32219         <feature name="pcb" value="SHVC-1J0N-01" />
32220         <feature name="u1" value="U1 MASK ROM(N)" />
32221         <feature name="u2" value="U2 CIC" />
32222         <feature name="lockout" value="" />
32223         <feature name="cart_revision" value="A" />
32224         <feature name="cart_model" value="SHVC-006" />
32225         <feature name="cart_back_label" value="920214" />
32226         <dataarea name="rom" size="524288">
32227            <rom name="shvc-dr-1.u1" size="524288" crc="55e44983" sha1="95b8e45c194618fc122ca10d5af5dbf9b9077aac" offset="0x000000" />
32228         </dataarea>
32229      </part>
32230   </software>
32231
3220032232   <software name="estpolisa" cloneof="lufia">
3220132233      <!-- single cartridge source: eyedunno -->
3220232234      <description>Estpolis Denki (Jpn, Rev. A)</description>
r29437r29438
3229432326      </part>
3229532327   </software>
3229632328
32329   <software name="granhist">
32330      <!-- single cartridge source: bigfred -->
32331      <description>Granhistoria - Genshi Sekaiki (Jpn, Rev. A)</description>
32332      <year>1995</year>
32333      <publisher>Banpresto</publisher>
32334      <info name="serial" value="SHVC-AIRJ-JPN" />
32335      <info name="release" value="19950630" />
32336      <info name="alt_title" value="グランヒストリア~幻史世界記~" />
32337      <part name="cart" interface="snes_cart">
32338         <feature name="pcb" value="SHVC-1A3M-30" />
32339         <feature name="u1" value="U1 MASK ROM(N)" />
32340         <feature name="u2" value="U2 64K SRAM" />
32341         <feature name="u3" value="U3 MAD-1" />
32342         <feature name="u4" value="U4 CIC" />
32343         <feature name="lockout" value="D411B 9527 B" />
32344         <feature name="battery" value="BATT CR2032" />
32345         <feature name="cart_revision" value="A" />
32346         <feature name="cart_model" value="SHVC-006" />
32347         <feature name="cart_back_label" value="" />
32348         <feature name="slot" value="lorom" />
32349         <dataarea name="rom" size="2097152">
32350            <rom name="shvc-airj-1.u1" size="2097152" crc="27eb2cf0" sha1="d75bf1b46b8ac90e773ddf20e3e8abd38f0d4dc5" offset="0x000000" />
32351         </dataarea>
32352         <dataarea name="nvram" size="8192">
32353         </dataarea>
32354      </part>
32355   </software>
32356
3229732357   <software name="hakprogl" cloneof="extrainn">
3229832358      <!-- single cartridge source: Yakushi~Kabuto -->
3229932359      <description>Hakunetsu Pro Yakyuu - Ganba League (Jpn, Rev. A)</description>
r29437r29438
3290832968      </part>
3290932969   </software>
3291032970
32971   <software name="shinmomo">
32972      <!-- single cartridge source: bigfred -->
32973      <!-- Notes: Also re-released through Nintendo Power -->
32974      <description>Shin Momotarou Densetsu (Jpn, Rev. A)</description>
32975      <year>1992</year>
32976      <publisher>Hudson</publisher>
32977      <info name="serial" value="SHVC-M5-1" />
32978      <info name="release" value="19931224" />
32979      <info name="alt_title" value="新 桃太郎伝説" />
32980      <part name="cart" interface="snes_cart">
32981         <feature name="pcb" value="SHVC-1J3M-20" />
32982         <feature name="u1" value="U1 MASK ROM(N)" />
32983         <feature name="u2" value="U2 64K SRAM" />
32984         <feature name="u3" value="U3 MAD-1" />
32985         <feature name="u4" value="U4 CIC" />
32986         <feature name="lockout" value="D411B 9512 B" />
32987         <feature name="battery" value="BATT CR2032" />
32988         <feature name="cart_revision" value="A" />
32989         <feature name="cart_model" value="SHVC-006" />
32990         <feature name="cart_back_label" value="" />
32991         <feature name="slot" value="hirom" />
32992         <dataarea name="rom" size="2097152">
32993            <rom name="shvc-m5-1.u1" size="2097152" crc="4a653411" sha1="a9e0b5e6b0479871792f8b44f032b71fdb8f12b4" offset="0x000000" />
32994         </dataarea>
32995         <dataarea name="nvram" size="8192">
32996         </dataarea>
32997      </part>
32998   </software>
32999
3291133000   <software name="sf2tu" cloneof="sf2t">
3291233001      <!-- single cartridge source: nitro322 -->
3291333002      <description>Street Fighter II Turbo - Hyper Fighting (USA, Rev. A)</description>
r29437r29438
3317833267      </part>
3317933268   </software>
3318033269
33270   <software name="swordwl2">
33271      <!-- single cartridge source: bigfred -->
33272      <description>Sword World SFC 2 - Inishie no Kyojin Densetsu (Jpn, Rev. A)</description>
33273      <year>1994</year>
33274      <publisher>T&amp;E Soft</publisher>
33275      <info name="serial" value="SHVC-7M" />
33276      <info name="release" value="19940715" />
33277      <info name="alt_title" value="ソードワールドSFC2 いにし えの巨人伝説" />
33278      <sharedfeat name="compatibility" value="NTSC"/>
33279      <part name="cart" interface="snes_cart">
33280         <feature name="pcb" value="SHVC-1A3M-21" />
33281         <feature name="u1" value="U1 MASK ROM(N)" />
33282         <feature name="u2" value="U2 64K SRAM" />
33283         <feature name="u3" value="U3 MAD-1" />
33284         <feature name="u4" value="U4 CIC" />
33285         <feature name="lockout" value="D411A 9440 CB" />
33286         <feature name="battery" value="BATT CR2032" />
33287         <feature name="cart_revision" value="A" />
33288         <feature name="cart_model" value="SHVC-006" />
33289         <feature name="cart_back_label" value="" />
33290         <feature name="slot" value="lorom" />
33291         <dataarea name="rom" size="2097152">
33292            <rom name="shvc-7m-1.u1" size="2097152" crc="cb148365" sha1="a90412a32828fdf02968bf7b1f2efd57453ef031" offset="0x000000" />
33293         </dataarea>
33294         <dataarea name="nvram" size="8192">
33295         </dataarea>
33296      </part>
33297   </software>
33298
3318133299   <software name="turnburns" cloneof="turnburn">
3318233300      <!-- single cartridge source: Zidanax -->
3318333301      <description>Turn and Burn - No-Fly Zone (Spa)</description>
r29437r29438
3330233420
3330333421-->
3330433422
33305   <software name="granhist">
33306      <description>Granhistoria - Genshi Sekaiki (Jpn, Rev. A)</description>
33307      <year>1995</year>
33308      <publisher>Banpresto</publisher>
33309      <info name="serial" value="SHVC-AIRJ-JPN" />
33310      <info name="release" value="19950630" />
33311      <info name="alt_title" value="グランヒストリア~幻史世界記~" />
33312      <part name="cart" interface="snes_cart">
33313         <feature name="slot" value="lorom" />
33314         <dataarea name="rom" size="2097152">
33315            <rom name="granhistoria - genshi sekaiki (japan) (rev 1).sfc" size="2097152" crc="27eb2cf0" sha1="d75bf1b46b8ac90e773ddf20e3e8abd38f0d4dc5" offset="0x000000" />
33316         </dataarea>
33317         <dataarea name="nvram" size="8192">
33318         </dataarea>
33319      </part>
33320   </software>
33321
3332233423   <software name="mechwarri" cloneof="mechwarr">
3332333424      <description>MechWarrior (Ita)</description>
3332433425      <year>1993</year>
r29437r29438
3333333434      </part>
3333433435   </software>
3333533436
33336   <software name="shinmomo">
33337      <!-- Notes: Also re-released through Nintendo Power -->
33338      <description>Shin Momotarou Densetsu (Jpn, Rev. A)</description>
33339      <year>1992</year>
33340      <publisher>Hudson</publisher>
33341      <info name="serial" value="SHVC-M5" />
33342      <info name="release" value="19931224" />
33343      <info name="alt_title" value="新 桃太郎伝説" />
33344      <part name="cart" interface="snes_cart">
33345         <feature name="slot" value="hirom" />
33346         <dataarea name="rom" size="2097152">
33347            <rom name="shin momotarou densetsu (japan) (rev 1).sfc" size="2097152" crc="4a653411" sha1="a9e0b5e6b0479871792f8b44f032b71fdb8f12b4" offset="0x000000" />
33348         </dataarea>
33349         <dataarea name="nvram" size="8192">
33350         </dataarea>
33351      </part>
33352   </software>
33353
3335433437   <software name="starfoxj" cloneof="starwing">
3335533438      <!-- Notes: dumped from a Super Famicom Box, CONFIRMATION NEEDED on a retail cartridge -->
3335633439      <description>Star Fox (Jpn, v1.1, Super Famicom Box)</description>
r29437r29438
3337933462      </part>
3338033463   </software>
3338133464
33382   <software name="swordwl2">
33383      <description>Sword World SFC 2 - Inishie no Kyojin Densetsu (Jpn, Rev. A)</description>
33384      <year>1994</year>
33385      <publisher>T&amp;E Soft</publisher>
33386      <info name="serial" value="SHVC-7M" />
33387      <info name="release" value="19940715" />
33388      <info name="alt_title" value="ソードワールドSFC2 いにし えの巨人伝説" />
33389      <sharedfeat name="compatibility" value="NTSC"/>
33390      <part name="cart" interface="snes_cart">
33391         <feature name="slot" value="lorom" />
33392         <dataarea name="rom" size="2097152">
33393            <rom name="sword world sfc 2 - inishie no kyojin densetsu (japan) (rev 1).sfc" size="2097152" crc="cb148365" sha1="a90412a32828fdf02968bf7b1f2efd57453ef031" offset="0x000000" />
33394         </dataarea>
33395         <dataarea name="nvram" size="8192">
33396         </dataarea>
33397      </part>
33398   </software>
33399
3340033465<!--
3340133466
3340233467[/L08] End of unconfirmed retail images
r29437r29438
5702157086      </part>
5702257087   </software>
5702357088
57089   <software name="sjinsei3">
57090      <description>Super Jinsei Game 3 (Jpn, Rev. A)</description>
57091      <year>1996</year>
57092      <publisher>Takara</publisher>
57093      <info name="serial" value="SHVC-A3XJ-JPN" />
57094      <info name="release" value="19961129" />
57095      <info name="alt_title" value="スーパー人生ゲーム3" />
57096      <part name="cart" interface="snes_cart">
57097         <feature name="slot" value="lorom" />
57098         <dataarea name="rom" size="2097152">
57099            <rom name="super jinsei game 3 (japan) (rev 1).sfc" size="2097152" crc="61b947e2" sha1="99780e28af77452f00108e5c33966e7a372fe6b0" offset="0x000000" />
57100         </dataarea>
57101         <dataarea name="nvram" size="8192">
57102         </dataarea>
57103      </part>
57104   </software>
57105
5702457106   <software name="skeirin">
5702557107      <description>Super Keirin (Jpn)</description>
5702657108      <year>1995</year>
r29437r29438
6273262814      </part>
6273362815   </software>
6273462816
62735   <software name="yokozuna">
62817   <software name="yokozunaa" cloneof="yokozuna">
6273662818      <description>Yokozuna Monogatari (Jpn)</description>
6273762819      <year>1994</year>
6273862820      <publisher>KSS</publisher>
r29437r29438
6274962831      </part>
6275062832   </software>
6275162833
62834   <software name="yokozuna">
62835      <description>Yokozuna Monogatari (Jpn, Rev. A)</description>
62836      <year>1994</year>
62837      <publisher>KSS</publisher>
62838      <info name="serial" value="SHVC-5U" />
62839      <info name="release" value="19940825" />
62840      <info name="alt_title" value="横綱物語" />
62841      <part name="cart" interface="snes_cart">
62842         <feature name="slot" value="lorom" />
62843         <dataarea name="rom" size="1048576">
62844            <rom name="yokozuna monogatari (japan) (rev 1).sfc" size="1048576" crc="b5084d76" sha1="dda5b613f4dbc639719a99e35e6bb48e2fa24dfc" offset="0x000000" />
62845         </dataarea>
62846         <dataarea name="nvram" size="8192">
62847         </dataarea>
62848      </part>
62849   </software>
62850
6275262851   <software name="yoshicokj" cloneof="yoshicok">
6275362852      <description>Yoshi no Cookie (Jpn)</description>
6275462853      <year>1993</year>
branches/new_menus/hash/tandy2k.xml
r29437r29438
22<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
33<softwarelist name="tandy2k" description="Tandy 2000 disk images">
44
5   <!--
6
7      Undumped and most wanted:
8
9      #700-2611   Driver disk for Windows 1.03
10
11   -->
12
513   <software name="lotus123">
614      <description>Lotus 1-2-3</description>
715      <year>1983</year>
branches/new_menus/src/emu/machine/at_keybc.c
r29437r29438
4949
5050at_keyboard_controller_device::at_keyboard_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
5151   : device_t(mconfig, AT_KEYBOARD_CONTROLLER, "AT Keyboard Controller", tag, owner, clock, "at_keybc", __FILE__),
52      m_cpu(NULL)
52      m_cpu(NULL),
53      m_system_reset_cb(*this),
54      m_gate_a20_cb(*this),
55      m_input_buffer_full_cb(*this),
56      m_output_buffer_empty_cb(*this),
57      m_keyboard_clock_cb(*this),
58      m_keyboard_data_cb(*this)
5359{
5460}
5561
r29437r29438
7379   return MACHINE_CONFIG_NAME(at_keybc);
7480}
7581
76//-------------------------------------------------
77//  device_config_complete - perform any
78//  operations now that the configuration is
79//  complete
80//-------------------------------------------------
81
82void at_keyboard_controller_device::device_config_complete()
83{
84   // inherit a copy of the static data
85   const at_keyboard_controller_interface *intf = reinterpret_cast<const at_keyboard_controller_interface *>(static_config());
86
87   if (intf != NULL)
88   {
89      *static_cast<at_keyboard_controller_interface *>(this) = *intf;
90   }
91
92   // or initialize to defaults if none provided
93   else
94   {
95      memset(&m_system_reset_cb, 0, sizeof(m_system_reset_cb));
96      memset(&m_gate_a20_cb, 0, sizeof(m_gate_a20_cb));
97      memset(&m_input_buffer_full_cb, 0, sizeof(m_input_buffer_full_cb));
98      memset(&m_output_buffer_empty_cb, 0, sizeof(m_output_buffer_empty_cb));
99      memset(&m_keyboard_clock_cb, 0, sizeof(m_keyboard_clock_cb));
100      memset(&m_keyboard_data_cb, 0, sizeof(m_keyboard_data_cb));
101   }
102}
103
10482/*-------------------------------------------------
10583    device_start - device-specific startup
10684-------------------------------------------------*/
r29437r29438
11189   m_cpu = downcast<upi41_cpu_device *>(subdevice("at_keybc"));
11290
11391   // resolve callbacks
114   m_system_reset_func.resolve(m_system_reset_cb, *this);
115   m_gate_a20_func.resolve(m_gate_a20_cb, *this);
116   m_input_buffer_full_func.resolve(m_input_buffer_full_cb, *this);
117   m_output_buffer_empty_func.resolve(m_output_buffer_empty_cb, *this);
118   m_keyboard_clock_func.resolve(m_keyboard_clock_cb, *this);
119   m_keyboard_data_func.resolve(m_keyboard_data_cb, *this);
92   m_system_reset_cb.resolve_safe();
93   m_gate_a20_cb.resolve_safe();
94   m_input_buffer_full_cb.resolve_safe();
95   m_output_buffer_empty_cb.resolve_safe();
96   m_keyboard_clock_cb.resolve_safe();
97   m_keyboard_data_cb.resolve_safe();
12098
12199   // register for save states
122100   save_item(NAME(m_clock_signal));
r29437r29438
180158*/
181159WRITE8_MEMBER( at_keyboard_controller_device::p2_w )
182160{
183   m_system_reset_func(BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE);
184   m_gate_a20_func(BIT(data, 1) ? ASSERT_LINE : CLEAR_LINE);
185   m_input_buffer_full_func(BIT(data, 4) ? ASSERT_LINE : CLEAR_LINE);
186   m_output_buffer_empty_func(BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE);
161   m_system_reset_cb(BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE);
162   m_gate_a20_cb(BIT(data, 1) ? ASSERT_LINE : CLEAR_LINE);
163   m_input_buffer_full_cb(BIT(data, 4) ? ASSERT_LINE : CLEAR_LINE);
164   m_output_buffer_empty_cb(BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE);
187165
188166   m_clock_signal = !BIT(data, 6);
189167   m_data_signal = BIT(data, 7);
190168
191   m_keyboard_data_func(m_data_signal);
192   m_keyboard_clock_func(m_clock_signal);
169   m_keyboard_data_cb(m_data_signal);
170   m_keyboard_clock_cb(m_clock_signal);
193171}
194172
195173
branches/new_menus/src/emu/machine/at_keybc.h
r29437r29438
1717//  INTERFACE CONFIGURATION MACROS
1818//**************************************************************************
1919
20#define MCFG_AT_KEYBOARD_CONTROLLER_ADD(_tag, _clock, _interface) \
21   MCFG_DEVICE_ADD(_tag, AT_KEYBOARD_CONTROLLER, _clock) \
22   MCFG_DEVICE_CONFIG(_interface)
20#define MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(_devcb) \
21   devcb = &at_keyboard_controller_device::set_system_reset_callback(*device, DEVCB2_##_devcb);
2322
23#define MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(_devcb) \
24   devcb = &at_keyboard_controller_device::set_gate_a20_callback(*device, DEVCB2_##_devcb);
2425
26#define MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(_devcb) \
27   devcb = &at_keyboard_controller_device::set_input_buffer_full_callback(*device, DEVCB2_##_devcb);
28
29#define MCFG_AT_KEYBOARD_CONTROLLER_OUTPUT_BUFFER_EMPTY_CB(_devcb) \
30   devcb = &at_keyboard_controller_device::set_output_buffer_empty_callback(*device, DEVCB2_##_devcb);
31
32#define MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(_devcb) \
33   devcb = &at_keyboard_controller_device::set_keyboard_clock_callback(*device, DEVCB2_##_devcb);
34
35#define MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(_devcb) \
36   devcb = &at_keyboard_controller_device::set_keyboard_data_callback(*device, DEVCB2_##_devcb);
37
2538//**************************************************************************
2639//  TYPE DEFINITIONS
2740//**************************************************************************
2841
29// ======================> at_keyboard_controller_interface
30
31struct at_keyboard_controller_interface
32{
33   // interface to the host pc
34   devcb_write_line    m_system_reset_cb;
35   devcb_write_line    m_gate_a20_cb;
36   devcb_write_line    m_input_buffer_full_cb;
37   devcb_write_line    m_output_buffer_empty_cb;
38
39   // interface to the keyboard
40   devcb_write_line    m_keyboard_clock_cb;
41   devcb_write_line    m_keyboard_data_cb;
42};
43
4442// ======================> at_keyboard_controller_device
4543
46class at_keyboard_controller_device : public device_t,
47                              public at_keyboard_controller_interface
44class at_keyboard_controller_device : public device_t
4845{
4946public:
5047   // construction/destruction
5148   at_keyboard_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
5249
50   template<class _Object> static devcb2_base &set_system_reset_callback(device_t &device, _Object object) { return downcast<at_keyboard_controller_device &>(device).m_system_reset_cb.set_callback(object); }
51   template<class _Object> static devcb2_base &set_gate_a20_callback(device_t &device, _Object object) { return downcast<at_keyboard_controller_device &>(device).m_gate_a20_cb.set_callback(object); }
52   template<class _Object> static devcb2_base &set_input_buffer_full_callback(device_t &device, _Object object) { return downcast<at_keyboard_controller_device &>(device).m_input_buffer_full_cb.set_callback(object); }
53   template<class _Object> static devcb2_base &set_output_buffer_empty_callback(device_t &device, _Object object) { return downcast<at_keyboard_controller_device &>(device).m_output_buffer_empty_cb.set_callback(object); }
54   template<class _Object> static devcb2_base &set_keyboard_clock_callback(device_t &device, _Object object) { return downcast<at_keyboard_controller_device &>(device).m_keyboard_clock_cb.set_callback(object); }
55   template<class _Object> static devcb2_base &set_keyboard_data_callback(device_t &device, _Object object) { return downcast<at_keyboard_controller_device &>(device).m_keyboard_data_cb.set_callback(object); }
56   
5357   // internal 8042 interface
5458   DECLARE_READ8_MEMBER( t0_r );
5559   DECLARE_READ8_MEMBER( t1_r );
r29437r29438
7175   // device-level overrides
7276   virtual void device_start();
7377   virtual void device_reset();
74   virtual void device_config_complete();
7578
7679   virtual const rom_entry *device_rom_region() const;
7780   virtual machine_config_constructor device_mconfig_additions() const;
81   
7882private:
7983   // internal state
8084   upi41_cpu_device *m_cpu;
8185
82   devcb_resolved_write_line   m_system_reset_func;
83   devcb_resolved_write_line   m_gate_a20_func;
84   devcb_resolved_write_line   m_input_buffer_full_func;
85   devcb_resolved_write_line   m_output_buffer_empty_func;
86   devcb_resolved_write_line   m_keyboard_clock_func;
87   devcb_resolved_write_line   m_keyboard_data_func;
86   // interface to the host pc
87   devcb2_write_line    m_system_reset_cb;
88   devcb2_write_line    m_gate_a20_cb;
89   devcb2_write_line    m_input_buffer_full_cb;
90   devcb2_write_line    m_output_buffer_empty_cb;
8891
92   // interface to the keyboard
93   devcb2_write_line    m_keyboard_clock_cb;
94   devcb2_write_line    m_keyboard_data_cb;
95
8996   UINT8 m_clock_signal;
9097   UINT8 m_data_signal;
9198};
branches/new_menus/src/emu/bus/pci/southbridge.c
r29437r29438
3333   { DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, southbridge_device, pc_dack4_w), DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, southbridge_device, pc_dack5_w), DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, southbridge_device, pc_dack6_w), DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, southbridge_device, pc_dack7_w) }
3434};
3535
36static const at_keyboard_controller_interface keyboard_controller_intf =
37{
38   DEVCB_CPU_INPUT_LINE(":maincpu", INPUT_LINE_RESET),
39   DEVCB_CPU_INPUT_LINE(":maincpu", INPUT_LINE_A20),
40   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir1_w),
41   DEVCB_NULL,
42   DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, clock_write_from_mb),
43   DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, data_write_from_mb)
44};
45
4636static const pc_kbdc_interface pc_kbdc_intf =
4737{
4838   DEVCB_DEVICE_LINE_MEMBER("keybc", at_keyboard_controller_device, keyboard_clock_w),
r29437r29438
9787   MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE(":maincpu", 0), VCC, READ8(southbridge_device, get_slave_ack) )
9888   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
9989
100   MCFG_AT_KEYBOARD_CONTROLLER_ADD("keybc", XTAL_12MHz, keyboard_controller_intf)
90   MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz)
91   MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(INPUTLINE(":maincpu", INPUT_LINE_RESET))
92   MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(INPUTLINE(":maincpu", INPUT_LINE_A20))
93   MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir1_w))
94   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, clock_write_from_mb))
95   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, data_write_from_mb))
10196   MCFG_PC_KBDC_ADD("pc_kbdc", pc_kbdc_intf)
10297   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
10398
branches/new_menus/src/emu/video/huc6202.c
r29437r29438
1212const device_type HUC6202 = &device_creator<huc6202_device>;
1313
1414
15void huc6202_device::device_config_complete()
16{
17   const huc6202_interface *intf = reinterpret_cast<const huc6202_interface *>(static_config());
18
19   if ( intf != NULL )
20   {
21      *static_cast<huc6202_interface *>(this) = *intf;
22   }
23   else
24   {
25      memset(&m_next_pixel_0, 0, sizeof(m_next_pixel_0));
26      memset(&m_get_time_til_next_event_0, 0, sizeof(m_get_time_til_next_event_0));
27      memset(&m_hsync_changed_0, 0, sizeof(m_hsync_changed_0));
28      memset(&m_vsync_changed_0, 0, sizeof(m_vsync_changed_0));
29      memset(&m_read_0, 0, sizeof(m_read_0));
30      memset(&m_write_0, 0, sizeof(m_write_0));
31      memset(&m_next_pixel_1, 0, sizeof(m_next_pixel_1));
32      memset(&m_get_time_til_next_event_1, 0, sizeof(m_get_time_til_next_event_1));
33      memset(&m_hsync_changed_1, 0, sizeof(m_hsync_changed_1));
34      memset(&m_vsync_changed_1, 0, sizeof(m_vsync_changed_1));
35      memset(&m_read_1, 0, sizeof(m_read_1));
36      memset(&m_write_1, 0, sizeof(m_write_1));
37   }
38}
39
40
4115huc6202_device::huc6202_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
42   : device_t(mconfig, HUC6202, "HuC6202 VPC", tag, owner, clock, "huc6202", __FILE__)
16   : device_t(mconfig, HUC6202, "HuC6202 VPC", tag, owner, clock, "huc6202", __FILE__),
17      m_next_pixel_0_cb(*this),
18      m_time_til_next_event_0_cb(*this),
19      m_vsync_changed_0_cb(*this),
20      m_hsync_changed_0_cb(*this),
21      m_read_0_cb(*this),
22      m_write_0_cb(*this),
23      m_next_pixel_1_cb(*this),
24      m_time_til_next_event_1_cb(*this),
25      m_vsync_changed_1_cb(*this),
26      m_hsync_changed_1_cb(*this),
27      m_read_1_cb(*this),
28      m_write_1_cb(*this)
4329{
4430}
4531
r29437r29438
4834{
4935   UINT16 data = huc6270_device::HUC6270_BACKGROUND;
5036
51   UINT16 data_0 = m_next_pixel_0( 0, 0xffff );
52   UINT16 data_1 = m_next_pixel_1( 0, 0xffff );
37   UINT16 data_0 = m_next_pixel_0_cb( 0, 0xffff );
38   UINT16 data_1 = m_next_pixel_1_cb( 0, 0xffff );
5339
5440   if ( data_0 == huc6270_device::HUC6270_SPRITE && data_1 == huc6270_device::HUC6270_SPRITE )
5541   {
r29437r29438
164150
165151READ16_MEMBER( huc6202_device::time_until_next_event )
166152{
167   UINT16 next_event_clocks_0 = m_get_time_til_next_event_0( 0, 0xffff  );
168   UINT16 next_event_clocks_1 = m_get_time_til_next_event_1( 0, 0xffff );
153   UINT16 next_event_clocks_0 = m_time_til_next_event_0_cb( 0, 0xffff  );
154   UINT16 next_event_clocks_1 = m_time_til_next_event_1_cb( 0, 0xffff );
169155
170156   return MIN( next_event_clocks_0, next_event_clocks_1 );
171157}
r29437r29438
173159
174160WRITE_LINE_MEMBER( huc6202_device::vsync_changed )
175161{
176   m_vsync_changed_0( state );
177   m_vsync_changed_1( state );
162   m_vsync_changed_0_cb( state );
163   m_vsync_changed_1_cb( state );
178164}
179165
180166
181167WRITE_LINE_MEMBER( huc6202_device::hsync_changed )
182168{
183   m_hsync_changed_0( state );
184   m_hsync_changed_1( state );
169   m_hsync_changed_0_cb( state );
170   m_hsync_changed_1_cb( state );
185171}
186172
187173
r29437r29438
283269{
284270   if ( m_io_device )
285271   {
286      return m_read_1( offset );
272      return m_read_1_cb( offset );
287273   }
288274   else
289275   {
290      return m_read_0( offset );
276      return m_read_0_cb( offset );
291277   }
292278}
293279
r29437r29438
296282{
297283   if ( m_io_device )
298284   {
299      m_write_1( offset, data );
285      m_write_1_cb( offset, data );
300286   }
301287   else
302288   {
303      m_write_0( offset, data );
289      m_write_0_cb( offset, data );
304290   }
305291}
306292
r29437r29438
308294void huc6202_device::device_start()
309295{
310296   /* Resolve callbacks */
311   m_next_pixel_0.resolve( device_0_next_pixel, *this );
312   m_get_time_til_next_event_0.resolve( get_time_til_next_event_0, *this );
313   m_hsync_changed_0.resolve( hsync_0_changed, *this );
314   m_vsync_changed_0.resolve( vsync_0_changed, *this );
315   m_read_0.resolve( read_0, *this );
316   m_write_0.resolve( write_0, *this );
297   m_next_pixel_0_cb.resolve();
298   m_time_til_next_event_0_cb.resolve();
299   m_hsync_changed_0_cb.resolve();
300   m_vsync_changed_0_cb.resolve();
301   m_read_0_cb.resolve();
302   m_write_0_cb.resolve();
317303
318   m_next_pixel_1.resolve( device_1_next_pixel, *this );
319   m_get_time_til_next_event_1.resolve( get_time_til_next_event_1, *this );
320   m_hsync_changed_1.resolve( hsync_1_changed, *this );
321   m_vsync_changed_1.resolve( vsync_1_changed, *this );
322   m_read_1.resolve( read_1, *this );
323   m_write_1.resolve( write_1, *this );
304   m_next_pixel_1_cb.resolve();
305   m_time_til_next_event_1_cb.resolve();
306   m_hsync_changed_1_cb.resolve();
307   m_vsync_changed_1_cb.resolve();
308   m_read_1_cb.resolve();
309   m_write_1_cb.resolve();
324310
325311   /* We want all our callbacks to be resolved */
326   assert( ! m_next_pixel_0.isnull() );
327   assert( ! m_get_time_til_next_event_0.isnull() );
328   assert( ! m_hsync_changed_0.isnull() );
329   assert( ! m_vsync_changed_0.isnull() );
330   assert( ! m_read_0.isnull() );
331   assert( ! m_write_0.isnull() );
332   assert( ! m_next_pixel_1.isnull() );
333   assert( ! m_get_time_til_next_event_1.isnull() );
334   assert( ! m_hsync_changed_1.isnull() );
335   assert( ! m_vsync_changed_1.isnull() );
336   assert( ! m_read_1.isnull() );
337   assert( ! m_write_1.isnull() );
312   assert( ! m_next_pixel_0_cb.isnull() );
313   assert( ! m_time_til_next_event_0_cb.isnull() );
314   assert( ! m_hsync_changed_0_cb.isnull() );
315   assert( ! m_vsync_changed_0_cb.isnull() );
316   assert( ! m_read_0_cb.isnull() );
317   assert( ! m_write_0_cb.isnull() );
318   assert( ! m_next_pixel_1_cb.isnull() );
319   assert( ! m_time_til_next_event_1_cb.isnull() );
320   assert( ! m_hsync_changed_1_cb.isnull() );
321   assert( ! m_vsync_changed_1_cb.isnull() );
322   assert( ! m_read_1_cb.isnull() );
323   assert( ! m_write_1_cb.isnull() );
338324
339325   /* Register save items */
340326   save_item(NAME(m_prio[0].prio_type));
branches/new_menus/src/emu/video/huc6202.h
r29437r29438
1010#include "emu.h"
1111
1212
13#define MCFG_HUC6202_ADD( _tag, _intrf )    \
14   MCFG_DEVICE_ADD( _tag, HUC6202, 0 )     \
15   MCFG_DEVICE_CONFIG( _intrf )
13#define MCFG_HUC6202_NEXT_PIXEL_0_CB(_devcb) \
14   devcb = &huc6202_device::set_next_pixel_0_callback(*device, DEVCB2_##_devcb);
1615
16#define MCFG_HUC6202_TIME_TIL_NEXT_EVENT_0_CB(_devcb) \
17   devcb = &huc6202_device::set_time_til_next_event_0_callback(*device, DEVCB2_##_devcb);
1718
18struct huc6202_interface
19{
20   /* First gfx input device */
21   devcb_read16                device_0_next_pixel;
19#define MCFG_HUC6202_VSYNC_CHANGED_0_CB(_devcb) \
20   devcb = &huc6202_device::set_vsync_changed_0_callback(*device, DEVCB2_##_devcb);
2221
23   /* TODO: Choose proper types */
24   /* Callback function to get time until next event */
25   devcb_read16                get_time_til_next_event_0;
22#define MCFG_HUC6202_HSYNC_CHANGED_0_CB(_devcb) \
23   devcb = &huc6202_device::set_hsync_changed_0_callback(*device, DEVCB2_##_devcb);
2624
27   devcb_write_line            vsync_0_changed;
28   devcb_write_line            hsync_0_changed;
29   devcb_read8                 read_0;
30   devcb_write8                write_0;
25#define MCFG_HUC6202_READ_0_CB(_devcb) \
26   devcb = &huc6202_device::set_read_0_callback(*device, DEVCB2_##_devcb);
3127
28#define MCFG_HUC6202_WRITE_0_CB(_devcb) \
29   devcb = &huc6202_device::set_write_0_callback(*device, DEVCB2_##_devcb);
3230
33   /* Second gfx input device */
34   devcb_read16                device_1_next_pixel;
31#define MCFG_HUC6202_NEXT_PIXEL_1_CB(_devcb) \
32   devcb = &huc6202_device::set_next_pixel_1_callback(*device, DEVCB2_##_devcb);
3533
36   /* TODO: Choose proper types */
37   /* Callback function to get time until next event */
38   devcb_read16                get_time_til_next_event_1;
34#define MCFG_HUC6202_TIME_TIL_NEXT_EVENT_1_CB(_devcb) \
35   devcb = &huc6202_device::set_time_til_next_event_1_callback(*device, DEVCB2_##_devcb);
3936
40   devcb_write_line            vsync_1_changed;
41   devcb_write_line            hsync_1_changed;
42   devcb_read8                 read_1;
43   devcb_write8                write_1;
44};
37#define MCFG_HUC6202_VSYNC_CHANGED_1_CB(_devcb) \
38   devcb = &huc6202_device::set_vsync_changed_1_callback(*device, DEVCB2_##_devcb);
4539
40#define MCFG_HUC6202_HSYNC_CHANGED_1_CB(_devcb) \
41   devcb = &huc6202_device::set_hsync_changed_1_callback(*device, DEVCB2_##_devcb);
4642
47class huc6202_device : public device_t,
48                  public huc6202_interface
43#define MCFG_HUC6202_READ_1_CB(_devcb) \
44   devcb = &huc6202_device::set_read_1_callback(*device, DEVCB2_##_devcb);
45
46#define MCFG_HUC6202_WRITE_1_CB(_devcb) \
47   devcb = &huc6202_device::set_write_1_callback(*device, DEVCB2_##_devcb);
48
49   
50class huc6202_device : public device_t
4951{
5052public:
5153   // construction/destruction
5254   huc6202_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
55   
56   template<class _Object> static devcb2_base &set_next_pixel_0_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_next_pixel_0_cb.set_callback(object); }
57   template<class _Object> static devcb2_base &set_time_til_next_event_0_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_time_til_next_event_0_cb.set_callback(object); }
58   template<class _Object> static devcb2_base &set_vsync_changed_0_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_vsync_changed_0_cb.set_callback(object); }
59   template<class _Object> static devcb2_base &set_hsync_changed_0_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_hsync_changed_0_cb.set_callback(object); }
60   template<class _Object> static devcb2_base &set_read_0_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_read_0_cb.set_callback(object); }
61   template<class _Object> static devcb2_base &set_write_0_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_write_0_cb.set_callback(object); }
62   template<class _Object> static devcb2_base &set_next_pixel_1_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_next_pixel_1_cb.set_callback(object); }
63   template<class _Object> static devcb2_base &set_time_til_next_event_1_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_time_til_next_event_1_cb.set_callback(object); }
64   template<class _Object> static devcb2_base &set_vsync_changed_1_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_vsync_changed_1_cb.set_callback(object); }
65   template<class _Object> static devcb2_base &set_hsync_changed_1_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_hsync_changed_1_cb.set_callback(object); }
66   template<class _Object> static devcb2_base &set_read_1_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_read_1_cb.set_callback(object); }
67   template<class _Object> static devcb2_base &set_write_1_callback(device_t &device, _Object object) { return downcast<huc6202_device &>(device).m_write_1_cb.set_callback(object); }
68   
5369   DECLARE_READ8_MEMBER( read );
5470   DECLARE_WRITE8_MEMBER( write );
5571   DECLARE_READ8_MEMBER( io_read );
r29437r29438
6177
6278protected:
6379   // device-level overrides
64   virtual void device_config_complete();
6580   virtual void device_start();
6681   virtual void device_reset();
6782
6883private:
6984   /* callbacks */
70   devcb_resolved_read16       m_next_pixel_0;
71   devcb_resolved_read16       m_get_time_til_next_event_0;
72   devcb_resolved_write_line   m_hsync_changed_0;
73   devcb_resolved_write_line   m_vsync_changed_0;
74   devcb_resolved_read8        m_read_0;
75   devcb_resolved_write8       m_write_0;
76   devcb_resolved_read16       m_next_pixel_1;
77   devcb_resolved_read16       m_get_time_til_next_event_1;
78   devcb_resolved_write_line   m_hsync_changed_1;
79   devcb_resolved_write_line   m_vsync_changed_1;
80   devcb_resolved_read8        m_read_1;
81   devcb_resolved_write8       m_write_1;
85   /* First gfx input device */
86   devcb2_read16                m_next_pixel_0_cb;
8287
88   /* TODO: Choose proper types */
89   /* Callback function to get time until next event */
90   devcb2_read16                m_time_til_next_event_0_cb;
91
92   devcb2_write_line            m_vsync_changed_0_cb;
93   devcb2_write_line            m_hsync_changed_0_cb;
94   devcb2_read8                 m_read_0_cb;
95   devcb2_write8                m_write_0_cb;
96
97
98   /* Second gfx input device */
99   devcb2_read16                m_next_pixel_1_cb;
100
101   /* TODO: Choose proper types */
102   /* Callback function to get time until next event */
103   devcb2_read16                m_time_til_next_event_1_cb;
104
105   devcb2_write_line            m_vsync_changed_1_cb;
106   devcb2_write_line            m_hsync_changed_1_cb;
107   devcb2_read8                 m_read_1_cb;
108   devcb2_write8                m_write_1_cb;
109
83110   struct {
84111      UINT8   prio_type;
85112      UINT8   dev0_enabled;
branches/new_menus/src/mess/drivers/at.c
r29437r29438
273273   PORT_DIPSETTING(    0x01, DEF_STR( Yes ) )
274274INPUT_PORTS_END
275275
276static const at_keyboard_controller_interface keyboard_controller_intf =
277{
278   DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_RESET),
279   DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_A20),
280   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir1_w),
281   DEVCB_NULL,
282   DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, clock_write_from_mb),
283   DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, data_write_from_mb)
284};
285
286276static const pc_kbdc_interface pc_kbdc_intf =
287277{
288278   DEVCB_DEVICE_LINE_MEMBER("keybc", at_keyboard_controller_device, keyboard_clock_w),
r29437r29438
349339   MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(at_state, get_slave_ack) )
350340   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
351341
352   MCFG_AT_KEYBOARD_CONTROLLER_ADD("keybc", XTAL_12MHz, keyboard_controller_intf)
342   MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz)
343   MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET))
344   MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(INPUTLINE("maincpu", INPUT_LINE_A20))
345   MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir1_w))
346   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, clock_write_from_mb))
347   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, data_write_from_mb))
353348   MCFG_PC_KBDC_ADD("pc_kbdc", pc_kbdc_intf)
354349
355350   MCFG_MC146818_ADD( "rtc", XTAL_32_768kHz )
branches/new_menus/src/mess/drivers/pce.c
r29437r29438
302302}
303303
304304
305static const huc6202_interface sgx_huc6202_config =
306{
307   DEVCB_DEVICE_MEMBER16( "huc6270_0", huc6270_device, next_pixel ),
308   DEVCB_DEVICE_MEMBER16( "huc6270_0", huc6270_device, time_until_next_event ),
309   DEVCB_DEVICE_LINE_MEMBER( "huc6270_0", huc6270_device, vsync_changed ),
310   DEVCB_DEVICE_LINE_MEMBER( "huc6270_0", huc6270_device, hsync_changed ),
311   DEVCB_DEVICE_MEMBER( "huc6270_0", huc6270_device, read ),
312   DEVCB_DEVICE_MEMBER( "huc6270_0", huc6270_device, write ),
313   DEVCB_DEVICE_MEMBER16( "huc6270_1", huc6270_device, next_pixel ),
314   DEVCB_DEVICE_MEMBER16( "huc6270_1", huc6270_device, time_until_next_event ),
315   DEVCB_DEVICE_LINE_MEMBER( "huc6270_1", huc6270_device, vsync_changed ),
316   DEVCB_DEVICE_LINE_MEMBER( "huc6270_1", huc6270_device, hsync_changed ),
317   DEVCB_DEVICE_MEMBER( "huc6270_1", huc6270_device, read ),
318   DEVCB_DEVICE_MEMBER( "huc6270_1", huc6270_device, write ),
319};
320
321
322305static SLOT_INTERFACE_START(pce_cart)
323306   SLOT_INTERFACE_INTERNAL("rom", PCE_ROM_STD)
324307   SLOT_INTERFACE_INTERNAL("cdsys3u", PCE_ROM_CDSYS3)
r29437r29438
403386   MCFG_DEVICE_ADD( "huc6270_1", HUC6270, 0 )
404387   MCFG_HUC6270_VRAM_SIZE(0x10000)
405388   MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_state, pce_irq_changed))
406   MCFG_HUC6202_ADD( "huc6202", sgx_huc6202_config )
389   MCFG_DEVICE_ADD( "huc6202", HUC6202, 0 )
390   MCFG_HUC6202_NEXT_PIXEL_0_CB(DEVREAD16("huc6270_0", huc6270_device, next_pixel))
391   MCFG_HUC6202_TIME_TIL_NEXT_EVENT_0_CB(DEVREAD16("huc6270_0", huc6270_device, time_until_next_event))
392   MCFG_HUC6202_VSYNC_CHANGED_0_CB(DEVWRITELINE("huc6270_0", huc6270_device, vsync_changed))
393   MCFG_HUC6202_HSYNC_CHANGED_0_CB(DEVWRITELINE("huc6270_0", huc6270_device, hsync_changed))
394   MCFG_HUC6202_READ_0_CB(DEVREAD8("huc6270_0", huc6270_device, read))
395   MCFG_HUC6202_WRITE_0_CB(DEVWRITE8("huc6270_0", huc6270_device, write))
396   MCFG_HUC6202_NEXT_PIXEL_1_CB(DEVREAD16("huc6270_1", huc6270_device, next_pixel))
397   MCFG_HUC6202_TIME_TIL_NEXT_EVENT_1_CB(DEVREAD16("huc6270_1", huc6270_device, time_until_next_event))
398   MCFG_HUC6202_VSYNC_CHANGED_1_CB(DEVWRITELINE("huc6270_1", huc6270_device, vsync_changed))
399   MCFG_HUC6202_HSYNC_CHANGED_1_CB(DEVWRITELINE("huc6270_1", huc6270_device, hsync_changed))
400   MCFG_HUC6202_READ_1_CB(DEVREAD8("huc6270_1", huc6270_device, read))
401   MCFG_HUC6202_WRITE_1_CB(DEVWRITE8("huc6270_1", huc6270_device, write))
407402
408403   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
409404   MCFG_SOUND_ADD(C6280_TAG, C6280, MAIN_CLOCK/6)
branches/new_menus/src/mess/drivers/ct486.c
r29437r29438
102102//  MACHINE DRIVERS
103103//**************************************************************************
104104
105static const at_keyboard_controller_interface keybc_intf =
106{
107   DEVCB_DEVICE_LINE_MEMBER("cs4031", cs4031_device, kbrst_w),
108   DEVCB_DEVICE_LINE_MEMBER("cs4031", cs4031_device, gatea20_w),
109   DEVCB_DEVICE_LINE_MEMBER("cs4031", cs4031_device, irq01_w),
110   DEVCB_NULL,
111   DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, clock_write_from_mb),
112   DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, data_write_from_mb)
113};
114
115105static const pc_kbdc_interface pc_kbdc_intf =
116106{
117107   DEVCB_DEVICE_LINE_MEMBER("keybc", at_keyboard_controller_device, keyboard_clock_w),
r29437r29438
163153   MCFG_RAM_DEFAULT_SIZE("4M")
164154   MCFG_RAM_EXTRA_OPTIONS("1M,2M,8M,16M,32M,64M")
165155
166   MCFG_AT_KEYBOARD_CONTROLLER_ADD("keybc", XTAL_12MHz, keybc_intf)
156   MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz)
157   MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(DEVWRITELINE("cs4031", cs4031_device, kbrst_w))
158   MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(DEVWRITELINE("cs4031", cs4031_device, gatea20_w))
159   MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(DEVWRITELINE("cs4031", cs4031_device, irq01_w))
160   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, clock_write_from_mb))
161   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, data_write_from_mb))
167162   MCFG_PC_KBDC_ADD("pc_kbdc", pc_kbdc_intf)
168163   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
169164
branches/new_menus/src/mame/includes/vaportra.h
r29437r29438
5050   virtual void machine_reset();
5151   UINT32 screen_update_vaportra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5252   void update_24bitcol( int offset );
53   int bank_callback(int bank);
5354};
branches/new_menus/src/mame/includes/sshangha.h
r29437r29438
4545   optional_device<decospr_device> m_sprgen2;
4646
4747   int m_video_control;
48   int bank_callback(int bank);
4849
4950   DECLARE_READ16_MEMBER( sshangha_protection_region_8_146_r );
5051   DECLARE_WRITE16_MEMBER( sshangha_protection_region_8_146_w );
branches/new_menus/src/mame/includes/cninja.h
r29437r29438
1717public:
1818   cninja_state(const machine_config &mconfig, device_type type, const char *tag)
1919      : driver_device(mconfig, type, tag),
20         m_maincpu(*this, "maincpu"),
21         m_audiocpu(*this, "audiocpu"),
22         m_deco146(*this, "ioprot"),
23         m_deco104(*this, "ioprot104"),
24         m_decocomn(*this, "deco_common"),
25         m_deco_tilegen1(*this, "tilegen1"),
26         m_deco_tilegen2(*this, "tilegen2"),
27         m_raster_irq_timer(*this, "raster_timer"),
28         m_oki2(*this, "oki2"),
29         m_spriteram(*this, "spriteram"),
30         m_spriteram2(*this, "spriteram2") ,
20      m_maincpu(*this, "maincpu"),
21      m_audiocpu(*this, "audiocpu"),
22      m_deco146(*this, "ioprot"),
23      m_deco104(*this, "ioprot104"),
24      m_decocomn(*this, "deco_common"),
25      m_deco_tilegen1(*this, "tilegen1"),
26      m_deco_tilegen2(*this, "tilegen2"),
27      m_raster_irq_timer(*this, "raster_timer"),
28      m_oki2(*this, "oki2"),
29      m_spriteram(*this, "spriteram"),
30      m_spriteram2(*this, "spriteram2") ,
3131      m_pf1_rowscroll(*this, "pf1_rowscroll"),
3232      m_pf2_rowscroll(*this, "pf2_rowscroll"),
3333      m_pf3_rowscroll(*this, "pf3_rowscroll"),
r29437r29438
9292   TIMER_DEVICE_CALLBACK_MEMBER(interrupt_gen);
9393   void cninjabl_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
9494
95   int cninja_bank_callback(int bank);
96   int robocop2_bank_callback(int bank);
97   int mutantf_1_bank_callback(int bank);
98   int mutantf_2_bank_callback(int bank);
99
95100   DECLARE_READ16_MEMBER( sshangha_protection_region_6_146_r );
96101   DECLARE_WRITE16_MEMBER( sshangha_protection_region_6_146_w );
97102   DECLARE_READ16_MEMBER( sshangha_protection_region_8_146_r );
branches/new_menus/src/mame/includes/dietgo.h
r29437r29438
4141   DECLARE_DRIVER_INIT(dietgo);
4242   virtual void machine_start();
4343   UINT32 screen_update_dietgo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
44   int bank_callback(int bank);
4445
4546   DECLARE_READ16_MEMBER( dietgo_protection_region_0_104_r );
4647   DECLARE_WRITE16_MEMBER( dietgo_protection_region_0_104_w );
branches/new_menus/src/mame/includes/dassault.h
r29437r29438
7070   virtual void video_start();
7171   UINT32 screen_update_dassault(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7272   void mixdassaultlayer(bitmap_rgb32 &bitmap, bitmap_ind16* sprite_bitmap, const rectangle &cliprect, UINT16 pri, UINT16 primask, UINT16 penbase, UINT8 alpha);
73   int dassault_bank_callback( const int bank );
7374};
branches/new_menus/src/mame/includes/boogwing.h
r29437r29438
2727         m_oki2(*this, "oki2"),
2828         m_spriteram(*this, "spriteram"),
2929         m_spriteram2(*this, "spriteram2") ,
30      m_pf1_rowscroll(*this, "pf1_rowscroll"),
31      m_pf2_rowscroll(*this, "pf2_rowscroll"),
32      m_pf3_rowscroll(*this, "pf3_rowscroll"),
33      m_pf4_rowscroll(*this, "pf4_rowscroll"),
34      m_sprgen1(*this, "spritegen1"),
35      m_sprgen2(*this, "spritegen2"),
36      m_palette(*this, "palette")
30         m_pf1_rowscroll(*this, "pf1_rowscroll"),
31         m_pf2_rowscroll(*this, "pf2_rowscroll"),
32         m_pf3_rowscroll(*this, "pf3_rowscroll"),
33         m_pf4_rowscroll(*this, "pf4_rowscroll"),
34         m_sprgen1(*this, "spritegen1"),
35         m_sprgen2(*this, "spritegen2"),
36         m_palette(*this, "palette")
3737   { }
3838
3939   /* devices */
r29437r29438
6363   void mix_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6464   DECLARE_READ16_MEMBER( boogwing_protection_region_0_104_r );
6565   DECLARE_WRITE16_MEMBER( boogwing_protection_region_0_104_w );
66
66   
67   int bank_callback(int bank);
68   int bank_callback2(int bank);
6769};
branches/new_menus/src/mame/includes/pktgaldx.h
r29437r29438
5858
5959   READ16_MEMBER( pktgaldx_protection_region_f_104_r );
6060   WRITE16_MEMBER( pktgaldx_protection_region_f_104_w );
61
62   int bank_callback(int bank);
6163};
branches/new_menus/src/mame/includes/cbuster.h
r29437r29438
5757   virtual void video_start();
5858   UINT32 screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5959   void update_24bitcol( int offset );
60   int bank_callback(int bank);
6061};
branches/new_menus/src/mame/includes/rohga.h
r29437r29438
1717public:
1818   rohga_state(const machine_config &mconfig, device_type type, const char *tag)
1919      : driver_device(mconfig, type, tag),
20         m_maincpu(*this, "maincpu"),
21         m_audiocpu(*this, "audiocpu"),
22         m_deco146(*this, "ioprot"),
23         m_deco104(*this, "ioprot104"),
24         m_decocomn(*this, "deco_common"),
25         m_deco_tilegen1(*this, "tilegen1"),
26         m_deco_tilegen2(*this, "tilegen2"),
27         m_oki1(*this, "oki1"),
28         m_oki2(*this, "oki2"),
29         m_spriteram(*this, "spriteram"),
30         m_spriteram2(*this, "spriteram2") ,
20      m_maincpu(*this, "maincpu"),
21      m_audiocpu(*this, "audiocpu"),
22      m_deco146(*this, "ioprot"),
23      m_deco104(*this, "ioprot104"),
24      m_decocomn(*this, "deco_common"),
25      m_deco_tilegen1(*this, "tilegen1"),
26      m_deco_tilegen2(*this, "tilegen2"),
27      m_oki1(*this, "oki1"),
28      m_oki2(*this, "oki2"),
29      m_spriteram(*this, "spriteram"),
30      m_spriteram2(*this, "spriteram2") ,
3131      m_pf1_rowscroll(*this, "pf1_rowscroll"),
3232      m_pf2_rowscroll(*this, "pf2_rowscroll"),
3333      m_pf3_rowscroll(*this, "pf3_rowscroll"),
r29437r29438
7676   UINT32 screen_update_wizdfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7777   UINT32 screen_update_nitrobal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7878   void mixwizdfirelayer(bitmap_rgb32 &bitmap, const rectangle &cliprect, int gfxregion, UINT16 pri, UINT16 primask);
79   int bank_callback(int bank);
7980
8081   READ16_MEMBER( nb_protection_region_0_146_r );
8182   WRITE16_MEMBER( nb_protection_region_0_146_w );
branches/new_menus/src/mame/includes/simpl156.h
r29437r29438
1414public:
1515   simpl156_state(const machine_config &mconfig, device_type type, const char *tag)
1616      : driver_device(mconfig, type, tag),
17         m_maincpu(*this, "maincpu"),
18         m_deco_tilegen1(*this, "tilegen1"),
19         m_eeprom(*this, "eeprom"),
20         m_okimusic(*this, "okimusic") ,
17      m_maincpu(*this, "maincpu"),
18      m_deco_tilegen1(*this, "tilegen1"),
19      m_eeprom(*this, "eeprom"),
20      m_okimusic(*this, "okimusic") ,
2121      m_mainram(*this, "mainram"),
2222      m_systemram(*this, "systemram"),
2323      m_sprgen(*this, "spritegen"),
r29437r29438
3838   required_device<palette_device> m_palette;
3939   UINT16 *m_spriteram;
4040   size_t m_spriteram_size;
41   int bank_callback(int bank);
4142
4243   DECLARE_READ32_MEMBER(simpl156_inputs_read);
4344   DECLARE_READ32_MEMBER(simpl156_palette_r);
branches/new_menus/src/mame/includes/deco32.h
r29437r29438
168168   UINT16 port_b_tattass(int unused);
169169   void tattass_sound_cb( address_space &space, UINT16 data, UINT16 mem_mask );
170170
171   int fghthist_bank_callback( int bank );
172   int captaven_bank_callback( int bank );
173   int tattass_bank_callback( int bank );
171174};
172175
173176class dragngun_state : public deco32_state
r29437r29438
202205   void screen_eof_dragngun(screen_device &screen, bool state);
203206   void dragngun_draw_sprites( bitmap_rgb32 &bitmap, const rectangle &cliprect, const UINT32 *spritedata);
204207   READ32_MEMBER( dragngun_unk_video_r );
208   
209   int bank_1_callback( int bank );
210   int bank_2_callback( int bank );
205211};
branches/new_menus/src/mame/includes/darkseal.h
r29437r29438
77public:
88   darkseal_state(const machine_config &mconfig, device_type type, const char *tag)
99      : driver_device(mconfig, type, tag),
10         m_deco_tilegen1(*this, "tilegen1"),
11         m_deco_tilegen2(*this, "tilegen2"),
12         m_spriteram(*this, "spriteram") ,
10      m_deco_tilegen1(*this, "tilegen1"),
11      m_deco_tilegen2(*this, "tilegen2"),
12      m_spriteram(*this, "spriteram") ,
1313      m_ram(*this, "ram"),
1414      m_pf1_rowscroll(*this, "pf1_rowscroll"),
1515      m_pf3_rowscroll(*this, "pf3_rowscroll"),
branches/new_menus/src/mame/video/k001604.c
r29437r29438
1717
1818k001604_device::k001604_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1919   : device_t(mconfig, K001604, "Konami 001604", tag, owner, clock, "k001604", __FILE__),
20   m_gfx_index_1(0),
21   m_gfx_index_2(0),
22   m_layer_size(0),
23   m_roz_size(0),
24   m_txt_mem_offset(0),
25   m_roz_mem_offset(0),
2026   m_tile_ram(NULL),
2127   m_char_ram(NULL),
2228   m_reg(NULL),
r29437r29438
3844}
3945
4046//-------------------------------------------------
41//  device_config_complete - perform any
42//  operations now that the configuration is
43//  complete
44//-------------------------------------------------
45
46void k001604_device::device_config_complete()
47{
48   // inherit a copy of the static data
49   const k001604_interface *intf = reinterpret_cast<const k001604_interface *>(static_config());
50   if (intf != NULL)
51   *static_cast<k001604_interface *>(this) = *intf;
52
53   // or initialize to defaults if none provided
54   else
55   {
56      m_gfx_index_1 = 0;
57      m_gfx_index_2 = 0;
58      m_layer_size = 0;
59      m_roz_size = 0;
60      m_txt_mem_offset = 0;
61      m_roz_mem_offset = 0;
62   }
63}
64
65//-------------------------------------------------
6647//  device_start - device-specific startup
6748//-------------------------------------------------
6849
branches/new_menus/src/mame/video/k001604.h
r29437r29438
33#define __K001604_H__
44
55
6struct k001604_interface
6class k001604_device : public device_t
77{
8   int            m_gfx_index_1;
9   int            m_gfx_index_2;
10   int            m_layer_size;        // 0 -> width = 128 tiles, 1 -> width = 256 tiles
11   int            m_roz_size;          // 0 -> 8x8, 1 -> 16x16
12   int            m_txt_mem_offset;
13   int            m_roz_mem_offset;
14};
15
16
17class k001604_device : public device_t,
18                              public k001604_interface
19{
208public:
219   k001604_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
2210   ~k001604_device() {}
r29437r29438
2412   // static configuration
2513   static void static_set_gfxdecode_tag(device_t &device, const char *tag);
2614   static void static_set_palette_tag(device_t &device, const char *tag);
27
15   static void set_gfx_index_1(device_t &device, int idx) { downcast<k001604_device &>(device).m_gfx_index_1 = idx; }
16   static void set_gfx_index_2(device_t &device, int idx) { downcast<k001604_device &>(device).m_gfx_index_2 = idx; }
17   static void set_layer_size(device_t &device, int size) { downcast<k001604_device &>(device).m_layer_size = size; }
18   static void set_roz_size(device_t &device, int size) { downcast<k001604_device &>(device).m_roz_size = size; }
19   static void set_txt_mem_offset(device_t &device, int offs) { downcast<k001604_device &>(device).m_txt_mem_offset = offs; }
20   static void set_roz_mem_offset(device_t &device, int offs) { downcast<k001604_device &>(device).m_roz_mem_offset = offs; }
21   
2822   void draw_back_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect );
2923   void draw_front_layer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect );
3024   DECLARE_WRITE32_MEMBER( tile_w );
r29437r29438
3630
3731protected:
3832   // device-level overrides
39   virtual void device_config_complete();
4033   virtual void device_start();
4134   virtual void device_reset();
4235private:
4336   // internal state
44   tilemap_t        *m_layer_8x8[2];
45   tilemap_t        *m_layer_roz;
37   int            m_gfx_index_1;
38   int            m_gfx_index_2;
39   int            m_layer_size;        // 0 -> width = 128 tiles, 1 -> width = 256 tiles
40   int            m_roz_size;          // 0 -> 8x8, 1 -> 16x16
41   int            m_txt_mem_offset;
42   int            m_roz_mem_offset;
43
44   tilemap_t      *m_layer_8x8[2];
45   tilemap_t      *m_layer_roz;
4646   int            m_gfx_index[2];
4747
4848   UINT32 *       m_tile_ram;
r29437r29438
6464extern const device_type K001604;
6565
6666
67#define MCFG_K001604_ADD(_tag, _interface) \
68   MCFG_DEVICE_ADD(_tag, K001604, 0) \
69   MCFG_DEVICE_CONFIG(_interface)
67#define MCFG_K001604_GFX_INDEX1(_idx) \
68   k001604_device::set_gfx_index_1(*device, _idx);
7069
71#define MCFG_K001604_MODIFY(_tag, _interface) \
72   MCFG_DEVICE_MODIFY(_tag) \
73   MCFG_DEVICE_CONFIG(_interface)
70#define MCFG_K001604_GFX_INDEX2(_idx) \
71   k001604_device::set_gfx_index_2(*device, _idx);
7472
73#define MCFG_K001604_LAYER_SIZE(_size) \
74   k001604_device::set_layer_size(*device, _size);
75
76#define MCFG_K001604_ROZ_SIZE(_size) \
77   k001604_device::set_roz_size(*device, _size);
78
79#define MCFG_K001604_TXT_OFFSET(_offs) \
80   k001604_device::set_txt_mem_offset(*device, _offs);
81
82#define MCFG_K001604_ROZ_OFFSET(_offs) \
83   k001604_device::set_roz_mem_offset(*device, _offs);
84
7585#define MCFG_K001604_GFXDECODE(_gfxtag) \
7686   k001604_device::static_set_gfxdecode_tag(*device, "^" _gfxtag);
7787
branches/new_menus/src/mame/video/deco16ic.c
r29437r29438
169169deco16ic_device::deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
170170   : device_t(mconfig, DECO16IC, "Data East IC 55 / 56 / 74 / 141", tag, owner, clock, "deco16ic", __FILE__),
171171      device_video_interface(mconfig, *this),
172   m_pf1_data(NULL),
173   m_pf2_data(NULL),
174   m_pf12_control(NULL),
175   m_pf1_rowscroll_ptr(NULL),
176   m_pf2_rowscroll_ptr(NULL),
177   m_use_custom_pf1(0),
178   m_use_custom_pf2(0),
179   m_pf1_bank(0),
180   m_pf2_bank(0),
181   m_pf12_last_small(0),
182   m_pf12_last_big(0),
183   m_pf1_8bpp_mode(0),
184   m_gfxdecode(*this),
185   m_palette(*this)
172      m_pf1_data(NULL),
173      m_pf2_data(NULL),
174      m_pf12_control(NULL),
175      m_pf1_rowscroll_ptr(NULL),
176      m_pf2_rowscroll_ptr(NULL),
177      m_use_custom_pf1(0),
178      m_use_custom_pf2(0),
179      m_pf1_bank(0),
180      m_pf2_bank(0),
181      m_pf12_last_small(0),
182      m_pf12_last_big(0),
183      m_pf1_8bpp_mode(0),
184      m_split(0),
185      m_full_width12(1),
186      m_pf1_trans_mask(0xf),
187      m_pf2_trans_mask(0xf),
188      m_pf1_colour_bank(0),
189      m_pf2_colour_bank(0),
190      m_pf1_colourmask(0xf),
191      m_pf2_colourmask(0xf),
192      m_pf12_8x8_gfx_bank(0),
193      m_pf12_16x16_gfx_bank(0),
194      m_gfxdecode(*this),
195      m_palette(*this)
186196{
187197}
188198
r29437r29438
197207}
198208
199209//-------------------------------------------------
200//  device_config_complete - perform any
201//  operations now that the configuration is
202//  complete
203//-------------------------------------------------
204
205void deco16ic_device::device_config_complete()
206{
207   // inherit a copy of the static data
208   const deco16ic_interface *intf = reinterpret_cast<const deco16ic_interface *>(static_config());
209   if (intf != NULL)
210   *static_cast<deco16ic_interface *>(this) = *intf;
211
212   // or initialize to defaults if none provided
213   else
214   {
215   m_bank_cb0 = NULL;
216   m_bank_cb1 = NULL;
217   }
218}
219
220//-------------------------------------------------
221210//  device_start - device-specific startup
222211//-------------------------------------------------
223212
r29437r29438
226215   if(!m_gfxdecode->started())
227216      throw device_missing_dependencies();
228217
229   m_bank_cb_func[0] = m_bank_cb0;
230   m_bank_cb_func[1] = m_bank_cb1;
218   m_bank1_cb.bind_relative_to(*owner());
219   m_bank2_cb.bind_relative_to(*owner());
231220
232221   int fullheight = 0;
233222   int fullwidth = 0;
r29437r29438
832821   m_use_custom_pf1 = deco16_pf_update(m_pf1_tilemap_8x8, m_pf1_tilemap_16x16, rowscroll_1_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff);
833822
834823   /* Update banking and global flip state */
835   if (m_bank_cb_func[0])
824   if (!m_bank1_cb.isnull())
836825   {
837      bank1 = m_bank_cb_func[0](m_pf12_control[7] & 0xff);
826      bank1 = m_bank1_cb(m_pf12_control[7] & 0xff);
838827
839828      if (bank1 != m_pf1_bank)
840829      {
r29437r29438
847836      }
848837   }
849838
850   if (m_bank_cb_func[1])
839   if (!m_bank2_cb.isnull())
851840   {
852      bank2 = m_bank_cb_func[1](m_pf12_control[7] >> 8);
841      bank2 = m_bank2_cb(m_pf12_control[7] >> 8);
853842
854843      if (bank2 != m_pf2_bank)
855844      {
branches/new_menus/src/mame/video/deco16ic.h
r29437r29438
1717    TYPE DEFINITIONS
1818***************************************************************************/
1919
20typedef int (*deco16_bank_cb)( const int bank );
20typedef device_delegate<int (int bank)> deco16_bank_cb_delegate;
2121
22
23struct deco16ic_interface
24{
25   int                m_split;
26   int                m_full_width12;
27
28   int                m_pf1_trans_mask, m_pf2_trans_mask;
29   int                m_pf1_colour_bank, m_pf2_colour_bank;
30   int                m_pf1_colourmask, m_pf2_colourmask;
31   deco16_bank_cb     m_bank_cb0, m_bank_cb1;
32   int                m_pf12_8x8_gfx_bank, m_pf12_16x16_gfx_bank;
33};
34
3522class deco16ic_device : public device_t,
36                  public device_video_interface,
37                  public deco16ic_interface
23                  public device_video_interface
3824{
3925public:
4026   deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
r29437r29438
4329   // static configuration
4430   static void static_set_gfxdecode_tag(device_t &device, const char *tag);
4531   static void static_set_palette_tag(device_t &device, const char *tag);
32   static void set_bank1_callback(device_t &device, deco16_bank_cb_delegate callback) { downcast<deco16ic_device &>(device).m_bank1_cb = callback; }
33   static void set_bank2_callback(device_t &device, deco16_bank_cb_delegate callback) { downcast<deco16ic_device &>(device).m_bank2_cb = callback; }
34   static void set_split(device_t &device, int split) { downcast<deco16ic_device &>(device).m_split = split; }
35   static void set_full_width(device_t &device, int width) { downcast<deco16ic_device &>(device).m_full_width12 = width; }
36   static void set_pf1_trans_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf1_trans_mask = mask; }
37   static void set_pf2_trans_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf2_trans_mask = mask; }
38   static void set_pf1_col_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf1_colourmask = mask; }
39   static void set_pf2_col_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf2_colourmask = mask; }
40   static void set_pf1_col_bank(device_t &device, int bank) { downcast<deco16ic_device &>(device).m_pf1_colour_bank = bank; }
41   static void set_pf2_col_bank(device_t &device, int bank) { downcast<deco16ic_device &>(device).m_pf2_colour_bank = bank; }
42   static void set_pf12_8x8_bank(device_t &device, int bank) { downcast<deco16ic_device &>(device).m_pf12_8x8_gfx_bank = bank; }
43   static void set_pf12_16x16_bank(device_t &device, int bank) { downcast<deco16ic_device &>(device).m_pf12_16x16_gfx_bank = bank; }
44   
4645
47
4846   DECLARE_WRITE16_MEMBER( pf1_data_w );
4947   DECLARE_WRITE16_MEMBER( pf2_data_w );
5048
r29437r29438
119117
120118protected:
121119   // device-level overrides
122   virtual void device_config_complete();
123120   virtual void device_start();
124121   virtual void device_reset();
125122
r29437r29438
133130   tilemap_t *m_pf1_tilemap_16x16, *m_pf2_tilemap_16x16;
134131   tilemap_t *m_pf1_tilemap_8x8, *m_pf2_tilemap_8x8;
135132
136   deco16_bank_cb  m_bank_cb_func[2];
133   deco16_bank_cb_delegate m_bank1_cb;
134   deco16_bank_cb_delegate m_bank2_cb;
137135
138136   int m_use_custom_pf1, m_use_custom_pf2;
139
140137   int m_pf1_bank, m_pf2_bank;
141
142138   int m_pf12_last_small, m_pf12_last_big;
143
144139   int m_pf1_8bpp_mode;
145140
141   int m_split;
142   int m_full_width12;
143   int m_pf1_trans_mask, m_pf2_trans_mask;
144   int m_pf1_colour_bank, m_pf2_colour_bank;
145   int m_pf1_colourmask, m_pf2_colourmask;
146   int m_pf12_8x8_gfx_bank, m_pf12_16x16_gfx_bank;
147   
146148   TILEMAP_MAPPER_MEMBER(deco16_scan_rows);
147149   TILE_GET_INFO_MEMBER(get_pf2_tile_info);
148150   TILE_GET_INFO_MEMBER(get_pf1_tile_info);
r29437r29438
160162    DEVICE CONFIGURATION MACROS
161163***************************************************************************/
162164
163#define MCFG_DECO16IC_ADD(_tag, _interface) \
164   MCFG_DEVICE_ADD(_tag, DECO16IC, 0) \
165   MCFG_DEVICE_CONFIG(_interface)
166
167165#define MCFG_DECO16IC_SET_SCREEN MCFG_VIDEO_SET_SCREEN
168166
167#define MCFG_DECO16IC_BANK1_CB(_class, _method) \
168   deco16ic_device::set_bank1_callback(*device, deco16_bank_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
169
170#define MCFG_DECO16IC_BANK2_CB(_class, _method) \
171   deco16ic_device::set_bank2_callback(*device, deco16_bank_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
172
173#define MCFG_DECO16IC_SPLIT(_split) \
174   deco16ic_device::set_split(*device, _split);
175
176#define MCFG_DECO16IC_WIDTH12(_width) \
177   deco16ic_device::set_full_width(*device, _width);
178
179#define MCFG_DECO16IC_PF1_TRANS_MASK(_mask) \
180   deco16ic_device::set_pf1_trans_mask(*device, _mask);
181
182#define MCFG_DECO16IC_PF2_TRANS_MASK(_mask) \
183   deco16ic_device::set_pf2_trans_mask(*device, _mask);
184
185#define MCFG_DECO16IC_PF1_COL_MASK(_mask) \
186   deco16ic_device::set_pf1_col_mask(*device, _mask);
187
188#define MCFG_DECO16IC_PF2_COL_MASK(_mask) \
189   deco16ic_device::set_pf2_col_mask(*device, _mask);
190
191#define MCFG_DECO16IC_PF1_COL_BANK(_bank) \
192   deco16ic_device::set_pf1_col_bank(*device, _bank);
193
194#define MCFG_DECO16IC_PF2_COL_BANK(_bank) \
195   deco16ic_device::set_pf2_col_bank(*device, _bank);
196
197#define MCFG_DECO16IC_PF12_8X8_BANK(_bank) \
198   deco16ic_device::set_pf12_8x8_bank(*device, _bank);
199
200#define MCFG_DECO16IC_PF12_16X16_BANK(_bank) \
201   deco16ic_device::set_pf12_16x16_bank(*device, _bank);
202
169203#define MCFG_DECO16IC_GFXDECODE(_gfxtag) \
170204   deco16ic_device::static_set_gfxdecode_tag(*device, "^" _gfxtag);
171205
branches/new_menus/src/mame/drivers/sshangha.c
r29437r29438
379379   DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
380380};
381381
382static int sshangha_bank_callback( int bank )
382int sshangha_state::bank_callback( int bank )
383383{
384   bank = bank >> 4;
385   return bank * 0x1000;
384   return (bank >> 4) * 0x1000;
386385}
387386
388static const deco16ic_interface sshangha_deco16ic_tilegen1_intf =
389{
390   0, 1,
391   0x0f, 0x0f, /* trans masks (default values) */
392   0x10, 0x00, /* color base */
393   0x0f, 0x0f, /* color masks (default values) */
394   sshangha_bank_callback,
395   sshangha_bank_callback,
396   0,1
397};
398
399
400387static MACHINE_CONFIG_START( sshangha, sshangha_state )
401388
402389   /* basic machine hardware */
r29437r29438
420407   MCFG_GFXDECODE_ADD("gfxdecode", "palette", sshangha)
421408   MCFG_PALETTE_ADD("palette", 0x4000)
422409
423   MCFG_DECO16IC_ADD("tilegen1", sshangha_deco16ic_tilegen1_intf)
410   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
411   MCFG_DECO16IC_SPLIT(0)
412   MCFG_DECO16IC_WIDTH12(1)
413   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
414   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
415   MCFG_DECO16IC_PF1_COL_BANK(0x10)
416   MCFG_DECO16IC_PF2_COL_BANK(0x00)
417   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
418   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
419   MCFG_DECO16IC_BANK1_CB(sshangha_state, bank_callback)
420   MCFG_DECO16IC_BANK2_CB(sshangha_state, bank_callback)
421   MCFG_DECO16IC_PF12_8X8_BANK(0)
422   MCFG_DECO16IC_PF12_16X16_BANK(1)
424423   MCFG_DECO16IC_GFXDECODE("gfxdecode")
425424   MCFG_DECO16IC_PALETTE("palette")
426425
branches/new_menus/src/mame/drivers/zr107.c
r29437r29438
800800MACHINE_CONFIG_END
801801
802802
803static const k001604_interface jetwave_k001604_intf =
804{
805   0, 1,   /* gfx index 1 & 2 */
806   0, 0,       /* layer_size, roz_size */
807   0,      /* text layer mem offset */
808   16384,  /* roz layer mem offset */
809};
810
811803static MACHINE_CONFIG_START( jetwave, zr107_state )
812804
813805   /* basic machine hardware */
r29437r29438
841833
842834   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
843835
844   MCFG_K001604_ADD("k001604", jetwave_k001604_intf)
836   MCFG_DEVICE_ADD("k001604", K001604, 0)
837   MCFG_K001604_GFX_INDEX1(0)
838   MCFG_K001604_GFX_INDEX2(1)
839   MCFG_K001604_LAYER_SIZE(0)
840   MCFG_K001604_ROZ_SIZE(0)
841   MCFG_K001604_TXT_OFFSET(0)
842   MCFG_K001604_ROZ_OFFSET(16384)
845843   MCFG_K001604_GFXDECODE("gfxdecode")
846844   MCFG_K001604_PALETTE("palette")
847845
branches/new_menus/src/mame/drivers/gticlub.c
r29437r29438
792792   1
793793};
794794
795static const k001604_interface gticlub_k001604_intf =
796{
797   1, 2,   /* gfx index 1 & 2 */
798   1, 1,       /* layer_size, roz_size */
799   0,      /* text layer mem offset */
800   0,      /* roz layer mem offset */
801};
802795
803static const k001604_interface slrasslt_k001604_intf =
804{
805   1, 2,   /* gfx index 1 & 2 */
806   0, 0,       /* layer_size, roz_size */
807   16384,  /* text layer mem offset */
808   0,      /* roz layer mem offset */
809};
810
811static const k001604_interface hangplt_k001604_intf_l =
812{
813   1, 2,   /* gfx index 1 & 2 */
814   0, 1,       /* layer_size, roz_size */
815   0,      /* text layer mem offset */
816   16384,  /* roz layer mem offset */
817};
818
819static const k001604_interface hangplt_k001604_intf_r =
820{
821   3, 4,   /* gfx index 1 & 2 */
822   0, 1,       /* layer_size, roz_size */
823   0,      /* text layer mem offset */
824   16384,  /* roz layer mem offset */
825};
826
827
828796MACHINE_RESET_MEMBER(gticlub_state,gticlub)
829797{
830798   m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
r29437r29438
986954   MCFG_VIDEO_START_OVERRIDE(gticlub_state,gticlub)
987955
988956   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
989   MCFG_K001604_ADD("k001604_1", gticlub_k001604_intf)
957   MCFG_DEVICE_ADD("k001604_1", K001604, 0)
958   MCFG_K001604_GFX_INDEX1(1)
959   MCFG_K001604_GFX_INDEX2(2)
960   MCFG_K001604_LAYER_SIZE(1)
961   MCFG_K001604_ROZ_SIZE(1)
962   MCFG_K001604_TXT_OFFSET(0)
963   MCFG_K001604_ROZ_OFFSET(0)
990964   MCFG_K001604_GFXDECODE("gfxdecode")
991965   MCFG_K001604_PALETTE("palette")
992966
r29437r29438
1015989   MCFG_ADC1038_ADD("adc1038", thunderh_adc1038_intf)
1016990
1017991   MCFG_DEVICE_REMOVE("k001604_1")
1018   MCFG_K001604_ADD("k001604_1", slrasslt_k001604_intf)
992   MCFG_DEVICE_ADD("k001604_1", K001604, 0)
993   MCFG_K001604_GFX_INDEX1(1)
994   MCFG_K001604_GFX_INDEX2(2)
995   MCFG_K001604_LAYER_SIZE(0)
996   MCFG_K001604_ROZ_SIZE(0)
997   MCFG_K001604_TXT_OFFSET(16384)
998   MCFG_K001604_ROZ_OFFSET(0)
1019999   MCFG_K001604_GFXDECODE("gfxdecode")
10201000   MCFG_K001604_PALETTE("palette")
10211001MACHINE_CONFIG_END
r29437r29438
11091089
11101090   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
11111091
1112   MCFG_K001604_ADD("k001604_1", hangplt_k001604_intf_l)
1092   MCFG_DEVICE_ADD("k001604_1", K001604, 0)
1093   MCFG_K001604_GFX_INDEX1(1)
1094   MCFG_K001604_GFX_INDEX2(2)
1095   MCFG_K001604_LAYER_SIZE(0)
1096   MCFG_K001604_ROZ_SIZE(1)
1097   MCFG_K001604_TXT_OFFSET(0)
1098   MCFG_K001604_ROZ_OFFSET(16384)
11131099   MCFG_K001604_GFXDECODE("gfxdecode")
11141100   MCFG_K001604_PALETTE("palette")
11151101
1116   MCFG_K001604_ADD("k001604_2", hangplt_k001604_intf_r)
1102   MCFG_DEVICE_ADD("k001604_2", K001604, 0)
1103   MCFG_K001604_GFX_INDEX1(3)
1104   MCFG_K001604_GFX_INDEX2(4)
1105   MCFG_K001604_LAYER_SIZE(0)
1106   MCFG_K001604_ROZ_SIZE(1)
1107   MCFG_K001604_TXT_OFFSET(0)
1108   MCFG_K001604_ROZ_OFFSET(16384)
11171109   MCFG_K001604_GFXDECODE("gfxdecode")
11181110   MCFG_K001604_PALETTE("palette")
11191111
branches/new_menus/src/mame/drivers/dassault.c
r29437r29438
450450
451451/**********************************************************************************/
452452
453static int dassault_bank_callback( const int bank )
453int dassault_state::dassault_bank_callback( const int bank )
454454{
455455   return ((bank >> 4) & 0xf) << 12;
456456}
457457
458static const deco16ic_interface dassault_deco16ic_tilegen1_intf =
459{
460   0, 1,
461   0x0f, 0x0f, /* trans masks (default values) */
462   0, 16, /* color base (default values) */
463   0x0f, 0x0f, /* color masks (default values) */
464   dassault_bank_callback,
465   dassault_bank_callback,
466   0,1,
467};
468
469static const deco16ic_interface dassault_deco16ic_tilegen2_intf =
470{
471   0, 1,
472   0x0f, 0x0f, /* trans masks (default values) */
473   0, 16, /* color base (default values) */
474   0x0f, 0x0f, /* color masks (default values) */
475   dassault_bank_callback,
476   dassault_bank_callback,
477   0,2,
478};
479
480
481458static MACHINE_CONFIG_START( dassault, dassault_state )
482459
483460   /* basic machine hardware */
r29437r29438
513490   MCFG_DECOCOMN_ADD("deco_common")
514491   MCFG_DECOCOMN_PALETTE("palette")
515492
516   MCFG_DECO16IC_ADD("tilegen1", dassault_deco16ic_tilegen1_intf)
493   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
494   MCFG_DECO16IC_SPLIT(0)
495   MCFG_DECO16IC_WIDTH12(1)
496   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
497   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
498   MCFG_DECO16IC_PF1_COL_BANK(0)
499   MCFG_DECO16IC_PF2_COL_BANK(16)
500   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
501   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
502   MCFG_DECO16IC_BANK1_CB(dassault_state, dassault_bank_callback)
503   MCFG_DECO16IC_BANK2_CB(dassault_state, dassault_bank_callback)
504   MCFG_DECO16IC_PF12_8X8_BANK(0)
505   MCFG_DECO16IC_PF12_16X16_BANK(1)
506
517507   MCFG_DECO16IC_GFXDECODE("gfxdecode")
518508   MCFG_DECO16IC_PALETTE("palette")
519509
520   MCFG_DECO16IC_ADD("tilegen2", dassault_deco16ic_tilegen2_intf)
510   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
511   MCFG_DECO16IC_SPLIT(0)
512   MCFG_DECO16IC_WIDTH12(1)
513   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
514   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
515   MCFG_DECO16IC_PF1_COL_BANK(0)
516   MCFG_DECO16IC_PF2_COL_BANK(16)
517   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
518   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
519   MCFG_DECO16IC_BANK1_CB(dassault_state, dassault_bank_callback)
520   MCFG_DECO16IC_BANK2_CB(dassault_state, dassault_bank_callback)
521   MCFG_DECO16IC_PF12_8X8_BANK(0)
522   MCFG_DECO16IC_PF12_16X16_BANK(2)
523   
521524   MCFG_DECO16IC_GFXDECODE("gfxdecode")
522525   MCFG_DECO16IC_PALETTE("palette")
523526
branches/new_menus/src/mame/drivers/supbtime.c
r29437r29438
306306
307307/******************************************************************************/
308308
309static const deco16ic_interface supbtime_deco16ic_tilegen1_intf =
310{
311   0, 1,
312   0x0f, 0x0f, /* trans masks (default values) */
313   0, 16, /* color base (default values) */
314   0x0f, 0x0f, /* color masks (default values) */
315   NULL, NULL,
316   0,1
317};
318
319309void supbtime_state::machine_start()
320310{
321311}
r29437r29438
345335   MCFG_PALETTE_ADD("palette", 1024)
346336   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
347337
348   MCFG_DECO16IC_ADD("tilegen1", supbtime_deco16ic_tilegen1_intf)
338   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
339   MCFG_DECO16IC_SPLIT(0)
340   MCFG_DECO16IC_WIDTH12(1)
341   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
342   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
343   MCFG_DECO16IC_PF1_COL_BANK(0x00)
344   MCFG_DECO16IC_PF2_COL_BANK(0x10)
345   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
346   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
347   MCFG_DECO16IC_PF12_8X8_BANK(0)
348   MCFG_DECO16IC_PF12_16X16_BANK(1)
349349   MCFG_DECO16IC_GFXDECODE("gfxdecode")
350350   MCFG_DECO16IC_PALETTE("palette")
351351
r29437r29438
377377   MCFG_CPU_ADD("audiocpu", H6280, 32220000/8) /* Custom chip 45, audio section crystal is 32.220 MHz */
378378   MCFG_CPU_PROGRAM_MAP(sound_map)
379379
380
381380   /* video hardware */
382381   MCFG_SCREEN_ADD("screen", RASTER)
383382   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
r29437r29438
392391   MCFG_PALETTE_ADD("palette", 1024)
393392   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
394393
395   MCFG_DECO16IC_ADD("tilegen1", supbtime_deco16ic_tilegen1_intf)
394   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
395   MCFG_DECO16IC_SPLIT(0)
396   MCFG_DECO16IC_WIDTH12(1)
397   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
398   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
399   MCFG_DECO16IC_PF1_COL_BANK(0x00)
400   MCFG_DECO16IC_PF2_COL_BANK(0x10)
401   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
402   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
403   MCFG_DECO16IC_PF12_8X8_BANK(0)
404   MCFG_DECO16IC_PF12_16X16_BANK(1)
396405   MCFG_DECO16IC_GFXDECODE("gfxdecode")
397406   MCFG_DECO16IC_PALETTE("palette")
398407
branches/new_menus/src/mame/drivers/ggconnie.c
r29437r29438
180180   "maincpu"
181181};
182182
183static const huc6202_interface sgx_huc6202_config =
184{
185   DEVCB_DEVICE_MEMBER16( "huc6270_0", huc6270_device, next_pixel ),
186   DEVCB_DEVICE_MEMBER16( "huc6270_0", huc6270_device, time_until_next_event ),
187   DEVCB_DEVICE_LINE_MEMBER( "huc6270_0", huc6270_device, vsync_changed ),
188   DEVCB_DEVICE_LINE_MEMBER( "huc6270_0", huc6270_device, hsync_changed ),
189   DEVCB_DEVICE_MEMBER( "huc6270_0", huc6270_device, read ),
190   DEVCB_DEVICE_MEMBER( "huc6270_0", huc6270_device, write ),
191   DEVCB_DEVICE_MEMBER16( "huc6270_1", huc6270_device, next_pixel ),
192   DEVCB_DEVICE_MEMBER16( "huc6270_1", huc6270_device, time_until_next_event ),
193   DEVCB_DEVICE_LINE_MEMBER( "huc6270_1", huc6270_device, vsync_changed ),
194   DEVCB_DEVICE_LINE_MEMBER( "huc6270_1", huc6270_device, hsync_changed ),
195   DEVCB_DEVICE_MEMBER( "huc6270_1", huc6270_device, read ),
196   DEVCB_DEVICE_MEMBER( "huc6270_1", huc6270_device, write ),
197};
198
199
200183static MACHINE_CONFIG_START( ggconnie, ggconnie_state )
201184   /* basic machine hardware */
202185   MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
r29437r29438
220203   MCFG_DEVICE_ADD( "huc6270_1", HUC6270, 0 )
221204   MCFG_HUC6270_VRAM_SIZE(0x10000)
222205   MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_common_state, pce_irq_changed))
223   MCFG_HUC6202_ADD( "huc6202", sgx_huc6202_config )
206   MCFG_DEVICE_ADD( "huc6202", HUC6202, 0 )
207   MCFG_HUC6202_NEXT_PIXEL_0_CB(DEVREAD16("huc6270_0", huc6270_device, next_pixel))
208   MCFG_HUC6202_TIME_TIL_NEXT_EVENT_0_CB(DEVREAD16("huc6270_0", huc6270_device, time_until_next_event))
209   MCFG_HUC6202_VSYNC_CHANGED_0_CB(DEVWRITELINE("huc6270_0", huc6270_device, vsync_changed))
210   MCFG_HUC6202_HSYNC_CHANGED_0_CB(DEVWRITELINE("huc6270_0", huc6270_device, hsync_changed))
211   MCFG_HUC6202_READ_0_CB(DEVREAD8("huc6270_0", huc6270_device, read))
212   MCFG_HUC6202_WRITE_0_CB(DEVWRITE8("huc6270_0", huc6270_device, write))
213   MCFG_HUC6202_NEXT_PIXEL_1_CB(DEVREAD16("huc6270_1", huc6270_device, next_pixel))
214   MCFG_HUC6202_TIME_TIL_NEXT_EVENT_1_CB(DEVREAD16("huc6270_1", huc6270_device, time_until_next_event))
215   MCFG_HUC6202_VSYNC_CHANGED_1_CB(DEVWRITELINE("huc6270_1", huc6270_device, vsync_changed))
216   MCFG_HUC6202_HSYNC_CHANGED_1_CB(DEVWRITELINE("huc6270_1", huc6270_device, hsync_changed))
217   MCFG_HUC6202_READ_1_CB(DEVREAD8("huc6270_1", huc6270_device, read))
218   MCFG_HUC6202_WRITE_1_CB(DEVWRITE8("huc6270_1", huc6270_device, write))
224219
225220   MCFG_DEVICE_ADD("rtc", MSM6242, XTAL_32_768kHz)
226221
branches/new_menus/src/mame/drivers/cbuster.c
r29437r29438
258258
259259/******************************************************************************/
260260
261static int twocrude_bank_callback( const int bank )
261int cbuster_state::bank_callback( int bank )
262262{
263263   return ((bank >> 4) & 0x7) * 0x1000;
264264}
265265
266static const deco16ic_interface twocrude_deco16ic_tilegen1_intf =
267{
268   0, 1,
269   0x0f, 0x0f, /* trans masks (default values) */
270   0x00, 0x20, /* color base (default values) */
271   0x0f, 0x0f, /* color masks (default values) */
272   twocrude_bank_callback,
273   twocrude_bank_callback,
274   0,1,
275};
276
277static const deco16ic_interface twocrude_deco16ic_tilegen2_intf =
278{
279   0, 1,
280   0x0f, 0x0f, /* trans masks (default values) */
281   0x30, 0x40, /* color base (default values) */
282   0x0f, 0x0f, /* color masks (default values) */
283   twocrude_bank_callback,
284   twocrude_bank_callback,
285   0,2,
286};
287
288266void cbuster_state::machine_start()
289267{
290268   save_item(NAME(m_prot));
r29437r29438
319297   MCFG_GFXDECODE_ADD("gfxdecode", "palette", cbuster)
320298   MCFG_PALETTE_ADD("palette", 2048)
321299
322   MCFG_DECO16IC_ADD("tilegen1", twocrude_deco16ic_tilegen1_intf)
300   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
301   MCFG_DECO16IC_SPLIT(0)
302   MCFG_DECO16IC_WIDTH12(1)
303   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
304   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
305   MCFG_DECO16IC_PF1_COL_BANK(0x00)
306   MCFG_DECO16IC_PF2_COL_BANK(0x20)
307   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
308   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
309   MCFG_DECO16IC_BANK1_CB(cbuster_state, bank_callback)
310   MCFG_DECO16IC_BANK2_CB(cbuster_state, bank_callback)
311   MCFG_DECO16IC_PF12_8X8_BANK(0)
312   MCFG_DECO16IC_PF12_16X16_BANK(1)
323313   MCFG_DECO16IC_GFXDECODE("gfxdecode")
324314   MCFG_DECO16IC_PALETTE("palette")
325315
326   MCFG_DECO16IC_ADD("tilegen2", twocrude_deco16ic_tilegen2_intf)
316   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
317   MCFG_DECO16IC_SPLIT(0)
318   MCFG_DECO16IC_WIDTH12(1)
319   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
320   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
321   MCFG_DECO16IC_PF1_COL_BANK(0x30)
322   MCFG_DECO16IC_PF2_COL_BANK(0x40)
323   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
324   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
325   MCFG_DECO16IC_BANK1_CB(cbuster_state, bank_callback)
326   MCFG_DECO16IC_BANK2_CB(cbuster_state, bank_callback)
327   MCFG_DECO16IC_PF12_8X8_BANK(0)
328   MCFG_DECO16IC_PF12_16X16_BANK(2)
327329   MCFG_DECO16IC_GFXDECODE("gfxdecode")
328330   MCFG_DECO16IC_PALETTE("palette")
329331
branches/new_menus/src/mame/drivers/boogwing.c
r29437r29438
296296}
297297
298298
299static int boogwing_bank_callback( const int bank )
299int boogwing_state::bank_callback( int bank )
300300{
301301   return ((bank >> 4) & 0x7) * 0x1000;
302302}
303303
304static int boogwing_bank_callback2( const int bank )
304int boogwing_state::bank_callback2( int bank )
305305{
306306   int offset = ((bank >> 4) & 0x7) * 0x1000;
307307   if ((bank & 0xf) == 0xa)
r29437r29438
310310   return offset;
311311}
312312
313static const deco16ic_interface boogwing_deco16ic_tilegen1_intf =
314{
315   0, 1,
316   0x0f, 0x1f, /* trans masks (pf2 has 5bpp graphics) */
317   0, 0,  /* color base (pf2 is non default) */
318   0x0f, 0x0f, /* color masks (default values) */
319   NULL,
320   boogwing_bank_callback,
321   0, 1
322};
323
324static const deco16ic_interface boogwing_deco16ic_tilegen2_intf =
325{
326   0, 1,
327   0x0f, 0x0f,
328   0, 16,
329   0x0f, 0x0f,
330   boogwing_bank_callback2,
331   boogwing_bank_callback2,
332   0, 2
333};
334
335
336313static MACHINE_CONFIG_START( boogwing, boogwing_state )
337314
338315   /* basic machine hardware */
r29437r29438
361338   MCFG_DECOCOMN_ADD("deco_common")
362339   MCFG_DECOCOMN_PALETTE("palette")
363340
364   MCFG_DECO16IC_ADD("tilegen1", boogwing_deco16ic_tilegen1_intf)
341   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
342   MCFG_DECO16IC_SPLIT(0)
343   MCFG_DECO16IC_WIDTH12(1)
344   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
345   MCFG_DECO16IC_PF2_TRANS_MASK(0x1f)   // pf2 has 5bpp graphics
346   MCFG_DECO16IC_PF1_COL_BANK(0)
347   MCFG_DECO16IC_PF2_COL_BANK(0)   // pf2 is non default
348   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
349   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
350   // no bank1 callback
351   MCFG_DECO16IC_BANK2_CB(boogwing_state, bank_callback)
352   MCFG_DECO16IC_PF12_8X8_BANK(0)
353   MCFG_DECO16IC_PF12_16X16_BANK(1)
365354   MCFG_DECO16IC_GFXDECODE("gfxdecode")
366355   MCFG_DECO16IC_PALETTE("palette")
367356
368   MCFG_DECO16IC_ADD("tilegen2", boogwing_deco16ic_tilegen2_intf)
357   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
358   MCFG_DECO16IC_SPLIT(0)
359   MCFG_DECO16IC_WIDTH12(1)
360   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
361   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
362   MCFG_DECO16IC_PF1_COL_BANK(0)
363   MCFG_DECO16IC_PF2_COL_BANK(16)
364   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
365   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
366   MCFG_DECO16IC_BANK1_CB(boogwing_state, bank_callback2)
367   MCFG_DECO16IC_BANK2_CB(boogwing_state, bank_callback2)
368   MCFG_DECO16IC_PF12_8X8_BANK(0)
369   MCFG_DECO16IC_PF12_16X16_BANK(2)
369370   MCFG_DECO16IC_GFXDECODE("gfxdecode")
370371   MCFG_DECO16IC_PALETTE("palette")
371372
branches/new_menus/src/mame/drivers/tumblep.c
r29437r29438
271271
272272/***************************************************************************/
273273
274static const deco16ic_interface tumblep_deco16ic_tilegen1_intf =
275{
276   0, 1,
277   0x0f, 0x0f, /* trans masks (default values) */
278   0, 16, /* color base (default values) */
279   0x0f, 0x0f, /* color masks (default values) */
280   NULL, NULL,
281   0,1
282};
283
284274void tumblep_state::machine_start()
285275{
286276}
r29437r29438
309299   MCFG_PALETTE_ADD("palette", 1024)
310300   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
311301
312   MCFG_DECO16IC_ADD("tilegen1", tumblep_deco16ic_tilegen1_intf)
302   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
303   MCFG_DECO16IC_SPLIT(0)
304   MCFG_DECO16IC_WIDTH12(1)
305   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
306   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
307   MCFG_DECO16IC_PF1_COL_BANK(0x00)
308   MCFG_DECO16IC_PF2_COL_BANK(0x10)
309   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
310   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
311   MCFG_DECO16IC_PF12_8X8_BANK(0)
312   MCFG_DECO16IC_PF12_16X16_BANK(1)
313313   MCFG_DECO16IC_GFXDECODE("gfxdecode")
314314   MCFG_DECO16IC_PALETTE("palette")
315315
branches/new_menus/src/mame/drivers/backfire.c
r29437r29438
9696   UINT32 screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9797   INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt);
9898   void descramble_sound();
99   int bank_callback(int bank);
99100
100101   required_ioport m_io_in0;
101102   required_ioport m_io_in1;
r29437r29438
447448
448449
449450
450static int backfire_bank_callback( int bank )
451int backfire_state::bank_callback( int bank )
451452{
452453   //  mame_printf_debug("bank callback %04x\n",bank); // bit 1 gets set too?
453454   bank = bank >> 4;
r29437r29438
456457   return bank * 0x1000;
457458}
458459
459static const deco16ic_interface backfire_deco16ic_tilegen1_intf =
460{
461   0, 1,
462   0x0f, 0x0f, /* trans masks (default values) */
463   0x00, 0x40, /* color base */
464   0x0f, 0x0f, /* color masks (default values) */
465   backfire_bank_callback,
466   backfire_bank_callback,
467   0,1
468};
469
470static const deco16ic_interface backfire_deco16ic_tilegen2_intf =
471{
472   0, 1,
473   0x0f, 0x0f, /* trans masks (default values) */
474   0x10, 0x50, /* color base */
475   0x0f, 0x0f, /* color masks (default values) */
476   backfire_bank_callback,
477   backfire_bank_callback,
478   2,3
479};
480
481460void backfire_state::machine_start()
482461{
483462}
r29437r29438
525504   MCFG_SCREEN_UPDATE_DRIVER(backfire_state, screen_update_backfire_right)
526505   MCFG_SCREEN_PALETTE("palette")
527506
528
529   MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf)
507   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
530508   MCFG_DECO16IC_SET_SCREEN("lscreen")
509   MCFG_DECO16IC_SPLIT(0)
510   MCFG_DECO16IC_WIDTH12(1)
511   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
512   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
513   MCFG_DECO16IC_PF1_COL_BANK(0x00)
514   MCFG_DECO16IC_PF2_COL_BANK(0x40)
515   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
516   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
517   MCFG_DECO16IC_BANK1_CB(backfire_state, bank_callback)
518   MCFG_DECO16IC_BANK2_CB(backfire_state, bank_callback)
519   MCFG_DECO16IC_PF12_8X8_BANK(0)
520   MCFG_DECO16IC_PF12_16X16_BANK(1)
531521   MCFG_DECO16IC_GFXDECODE("gfxdecode")
532522   MCFG_DECO16IC_PALETTE("palette")
533523
534   MCFG_DECO16IC_ADD("tilegen2", backfire_deco16ic_tilegen2_intf)
524   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
535525   MCFG_DECO16IC_SET_SCREEN("lscreen")
526   MCFG_DECO16IC_SPLIT(0)
527   MCFG_DECO16IC_WIDTH12(1)
528   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
529   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
530   MCFG_DECO16IC_PF1_COL_BANK(0x10)
531   MCFG_DECO16IC_PF2_COL_BANK(0x50)
532   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
533   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
534   MCFG_DECO16IC_BANK1_CB(backfire_state, bank_callback)
535   MCFG_DECO16IC_BANK2_CB(backfire_state, bank_callback)
536   MCFG_DECO16IC_PF12_8X8_BANK(2)
537   MCFG_DECO16IC_PF12_16X16_BANK(3)
536538   MCFG_DECO16IC_GFXDECODE("gfxdecode")
537539   MCFG_DECO16IC_PALETTE("palette")
538540
branches/new_menus/src/mame/drivers/simpl156.c
r29437r29438
387387}
388388
389389
390static int simpl156_bank_callback(const int bank)
390int simpl156_state::bank_callback(int bank)
391391{
392392   return ((bank >> 4) & 0x7) * 0x1000;
393393}
394394
395static const deco16ic_interface simpl156_deco16ic_tilegen1_intf =
396{
397   0, 1,
398   0x0f, 0x0f, /* trans masks (default values) */
399   0, 16,/* color base (default values) */
400   0x0f, 0x0f, /* color masks (default values) */
401   simpl156_bank_callback,
402   simpl156_bank_callback,
403   0,1,
404};
405
406395UINT16 simpl156_pri_callback(UINT16 x)
407396{
408397   switch (x & 0xc000)
r29437r29438
438427   MCFG_PALETTE_ADD("palette", 4096)
439428   MCFG_GFXDECODE_ADD("gfxdecode", "palette", simpl156)
440429
441   MCFG_DECO16IC_ADD("tilegen1", simpl156_deco16ic_tilegen1_intf)
430   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
431   MCFG_DECO16IC_SPLIT(0)
432   MCFG_DECO16IC_WIDTH12(1)
433   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
434   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
435   MCFG_DECO16IC_PF1_COL_BANK(0x00)
436   MCFG_DECO16IC_PF2_COL_BANK(0x10)
437   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
438   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
439   MCFG_DECO16IC_BANK1_CB(simpl156_state, bank_callback)
440   MCFG_DECO16IC_BANK2_CB(simpl156_state, bank_callback)
441   MCFG_DECO16IC_PF12_8X8_BANK(0)
442   MCFG_DECO16IC_PF12_16X16_BANK(1)
442443   MCFG_DECO16IC_GFXDECODE("gfxdecode")
443444   MCFG_DECO16IC_PALETTE("palette")
444445
branches/new_menus/src/mame/drivers/mirage.c
r29437r29438
4646public:
4747   miragemi_state(const machine_config &mconfig, device_type type, const char *tag)
4848      : driver_device(mconfig, type, tag),
49         m_maincpu(*this, "maincpu"),
50         m_deco_tilegen1(*this, "tilegen1"),
51         m_oki_sfx(*this, "oki_sfx"),
52         m_oki_bgm(*this, "oki_bgm"),
53         m_spriteram(*this, "spriteram") ,
49      m_maincpu(*this, "maincpu"),
50      m_deco_tilegen1(*this, "tilegen1"),
51      m_oki_sfx(*this, "oki_sfx"),
52      m_oki_bgm(*this, "oki_bgm"),
53      m_spriteram(*this, "spriteram") ,
5454      m_pf1_rowscroll(*this, "pf1_rowscroll"),
5555      m_pf2_rowscroll(*this, "pf2_rowscroll"),
5656      m_sprgen(*this, "spritegen")
r29437r29438
8080   virtual void machine_reset();
8181   virtual void video_start();
8282   UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
83   int bank_callback(int bank);
8384};
8485
8586void miragemi_state::video_start()
r29437r29438
286287GFXDECODE_END
287288
288289
289static int mirage_bank_callback( const int bank )
290int miragemi_state::bank_callback( int bank )
290291{
291292   return ((bank >> 4) & 0x7) * 0x1000;
292293}
293294
294static const deco16ic_interface mirage_deco16ic_tilegen1_intf =
295{
296   0, 1,
297   0x0f, 0x0f, /* trans masks (default values) */
298   0, 16, /* color base (default values) */
299   0x0f, 0x0f, /* color masks (default values) */
300   mirage_bank_callback,
301   mirage_bank_callback,
302   0,1,
303};
304
305
306295void miragemi_state::machine_start()
307296{
308297   save_item(NAME(m_mux_data));
r29437r29438
337326   MCFG_PALETTE_ADD("palette", 1024)
338327   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
339328
340   MCFG_DECO16IC_ADD("tilegen1", mirage_deco16ic_tilegen1_intf)
329   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
330   MCFG_DECO16IC_SPLIT(0)
331   MCFG_DECO16IC_WIDTH12(1)
332   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
333   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
334   MCFG_DECO16IC_PF1_COL_BANK(0x00)
335   MCFG_DECO16IC_PF2_COL_BANK(0x10)
336   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
337   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
338   MCFG_DECO16IC_BANK1_CB(miragemi_state, bank_callback)
339   MCFG_DECO16IC_BANK2_CB(miragemi_state, bank_callback)
340   MCFG_DECO16IC_PF12_8X8_BANK(0)
341   MCFG_DECO16IC_PF12_16X16_BANK(1)
341342   MCFG_DECO16IC_GFXDECODE("gfxdecode")
342343   MCFG_DECO16IC_PALETTE("palette")
343344
branches/new_menus/src/mame/drivers/dietgo.c
r29437r29438
189189   GFXDECODE_ENTRY( "gfx2", 0, spritelayout,      512, 16 )    /* Sprites (16x16) */
190190GFXDECODE_END
191191
192static int dietgo_bank_callback(const int bank)
192int dietgo_state::bank_callback(int bank)
193193{
194194   return ((bank >> 4) & 0x7) * 0x1000;
195195}
196196
197static const deco16ic_interface dietgo_deco16ic_tilegen1_intf =
198{
199   0, 1,
200   0x0f, 0x0f, /* trans masks (default values) */
201   0, 16, /* color base (default values) */
202   0x0f, 0x0f, /* color masks (default values) */
203   dietgo_bank_callback,
204   dietgo_bank_callback,
205   0,1,
206};
207
208
209197void dietgo_state::machine_start()
210198{
211199}
r29437r29438
236224   MCFG_DECOCOMN_ADD("deco_common")
237225   MCFG_DECOCOMN_PALETTE("palette")
238226
239   MCFG_DECO16IC_ADD("tilegen1", dietgo_deco16ic_tilegen1_intf)
227   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
228   MCFG_DECO16IC_SPLIT(0)
229   MCFG_DECO16IC_WIDTH12(1)
230   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
231   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
232   MCFG_DECO16IC_PF1_COL_BANK(0x00)
233   MCFG_DECO16IC_PF2_COL_BANK(0x10)
234   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
235   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
236   MCFG_DECO16IC_BANK1_CB(dietgo_state, bank_callback)
237   MCFG_DECO16IC_BANK2_CB(dietgo_state, bank_callback)
238   MCFG_DECO16IC_PF12_8X8_BANK(0)
239   MCFG_DECO16IC_PF12_16X16_BANK(1)
240240   MCFG_DECO16IC_GFXDECODE("gfxdecode")
241241   MCFG_DECO16IC_PALETTE("palette")
242242
branches/new_menus/src/mame/drivers/nwk-tr.c
r29437r29438
714714   "voodoo"
715715};
716716
717static const k001604_interface racingj_k001604_intf =
718{
719   0, 1,   /* gfx index 1 & 2 */
720   0, 1,       /* layer_size, roz_size */
721   0       /* slrasslt hack */
722};
723
724static const k001604_interface thrilld_k001604_intf =
725{
726   0, 1,   /* gfx index 1 & 2 */
727   1, 1,       /* layer_size, roz_size */
728   0       /* slrasslt hack */
729};
730
731717void nwktr_state::machine_reset()
732718{
733719   m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
r29437r29438
776762
777763   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
778764
779   MCFG_K001604_ADD("k001604", racingj_k001604_intf)
765   MCFG_DEVICE_ADD("k001604", K001604, 0)
766   MCFG_K001604_GFX_INDEX1(0)
767   MCFG_K001604_GFX_INDEX2(1)
768   MCFG_K001604_LAYER_SIZE(0)
769   MCFG_K001604_ROZ_SIZE(1)
770   MCFG_K001604_TXT_OFFSET(0)   // correct?
771   MCFG_K001604_ROZ_OFFSET(0)   // correct?
780772   MCFG_K001604_GFXDECODE("gfxdecode")
781773   MCFG_K001604_PALETTE("palette")
782774
r29437r29438
793785static MACHINE_CONFIG_DERIVED( thrilld, nwktr )
794786
795787   MCFG_DEVICE_REMOVE("k001604")
796   MCFG_K001604_ADD("k001604", thrilld_k001604_intf)
788   MCFG_DEVICE_ADD("k001604", K001604, 0)
789   MCFG_K001604_GFX_INDEX1(0)
790   MCFG_K001604_GFX_INDEX2(1)
791   MCFG_K001604_LAYER_SIZE(1)
792   MCFG_K001604_ROZ_SIZE(1)
793   MCFG_K001604_TXT_OFFSET(0)   // correct?
794   MCFG_K001604_ROZ_OFFSET(0)   // correct?
797795   MCFG_K001604_GFXDECODE("gfxdecode")
798796   MCFG_K001604_PALETTE("palette")
799797MACHINE_CONFIG_END
branches/new_menus/src/mame/drivers/funkyjet.c
r29437r29438
300300
301301/******************************************************************************/
302302
303static const deco16ic_interface funkyjet_deco16ic_tilegen1_intf =
304{
305   0, 1,
306   0x0f, 0x0f, /* trans masks (default values) */
307   0, 16, /* color base (default values) */
308   0x0f, 0x0f, /* color masks (default values) */
309   NULL, NULL,
310   0,1,
311};
312
313303void funkyjet_state::machine_start()
314304{
315305}
r29437r29438
342332   MCFG_PALETTE_ADD("palette", 1024)
343333   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
344334
345   MCFG_DECO16IC_ADD("tilegen1", funkyjet_deco16ic_tilegen1_intf)
335   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
336   MCFG_DECO16IC_SPLIT(0)
337   MCFG_DECO16IC_WIDTH12(1)
338   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
339   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
340   MCFG_DECO16IC_PF1_COL_BANK(0x00)
341   MCFG_DECO16IC_PF2_COL_BANK(0x10)
342   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
343   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
344   MCFG_DECO16IC_PF12_8X8_BANK(0)
345   MCFG_DECO16IC_PF12_16X16_BANK(1)
346346   MCFG_DECO16IC_GFXDECODE("gfxdecode")
347347   MCFG_DECO16IC_PALETTE("palette")
348348
branches/new_menus/src/mame/drivers/dreambal.c
r29437r29438
5050   virtual void machine_start();
5151   virtual void machine_reset();
5252   UINT32 screen_update_dreambal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   int bank_callback(int bank);
5354
5455   DECLARE_READ16_MEMBER( dreambal_protection_region_0_104_r );
5556   DECLARE_WRITE16_MEMBER( dreambal_protection_region_0_104_w );
r29437r29438
285286   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
286287INPUT_PORTS_END
287288
288static int dreambal_bank_callback( const int bank )
289int dreambal_state::bank_callback( int bank )
289290{
290291   return ((bank >> 4) & 0x7) * 0x1000;
291292}
292293
293static const deco16ic_interface dreambal_deco16ic_tilegen1_intf =
294{
295   0, 1,
296   0x0f, 0x0f,     /* trans masks (default values) */
297   0, 16, /* color base (default values) */
298   0x0f, 0x0f, /* color masks (default values) */
299   dreambal_bank_callback,
300   dreambal_bank_callback,
301   0,1,
302};
303
304294void dreambal_state::machine_start()
305295{
306296}
r29437r29438
334324
335325   MCFG_DECO104_ADD("ioprot104")
336326
337   MCFG_DECO16IC_ADD("tilegen1", dreambal_deco16ic_tilegen1_intf)
327   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
328   MCFG_DECO16IC_SPLIT(0)
329   MCFG_DECO16IC_WIDTH12(1)
330   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
331   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
332   MCFG_DECO16IC_PF1_COL_BANK(0x00)
333   MCFG_DECO16IC_PF2_COL_BANK(0x10)
334   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
335   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
336   MCFG_DECO16IC_BANK1_CB(dreambal_state, bank_callback)
337   MCFG_DECO16IC_BANK2_CB(dreambal_state, bank_callback)
338   MCFG_DECO16IC_PF12_8X8_BANK(0)
339   MCFG_DECO16IC_PF12_16X16_BANK(1)
338340   MCFG_DECO16IC_GFXDECODE("gfxdecode")
339341   MCFG_DECO16IC_PALETTE("palette")
340342
branches/new_menus/src/mame/drivers/deco32.c
r29437r29438
238238/**********************************************************************************/
239239
240240
241static int fghthist_bank_callback( int bank )
242{
243   bank = bank >> 4;
244   bank = (bank & 1) | ((bank & 4) >> 1) | ((bank & 2) << 1);
245
246   return bank * 0x1000;
247}
248
249static const deco16ic_interface fghthist_deco16ic_tilegen1_intf =
250{
251   0, 1,
252   0x0f, 0x0f, /* trans masks (default values) */
253   0x00, 0x10, /* color base */
254   0x0f, 0x0f, /* color masks (default values) */
255   fghthist_bank_callback,
256   fghthist_bank_callback,
257   0,1
258};
259
260static const deco16ic_interface fghthist_deco16ic_tilegen2_intf =
261{
262   0, 1,
263   0x0f, 0x0f, /* trans masks (default values) */
264   0x20, 0x30, /* color base */
265   0x0f, 0x0f, /* color masks (default values) */
266   fghthist_bank_callback,
267   fghthist_bank_callback,
268   0,2
269};
270
271
272
273
274
275241TIMER_DEVICE_CALLBACK_MEMBER(deco32_state::interrupt_gen)
276242{
277243   m_maincpu->set_input_line(ARM_IRQ_LINE, HOLD_LINE);
r29437r29438
16991665   }
17001666}
17011667
1702static int captaven_bank_callback( int bank )
1668int deco32_state::captaven_bank_callback( int bank )
17031669{
17041670   bank = bank >> 4;
17051671   bank = (bank & 2) >> 1;
r29437r29438
17071673   return bank * 0x4000;
17081674}
17091675
1710// pf4 not used (pf3 is in 8bpp mode)
1711static const deco16ic_interface captaven_deco16ic_tilegen1_intf =
1712{
1713   0, 1, // pf12only, split, fullwidth12 / fullwidth34
1714   0x0f, 0x0f, /* trans masks (default values) */
1715   0x20, 0x30, /* color base */
1716   0x0f, 0x0f, /* color masks (default values) */
1717   NULL,
1718   NULL,
1719   0,1
1720};
1721
1722static const deco16ic_interface captaven_deco16ic_tilegen2_intf =
1723{
1724   0, 0, // pf12only, split, fullwidth12 / fullwidth34
1725   0xff, 0x00, /* trans masks (default values) */
1726   0x10, 0x00, /* color base */
1727   0x0f, 0x00, /* color masks (default values) */
1728   captaven_bank_callback,
1729   NULL,
1730   0,2,
1731};
1732
1733
17341676static MACHINE_CONFIG_START( captaven, deco32_state )
17351677
17361678   /* basic machine hardware */
r29437r29438
17561698   MCFG_GFXDECODE_ADD("gfxdecode", "palette", captaven)
17571699   MCFG_PALETTE_ADD("palette", 2048)
17581700
1759   MCFG_DECO16IC_ADD("tilegen1", captaven_deco16ic_tilegen1_intf)
1701   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1702   MCFG_DECO16IC_SPLIT(0)
1703   MCFG_DECO16IC_WIDTH12(1)
1704   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1705   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1706   MCFG_DECO16IC_PF1_COL_BANK(0x20)
1707   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1708   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1709   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1710   MCFG_DECO16IC_PF12_8X8_BANK(0)
1711   MCFG_DECO16IC_PF12_16X16_BANK(1)
17601712   MCFG_DECO16IC_GFXDECODE("gfxdecode")
17611713   MCFG_DECO16IC_PALETTE("palette")
17621714
1763   MCFG_DECO16IC_ADD("tilegen2", captaven_deco16ic_tilegen2_intf)
1715   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)   // pf3 is in 8bpp mode, pf4 is not used
1716   MCFG_DECO16IC_SPLIT(0)
1717   MCFG_DECO16IC_WIDTH12(0)
1718   MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
1719   MCFG_DECO16IC_PF2_TRANS_MASK(0x00)
1720   MCFG_DECO16IC_PF1_COL_BANK(0x10)
1721   MCFG_DECO16IC_PF2_COL_BANK(0x00)
1722   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1723   MCFG_DECO16IC_PF2_COL_MASK(0x00)
1724   MCFG_DECO16IC_BANK1_CB(deco32_state, captaven_bank_callback)
1725   // no bank2 callback
1726   MCFG_DECO16IC_PF12_8X8_BANK(0)
1727   MCFG_DECO16IC_PF12_16X16_BANK(2)
17641728   MCFG_DECO16IC_GFXDECODE("gfxdecode")
17651729   MCFG_DECO16IC_PALETTE("palette")
17661730
r29437r29438
18091773   return machine().root_device().ioport(":IN1")->read();
18101774}
18111775
1776int deco32_state::fghthist_bank_callback( int bank )
1777{
1778   bank = bank >> 4;
1779   bank = (bank & 1) | ((bank & 4) >> 1) | ((bank & 2) << 1);
1780   
1781   return bank * 0x1000;
1782}
1783
18121784static MACHINE_CONFIG_START( fghthist, deco32_state ) /* DE-0380-2 PCB */
18131785
18141786   /* basic machine hardware */
r29437r29438
18211793
18221794   MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
18231795
1824
18251796   MCFG_SCREEN_ADD("screen", RASTER)
18261797   MCFG_SCREEN_REFRESH_RATE(60)
18271798   MCFG_SCREEN_SIZE(42*8, 32*8)
r29437r29438
18311802   MCFG_GFXDECODE_ADD("gfxdecode", "palette", fghthist)
18321803   MCFG_PALETTE_ADD("palette", 2048)
18331804
1834   MCFG_DECO16IC_ADD("tilegen1", fghthist_deco16ic_tilegen1_intf)
1805   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1806   MCFG_DECO16IC_SPLIT(0)
1807   MCFG_DECO16IC_WIDTH12(1)
1808   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1809   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1810   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1811   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1812   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1813   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1814   MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
1815   MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
1816   MCFG_DECO16IC_PF12_8X8_BANK(0)
1817   MCFG_DECO16IC_PF12_16X16_BANK(1)
18351818   MCFG_DECO16IC_GFXDECODE("gfxdecode")
18361819   MCFG_DECO16IC_PALETTE("palette")
18371820
1838   MCFG_DECO16IC_ADD("tilegen2", fghthist_deco16ic_tilegen2_intf)
1821   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1822   MCFG_DECO16IC_SPLIT(0)
1823   MCFG_DECO16IC_WIDTH12(1)
1824   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1825   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1826   MCFG_DECO16IC_PF1_COL_BANK(0x20)
1827   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1828   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1829   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1830   MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
1831   MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
1832   MCFG_DECO16IC_PF12_8X8_BANK(0)
1833   MCFG_DECO16IC_PF12_16X16_BANK(2)
18391834   MCFG_DECO16IC_GFXDECODE("gfxdecode")
18401835   MCFG_DECO16IC_PALETTE("palette")
18411836
r29437r29438
18931888   MCFG_GFXDECODE_ADD("gfxdecode", "palette", fghthist)
18941889   MCFG_PALETTE_ADD("palette", 2048)
18951890
1896   MCFG_DECO16IC_ADD("tilegen1", fghthist_deco16ic_tilegen1_intf)
1891   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1892   MCFG_DECO16IC_SPLIT(0)
1893   MCFG_DECO16IC_WIDTH12(1)
1894   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1895   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1896   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1897   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1898   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1899   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1900   MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
1901   MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
1902   MCFG_DECO16IC_PF12_8X8_BANK(0)
1903   MCFG_DECO16IC_PF12_16X16_BANK(1)
18971904   MCFG_DECO16IC_GFXDECODE("gfxdecode")
18981905   MCFG_DECO16IC_PALETTE("palette")
18991906
1900   MCFG_DECO16IC_ADD("tilegen2", fghthist_deco16ic_tilegen2_intf)
1907   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1908   MCFG_DECO16IC_SPLIT(0)
1909   MCFG_DECO16IC_WIDTH12(1)
1910   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1911   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1912   MCFG_DECO16IC_PF1_COL_BANK(0x20)
1913   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1914   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1915   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1916   MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
1917   MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
1918   MCFG_DECO16IC_PF12_8X8_BANK(0)
1919   MCFG_DECO16IC_PF12_16X16_BANK(2)
19011920   MCFG_DECO16IC_GFXDECODE("gfxdecode")
19021921   MCFG_DECO16IC_PALETTE("palette")
19031922
r29437r29438
19341953MACHINE_CONFIG_END
19351954
19361955
1937static int dragngun_bank_callback( int bank )
1956int dragngun_state::bank_1_callback( int bank )
19381957{
19391958   bank = bank >> 4;
19401959   return bank * 0x1000;
19411960}
19421961
19431962
1944static int dragngun_bank2_callback( int bank )
1963int dragngun_state::bank_2_callback( int bank )
19451964{
19461965   bank = bank >> 5;
19471966   return bank * 0x1000;
19481967}
19491968
1950
1951static const deco16ic_interface dragngun_deco16ic_tilegen1_intf =
1952{
1953   0, 1, // dragon gun definitely needs pf3/4 full width, bgs in 2nd attract demo.
1954   0x0f, 0x0f, /* trans masks (default values) */
1955   0x20, 0x30, /* color base */
1956   0x0f, 0x0f, /* color masks (default values) */
1957   dragngun_bank_callback,
1958   dragngun_bank_callback,
1959   0,1,
1960};
1961
1962static const deco16ic_interface dragngun_deco16ic_tilegen2_intf =
1963{
1964   0, 1, // dragon gun definitely needs pf3/4 full width, bgs in 2nd attract demo.
1965   0xff, 0xff, /* trans masks (default values) */
1966   0x04, 0x04, /* color base */
1967   0x03, 0x03, /* color masks (default values) */
1968   dragngun_bank2_callback,
1969   NULL,
1970   0,2,
1971};
1972
1973static const deco16ic_interface lockload_deco16ic_tilegen1_intf =
1974{
1975   0, 1, // lockload definitely wants pf34 half width..
1976   0x0f, 0x0f, /* trans masks (default values) */
1977   0x20, 0x30, /* color base */
1978   0x0f, 0x0f, /* color masks (default values) */
1979   dragngun_bank_callback,
1980   dragngun_bank_callback,
1981   0,1,
1982};
1983
1984static const deco16ic_interface lockload_deco16ic_tilegen2_intf =
1985{
1986   0, 0, // lockload definitely wants pf34 half width..
1987   0xff, 0xff, /* trans masks (default values) */
1988   0x04, 0x04, /* color base */
1989   0x03, 0x03, /* color masks (default values) */
1990   dragngun_bank2_callback,
1991   NULL,
1992   0,2,
1993};
1994
19951969static MACHINE_CONFIG_START( dragngun, dragngun_state )
19961970
19971971   /* basic machine hardware */
r29437r29438
20181992
20191993   MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
20201994
2021   MCFG_DECO16IC_ADD("tilegen1", dragngun_deco16ic_tilegen1_intf)
1995   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1996   MCFG_DECO16IC_SPLIT(0)
1997   MCFG_DECO16IC_WIDTH12(1)
1998   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1999   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2000   MCFG_DECO16IC_PF1_COL_BANK(0x20)
2001   MCFG_DECO16IC_PF2_COL_BANK(0x30)
2002   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2003   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2004   MCFG_DECO16IC_BANK1_CB(dragngun_state, bank_1_callback)
2005   MCFG_DECO16IC_BANK2_CB(dragngun_state, bank_1_callback)
2006   MCFG_DECO16IC_PF12_8X8_BANK(0)
2007   MCFG_DECO16IC_PF12_16X16_BANK(1)
20222008   MCFG_DECO16IC_GFXDECODE("gfxdecode")
20232009   MCFG_DECO16IC_PALETTE("palette")
20242010
2025   MCFG_DECO16IC_ADD("tilegen2", dragngun_deco16ic_tilegen2_intf)
2011   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
2012   MCFG_DECO16IC_SPLIT(0)
2013   MCFG_DECO16IC_WIDTH12(1)
2014   MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
2015   MCFG_DECO16IC_PF2_TRANS_MASK(0xff)
2016   MCFG_DECO16IC_PF1_COL_BANK(0x04)
2017   MCFG_DECO16IC_PF2_COL_BANK(0x04)
2018   MCFG_DECO16IC_PF1_COL_MASK(0x03)
2019   MCFG_DECO16IC_PF2_COL_MASK(0x03)
2020   MCFG_DECO16IC_BANK1_CB(dragngun_state, bank_2_callback)
2021   // no bank2 callback
2022   MCFG_DECO16IC_PF12_8X8_BANK(0)
2023   MCFG_DECO16IC_PF12_16X16_BANK(2)
20262024   MCFG_DECO16IC_GFXDECODE("gfxdecode")
20272025   MCFG_DECO16IC_PALETTE("palette")
20282026
r29437r29438
20352033   MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
20362034   MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
20372035
2038
2039
20402036   /* sound hardware */
20412037   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
20422038
r29437r29438
20592055   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
20602056MACHINE_CONFIG_END
20612057
2058
20622059TIMER_DEVICE_CALLBACK_MEMBER(deco32_state::lockload_vbl_irq)
20632060{
20642061   int scanline = param;
r29437r29438
21052102
21062103   MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
21072104
2108   MCFG_DECO16IC_ADD("tilegen1", lockload_deco16ic_tilegen1_intf)
2105   MCFG_GFXDECODE_ADD("gfxdecode", "palette", dragngun)
2106   MCFG_PALETTE_ADD("palette", 2048)
2107
2108   MCFG_VIDEO_START_OVERRIDE(dragngun_state, lockload)
2109
2110   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
2111   MCFG_DECO16IC_SPLIT(0)
2112   MCFG_DECO16IC_WIDTH12(1)
2113   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2114   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2115   MCFG_DECO16IC_PF1_COL_BANK(0x20)
2116   MCFG_DECO16IC_PF2_COL_BANK(0x30)
2117   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2118   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2119   MCFG_DECO16IC_BANK1_CB(dragngun_state, bank_1_callback)
2120   MCFG_DECO16IC_BANK2_CB(dragngun_state, bank_1_callback)
2121   MCFG_DECO16IC_PF12_8X8_BANK(0)
2122   MCFG_DECO16IC_PF12_16X16_BANK(1)
21092123   MCFG_DECO16IC_GFXDECODE("gfxdecode")
21102124   MCFG_DECO16IC_PALETTE("palette")
21112125
2112   MCFG_DECO16IC_ADD("tilegen2", lockload_deco16ic_tilegen2_intf)
2126   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
2127   MCFG_DECO16IC_SPLIT(0)
2128   MCFG_DECO16IC_WIDTH12(0)   // lockload definitely wants pf34 half width..
2129   MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
2130   MCFG_DECO16IC_PF2_TRANS_MASK(0xff)
2131   MCFG_DECO16IC_PF1_COL_BANK(0x04)
2132   MCFG_DECO16IC_PF2_COL_BANK(0x04)
2133   MCFG_DECO16IC_PF1_COL_MASK(0x03)
2134   MCFG_DECO16IC_PF2_COL_MASK(0x03)
2135   MCFG_DECO16IC_BANK1_CB(dragngun_state, bank_2_callback)
2136   // no bank2 callback
2137   MCFG_DECO16IC_PF12_8X8_BANK(0)
2138   MCFG_DECO16IC_PF12_16X16_BANK(2)
21132139   MCFG_DECO16IC_GFXDECODE("gfxdecode")
21142140   MCFG_DECO16IC_PALETTE("palette")
21152141
2116   MCFG_GFXDECODE_ADD("gfxdecode", "palette", dragngun)
2117   MCFG_PALETTE_ADD("palette", 2048)
2118
2119   MCFG_VIDEO_START_OVERRIDE(dragngun_state,lockload)
2120
21212142   MCFG_DECO146_ADD("ioprot")
21222143   MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
21232144   MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
r29437r29438
21492170
21502171MACHINE_CONFIG_END
21512172
2152static int tattass_bank_callback( int bank )
2173
2174int deco32_state::tattass_bank_callback( int bank )
21532175{
21542176   bank = bank >> 4;
21552177   return bank * 0x1000;
21562178}
21572179
2158static const deco16ic_interface tattass_deco16ic_tilegen1_intf =
2159{
2160   0, 1,
2161   0x0f, 0x0f, /* trans masks (default values) */
2162   0x00, 0x10, /* color base */
2163   0x0f, 0x0f, /* color masks (default values) */
2164   tattass_bank_callback,
2165   tattass_bank_callback,
2166   0,1,
2167};
2168
2169static const deco16ic_interface tattass_deco16ic_tilegen2_intf =
2170{
2171   0, 1,
2172   0x0f, 0x0f, /* trans masks (default values) */
2173   0x20, 0x30, /* color base */
2174   0x0f, 0x0f, /* color masks (default values) */
2175   tattass_bank_callback,
2176   tattass_bank_callback,
2177   0,2,
2178};
2179
2180
2181
21822180static MACHINE_CONFIG_START( tattass, deco32_state )
21832181
21842182   /* basic machine hardware */
r29437r29438
21942192   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
21952193   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
21962194
2197   MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
2195   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
2196   MCFG_DECO16IC_SPLIT(0)
2197   MCFG_DECO16IC_WIDTH12(1)
2198   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2199   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2200   MCFG_DECO16IC_PF1_COL_BANK(0x00)
2201   MCFG_DECO16IC_PF2_COL_BANK(0x10)
2202   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2203   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2204   MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
2205   MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
2206   MCFG_DECO16IC_PF12_8X8_BANK(0)
2207   MCFG_DECO16IC_PF12_16X16_BANK(1)
21982208   MCFG_DECO16IC_GFXDECODE("gfxdecode")
21992209   MCFG_DECO16IC_PALETTE("palette")
22002210
2201   MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
2211   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
2212   MCFG_DECO16IC_SPLIT(0)
2213   MCFG_DECO16IC_WIDTH12(1)
2214   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2215   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2216   MCFG_DECO16IC_PF1_COL_BANK(0x20)
2217   MCFG_DECO16IC_PF2_COL_BANK(0x30)
2218   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2219   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2220   MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
2221   MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
2222   MCFG_DECO16IC_PF12_8X8_BANK(0)
2223   MCFG_DECO16IC_PF12_16X16_BANK(2)
22022224   MCFG_DECO16IC_GFXDECODE("gfxdecode")
22032225   MCFG_DECO16IC_PALETTE("palette")
22042226
r29437r29438
22472269   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
22482270   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
22492271
2250   MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
2272   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
2273   MCFG_DECO16IC_SPLIT(0)
2274   MCFG_DECO16IC_WIDTH12(1)
2275   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2276   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2277   MCFG_DECO16IC_PF1_COL_BANK(0x00)
2278   MCFG_DECO16IC_PF2_COL_BANK(0x10)
2279   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2280   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2281   MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
2282   MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
2283   MCFG_DECO16IC_PF12_8X8_BANK(0)
2284   MCFG_DECO16IC_PF12_16X16_BANK(1)
22512285   MCFG_DECO16IC_GFXDECODE("gfxdecode")
22522286   MCFG_DECO16IC_PALETTE("palette")
22532287
2254   MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
2288   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
2289   MCFG_DECO16IC_SPLIT(0)
2290   MCFG_DECO16IC_WIDTH12(1)
2291   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2292   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2293   MCFG_DECO16IC_PF1_COL_BANK(0x20)
2294   MCFG_DECO16IC_PF2_COL_BANK(0x30)
2295   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2296   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2297   MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
2298   MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
2299   MCFG_DECO16IC_PF12_8X8_BANK(0)
2300   MCFG_DECO16IC_PF12_16X16_BANK(2)
22552301   MCFG_DECO16IC_GFXDECODE("gfxdecode")
22562302   MCFG_DECO16IC_PALETTE("palette")
22572303
branches/new_menus/src/mame/drivers/cobra.c
r29437r29438
10221022
10231023
10241024
1025
1026
1027
1028
1029
10301025/*****************************************************************************/
10311026
10321027int cobra_state::decode_debug_state_value(int v)
r29437r29438
31303125};
31313126
31323127
3133static const k001604_interface cobra_k001604_intf =
3134{
3135   0, 1,   /* gfx index 1 & 2 */
3136   0, 1,   /* layer_size, roz_size */
3137   0       /* slrasslt hack */
3138};
3139
3140
31413128WRITE_LINE_MEMBER(cobra_state::ide_interrupt)
31423129{
31433130   if (state == CLEAR_LINE)
r29437r29438
32313218   MCFG_M48T58_ADD("m48t58")
32323219
32333220   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
3234   MCFG_K001604_ADD("k001604", cobra_k001604_intf)     // on the LAN board in Racing Jam DX
3221   MCFG_DEVICE_ADD("k001604", K001604, 0)     // on the LAN board in Racing Jam DX
3222   MCFG_K001604_GFX_INDEX1(0)
3223   MCFG_K001604_GFX_INDEX2(1)
3224   MCFG_K001604_LAYER_SIZE(0)
3225   MCFG_K001604_ROZ_SIZE(1)
3226   MCFG_K001604_TXT_OFFSET(0)   // correct?
3227   MCFG_K001604_ROZ_OFFSET(0)   // correct?
32353228   MCFG_K001604_GFXDECODE("gfxdecode")
32363229   MCFG_K001604_PALETTE("palette")
32373230
branches/new_menus/src/mame/drivers/deco156.c
r29437r29438
6565   INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt);
6666   void descramble_sound( const char *tag );
6767   DECLARE_WRITE_LINE_MEMBER(sound_irq_gen);
68   int bank_callback(int bank);
6869};
6970
7071
r29437r29438
321322   device.execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
322323}
323324
324static int deco156_bank_callback(const int bank)
325int deco156_state::bank_callback(int bank)
325326{
326327   return ((bank >> 4) & 0x7) * 0x1000;
327328}
328329
329static const deco16ic_interface deco156_deco16ic_tilegen1_intf =
330{
331   0, 1,
332   0x0f, 0x0f, /* trans masks (default values) */
333   0, 16, /* color base (default values) */
334   0x0f, 0x0f, /* color masks (default values) */
335   deco156_bank_callback,
336   deco156_bank_callback,
337   0,1,
338};
339
340330UINT16 deco156_pri_callback(UINT16 x)
341331{
342332   switch (x & 0xc000)
r29437r29438
370360   MCFG_GFXDECODE_ADD("gfxdecode", "palette", hvysmsh)
371361   MCFG_PALETTE_ADD("palette", 1024)
372362
373
374   MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf)
363   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
364   MCFG_DECO16IC_SPLIT(0)
365   MCFG_DECO16IC_WIDTH12(1)
366   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
367   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
368   MCFG_DECO16IC_PF1_COL_BANK(0x00)
369   MCFG_DECO16IC_PF2_COL_BANK(0x10)
370   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
371   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
372   MCFG_DECO16IC_BANK1_CB(deco156_state, bank_callback)
373   MCFG_DECO16IC_BANK2_CB(deco156_state, bank_callback)
374   MCFG_DECO16IC_PF12_8X8_BANK(0)
375   MCFG_DECO16IC_PF12_16X16_BANK(1)
375376   MCFG_DECO16IC_GFXDECODE("gfxdecode")
376377   MCFG_DECO16IC_PALETTE("palette")
377378
r29437r29438
412413   MCFG_GFXDECODE_ADD("gfxdecode", "palette", hvysmsh)
413414   MCFG_PALETTE_ADD("palette", 1024)
414415
415
416   MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf)
416   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
417   MCFG_DECO16IC_SPLIT(0)
418   MCFG_DECO16IC_WIDTH12(1)
419   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
420   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
421   MCFG_DECO16IC_PF1_COL_BANK(0x00)
422   MCFG_DECO16IC_PF2_COL_BANK(0x10)
423   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
424   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
425   MCFG_DECO16IC_BANK1_CB(deco156_state, bank_callback)
426   MCFG_DECO16IC_BANK2_CB(deco156_state, bank_callback)
427   MCFG_DECO16IC_PF12_8X8_BANK(0)
428   MCFG_DECO16IC_PF12_16X16_BANK(1)
417429   MCFG_DECO16IC_GFXDECODE("gfxdecode")
418430   MCFG_DECO16IC_PALETTE("palette")
419431
branches/new_menus/src/mame/drivers/pktgaldx.c
r29437r29438
303303GFXDECODE_END
304304
305305
306static int pktgaldx_bank_callback( const int bank )
306int pktgaldx_state::bank_callback( int bank )
307307{
308308   return ((bank >> 4) & 0x7) * 0x1000;
309309}
310310
311static const deco16ic_interface pktgaldx_deco16ic_tilegen1_intf =
312{
313   0, 1,
314   0x0f, 0x0f, /* trans masks (default values) */
315   0, 16, /* color base (default values) */
316   0x0f, 0x0f, /* color masks (default values) */
317   NULL,
318   pktgaldx_bank_callback,
319   0,1,
320};
321311
322
323
324312void pktgaldx_state::machine_start()
325313{
326314}
r29437r29438
350338   MCFG_DECOCOMN_ADD("deco_common")
351339   MCFG_DECOCOMN_PALETTE("palette")
352340
353   MCFG_DECO16IC_ADD("tilegen1", pktgaldx_deco16ic_tilegen1_intf)
341   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
342   MCFG_DECO16IC_SPLIT(0)
343   MCFG_DECO16IC_WIDTH12(1)
344   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
345   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
346   MCFG_DECO16IC_PF1_COL_BANK(0x00)
347   MCFG_DECO16IC_PF2_COL_BANK(0x10)
348   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
349   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
350   MCFG_DECO16IC_BANK1_CB(pktgaldx_state, bank_callback)
351   MCFG_DECO16IC_BANK2_CB(pktgaldx_state, bank_callback)
352   MCFG_DECO16IC_PF12_8X8_BANK(0)
353   MCFG_DECO16IC_PF12_16X16_BANK(1)
354354   MCFG_DECO16IC_GFXDECODE("gfxdecode")
355355   MCFG_DECO16IC_PALETTE("palette")
356356
branches/new_menus/src/mame/drivers/dblewing.c
r29437r29438
113113   virtual void machine_reset();
114114   UINT32 screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
115115
116   int bank_callback(int bank);
116117   void dblewing_sound_cb( address_space &space, UINT16 data, UINT16 mem_mask );
117118
118119   READ16_MEMBER( wf_protection_region_0_104_r );
r29437r29438
331332   m_audiocpu->set_input_line(0, (m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
332333}
333334
334static int dblewing_bank_callback( const int bank )
335int dblewing_state::bank_callback( int bank )
335336{
336337   return ((bank >> 4) & 0x7) * 0x1000;
337338}
338339
339static const deco16ic_interface dblewing_deco16ic_tilegen1_intf =
340{
341   0, 1,
342   0x0f, 0x0f,     /* trans masks (default values) */
343   0, 16, /* color base (default values) */
344   0x0f, 0x0f, /* color masks (default values) */
345   dblewing_bank_callback,
346   dblewing_bank_callback,
347   0,1,
348};
349
350340void dblewing_state::machine_start()
351341{
352342   save_item(NAME(m_sound_irq));
r29437r29438
391381   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
392382   MCFG_GFXDECODE_ADD("gfxdecode", "palette", dblewing)
393383
394   MCFG_DECO16IC_ADD("tilegen1", dblewing_deco16ic_tilegen1_intf)
384   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
385   MCFG_DECO16IC_SPLIT(0)
386   MCFG_DECO16IC_WIDTH12(1)
387   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
388   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
389   MCFG_DECO16IC_PF1_COL_BANK(0x00)
390   MCFG_DECO16IC_PF2_COL_BANK(0x10)
391   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
392   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
393   MCFG_DECO16IC_BANK1_CB(dblewing_state, bank_callback)
394   MCFG_DECO16IC_BANK2_CB(dblewing_state, bank_callback)
395   MCFG_DECO16IC_PF12_8X8_BANK(0)
396   MCFG_DECO16IC_PF12_16X16_BANK(1)
395397   MCFG_DECO16IC_GFXDECODE("gfxdecode")
396398   MCFG_DECO16IC_PALETTE("palette")
397399
branches/new_menus/src/mame/drivers/cninja.c
r29437r29438
785785
786786/**********************************************************************************/
787787
788static int cninja_bank_callback( const int bank )
788int cninja_state::cninja_bank_callback( int bank )
789789{
790790   if ((bank >> 4) & 0xf)
791791      return 0x0000; /* Only 2 banks */
792792   return 0x1000;
793793}
794794
795static int robocop2_bank_callback( const int bank )
795int cninja_state::robocop2_bank_callback( int bank )
796796{
797797   return (bank & 0x30) << 8;
798798}
799799
800static int mutantf_1_bank_callback( const int bank )
800int cninja_state::mutantf_1_bank_callback( int bank )
801801{
802802   return ((bank >> 4) & 0x3) << 12;
803803}
804804
805static int mutantf_2_bank_callback( const int bank )
805int cninja_state::mutantf_2_bank_callback( int bank )
806806{
807807   return ((bank >> 5) & 0x1) << 14;
808808}
809809
810static const deco16ic_interface cninja_deco16ic_tilegen1_intf =
811{
812   1, 1,
813   0x0f, 0x0f, /* trans masks (default values) */
814   0, 16, /* color base */
815   0x0f, 0x0f, /* color masks (default values) */
816   NULL,
817   NULL,
818   0, 1,
819};
820810
821static const deco16ic_interface cninja_deco16ic_tilegen2_intf =
822{
823   0, 1,
824   0x0f, 0x0f, /* trans masks (default values) */
825   0, 48, /* color base */
826   0x0f, 0x0f, /* color masks (default values) */
827   cninja_bank_callback,
828   cninja_bank_callback,
829   0, 2,
830};
831
832
833
834static const deco16ic_interface edrandy_deco16ic_tilegen1_intf =
835{
836   0, 1,
837   0x0f, 0x0f, /* trans masks (default values) */
838   0, 16, /* color base  */
839   0x0f, 0x0f, /* color masks (default values) */
840   NULL,
841   NULL,
842   0,1,
843};
844
845static const deco16ic_interface edrandy_deco16ic_tilegen2_intf =
846{
847   0, 1,
848   0x0f, 0x0f, /* trans masks (default values) */
849   0, 48, /* color base  */
850   0x0f, 0x0f, /* color masks (default values) */
851   cninja_bank_callback,
852   cninja_bank_callback,
853   0,2,
854};
855
856
857static const deco16ic_interface robocop2_deco16ic_tilegen1_intf =
858{
859   0, 1,
860   0x0f, 0x0f, /* trans masks (default values) */
861   0, 16, /* color base */
862   0x0f, 0x0f, /* color masks (default values) */
863   NULL,
864   robocop2_bank_callback,
865   0,1,
866};
867
868static const deco16ic_interface robocop2_deco16ic_tilegen2_intf =
869{
870   0, 1,
871   0x0f, 0x0f, /* trans masks (default values) */
872   0, 48, /* color base */
873   0x0f, 0x0f, /* color masks (default values) */
874   robocop2_bank_callback,
875   robocop2_bank_callback,
876   0,2,
877};
878
879
880static const deco16ic_interface mutantf_deco16ic_tilegen1_intf =
881{
882   0, 1,
883   0x0f, 0x0f, /* trans masks (default values) */
884   0, 0x30, /* color base */
885   0x0f, 0x0f, /* color masks (default values) */
886   mutantf_1_bank_callback,
887   mutantf_2_bank_callback,
888   0,1,
889};
890
891static const deco16ic_interface mutantf_deco16ic_tilegen2_intf =
892{
893   0, 1,
894   0x0f, 0x0f, /* trans masks (default values) */
895   0x20, 0x40, /* color base */
896   0x0f, 0x0f, /* color masks (default values) */
897   mutantf_1_bank_callback,
898   mutantf_1_bank_callback,
899   0,2,
900};
901
902
903811void cninja_state::machine_start()
904812{
905813   save_item(NAME(m_scanline));
r29437r29438
957865   MCFG_DECOCOMN_ADD("deco_common")
958866   MCFG_DECOCOMN_PALETTE("palette")
959867
960   MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
868   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
869   MCFG_DECO16IC_SPLIT(1)
870   MCFG_DECO16IC_WIDTH12(1)
871   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
872   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
873   MCFG_DECO16IC_PF1_COL_BANK(0x00)
874   MCFG_DECO16IC_PF2_COL_BANK(0x10)
875   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
876   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
877   MCFG_DECO16IC_PF12_8X8_BANK(0)
878   MCFG_DECO16IC_PF12_16X16_BANK(1)
961879   MCFG_DECO16IC_GFXDECODE("gfxdecode")
962880   MCFG_DECO16IC_PALETTE("palette")
963881
964   MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
882   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
883   MCFG_DECO16IC_SPLIT(0)
884   MCFG_DECO16IC_WIDTH12(1)
885   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
886   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
887   MCFG_DECO16IC_PF1_COL_BANK(0x00)
888   MCFG_DECO16IC_PF2_COL_BANK(0x30)
889   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
890   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
891   MCFG_DECO16IC_BANK1_CB(cninja_state, cninja_bank_callback)
892   MCFG_DECO16IC_BANK2_CB(cninja_state, cninja_bank_callback)
893   MCFG_DECO16IC_PF12_8X8_BANK(0)
894   MCFG_DECO16IC_PF12_16X16_BANK(2)
965895   MCFG_DECO16IC_GFXDECODE("gfxdecode")
966896   MCFG_DECO16IC_PALETTE("palette")
967897
r29437r29438
1025955   MCFG_DECOCOMN_ADD("deco_common")
1026956   MCFG_DECOCOMN_PALETTE("palette")
1027957
1028   MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
958   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
959   MCFG_DECO16IC_SPLIT(1)
960   MCFG_DECO16IC_WIDTH12(1)
961   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
962   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
963   MCFG_DECO16IC_PF1_COL_BANK(0x00)
964   MCFG_DECO16IC_PF2_COL_BANK(0x10)
965   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
966   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
967   MCFG_DECO16IC_PF12_8X8_BANK(0)
968   MCFG_DECO16IC_PF12_16X16_BANK(1)
1029969   MCFG_DECO16IC_GFXDECODE("gfxdecode")
1030970   MCFG_DECO16IC_PALETTE("palette")
1031971
1032   MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
972   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
973   MCFG_DECO16IC_SPLIT(0)
974   MCFG_DECO16IC_WIDTH12(1)
975   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
976   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
977   MCFG_DECO16IC_PF1_COL_BANK(0x00)
978   MCFG_DECO16IC_PF2_COL_BANK(0x30)
979   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
980   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
981   MCFG_DECO16IC_BANK1_CB(cninja_state, cninja_bank_callback)
982   MCFG_DECO16IC_BANK2_CB(cninja_state, cninja_bank_callback)
983   MCFG_DECO16IC_PF12_8X8_BANK(0)
984   MCFG_DECO16IC_PF12_16X16_BANK(2)
1033985   MCFG_DECO16IC_GFXDECODE("gfxdecode")
1034986   MCFG_DECO16IC_PALETTE("palette")
1035987
r29437r29438
10881040   MCFG_DECOCOMN_ADD("deco_common")
10891041   MCFG_DECOCOMN_PALETTE("palette")
10901042
1091   MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
1043   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1044   MCFG_DECO16IC_SPLIT(1)
1045   MCFG_DECO16IC_WIDTH12(1)
1046   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1047   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1048   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1049   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1050   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1051   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1052   MCFG_DECO16IC_PF12_8X8_BANK(0)
1053   MCFG_DECO16IC_PF12_16X16_BANK(1)
10921054   MCFG_DECO16IC_GFXDECODE("gfxdecode")
10931055   MCFG_DECO16IC_PALETTE("palette")
10941056
1095   MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
1057   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1058   MCFG_DECO16IC_SPLIT(0)
1059   MCFG_DECO16IC_WIDTH12(1)
1060   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1061   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1062   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1063   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1064   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1065   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1066   MCFG_DECO16IC_BANK1_CB(cninja_state, cninja_bank_callback)
1067   MCFG_DECO16IC_BANK2_CB(cninja_state, cninja_bank_callback)
1068   MCFG_DECO16IC_PF12_8X8_BANK(0)
1069   MCFG_DECO16IC_PF12_16X16_BANK(2)
10961070   MCFG_DECO16IC_GFXDECODE("gfxdecode")
10971071   MCFG_DECO16IC_PALETTE("palette")
10981072
r29437r29438
11381112   MCFG_DECOCOMN_ADD("deco_common")
11391113   MCFG_DECOCOMN_PALETTE("palette")
11401114
1141   MCFG_DECO16IC_ADD("tilegen1", edrandy_deco16ic_tilegen1_intf)
1115   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1116   MCFG_DECO16IC_SPLIT(0)
1117   MCFG_DECO16IC_WIDTH12(1)
1118   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1119   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1120   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1121   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1122   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1123   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1124   MCFG_DECO16IC_PF12_8X8_BANK(0)
1125   MCFG_DECO16IC_PF12_16X16_BANK(1)
11421126   MCFG_DECO16IC_GFXDECODE("gfxdecode")
11431127   MCFG_DECO16IC_PALETTE("palette")
11441128
1145   MCFG_DECO16IC_ADD("tilegen2", edrandy_deco16ic_tilegen2_intf)
1129   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1130   MCFG_DECO16IC_SPLIT(0)
1131   MCFG_DECO16IC_WIDTH12(1)
1132   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1133   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1134   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1135   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1136   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1137   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1138   MCFG_DECO16IC_BANK1_CB(cninja_state, cninja_bank_callback)
1139   MCFG_DECO16IC_BANK2_CB(cninja_state, cninja_bank_callback)
1140   MCFG_DECO16IC_PF12_8X8_BANK(0)
1141   MCFG_DECO16IC_PF12_16X16_BANK(2)
11461142   MCFG_DECO16IC_GFXDECODE("gfxdecode")
11471143   MCFG_DECO16IC_PALETTE("palette")
11481144
r29437r29438
12031199   MCFG_DECOCOMN_ADD("deco_common")
12041200   MCFG_DECOCOMN_PALETTE("palette")
12051201
1206   MCFG_DECO16IC_ADD("tilegen1", robocop2_deco16ic_tilegen1_intf)
1202   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1203   MCFG_DECO16IC_SPLIT(0)
1204   MCFG_DECO16IC_WIDTH12(1)
1205   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1206   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1207   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1208   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1209   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1210   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1211   MCFG_DECO16IC_BANK2_CB(cninja_state, robocop2_bank_callback)
1212   MCFG_DECO16IC_PF12_8X8_BANK(0)
1213   MCFG_DECO16IC_PF12_16X16_BANK(1)
12071214   MCFG_DECO16IC_GFXDECODE("gfxdecode")
12081215   MCFG_DECO16IC_PALETTE("palette")
12091216
1210   MCFG_DECO16IC_ADD("tilegen2", robocop2_deco16ic_tilegen2_intf)
1217   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1218   MCFG_DECO16IC_SPLIT(0)
1219   MCFG_DECO16IC_WIDTH12(1)
1220   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1221   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1222   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1223   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1224   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1225   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1226   MCFG_DECO16IC_BANK1_CB(cninja_state, robocop2_bank_callback)
1227   MCFG_DECO16IC_BANK2_CB(cninja_state, robocop2_bank_callback)
1228   MCFG_DECO16IC_PF12_8X8_BANK(0)
1229   MCFG_DECO16IC_PF12_16X16_BANK(2)
12111230   MCFG_DECO16IC_GFXDECODE("gfxdecode")
12121231   MCFG_DECO16IC_PALETTE("palette")
12131232
r29437r29438
12731292   MCFG_DECOCOMN_ADD("deco_common")
12741293   MCFG_DECOCOMN_PALETTE("palette")
12751294
1276   MCFG_DECO16IC_ADD("tilegen1", mutantf_deco16ic_tilegen1_intf)
1295   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1296   MCFG_DECO16IC_SPLIT(0)
1297   MCFG_DECO16IC_WIDTH12(1)
1298   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1299   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1300   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1301   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1302   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1303   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1304   MCFG_DECO16IC_BANK1_CB(cninja_state, mutantf_1_bank_callback)
1305   MCFG_DECO16IC_BANK2_CB(cninja_state, mutantf_2_bank_callback)
1306   MCFG_DECO16IC_PF12_8X8_BANK(0)
1307   MCFG_DECO16IC_PF12_16X16_BANK(1)
12771308   MCFG_DECO16IC_GFXDECODE("gfxdecode")
12781309   MCFG_DECO16IC_PALETTE("palette")
12791310
1280   MCFG_DECO16IC_ADD("tilegen2", mutantf_deco16ic_tilegen2_intf)
1311   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1312   MCFG_DECO16IC_SPLIT(0)
1313   MCFG_DECO16IC_WIDTH12(1)
1314   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1315   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1316   MCFG_DECO16IC_PF1_COL_BANK(0x20)
1317   MCFG_DECO16IC_PF2_COL_BANK(0x40)
1318   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1319   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1320   MCFG_DECO16IC_BANK1_CB(cninja_state, mutantf_1_bank_callback)
1321   MCFG_DECO16IC_BANK2_CB(cninja_state, mutantf_1_bank_callback)
1322   MCFG_DECO16IC_PF12_8X8_BANK(0)
1323   MCFG_DECO16IC_PF12_16X16_BANK(2)
12811324   MCFG_DECO16IC_GFXDECODE("gfxdecode")
12821325   MCFG_DECO16IC_PALETTE("palette")
12831326
branches/new_menus/src/mame/drivers/rohga.c
r29437r29438
759759
760760/**********************************************************************************/
761761
762static int rohga_bank_callback( const int bank )
762int rohga_state::bank_callback( int bank )
763763{
764764   return ((bank >> 4) & 0x3) << 12;
765765}
766766
767static const deco16ic_interface rohga_deco16ic_tilegen1_intf =
768{
769   0, 1,
770   0x0f, 0x0f, /* trans masks (default values) */
771   0, 16,/* color base (default values) */
772   0x0f, 0x0f, /* color masks (default values) */
773   rohga_bank_callback,
774   rohga_bank_callback,
775   0, 1,
776};
777
778static const deco16ic_interface rohga_deco16ic_tilegen2_intf =
779{
780   0, 1,
781   0x0f, 0x0f, /* trans masks (default values) */
782   0, 16, /* color base (default values) */
783   0x0f, 0x0f, /* color masks (default values) */
784   rohga_bank_callback,
785   rohga_bank_callback,
786   0, 2,
787};
788
789static const deco16ic_interface nitrobal_deco16ic_tilegen1_intf =
790{
791   0, 0,
792   0x0f, 0x0f, /* trans masks (default values) */
793   0, 16, /* color base (pf4 is not default) */
794   0x0f, 0x0f, /* color masks */
795   rohga_bank_callback,
796   rohga_bank_callback,
797   0, 1,
798};
799
800static const deco16ic_interface nitrobal_deco16ic_tilegen2_intf =
801{
802   0, 0,
803   0x0f, 0x0f, /* trans masks (default values) */
804   0, 0, /* color base (pf4 is not default) */
805   0, 0,   /* color masks */
806   rohga_bank_callback,
807   rohga_bank_callback,
808   0, 2,
809};
810
811767static MACHINE_CONFIG_START( rohga, rohga_state )
812768
813769   /* basic machine hardware */
r29437r29438
837793   MCFG_DECOCOMN_ADD("deco_common")
838794   MCFG_DECOCOMN_PALETTE("palette")
839795
840   MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
796   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
797   MCFG_DECO16IC_SPLIT(0)
798   MCFG_DECO16IC_WIDTH12(1)
799   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
800   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
801   MCFG_DECO16IC_PF1_COL_BANK(0x00)
802   MCFG_DECO16IC_PF2_COL_BANK(0x10)
803   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
804   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
805   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
806   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
807   MCFG_DECO16IC_PF12_8X8_BANK(0)
808   MCFG_DECO16IC_PF12_16X16_BANK(1)
841809   MCFG_DECO16IC_GFXDECODE("gfxdecode")
842810   MCFG_DECO16IC_PALETTE("palette")
843811
844   MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
812   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
813   MCFG_DECO16IC_SPLIT(0)
814   MCFG_DECO16IC_WIDTH12(1)
815   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
816   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
817   MCFG_DECO16IC_PF1_COL_BANK(0x00)
818   MCFG_DECO16IC_PF2_COL_BANK(0x10)
819   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
820   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
821   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
822   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
823   MCFG_DECO16IC_PF12_8X8_BANK(0)
824   MCFG_DECO16IC_PF12_16X16_BANK(2)
845825   MCFG_DECO16IC_GFXDECODE("gfxdecode")
846826   MCFG_DECO16IC_PALETTE("palette")
847827
r29437r29438
897877   MCFG_DECOCOMN_ADD("deco_common")
898878   MCFG_DECOCOMN_PALETTE("palette")
899879
900   MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
880   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
881   MCFG_DECO16IC_SPLIT(0)
882   MCFG_DECO16IC_WIDTH12(1)
883   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
884   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
885   MCFG_DECO16IC_PF1_COL_BANK(0x00)
886   MCFG_DECO16IC_PF2_COL_BANK(0x10)
887   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
888   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
889   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
890   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
891   MCFG_DECO16IC_PF12_8X8_BANK(0)
892   MCFG_DECO16IC_PF12_16X16_BANK(1)
901893   MCFG_DECO16IC_GFXDECODE("gfxdecode")
902894   MCFG_DECO16IC_PALETTE("palette")
903895
904   MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
896   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
897   MCFG_DECO16IC_SPLIT(0)
898   MCFG_DECO16IC_WIDTH12(1)
899   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
900   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
901   MCFG_DECO16IC_PF1_COL_BANK(0x00)
902   MCFG_DECO16IC_PF2_COL_BANK(0x10)
903   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
904   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
905   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
906   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
907   MCFG_DECO16IC_PF12_8X8_BANK(0)
908   MCFG_DECO16IC_PF12_16X16_BANK(2)
905909   MCFG_DECO16IC_GFXDECODE("gfxdecode")
906910   MCFG_DECO16IC_PALETTE("palette")
907911
r29437r29438
965969   MCFG_DECOCOMN_ADD("deco_common")
966970   MCFG_DECOCOMN_PALETTE("palette")
967971
968   MCFG_DECO16IC_ADD("tilegen1", nitrobal_deco16ic_tilegen1_intf)
972   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
973   MCFG_DECO16IC_SPLIT(0)
974   MCFG_DECO16IC_WIDTH12(0)
975   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
976   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
977   MCFG_DECO16IC_PF1_COL_BANK(0x00)
978   MCFG_DECO16IC_PF2_COL_BANK(0x10)
979   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
980   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
981   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
982   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
983   MCFG_DECO16IC_PF12_8X8_BANK(0)
984   MCFG_DECO16IC_PF12_16X16_BANK(1)
969985   MCFG_DECO16IC_GFXDECODE("gfxdecode")
970986   MCFG_DECO16IC_PALETTE("palette")
971987
972   MCFG_DECO16IC_ADD("tilegen2", nitrobal_deco16ic_tilegen2_intf)
988   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
989   MCFG_DECO16IC_SPLIT(0)
990   MCFG_DECO16IC_WIDTH12(0)
991   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
992   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
993   MCFG_DECO16IC_PF1_COL_BANK(0)
994   MCFG_DECO16IC_PF2_COL_BANK(0)
995   MCFG_DECO16IC_PF1_COL_MASK(0)
996   MCFG_DECO16IC_PF2_COL_MASK(0)
997   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
998   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
999   MCFG_DECO16IC_PF12_8X8_BANK(0)
1000   MCFG_DECO16IC_PF12_16X16_BANK(2)
9731001   MCFG_DECO16IC_GFXDECODE("gfxdecode")
9741002   MCFG_DECO16IC_PALETTE("palette")
9751003
r29437r29438
10371065   MCFG_DECOCOMN_ADD("deco_common")
10381066   MCFG_DECOCOMN_PALETTE("palette")
10391067
1040   MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
1068   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1069   MCFG_DECO16IC_SPLIT(0)
1070   MCFG_DECO16IC_WIDTH12(1)
1071   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1072   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1073   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1074   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1075   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1076   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1077   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
1078   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
1079   MCFG_DECO16IC_PF12_8X8_BANK(0)
1080   MCFG_DECO16IC_PF12_16X16_BANK(1)
10411081   MCFG_DECO16IC_GFXDECODE("gfxdecode")
10421082   MCFG_DECO16IC_PALETTE("palette")
10431083
1044   MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
1084   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1085   MCFG_DECO16IC_SPLIT(0)
1086   MCFG_DECO16IC_WIDTH12(1)
1087   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1088   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1089   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1090   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1091   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1092   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1093   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
1094   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
1095   MCFG_DECO16IC_PF12_8X8_BANK(0)
1096   MCFG_DECO16IC_PF12_16X16_BANK(2)
10451097   MCFG_DECO16IC_GFXDECODE("gfxdecode")
10461098   MCFG_DECO16IC_PALETTE("palette")
10471099
branches/new_menus/src/mame/drivers/darkseal.c
r29437r29438
220220
221221/******************************************************************************/
222222
223static const deco16ic_interface darkseal_deco16ic_tilegen1_intf =
224{
225   0, 3, // both these tilemaps need to be twice the y size of usual!
226   0x0f, 0x0f, /* trans masks (default values) */
227   0x00, 0x00, /* color base */
228   0x0f, 0x0f, /* color masks (default values) */
229   NULL,
230   NULL,
231   0,1
232};
233
234
235static const deco16ic_interface darkseal_deco16ic_tilegen2_intf =
236{
237   0, 1,
238   0x0f, 0x0f, /* trans masks (default values) */
239   0x00, 0x00, /* color base */
240   0x0f, 0x0f, /* color masks (default values) */
241   NULL,
242   NULL,
243   2,3
244};
245
246
247223static MACHINE_CONFIG_START( darkseal, darkseal_state )
248224
249225   /* basic machine hardware */
r29437r29438
268244
269245   MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
270246
271   MCFG_DECO16IC_ADD("tilegen1", darkseal_deco16ic_tilegen1_intf)
247   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
248   MCFG_DECO16IC_SPLIT(0)
249   MCFG_DECO16IC_WIDTH12(3)    // both these tilemaps need to be twice the y size of usual!
250   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
251   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
252   MCFG_DECO16IC_PF1_COL_BANK(0x00)
253   MCFG_DECO16IC_PF2_COL_BANK(0x00)
254   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
255   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
256   MCFG_DECO16IC_PF12_8X8_BANK(0)
257   MCFG_DECO16IC_PF12_16X16_BANK(1)
272258   MCFG_DECO16IC_GFXDECODE("gfxdecode")
273259   MCFG_DECO16IC_PALETTE("palette")
274260
275   MCFG_DECO16IC_ADD("tilegen2", darkseal_deco16ic_tilegen2_intf)
261   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
262   MCFG_DECO16IC_SPLIT(0)
263   MCFG_DECO16IC_WIDTH12(1)
264   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
265   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
266   MCFG_DECO16IC_PF1_COL_BANK(0x00)
267   MCFG_DECO16IC_PF2_COL_BANK(0x00)
268   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
269   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
270   MCFG_DECO16IC_PF12_8X8_BANK(2)
271   MCFG_DECO16IC_PF12_16X16_BANK(3)
276272   MCFG_DECO16IC_GFXDECODE("gfxdecode")
277273   MCFG_DECO16IC_PALETTE("palette")
278274
r29437r29438
282278   MCFG_DECO_SPRITE_PALETTE("palette")
283279
284280
285
286281   /* sound hardware */
287282   MCFG_SPEAKER_STANDARD_MONO("mono")
288283
branches/new_menus/src/mame/drivers/vaportra.c
r29437r29438
196196
197197/******************************************************************************/
198198
199static int vaportra_bank_callback( const int bank )
199int vaportra_state::bank_callback( int bank )
200200{
201201   return ((bank >> 4) & 0x7) * 0x1000;
202202}
203203
204static const deco16ic_interface vaportra_deco16ic_tilegen1_intf =
205{
206   0, 1,
207   0x0f, 0x0f, /* trans masks (default values) */
208   0x00, 0x20, /* color base */
209   0x0f, 0x0f, /* color masks (default values) */
210   vaportra_bank_callback,
211   vaportra_bank_callback,
212   0,1
213};
214
215
216static const deco16ic_interface vaportra_deco16ic_tilegen2_intf =
217{
218   0, 1,
219   0x0f, 0x0f, /* trans masks (default values) */
220   0x30, 0x40, /* color base */
221   0x0f, 0x0f, /* color masks (default values) */
222   vaportra_bank_callback,
223   vaportra_bank_callback,
224   2,3
225};
226
227204void vaportra_state::machine_start()
228205{
229206   save_item(NAME(m_priority));
r29437r29438
261238   MCFG_PALETTE_ADD("palette", 1280)
262239
263240
264   MCFG_DECO16IC_ADD("tilegen1", vaportra_deco16ic_tilegen1_intf)
241   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
242   MCFG_DECO16IC_SPLIT(0)
243   MCFG_DECO16IC_WIDTH12(1)
244   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
245   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
246   MCFG_DECO16IC_PF1_COL_BANK(0x00)
247   MCFG_DECO16IC_PF2_COL_BANK(0x20)
248   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
249   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
250   MCFG_DECO16IC_BANK1_CB(vaportra_state, bank_callback)
251   MCFG_DECO16IC_BANK2_CB(vaportra_state, bank_callback)
252   MCFG_DECO16IC_PF12_8X8_BANK(0)
253   MCFG_DECO16IC_PF12_16X16_BANK(1)
265254   MCFG_DECO16IC_GFXDECODE("gfxdecode")
266255   MCFG_DECO16IC_PALETTE("palette")
267256
268   MCFG_DECO16IC_ADD("tilegen2", vaportra_deco16ic_tilegen2_intf)
257   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
258   MCFG_DECO16IC_SPLIT(0)
259   MCFG_DECO16IC_WIDTH12(1)
260   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
261   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
262   MCFG_DECO16IC_PF1_COL_BANK(0x30)
263   MCFG_DECO16IC_PF2_COL_BANK(0x40)
264   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
265   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
266   MCFG_DECO16IC_BANK1_CB(vaportra_state, bank_callback)
267   MCFG_DECO16IC_BANK2_CB(vaportra_state, bank_callback)
268   MCFG_DECO16IC_PF12_8X8_BANK(2)
269   MCFG_DECO16IC_PF12_16X16_BANK(3)
269270   MCFG_DECO16IC_GFXDECODE("gfxdecode")
270271   MCFG_DECO16IC_PALETTE("palette")
271272
Property changes on: branches/new_menus
Modified: svn:mergeinfo
   Merged /trunk:r29418-29424

Previous 199869 Revisions Next


© 1997-2024 The MAME Team