trunk/hash/pico.xml
r243756 | r243757 | |
14 | 14 | Published by Sega/Sega Toys (HPC-6*** serial codes) |
15 | 15 | |
16 | 16 | * 超光戦士 シャンゼリオン - Chou Hikari Senshi Shanzerion (Sega - 1996xxxx - HPC-6038) |
| 17 | * パケット2 ゆかいな仲間とゲームで数遊び - Paketto 2 Yukai na Nakama to Game de Kazu Asobi (Sega - ???? - HPC-6048) |
17 | 18 | * さわってみよう! よいこのはじめてキーボード - Sawattemiyou! Yoiko no Hajimete Keyboard (Sega - 199712xx - HPC-6053) |
18 | 19 | * プーさんとたのしいなかまたち - Pooh-san to Tanoshii na Kamatachi (Sega - ???? - HPC-6054) |
19 | 20 | * はじめまシリーズ5 けろけろけろっぴのハリキリうんどうかい - Hajimema Series 5 - Kerokero Keroppi no Harikiri Undoukai (Sega - 1998xxxx - HPC-6059) [reprint HPC-6006] |
r243756 | r243757 | |
44 | 45 | * ディズニープリンセス 白雪姫 ~しらゆきひめ~ <Best> - Disney Princesses - Shirayukihime Best Selection (Sega Toys - 20040426 - HPC-6139) |
45 | 46 | * 七田 眞 監修 右脳イメージトレーニング さんすう・えいごでモジャーズに挑戦 THE ARITHMETIC & ABC FIGHT VS MOJARS <Best Selection> - Shichida Makoto Kanshuu Unou Image Training Sansuu - Eigo de Mojaazu ni Chousen THE ARITHMETIC & ABC FIGHT VS MOJARS Best Selection (Sega Toys - 2004xxxx - HPC-????) |
46 | 47 | * 七田 眞 監修 右脳イメージトレーニング ひらがな・カタカナ カジノでモジャベガスドリーム <Best Selection> - Shichida Makoto Kanshuu Unou Image Training Hiragana - Katakana Kajino de Moja Vegas Dream Best Selection (Sega Toys - 2004xxxx - HPC-????) |
| 48 | * ディズニープリンセス すてきにレッスン! ひらがな・カタカナ - Disney Princess Suteki ni Ressun! Hiragana-Katakana (Sega Toys - 20041018 - HPC-6145) |
47 | 49 | |
48 | 50 | to be verified |
49 | 51 | * アンパンマンのもしもしピコ セット それいけ!アンパンマン アンパンマンとでんわであそぼう!<同梱> - Anpanman no Moshimoshi Pico Set with Soreike! Anpanman - Anpanman to Denwa de Asobou! (Sega - 199712xx - HPC-6050) [is the serial correct, or is it 6051 like reported for the single cart?] |
r243756 | r243757 | |
57 | 59 | * ウルトラマンピコ ウルトラファイティングベース - Ultraman Pico Ultraman Fighting Best (Bandai - 200009xx - T-133???) |
58 | 60 | * アンパンマンピコ わくわくパン工場 - Anpanman Pico Wakuwaku Pan Koujou (Bandai - 200106xx - T-133350) |
59 | 61 | * おジャ魔女どれみ ドッカ~ン! - Ojamajo Doremi Dokka~n! (Bandai - 200205xx - T-133410) |
| 62 | * それいけ!アンパンマンの メダリンピックワールド2 <Best Selection> - Soreike! Anpanman no Medarin Pikku World 2 Best Selection (Bandai - 20040713 - T-133460) [reprint T-133300] |
| 63 | * 特捜戦隊デカレンジャー - Tokusou Sentai Dekaranger (Bandai - 200406xx - T-133470) |
60 | 64 | * いっしょにはしろうきかんしゃトーマス <Best Selection> - Issho ni Hashirou Kikansha Thomas Best Selection (Bandai - 20040713 - T-133490) [reprint T-133140] |
61 | 65 | * 学研のおべんきょうソフト たしざん ひきざん - Gakken no Obenkyou Soft - Tashizan Hikizan (Gakken - 1995xxxx - T-169030) |
62 | 66 | * はじめまシリーズ4 学研のおべんきょうソフト たしざん ひきざん - Hajimema Series 4 - Gakken no Obenkyou Soft - Tashizan Hikizan (Gakken - 1998xxxx - T-169070) |
r243756 | r243757 | |
786 | 790 | </part> |
787 | 791 | </software> |
788 | 792 | |
789 | | <software name="princehk"> |
790 | | <description>Disney Princess Suteki ni Lesson! Hiragana-Katakana (Jpn)</description> |
791 | | <year>2004</year> |
792 | | <publisher>Sega Toys</publisher> |
793 | | <info name="serial" value="HPC-6145" /> |
794 | | <info name="release" value="20041018"/> |
795 | | <info name="alt_title" value="ディズニープリンセス すてきにレッスン! ひらがな・カタカナ"/> |
796 | | <part name="cart" interface="pico_cart"> |
797 | | <feature name="pcb" value="171-7090A" /> |
798 | | <feature name="ic1" value="EPOXY BLOCK IC1" /> |
799 | | <dataarea name="rom" size="2097152"> |
800 | | <rom name="epoxy block ic1.ic1" size="2097152" crc="761e7d3c" sha1="f7e35cb1084130b95ca5add40e263d15dc54b6a5" offset="0" loadflag="load16_word_swap" /> |
801 | | </dataarea> |
802 | | </part> |
803 | | </software> |
804 | | |
805 | 793 | <software name="ariel"> |
806 | 794 | <description>Disney Princess Ariel (Jpn)</description> |
807 | 795 | <year>2004</year> |
r243756 | r243757 | |
1202 | 1190 | </part> |
1203 | 1191 | </software> |
1204 | 1192 | |
1205 | | <software name="eccojrb" cloneof="eccojr"> |
1206 | | <description>Ecco Jr. - No fundo do mar! (Bra)</description> |
| 1193 | <software name="eccojrg" cloneof="eccojr"> |
| 1194 | <description>Ecco Jr. und die große Schatzsuche im Ozean! (Ger)</description> |
1207 | 1195 | <year>19??</year> |
1208 | 1196 | <publisher>Sega</publisher> |
1209 | 1197 | <part name="cart" interface="pico_cart"> |
1210 | | <feature name="pcb" value="171-6882A" /> |
1211 | | <feature name="ic1" value="MPR-18318-U" /> |
1212 | 1198 | <dataarea name="rom" size="524288"> |
1213 | | <rom name="mpr-18318-u.ic1" size="524288" crc="557670cf" sha1="fc8936611b4fb868838fd1ad60fba4944e4f8822" offset="0" loadflag="load16_word_swap" /> |
| 1199 | <rom name="ecco jr. und die grosse schatzsuche im ozean! (germany).bin" size="524288" crc="470af94e" sha1="f57b18e13d44eb1a1dc85701757e5cdafcf43faa" offset="000000" loadflag="load16_word_swap" /> |
1214 | 1200 | </dataarea> |
1215 | 1201 | </part> |
1216 | 1202 | </software> |
r243756 | r243757 | |
1229 | 1215 | </part> |
1230 | 1216 | </software> |
1231 | 1217 | |
1232 | | <software name="eccojrg" cloneof="eccojr"> |
1233 | | <description>Ecco Jr. und die große Schatzsuche im Ozean! (Ger)</description> |
1234 | | <year>19??</year> |
1235 | | <publisher>Sega</publisher> |
1236 | | <part name="cart" interface="pico_cart"> |
1237 | | <dataarea name="rom" size="524288"> |
1238 | | <rom name="ecco jr. und die grosse schatzsuche im ozean! (germany).bin" size="524288" crc="470af94e" sha1="f57b18e13d44eb1a1dc85701757e5cdafcf43faa" offset="000000" loadflag="load16_word_swap" /> |
1239 | | </dataarea> |
1240 | | </part> |
1241 | | </software> |
1242 | | |
1243 | 1218 | <software name="eccojrj" cloneof="eccojr"> |
1244 | 1219 | <description>Ecco Jr. and the Great Ocean Treasure Hunt! (Jpn)</description> |
1245 | 1220 | <year>1995</year> |
r243756 | r243757 | |
2419 | 2394 | </part> |
2420 | 2395 | </software> |
2421 | 2396 | |
2422 | | <software name="magiccrab" cloneof="magiccra"> |
2423 | | <description>Cores Mágicas (Bra)</description> |
2424 | | <year>1994</year> |
2425 | | <publisher>Sega</publisher> |
2426 | | <part name="cart" interface="pico_cart"> |
2427 | | <feature name="pcb" value="171-6882A" /> |
2428 | | <feature name="ic1" value="MPR-18319-T" /> |
2429 | | <dataarea name="rom" size="524288"> |
2430 | | <rom name="mpr-18319-t.ic1" size="524288" crc="81046d4d" sha1="ca2ffba211e088a9b1f0047e86013e65e2948b04" offset="000000" loadflag="load16_word_swap" /> |
2431 | | </dataarea> |
2432 | | </part> |
2433 | | </software> |
2434 | | |
2435 | 2397 | <software name="magiccraf" cloneof="magiccra"> |
2436 | 2398 | <description>Crayons Magiques (Fra)</description> |
2437 | 2399 | <year>1994</year> |
r243756 | r243757 | |
2654 | 2616 | </part> |
2655 | 2617 | </software> |
2656 | 2618 | |
2657 | | <software name="mickblstb" cloneof="mickblst" supported="no"> |
2658 | | <description>Mickey Viajando no Tempo (Bra)</description> |
2659 | | <year>1994</year> |
2660 | | <publisher>Sega</publisher> |
2661 | | <part name="cart" interface="pico_cart"> |
2662 | | <feature name="pcb" value="171-6882A" /> |
2663 | | <feature name="ic1" value="MPR-18315-T" /> |
2664 | | <dataarea name="rom" size="524288"> |
2665 | | <rom name="mpr-18315-t.ic1" size="524288" crc="a1d63b9a" sha1="b1912dd0ddd19c38cc5dfeb92e669535b2e1619f" offset="000000" loadflag="load16_word_swap" /> |
2666 | | </dataarea> |
2667 | | </part> |
2668 | | </software> |
2669 | | |
2670 | 2619 | <software name="mickblstf" cloneof="mickblst" supported="no"> |
2671 | 2620 | <description>Mickey - Fait un Voyage Eclair Dans Le Passé (Fra)</description> |
2672 | 2621 | <year>1994</year> |
r243756 | r243757 | |
3158 | 3107 | </part> |
3159 | 3108 | </software> |
3160 | 3109 | |
3161 | | <software name="paketto2"> |
3162 | | <description>Paketto 2 - Yukai na Nakama to Game de Kazu Asobi (Jpn)</description> |
3163 | | <year>199?</year> |
3164 | | <publisher>Sega</publisher> |
3165 | | <info name="serial" value="HPC-6048"/> |
3166 | | <info name="alt_title" value="パケット2 ゆかいな仲間とゲームで数遊び"/> |
3167 | | <part name="cart" interface="pico_cart"> |
3168 | | <feature name="pcb" value="171-7505A" /> |
3169 | | <feature name="ic1" value="MPR-20212 E61" /> |
3170 | | <feature name="ic2" value="315-6120" /> |
3171 | | <dataarea name="rom" size="2097152"> |
3172 | | <rom name="mpr-20212 e61.ic1" size="2097152" crc="6dd450f5" sha1="56579b02774ec28521e1b25f16debe43bc43149f" offset="000000" loadflag="load16_word_swap" /> |
3173 | | </dataarea> |
3174 | | </part> |
3175 | | </software> |
3176 | | |
3177 | 3110 | <software name="pecola"> |
3178 | 3111 | <description>Pecola no Daibouken Maboroshi no Ice Cream wo Sagase! (Jpn)</description> |
3179 | 3112 | <year>1998</year> |
r243756 | r243757 | |
4074 | 4007 | </software> |
4075 | 4008 | |
4076 | 4009 | <software name="anpanmm2"> |
4077 | | <description>Soreike! Anpanman no Medalympic World 2 (Jpn, Best Selection)</description> |
4078 | | <year>2004</year> |
4079 | | <publisher>Bandai</publisher> |
4080 | | <info name="serial" value="T-133460"/> |
4081 | | <info name="release" value="20040713"/> |
4082 | | <info name="alt_title" value="それいけ!アンパンマンのメダリンピックワールド2 (Best Selection)"/> |
4083 | | <part name="cart" interface="pico_cart"> |
4084 | | <feature name="pcb" value="171-7090A" /> |
4085 | | <feature name="ic1" value="EPOXY BLOCK IC1" /> |
4086 | | <dataarea name="rom" size="524288"> |
4087 | | <rom name="epoxy block ic1.ic1" size="524288" crc="8dab2ec3" sha1="6ee0ce5db07c4f3feba319f77f714a399176e72e" offset="0" loadflag="load16_word_swap" /> |
4088 | | </dataarea> |
4089 | | </part> |
4090 | | </software> |
4091 | | |
4092 | | <software name="anpanmm2a" cloneof="anpanmm2"> |
4093 | 4010 | <description>Soreike! Anpanman no Medalympic World 2 (Jpn)</description> |
4094 | 4011 | <year>199?</year> |
4095 | 4012 | <publisher>Bandai</publisher> |
r243756 | r243757 | |
4293 | 4210 | </part> |
4294 | 4211 | </software> |
4295 | 4212 | |
4296 | | <software name="dekrangr"> |
4297 | | <description>Tokusou Sentai Dekaranger (Jpn)</description> |
4298 | | <year>2004</year> |
4299 | | <publisher>Bandai</publisher> |
4300 | | <info name="serial" value="T-133470" /> |
4301 | | <info name="release" value="200406xx"/> |
4302 | | <info name="alt_title" value="特捜戦隊デカレンジャー"/> |
4303 | | <part name="cart" interface="pico_cart"> |
4304 | | <feature name="pcb" value="171-7090A" /> |
4305 | | <feature name="ic1" value="EPOXY BLOCK IC1" /> |
4306 | | <dataarea name="rom" size="2097152"> |
4307 | | <rom name="epoxy block ic1.ic1" size="2097152" crc="9d5067a3" sha1="79a09c334b518357d380d09350bc31f0df0ae243" offset="0" loadflag="load16_word_swap" /> |
4308 | | </dataarea> |
4309 | | </part> |
4310 | | </software> |
4311 | | |
4312 | 4213 | <!-- The game was re-released in 2003 for the Pico 10th Anniversary. The ROM content is the same, but the PCB is different. --> |
4313 | 4214 | <software name="tokyodtt"> |
4314 | 4215 | <description>Tokyo Disneyland Toon Town - Mickey no Boku wa Untenshu (Jpn)</description> |
r243756 | r243757 | |
4561 | 4462 | </software> |
4562 | 4463 | |
4563 | 4464 | <software name="yukaimp"> |
4564 | | <description>Yukai na Mori no Paketto (Jpn)</description> |
| 4465 | <description>Yukai na Mori no Packet (Jpn)</description> |
4565 | 4466 | <year>1995</year> |
4566 | 4467 | <publisher>Sega</publisher> |
4567 | 4468 | <info name="serial" value="HPC-6034"/> |
trunk/src/emu/bus/cpc/smartwatch.c
r243756 | r243757 | |
1 | | /* |
2 | | Dobbertin Smartwatch |
3 | | |
4 | | Created: 23/2/2015 |
5 | | |
6 | | TODO: setting the time (requires the DS1315 core to be able to do this, |
7 | | at the moment it just reads the current time) |
8 | | */ |
9 | | |
10 | | #include "emu.h" |
11 | | #include "smartwatch.h" |
12 | | #include "includes/amstrad.h" |
13 | | |
14 | | |
15 | | //************************************************************************** |
16 | | // DEVICE DEFINITIONS |
17 | | //************************************************************************** |
18 | | |
19 | | const device_type CPC_SMARTWATCH = &device_creator<cpc_smartwatch_device>; |
20 | | |
21 | | |
22 | | static MACHINE_CONFIG_FRAGMENT( cpc_smartwatch ) |
23 | | MCFG_DS1315_ADD("rtc") |
24 | | // no pass-through (?) |
25 | | MACHINE_CONFIG_END |
26 | | |
27 | | machine_config_constructor cpc_smartwatch_device::device_mconfig_additions() const |
28 | | { |
29 | | return MACHINE_CONFIG_NAME( cpc_smartwatch ); |
30 | | } |
31 | | |
32 | | ROM_START( cpc_smartwatch ) |
33 | | ROM_REGION( 0x4000, "exp_rom", 0 ) |
34 | | ROM_LOAD( "timerom+.rom", 0x0000, 0x4000, CRC(ed42a147) SHA1(61750d0535a1fbf2a4addad9def332cbcf8917c3) ) |
35 | | ROM_END |
36 | | |
37 | | const rom_entry *cpc_smartwatch_device::device_rom_region() const |
38 | | { |
39 | | return ROM_NAME( cpc_smartwatch ); |
40 | | } |
41 | | |
42 | | //************************************************************************** |
43 | | // LIVE DEVICE |
44 | | //************************************************************************** |
45 | | |
46 | | cpc_smartwatch_device::cpc_smartwatch_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : |
47 | | device_t(mconfig, CPC_SMARTWATCH, "Dobbertin Smartwatch", tag, owner, clock, "cpc_smartwatch", __FILE__), |
48 | | device_cpc_expansion_card_interface(mconfig, *this), |
49 | | m_rtc(*this,"rtc") |
50 | | { |
51 | | } |
52 | | |
53 | | //------------------------------------------------- |
54 | | // device_start - device-specific startup |
55 | | //------------------------------------------------- |
56 | | |
57 | | void cpc_smartwatch_device::device_start() |
58 | | { |
59 | | m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner()); |
60 | | } |
61 | | |
62 | | //------------------------------------------------- |
63 | | // device_reset - device-specific reset |
64 | | //------------------------------------------------- |
65 | | |
66 | | void cpc_smartwatch_device::device_reset() |
67 | | { |
68 | | device_t* cpu = machine().device(":maincpu"); |
69 | | address_space& space = cpu->memory().space(AS_PROGRAM); |
70 | | space.install_read_handler(0xc000,0xc001,0,0,read8_delegate(FUNC(cpc_smartwatch_device::rtc_w),this)); |
71 | | space.install_read_handler(0xc004,0xc004,0,0,read8_delegate(FUNC(cpc_smartwatch_device::rtc_r),this)); |
72 | | m_bank = membank(":bank7"); |
73 | | } |
74 | | |
75 | | READ8_MEMBER(cpc_smartwatch_device::rtc_w) |
76 | | { |
77 | | UINT8* bank = (UINT8*)m_bank->base(); |
78 | | if(offset & 1) |
79 | | m_rtc->read_1(space,0); |
80 | | else |
81 | | m_rtc->read_0(space,0); |
82 | | return bank[offset & 1]; |
83 | | } |
84 | | |
85 | | READ8_MEMBER(cpc_smartwatch_device::rtc_r) |
86 | | { |
87 | | UINT8* bank = (UINT8*)m_bank->base(); |
88 | | return ((bank[(offset & 1)+4]) & 0xfe) | (m_rtc->read_data(space,0) & 0x01); |
89 | | } |
trunk/src/emu/render.c
r243756 | r243757 | |
202 | 202 | } |
203 | 203 | |
204 | 204 | //************************************************************************** |
| 205 | // render_texinfo |
| 206 | //************************************************************************** |
| 207 | |
| 208 | render_texinfo &render_texinfo::operator=(const render_texinfo &src) |
| 209 | { |
| 210 | free_palette(); |
| 211 | base = src.base; |
| 212 | rowpixels = src.rowpixels; |
| 213 | width = src.width; |
| 214 | height = src.height; |
| 215 | seqid = src.seqid; |
| 216 | osddata = src.osddata; |
| 217 | m_palette = src.m_palette; |
| 218 | if (m_palette != NULL) |
| 219 | { |
| 220 | m_palette->ref_count++; |
| 221 | } |
| 222 | return *this; |
| 223 | } |
| 224 | |
| 225 | render_texinfo::render_texinfo(const render_texinfo &src) |
| 226 | { |
| 227 | base = src.base; |
| 228 | rowpixels = src.rowpixels; |
| 229 | width = src.width; |
| 230 | height = src.height; |
| 231 | seqid = src.seqid; |
| 232 | osddata = src.osddata; |
| 233 | m_palette = src.m_palette; |
| 234 | if (m_palette != NULL) |
| 235 | { |
| 236 | m_palette->ref_count++; |
| 237 | } |
| 238 | } |
| 239 | |
| 240 | void render_texinfo::set_palette(const dynamic_array<rgb_t> *source) |
| 241 | { |
| 242 | free_palette(); |
| 243 | if (source != NULL) |
| 244 | { |
| 245 | m_palette = global_alloc(render_palette_copy); |
| 246 | m_palette->palette.copyfrom(*source); |
| 247 | m_palette->ref_count = 1; |
| 248 | } |
| 249 | else |
| 250 | { |
| 251 | m_palette = NULL; |
| 252 | } |
| 253 | } |
| 254 | |
| 255 | void render_texinfo::free_palette() |
| 256 | { |
| 257 | if (m_palette != NULL) |
| 258 | { |
| 259 | m_palette->ref_count--; |
| 260 | if (m_palette->ref_count == 0) |
| 261 | { |
| 262 | global_free(m_palette); |
| 263 | } |
| 264 | } |
| 265 | m_palette = NULL; |
| 266 | } |
| 267 | |
| 268 | |
| 269 | //************************************************************************** |
205 | 270 | // RENDER PRIMITIVE |
206 | 271 | //************************************************************************** |
207 | 272 | |
r243756 | r243757 | |
212 | 277 | |
213 | 278 | void render_primitive::reset() |
214 | 279 | { |
| 280 | // public state |
| 281 | type = INVALID; |
| 282 | container = NULL; |
| 283 | bounds.x0 = 0; |
| 284 | bounds.y0 = 0; |
| 285 | bounds.x1 = 0; |
| 286 | bounds.y1 = 0; |
| 287 | color.a = 0; |
| 288 | color.r = 0; |
| 289 | color.g = 0; |
| 290 | color.b = 0; |
| 291 | flags = 0; |
| 292 | width = 0.0f; |
| 293 | texture.set_palette(NULL); |
| 294 | texture = render_texinfo(); |
| 295 | texcoords.bl.u = 0.0f; |
| 296 | texcoords.bl.v = 0.0f; |
| 297 | texcoords.br.u = 0.0f; |
| 298 | texcoords.br.v = 0.0f; |
| 299 | texcoords.tl.u = 0.0f; |
| 300 | texcoords.tl.v = 0.0f; |
| 301 | texcoords.tr.u = 0.0f; |
| 302 | texcoords.tr.v = 0.0f; |
| 303 | |
215 | 304 | // do not clear m_next! |
216 | | memset(&type, 0, FPTR(&texcoords + 1) - FPTR(&type)); |
| 305 | // memset(&type, 0, FPTR(&texcoords + 1) - FPTR(&type)); |
217 | 306 | } |
218 | 307 | |
219 | 308 | |
r243756 | r243757 | |
467 | 556 | texinfo.rowpixels = m_bitmap->rowpixels(); |
468 | 557 | texinfo.width = swidth; |
469 | 558 | texinfo.height = sheight; |
470 | | // palette will be set later |
| 559 | // will be set later |
| 560 | texinfo.set_palette(NULL); |
471 | 561 | texinfo.seqid = ++m_curseq; |
472 | 562 | } |
473 | 563 | else |
r243756 | r243757 | |
521 | 611 | texinfo.rowpixels = scaled->bitmap->rowpixels(); |
522 | 612 | texinfo.width = dwidth; |
523 | 613 | texinfo.height = dheight; |
524 | | // palette will be set later |
| 614 | // will be set later |
| 615 | texinfo.set_palette(NULL); |
525 | 616 | texinfo.seqid = scaled->seqid; |
526 | 617 | } |
527 | 618 | } |
r243756 | r243757 | |
532 | 623 | // palette for a texture |
533 | 624 | //------------------------------------------------- |
534 | 625 | |
535 | | const rgb_t *render_texture::get_adjusted_palette(render_container &container) |
| 626 | const dynamic_array<rgb_t> *render_texture::get_adjusted_palette(render_container &container) |
536 | 627 | { |
537 | 628 | // override the palette with our adjusted palette |
538 | 629 | switch (m_format) |
r243756 | r243757 | |
542 | 633 | |
543 | 634 | assert(m_bitmap->palette() != NULL); |
544 | 635 | |
545 | | // return our adjusted palette |
| 636 | // if no adjustment necessary, return the raw palette |
| 637 | if (!container.has_brightness_contrast_gamma_changes()) |
| 638 | return m_bitmap->palette()->entry_list_adjusted_darray(); |
| 639 | |
| 640 | // otherwise, return our adjusted palette |
546 | 641 | return container.bcg_lookup_table(m_format, m_bitmap->palette()); |
547 | 642 | |
548 | 643 | case TEXFORMAT_RGB32: |
r243756 | r243757 | |
576 | 671 | m_manager(manager), |
577 | 672 | m_screen(screen), |
578 | 673 | m_overlaybitmap(NULL), |
579 | | m_overlaytexture(NULL) |
| 674 | m_overlaytexture(NULL), |
| 675 | m_bcglookup256(0x400) |
580 | 676 | { |
581 | 677 | // make sure it is empty |
582 | 678 | empty(); |
r243756 | r243757 | |
589 | 685 | m_user.m_brightness = manager.machine().options().brightness(); |
590 | 686 | m_user.m_contrast = manager.machine().options().contrast(); |
591 | 687 | m_user.m_gamma = manager.machine().options().gamma(); |
592 | | // palette client will be allocated later |
| 688 | // can't allocate palette client yet since palette and screen devices aren't started yet |
593 | 689 | } |
594 | 690 | |
595 | 691 | recompute_lookups(); |
r243756 | r243757 | |
716 | 812 | // given texture mode |
717 | 813 | //------------------------------------------------- |
718 | 814 | |
719 | | const rgb_t *render_container::bcg_lookup_table(int texformat, palette_t *palette) |
| 815 | const dynamic_array<rgb_t> *render_container::bcg_lookup_table(int texformat, palette_t *palette) |
720 | 816 | { |
721 | 817 | switch (texformat) |
722 | 818 | { |
r243756 | r243757 | |
724 | 820 | case TEXFORMAT_PALETTEA16: |
725 | 821 | if (m_palclient == NULL) // if adjusted palette hasn't been created yet, create it |
726 | 822 | { |
| 823 | assert(palette == m_screen->palette()->palette()); |
727 | 824 | m_palclient.reset(global_alloc(palette_client(*palette))); |
728 | 825 | m_bcglookup.resize(palette->max_index()); |
729 | 826 | recompute_lookups(); |
730 | 827 | } |
731 | 828 | assert (palette == &m_palclient->palette()); |
732 | | return m_bcglookup; |
| 829 | return &m_bcglookup; |
733 | 830 | |
734 | 831 | case TEXFORMAT_RGB32: |
735 | 832 | case TEXFORMAT_ARGB32: |
736 | 833 | case TEXFORMAT_YUY16: |
737 | | return m_bcglookup256; |
| 834 | return &m_bcglookup256; |
738 | 835 | |
739 | 836 | default: |
740 | 837 | return NULL; |
r243756 | r243757 | |
819 | 916 | const rgb_t *adjusted_palette = palette.entry_list_adjusted(); |
820 | 917 | int colors = palette.max_index(); |
821 | 918 | |
822 | | if (has_brightness_contrast_gamma_changes()) |
| 919 | for (int i = 0; i < colors; i++) |
823 | 920 | { |
824 | | for (int i = 0; i < colors; i++) |
825 | | { |
826 | | rgb_t newval = adjusted_palette[i]; |
827 | | m_bcglookup[i] = (newval & 0xff000000) | |
| 921 | rgb_t newval = adjusted_palette[i]; |
| 922 | m_bcglookup[i] = (newval & 0xff000000) | |
828 | 923 | m_bcglookup256[0x200 + newval.r()] | |
829 | 924 | m_bcglookup256[0x100 + newval.g()] | |
830 | 925 | m_bcglookup256[0x000 + newval.b()]; |
831 | | } |
832 | 926 | } |
833 | | else |
834 | | memcpy(&m_bcglookup[0], adjusted_palette, colors * sizeof(rgb_t)); |
835 | 927 | } |
836 | 928 | } |
837 | 929 | |
r243756 | r243757 | |
857 | 949 | palette_t &palette = m_palclient->palette(); |
858 | 950 | const rgb_t *adjusted_palette = palette.entry_list_adjusted(); |
859 | 951 | |
860 | | if (has_brightness_contrast_gamma_changes()) |
| 952 | // loop over chunks of 32 entries, since we can quickly examine 32 at a time |
| 953 | for (UINT32 entry32 = mindirty / 32; entry32 <= maxdirty / 32; entry32++) |
861 | 954 | { |
862 | | // loop over chunks of 32 entries, since we can quickly examine 32 at a time |
863 | | for (UINT32 entry32 = mindirty / 32; entry32 <= maxdirty / 32; entry32++) |
864 | | { |
865 | | UINT32 dirtybits = dirty[entry32]; |
866 | | if (dirtybits != 0) |
| 955 | UINT32 dirtybits = dirty[entry32]; |
| 956 | if (dirtybits != 0) |
867 | 957 | |
868 | | // this chunk of 32 has dirty entries; fix them up |
869 | | for (UINT32 entry = 0; entry < 32; entry++) |
870 | | if (dirtybits & (1 << entry)) |
871 | | { |
872 | | UINT32 finalentry = entry32 * 32 + entry; |
873 | | rgb_t newval = adjusted_palette[finalentry]; |
874 | | m_bcglookup[finalentry] = (newval & 0xff000000) | |
| 958 | // this chunk of 32 has dirty entries; fix them up |
| 959 | for (UINT32 entry = 0; entry < 32; entry++) |
| 960 | if (dirtybits & (1 << entry)) |
| 961 | { |
| 962 | UINT32 finalentry = entry32 * 32 + entry; |
| 963 | rgb_t newval = adjusted_palette[finalentry]; |
| 964 | m_bcglookup[finalentry] = (newval & 0xff000000) | |
875 | 965 | m_bcglookup256[0x200 + newval.r()] | |
876 | 966 | m_bcglookup256[0x100 + newval.g()] | |
877 | 967 | m_bcglookup256[0x000 + newval.b()]; |
878 | | } |
879 | | } |
| 968 | } |
880 | 969 | } |
881 | | else |
882 | | memcpy(&m_bcglookup[mindirty], &adjusted_palette[mindirty], (maxdirty - mindirty + 1) * sizeof(rgb_t)); |
883 | 970 | } |
884 | 971 | } |
885 | 972 | |
r243756 | r243757 | |
1734 | 1821 | height = MIN(height, m_maxtexheight); |
1735 | 1822 | |
1736 | 1823 | curitem->texture()->get_scaled(width, height, prim->texture, list); |
1737 | | |
1738 | 1824 | // set the palette |
| 1825 | #if 1 |
| 1826 | const dynamic_array<rgb_t> *adjusted_pal = curitem->texture()->get_adjusted_palette(container); |
| 1827 | prim->texture.set_palette(adjusted_pal); |
| 1828 | #else |
1739 | 1829 | prim->texture.palette = curitem->texture()->get_adjusted_palette(container); |
| 1830 | #endif |
1740 | 1831 | |
1741 | 1832 | // determine UV coordinates and apply clipping |
1742 | 1833 | prim->texcoords = oriented_texcoords[finalorient]; |
trunk/src/emu/rendersw.inc
r243756 | r243757 | |
130 | 130 | |
131 | 131 | static inline UINT32 get_texel_palette16(const render_texinfo &texture, INT32 curu, INT32 curv) |
132 | 132 | { |
133 | | const rgb_t *palbase = texture.palette; |
| 133 | const rgb_t *palbase = texture.palette(); |
134 | 134 | if (_BilinearFilter) |
135 | 135 | { |
136 | 136 | INT32 u0 = curu >> 16; |
r243756 | r243757 | |
166 | 166 | |
167 | 167 | static inline UINT32 get_texel_palette16a(const render_texinfo &texture, INT32 curu, INT32 curv) |
168 | 168 | { |
169 | | const rgb_t *palbase = texture.palette; |
| 169 | const rgb_t *palbase = texture.palette(); |
170 | 170 | if (_BilinearFilter) |
171 | 171 | { |
172 | 172 | INT32 u0 = curu >> 16; |
r243756 | r243757 | |
622 | 622 | INT32 endx = setup.endx; |
623 | 623 | |
624 | 624 | // ensure all parameters are valid |
625 | | assert(prim.texture.palette != NULL); |
| 625 | assert(prim.texture.palette() != NULL); |
626 | 626 | |
627 | 627 | // fast case: no coloring, no alpha |
628 | 628 | if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a)) |
r243756 | r243757 | |
730 | 730 | INT32 endx = setup.endx; |
731 | 731 | |
732 | 732 | // ensure all parameters are valid |
733 | | assert(prim.texture.palette != NULL); |
| 733 | assert(prim.texture.palette() != NULL); |
734 | 734 | |
735 | 735 | // fast case: no coloring, no alpha |
736 | 736 | if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a)) |
r243756 | r243757 | |
823 | 823 | INT32 endx = setup.endx; |
824 | 824 | |
825 | 825 | // ensure all parameters are valid |
826 | | assert(prim.texture.palette != NULL); |
| 826 | assert(prim.texture.palette() != NULL); |
827 | 827 | |
828 | 828 | // fast case: no coloring, no alpha |
829 | 829 | if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a)) |
r243756 | r243757 | |
914 | 914 | |
915 | 915 | static void draw_quad_yuy16_none(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) |
916 | 916 | { |
917 | | const rgb_t *palbase = prim.texture.palette; |
| 917 | const rgb_t *palbase = prim.texture.palette(); |
918 | 918 | INT32 dudx = setup.dudx; |
919 | 919 | INT32 dvdx = setup.dvdx; |
920 | 920 | INT32 endx = setup.endx; |
r243756 | r243757 | |
1084 | 1084 | |
1085 | 1085 | static void draw_quad_rgb32(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) |
1086 | 1086 | { |
1087 | | const rgb_t *palbase = prim.texture.palette; |
| 1087 | const rgb_t *palbase = prim.texture.palette(); |
1088 | 1088 | INT32 dudx = setup.dudx; |
1089 | 1089 | INT32 dvdx = setup.dvdx; |
1090 | 1090 | INT32 endx = setup.endx; |
r243756 | r243757 | |
1254 | 1254 | |
1255 | 1255 | static void draw_quad_rgb32_add(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) |
1256 | 1256 | { |
1257 | | const rgb_t *palbase = prim.texture.palette; |
| 1257 | const rgb_t *palbase = prim.texture.palette(); |
1258 | 1258 | INT32 dudx = setup.dudx; |
1259 | 1259 | INT32 dvdx = setup.dvdx; |
1260 | 1260 | INT32 endx = setup.endx; |
r243756 | r243757 | |
1392 | 1392 | |
1393 | 1393 | static void draw_quad_argb32_alpha(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) |
1394 | 1394 | { |
1395 | | const rgb_t *palbase = prim.texture.palette; |
| 1395 | const rgb_t *palbase = prim.texture.palette(); |
1396 | 1396 | INT32 dudx = setup.dudx; |
1397 | 1397 | INT32 dvdx = setup.dvdx; |
1398 | 1398 | INT32 endx = setup.endx; |
r243756 | r243757 | |
1538 | 1538 | |
1539 | 1539 | static void draw_quad_argb32_multiply(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) |
1540 | 1540 | { |
1541 | | const rgb_t *palbase = prim.texture.palette; |
| 1541 | const rgb_t *palbase = prim.texture.palette(); |
1542 | 1542 | INT32 dudx = setup.dudx; |
1543 | 1543 | INT32 dvdx = setup.dvdx; |
1544 | 1544 | INT32 endx = setup.endx; |
r243756 | r243757 | |
1657 | 1657 | |
1658 | 1658 | static void draw_quad_argb32_add(const render_primitive &prim, _PixelType *dstdata, UINT32 pitch, quad_setup_data &setup) |
1659 | 1659 | { |
1660 | | const rgb_t *palbase = prim.texture.palette; |
| 1660 | const rgb_t *palbase = prim.texture.palette(); |
1661 | 1661 | INT32 dudx = setup.dudx; |
1662 | 1662 | INT32 dvdx = setup.dvdx; |
1663 | 1663 | INT32 endx = setup.endx; |
trunk/src/mame/drivers/chihiro.c
r243756 | r243757 | |
21 | 21 | |*| 2004 | Sega Network Taisen Mahjong MJ 2 (Rev C) | Sega | GDROM | GDX-0006C | | |
22 | 22 | | | 2004 | Sega Network Taisen Mahjong MJ 2 (Rev D) | Sega | GDROM | GDX-0006D | | |
23 | 23 | | | 2005 | Sega Network Taisen Mahjong MJ 2 (Rev E) | Sega | GDROM | GDX-0006E | | |
24 | | |*| 2005 | Sega Network Taisen Mahjong MJ 2 (Rev F) | Sega | GDROM | GDX-0006F | | |
| 24 | | | 2005 | Sega Network Taisen Mahjong MJ 2 (Rev F) | Sega | GDROM | GDX-0006F | | |
25 | 25 | |*| 2005 | Sega Network Taisen Mahjong MJ 2 (Rev G) | Sega | GDROM | GDX-0006G | 317-0374-JPN | |
26 | 26 | |*| 2004 | Ollie King | Sega / Amusement Vision | GDROM | GDX-0007 | 317-0377-COM | |
27 | 27 | | | 2004 | Wangan Midnight Maximum Tune (Japan) | Namco | GDROM | GDX-0008 | 317-5101-JPN | |
r243756 | r243757 | |
31 | 31 | | | 2004 | Wangan Midnight Maximum Tune (Export) (Rev A) | Namco | GDROM | GDX-0009A | 317-5101-COM | |
32 | 32 | |*| 2004 | Wangan Midnight Maximum Tune (Export) (Rev B) | Namco | GDROM | GDX-0009B | 317-5101-COM | |
33 | 33 | | | 2004 | Outrun 2 SP (Japan) | Sega | GDROM | GDX-0011 | | |
34 | | |*| 2004 | Ghost Squad | Sega | GDROM | GDX-0012 | 317-0398-COM | |
| 34 | | | 2004 | Ghost Squad | Sega | GDROM | GDX-0012 | 317-0398-COM | |
35 | 35 | |*| 2004 | Ghost Squad (Rev A) | Sega | GDROM | GDX-0012A | 317-0398-COM | |
36 | 36 | |*| 2005 | Gundam Battle Operating Simulator | Banpresto | GDROM | GDX-0013 | 317-0400-JPN | |
37 | 37 | | | 2004 | Outrun 2 Special Tours | Sega | GDROM | GDX-0014 | 317-0xxx-COM | |
r243756 | r243757 | |
1906 | 1906 | PIC |
1907 | 1907 | 253-5508-0348 |
1908 | 1908 | 317-0348-com |
| 1909 | BFN.BIN |
| 1910 | a8 0b f8 f2 b9 20 b9 97 |
1909 | 1911 | */ |
1910 | 1912 | ROM_START( hotd3 ) |
1911 | 1913 | CHIHIRO_BIOS |
r243756 | r243757 | |
1965 | 1967 | |
1966 | 1968 | PIC |
1967 | 1969 | 255-5508-354 |
1968 | | 317-0354-COM |
| 1970 | 317-054-COM |
1969 | 1971 | */ |
1970 | 1972 | ROM_START( vcop3 ) |
1971 | 1973 | CHIHIRO_BIOS |
r243756 | r243757 | |
1981 | 1983 | CHIHIRO_BIOS |
1982 | 1984 | |
1983 | 1985 | DISK_REGION( "gdrom" ) |
1984 | | DISK_IMAGE_READONLY( "gdx-0004a", 0, SHA1(055a13a5dc4f54e6b6bdf5ce29dbda14cc9741d7) ) |
| 1986 | DISK_IMAGE_READONLY( "gdx-0004a", 0, BAD_DUMP SHA1(27acd2d0680e6bafa0d052f60b4372adc37224fd) ) |
1985 | 1987 | |
1986 | 1988 | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) |
1987 | 1989 | ROM_LOAD("317-0372-com.data", 0x00, 0x50, CRC(a15c9666) SHA1(fd36c524744acb33e579ccb257c71375a5d3af67) ) |
r243756 | r243757 | |
1997 | 1999 | ROM_LOAD("317-0374-jpn.data", 0x00, 0x50, NO_DUMP ) |
1998 | 2000 | ROM_END |
1999 | 2001 | |
2000 | | ROM_START( mj2f ) |
2001 | | CHIHIRO_BIOS |
2002 | | |
2003 | | DISK_REGION( "gdrom" ) |
2004 | | DISK_IMAGE_READONLY( "gdx-0006f", 0, SHA1(d3900ca5135f9001e642c78b4d323d353880b41b) ) |
2005 | | |
2006 | | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) // key was missing |
2007 | | ROM_LOAD("317-0374-jpn.data", 0x00, 0x50, NO_DUMP ) |
2008 | | ROM_END |
2009 | | |
2010 | 2002 | /* |
2011 | 2003 | Title MJ2 |
2012 | 2004 | Media ID 3580 |
r243756 | r243757 | |
2047 | 2039 | CHIHIRO_BIOS |
2048 | 2040 | |
2049 | 2041 | DISK_REGION( "gdrom" ) |
2050 | | DISK_IMAGE_READONLY( "gdx-0009b", 0, SHA1(6fcbebb95b53eaabbc5da6ee08fbe15c2922b8d4) ) |
| 2042 | DISK_IMAGE_READONLY( "gdx-0009b", 0, BAD_DUMP SHA1(e032b9fd8d5d09255592f02f7531a608e8179c9c) ) |
2051 | 2043 | |
2052 | 2044 | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) |
2053 | 2045 | ROM_LOAD("317-5101-com.data", 0x00, 0x50, CRC(3af801f3) SHA1(e9a2558930f3f1f55d5b3c2cadad69329d931f26) ) |
2054 | 2046 | ROM_END |
2055 | 2047 | |
2056 | | ROM_START( ghostsqo ) |
2057 | | CHIHIRO_BIOS |
2058 | | |
2059 | | DISK_REGION( "gdrom" ) |
2060 | | DISK_IMAGE_READONLY( "gdx-0012", 0, SHA1(ad5d08cc3b8cfd0890feb152670b429c28659512) ) |
2061 | | |
2062 | | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) |
2063 | | ROM_LOAD("317-0398-com.data", 0x00, 0x50, CRC(8c5391a2) SHA1(e64cadeb30c94c3cd4002630cd79cc76c7bde2ed) ) |
2064 | | ROM_END |
2065 | | |
2066 | 2048 | /* |
2067 | 2049 | Title GHOST SQUAD |
2068 | 2050 | Media ID 004F |
r243756 | r243757 | |
2174 | 2156 | track01.bin 150 8740 20206032 |
2175 | 2157 | track02.raw 8891 10242 3179904 |
2176 | 2158 | track03.bin 45150 549299 1185760800 |
| 2159 | |
| 2160 | PIC16C621A () |
| 2161 | Sticker: 235-5508-0567 |
| 2162 | VER0001, TEST_OK, BRN.BIN, '70 1F 71 1F' D96446469BDCE9C1 |
2177 | 2163 | */ |
2178 | 2164 | ROM_START( ccfboxa ) |
2179 | 2165 | CHIHIRO_BIOS |
r243756 | r243757 | |
2181 | 2167 | DISK_REGION( "gdrom" ) |
2182 | 2168 | DISK_IMAGE_READONLY( "gdx-0024a", 0, SHA1(79d8c0faeec7cf6882f014760b8af938800b7e52) ) |
2183 | 2169 | |
2184 | | ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) |
2185 | | //PIC16C621A (317-0567-EXP) |
2186 | | //(sticker 253-5508-0567) |
2187 | | ROM_LOAD("317-0567-exp.pic", 0x00, 0x4000, CRC(cd1d2b2d) SHA1(78203ee0339f76eb76da08d7de43e7e44e4b7d32) ) |
| 2170 | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) |
| 2171 | ROM_LOAD("317-0567-exp.data", 0x00, 0x50, NO_DUMP ) |
2188 | 2172 | ROM_END |
2189 | 2173 | |
2190 | 2174 | |
r243756 | r243757 | |
2207 | 2191 | /* 0006C */ GAME( 2004, mj2c, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev C) (GDX-0006C)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2208 | 2192 | // 0006D GAME( 2004, mj2d, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev D) (GDX-0006D)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2209 | 2193 | // 0006E GAME( 2004, mj2e, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev E) (GDX-0006E)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2210 | | /* 0006F */ GAME( 2004, mj2f, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 2194 | // 0006F GAME( 2004, mj2f, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2211 | 2195 | /* 0006G */ GAME( 2004, mj2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev G) (GDX-0006G)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2212 | 2196 | /* 0007 */ GAME( 2004, ollie, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Amusement Vision", "Ollie King (GDX-0007)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2213 | 2197 | // 0008 GAME( 2004, wangmdjo, wangmidj, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (GDX-0008)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
r243756 | r243757 | |
2218 | 2202 | /* 0009B */ GAME( 2004, wangmid, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (Rev B) (GDX-0009B)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2219 | 2203 | // 0010 |
2220 | 2204 | // 0011 GAME( 2004, outr2sp, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Out Run 2 SP (Japan) (GDX-0011)", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_SUPPORTS_SAVE ) |
2221 | | /* 0012 */ GAME( 2004, ghostsqo, ghostsqu, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (GDX-0012)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 2205 | // 0012 GAME( 2004, ghostsqo, ghostsqu, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (GDX-0012)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2222 | 2206 | /* 0012A */ GAME( 2004, ghostsqu, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (Rev A) (GDX-0012A)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2223 | 2207 | /* 0013 */ GAME( 2005, gundamos, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Gundam Battle Operating Simulator (GDX-0013)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2224 | 2208 | // 0014 GAME( 2004, outr2sto, outr2st, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Out Run 2 Special Tours (GDX-0014)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
trunk/src/mame/drivers/namcos2.c
r243756 | r243757 | |
5565 | 5565 | GAMEL(1990, finalap2, 0, finallap, finallap, namcos2_state, finalap2, ROT0, "Namco", "Final Lap 2", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap ) |
5566 | 5566 | GAMEL(1990, finalap2j, finalap2, finallap, finallap, namcos2_state, finalap2, ROT0, "Namco", "Final Lap 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap ) |
5567 | 5567 | |
5568 | | GAME( 1990, gollygho, 0, gollygho, gollygho, namcos2_state, gollygho, ROT180, "Namco", "Golly! Ghost!", GAME_REQUIRES_ARTWORK ) |
| 5568 | GAME( 1990, gollygho, 0, gollygho, gollygho, namcos2_state, gollygho, ROT180, "Namco", "Golly! Ghost!", 0 ) |
5569 | 5569 | |
5570 | 5570 | GAME( 1990, rthun2, 0, default3, default, namcos2_state, rthun2, ROT0, "Namco", "Rolling Thunder 2", 0 ) |
5571 | 5571 | GAME( 1990, rthun2j, rthun2, default3, default, namcos2_state, rthun2j, ROT0, "Namco", "Rolling Thunder 2 (Japan)", 0 ) |
r243756 | r243757 | |
5579 | 5579 | GAME( 1991, cosmogng, 0, default, default, namcos2_state, cosmogng, ROT90, "Namco", "Cosmo Gang the Video (US)", 0 ) |
5580 | 5580 | GAME( 1991, cosmogngj, cosmogng, default, default, namcos2_state, cosmogng, ROT90, "Namco", "Cosmo Gang the Video (Japan)", 0 ) |
5581 | 5581 | |
5582 | | GAME( 1992, bubbletr, 0, gollygho, bubbletr, namcos2_state, bubbletr, ROT180, "Namco", "Bubble Trouble (Japan, Rev C)", GAME_REQUIRES_ARTWORK ) |
| 5582 | GAME( 1992, bubbletr, 0, gollygho, bubbletr, namcos2_state, bubbletr, ROT180, "Namco", "Bubble Trouble (Japan, Rev C)", GAME_IMPERFECT_GRAPHICS ) /* missing external artwork */ |
5583 | 5583 | |
5584 | 5584 | GAMEL(1992, finalap3, 0, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (World, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap ) |
5585 | 5585 | GAMEL(1992, finalap3a, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (World, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap ) |
r243756 | r243757 | |
5590 | 5590 | GAME( 1992, luckywld, 0, luckywld, luckywld, namcos2_state, luckywld, ROT0, "Namco", "Lucky & Wild", 0 ) |
5591 | 5591 | GAME( 1992, luckywldj, luckywld, luckywld, luckywld, namcos2_state, luckywld, ROT0, "Namco", "Lucky & Wild (Japan)", 0 ) |
5592 | 5592 | |
5593 | | GAME( 1992, suzuka8h, 0, luckywld, suzuka, namcos2_state, suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (World, Rev C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 5593 | GAME( 1992, suzuka8h, 0, luckywld, suzuka, namcos2_state, suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (World, Rev C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND) |
5594 | 5594 | GAME( 1992, suzuka8hj, suzuka8h, luckywld, suzuka, namcos2_state, suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (Japan, Rev B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
5595 | 5595 | |
5596 | 5596 | GAME( 1992, sws, 0, default, default, namcos2_state, sws, ROT0, "Namco", "Super World Stadium (Japan)", 0 ) |
trunk/src/mame/drivers/opwolf.c
r243756 | r243757 | |
551 | 551 | static INPUT_PORTS_START( opwolf ) |
552 | 552 | /* 0x380000 -> 0x0ff028 (-$fd8,A5) (C-chip) */ |
553 | 553 | PORT_START("DSWA") |
554 | | PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:1" ) |
555 | | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:2") |
| 554 | PORT_DIPUNUSED( 0x01, IP_ACTIVE_LOW ) |
| 555 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) ) |
556 | 556 | PORT_DIPSETTING( 0x02, DEF_STR( No ) ) |
557 | 557 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
558 | | PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:3") |
559 | | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4") |
560 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ |
561 | | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
562 | | TAITO_COINAGE_WORLD_LOC(SW1) |
| 558 | TAITO_DSWA_BITS_2_TO_3 |
| 559 | TAITO_COINAGE_WORLD |
563 | 560 | |
564 | 561 | /* 0x380002 -> 0x0ff02a (-$fd6,A5) (C-chip) */ |
565 | 562 | PORT_START("DSWB") |
566 | | TAITO_DIFFICULTY_LOC(SW2) |
567 | | PORT_DIPNAME( 0x0c, 0x0c, "Ammo Magazines at Start" ) PORT_DIPLOCATION("SW2:3,4") |
| 563 | TAITO_DIFFICULTY |
| 564 | PORT_DIPNAME( 0x0c, 0x0c, "Ammo Magazines at Start" ) |
568 | 565 | PORT_DIPSETTING( 0x00, "4" ) |
569 | 566 | PORT_DIPSETTING( 0x04, "5" ) |
570 | 567 | PORT_DIPSETTING( 0x0c, "6" ) |
571 | 568 | PORT_DIPSETTING( 0x08, "7" ) |
572 | | PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) |
573 | | PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) |
574 | | PORT_DIPNAME( 0x40, 0x00, "Discount When Continuing" ) PORT_DIPLOCATION("SW2:7") |
575 | | PORT_DIPSETTING( 0x40, DEF_STR( No ) ) |
576 | | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
577 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW2:8") |
| 569 | PORT_DIPUNUSED( 0x10, IP_ACTIVE_LOW ) |
| 570 | PORT_DIPUNUSED( 0x20, IP_ACTIVE_LOW ) |
| 571 | PORT_DIPUNUSED( 0x40, IP_ACTIVE_LOW ) |
| 572 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Language ) ) |
578 | 573 | PORT_DIPSETTING( 0x80, DEF_STR( Japanese ) ) |
579 | 574 | PORT_DIPSETTING( 0x00, DEF_STR( English ) ) |
580 | 575 | |
trunk/src/mame/drivers/retofinv.c
r243756 | r243757 | |
35 | 35 | #include "includes/retofinv.h" |
36 | 36 | |
37 | 37 | |
38 | | void retofinv_state::machine_start() |
39 | | { |
40 | | save_item(NAME(m_main_irq_mask)); |
41 | | save_item(NAME(m_sub_irq_mask)); |
42 | | save_item(NAME(m_cpu2_m6000)); |
43 | | |
44 | | if (m_68705 != NULL) // only for the parent (with MCU) |
45 | | { |
46 | | save_item(NAME(m_from_main)); |
47 | | save_item(NAME(m_from_mcu)); |
48 | | save_item(NAME(m_mcu_sent)); |
49 | | save_item(NAME(m_main_sent)); |
50 | | save_item(NAME(m_portA_in)); |
51 | | save_item(NAME(m_portA_out)); |
52 | | save_item(NAME(m_ddrA)); |
53 | | save_item(NAME(m_portB_in)); |
54 | | save_item(NAME(m_portB_out)); |
55 | | save_item(NAME(m_ddrB)); |
56 | | save_item(NAME(m_portC_in)); |
57 | | save_item(NAME(m_portC_out)); |
58 | | save_item(NAME(m_ddrC)); |
59 | | } |
60 | | } |
61 | 38 | |
62 | 39 | WRITE8_MEMBER(retofinv_state::cpu1_reset_w) |
63 | 40 | { |
r243756 | r243757 | |
122 | 99 | AM_RANGE(0x7fff, 0x7fff) AM_WRITE(coincounter_w) |
123 | 100 | AM_RANGE(0x7b00, 0x7bff) AM_ROM /* space for diagnostic ROM? The code looks */ |
124 | 101 | /* for a string here, and jumps if it's present */ |
125 | | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram") |
| 102 | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(retofinv_fg_videoram_w) AM_SHARE("fg_videoram") |
126 | 103 | AM_RANGE(0x8800, 0x9fff) AM_RAM AM_SHARE("sharedram") |
127 | | AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram") |
128 | | AM_RANGE(0xb800, 0xb802) AM_WRITE(gfx_ctrl_w) |
| 104 | AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(retofinv_bg_videoram_w) AM_SHARE("bg_videoram") |
| 105 | AM_RANGE(0xb800, 0xb802) AM_WRITE(retofinv_gfx_ctrl_w) |
129 | 106 | AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1") |
130 | 107 | AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P2") |
131 | 108 | AM_RANGE(0xc002, 0xc002) AM_READNOP /* bit 7 must be 0, otherwise game resets */ |
132 | | AM_RANGE(0xc003, 0xc003) AM_READ(mcu_status_r) |
| 109 | AM_RANGE(0xc003, 0xc003) AM_READ(retofinv_mcu_status_r) |
133 | 110 | AM_RANGE(0xc004, 0xc004) AM_READ_PORT("SYSTEM") |
134 | 111 | AM_RANGE(0xc005, 0xc005) AM_READ_PORT("DSW1") |
135 | 112 | AM_RANGE(0xc006, 0xc006) AM_READ_PORT("DSW2") |
r243756 | r243757 | |
142 | 119 | AM_RANGE(0xc805, 0xc805) AM_WRITE(cpu1_reset_w) |
143 | 120 | AM_RANGE(0xd000, 0xd000) AM_WRITE(watchdog_reset_w) |
144 | 121 | AM_RANGE(0xd800, 0xd800) AM_WRITE(soundcommand_w) |
145 | | AM_RANGE(0xe000, 0xe000) AM_READ(mcu_r) |
146 | | AM_RANGE(0xe800, 0xe800) AM_WRITE(mcu_w) |
| 122 | AM_RANGE(0xe000, 0xe000) AM_READ(retofinv_mcu_r) |
| 123 | AM_RANGE(0xe800, 0xe800) AM_WRITE(retofinv_mcu_w) |
147 | 124 | AM_RANGE(0xf800, 0xf800) AM_READ(cpu0_mf800_r) |
148 | 125 | ADDRESS_MAP_END |
149 | 126 | |
150 | 127 | static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, retofinv_state ) |
151 | 128 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
152 | | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram") |
| 129 | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(retofinv_fg_videoram_w) AM_SHARE("fg_videoram") |
153 | 130 | AM_RANGE(0x8800, 0x9fff) AM_RAM AM_SHARE("sharedram") |
154 | | AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram") |
| 131 | AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(retofinv_bg_videoram_w) AM_SHARE("bg_videoram") |
155 | 132 | AM_RANGE(0xc804, 0xc804) AM_WRITE(irq1_ack_w) |
156 | 133 | ADDRESS_MAP_END |
157 | 134 | |
r243756 | r243757 | |
167 | 144 | |
168 | 145 | static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, retofinv_state ) |
169 | 146 | ADDRESS_MAP_GLOBAL_MASK(0x7ff) |
170 | | AM_RANGE(0x0000, 0x0000) AM_READWRITE(mcu_portA_r, mcu_portA_w) |
171 | | AM_RANGE(0x0001, 0x0001) AM_READWRITE(mcu_portB_r, mcu_portB_w) |
172 | | AM_RANGE(0x0002, 0x0002) AM_READWRITE(mcu_portC_r, mcu_portC_w) |
173 | | AM_RANGE(0x0004, 0x0004) AM_WRITE(mcu_ddrA_w) |
174 | | AM_RANGE(0x0005, 0x0005) AM_WRITE(mcu_ddrB_w) |
175 | | AM_RANGE(0x0006, 0x0006) AM_WRITE(mcu_ddrC_w) |
| 147 | AM_RANGE(0x0000, 0x0000) AM_READWRITE(retofinv_68705_portA_r, retofinv_68705_portA_w) |
| 148 | AM_RANGE(0x0001, 0x0001) AM_READWRITE(retofinv_68705_portB_r, retofinv_68705_portB_w) |
| 149 | AM_RANGE(0x0002, 0x0002) AM_READWRITE(retofinv_68705_portC_r, retofinv_68705_portC_w) |
| 150 | AM_RANGE(0x0004, 0x0004) AM_WRITE(retofinv_68705_ddrA_w) |
| 151 | AM_RANGE(0x0005, 0x0005) AM_WRITE(retofinv_68705_ddrB_w) |
| 152 | AM_RANGE(0x0006, 0x0006) AM_WRITE(retofinv_68705_ddrC_w) |
176 | 153 | AM_RANGE(0x0010, 0x007f) AM_RAM |
177 | 154 | AM_RANGE(0x0080, 0x07ff) AM_ROM |
178 | 155 | ADDRESS_MAP_END |
r243756 | r243757 | |
390 | 367 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
391 | 368 | MCFG_SCREEN_SIZE(36*8, 28*8) |
392 | 369 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
393 | | MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update) |
| 370 | MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update_retofinv) |
394 | 371 | MCFG_SCREEN_PALETTE("palette") |
395 | 372 | |
396 | 373 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", retofinv) |
r243756 | r243757 | |
524 | 501 | |
525 | 502 | |
526 | 503 | |
527 | | GAME( 1985, retofinv, 0, retofinv, retofinv, driver_device, 0, ROT90, "Taito Corporation", "Return of the Invaders", GAME_SUPPORTS_SAVE ) |
528 | | GAME( 1985, retofinv1,retofinv, retofinb, retofinv, driver_device, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 1)", GAME_SUPPORTS_SAVE ) |
529 | | GAME( 1985, retofinv2,retofinv, retofinb, retofin2, driver_device, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 2)", GAME_SUPPORTS_SAVE ) |
| 504 | GAME( 1985, retofinv, 0, retofinv, retofinv, driver_device, 0, ROT90, "Taito Corporation", "Return of the Invaders", 0 ) |
| 505 | GAME( 1985, retofinv1,retofinv, retofinb, retofinv, driver_device, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 1)", 0 ) |
| 506 | GAME( 1985, retofinv2,retofinv, retofinb, retofin2, driver_device, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 2)", 0 ) |
trunk/src/mame/drivers/segaorun.c
r243756 | r243757 | |
2377 | 2377 | // |
2378 | 2378 | ROM_START( toutrunj1 ) |
2379 | 2379 | ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code |
2380 | | ROM_LOAD16_BYTE( "epr-12289.ic133", 0x000000, 0x10000, CRC(89380754) SHA1(52b3bf7ed04a58dbf13440f58ae6e71a28fca5f6) ) // Verified correct labels but conflicts with the 317-0109 set |
2381 | | ROM_LOAD16_BYTE( "epr-12288.ic118", 0x000001, 0x10000, CRC(47b47ef1) SHA1(1af002721ec9bf72c17e3184cf5df82e7b5f45e1) ) // Verified correct labels but conflicts with the 317-0109 set |
2382 | | ROM_LOAD16_BYTE( "epr-12291.ic132", 0x020000, 0x10000, CRC(1f4ab0c6) SHA1(5c21ad7e3b232d6d3bce325f878659ba9cfda0da) ) // Verified correct labels but conflicts with the 317-0109 set |
2383 | | ROM_LOAD16_BYTE( "epr-12290.ic117", 0x020001, 0x10000, CRC(67e81543) SHA1(a2844c2bbe139e709aa7679f82e38e93d9494e6d) ) // Verified correct labels but conflicts with the 317-0109 set |
2384 | | ROM_LOAD16_BYTE( "epr-12293.ic131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) ) |
2385 | | ROM_LOAD16_BYTE( "epr-12292.ic116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) ) |
| 2380 | ROM_LOAD16_BYTE( "EPR-12289.IC133", 0x000000, 0x10000, CRC(89380754) SHA1(52b3bf7ed04a58dbf13440f58ae6e71a28fca5f6) ) // Verified correct labels but conflicts with the 317-0109 set |
| 2381 | ROM_LOAD16_BYTE( "EPR-12288.IC118", 0x000001, 0x10000, CRC(47b47ef1) SHA1(1af002721ec9bf72c17e3184cf5df82e7b5f45e1) ) // Verified correct labels but conflicts with the 317-0109 set |
| 2382 | ROM_LOAD16_BYTE( "EPR-12291.IC132", 0x020000, 0x10000, CRC(1f4ab0c6) SHA1(5c21ad7e3b232d6d3bce325f878659ba9cfda0da) ) // Verified correct labels but conflicts with the 317-0109 set |
| 2383 | ROM_LOAD16_BYTE( "EPR-12290.IC117", 0x020001, 0x10000, CRC(67e81543) SHA1(a2844c2bbe139e709aa7679f82e38e93d9494e6d) ) // Verified correct labels but conflicts with the 317-0109 set |
| 2384 | ROM_LOAD16_BYTE( "EPR-12293.IC131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) ) |
| 2385 | ROM_LOAD16_BYTE( "EPR-12292.IC116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) ) |
2386 | 2386 | |
2387 | 2387 | ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key |
2388 | 2388 | ROM_LOAD( "317-0101.key", 0x0000, 0x2000, CRC(eb636314) SHA1(a10e5585a0af2865a9aa640a3b6bd1cf60f47a1e) ) |
2389 | 2389 | |
2390 | 2390 | ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU |
2391 | | ROM_LOAD16_BYTE( "epr-12295.ic76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) ) |
2392 | | ROM_LOAD16_BYTE( "epr-12294.ic58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) ) |
2393 | | ROM_LOAD16_BYTE( "epr-12297.ic75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) ) |
2394 | | ROM_LOAD16_BYTE( "epr-12296.ic57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) ) |
| 2391 | ROM_LOAD16_BYTE( "EPR-12295.IC76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) ) |
| 2392 | ROM_LOAD16_BYTE( "EPR-12294.IC58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) ) |
| 2393 | ROM_LOAD16_BYTE( "EPR-12297.IC75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) ) |
| 2394 | ROM_LOAD16_BYTE( "EPR-12296.IC57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) ) |
2395 | 2395 | |
2396 | 2396 | ROM_REGION( 0x30000, "gfx1", 0 ) // tiles |
2397 | | ROM_LOAD( "epr-12323.ic102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) ) |
2398 | | ROM_LOAD( "epr-12324.ic103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) ) |
2399 | | ROM_LOAD( "epr-12325.ic104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) ) |
| 2397 | ROM_LOAD( "EPR-12323.IC102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) ) |
| 2398 | ROM_LOAD( "EPR-12324.IC103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) ) |
| 2399 | ROM_LOAD( "EPR-12325.IC104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) ) |
2400 | 2400 | |
2401 | 2401 | ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites |
2402 | | ROM_LOAD32_BYTE( "epr-12307.ic9", 0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) ) |
2403 | | ROM_LOAD32_BYTE( "epr-12308.ic10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) ) |
2404 | | ROM_LOAD32_BYTE( "epr-12309.ic11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) ) |
2405 | | ROM_LOAD32_BYTE( "epr-12310.ic12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) ) |
2406 | | ROM_LOAD32_BYTE( "epr-12311.ic13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) ) |
2407 | | ROM_LOAD32_BYTE( "epr-12312.ic14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) ) |
2408 | | ROM_LOAD32_BYTE( "epr-12313.ic15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) ) |
2409 | | ROM_LOAD32_BYTE( "epr-12314.ic16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) ) |
2410 | | ROM_LOAD32_BYTE( "epr-12315.ic17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) ) |
2411 | | ROM_LOAD32_BYTE( "epr-12316.ic18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) ) |
2412 | | ROM_LOAD32_BYTE( "epr-12317.ic19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) ) |
2413 | | ROM_LOAD32_BYTE( "epr-12318.ic20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) ) |
2414 | | ROM_LOAD32_BYTE( "epr-12319.ic21", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) ) |
2415 | | ROM_LOAD32_BYTE( "epr-12320.ic22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) ) |
2416 | | ROM_LOAD32_BYTE( "epr-12321.ic23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) |
2417 | | ROM_LOAD32_BYTE( "epr-12322.ic24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) |
| 2402 | ROM_LOAD32_BYTE( "EPR-12307.IC9", 0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) ) |
| 2403 | ROM_LOAD32_BYTE( "EPR-12308.IC10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) ) |
| 2404 | ROM_LOAD32_BYTE( "EPR-12309.IC11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) ) |
| 2405 | ROM_LOAD32_BYTE( "EPR-12310.IC12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) ) |
| 2406 | ROM_LOAD32_BYTE( "EPR-12311.IC13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) ) |
| 2407 | ROM_LOAD32_BYTE( "EPR-12312.IC14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) ) |
| 2408 | ROM_LOAD32_BYTE( "EPR-12313.IC15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) ) |
| 2409 | ROM_LOAD32_BYTE( "EPR-12314.IC16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) ) |
| 2410 | ROM_LOAD32_BYTE( "EPR-12315.IC17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) ) |
| 2411 | ROM_LOAD32_BYTE( "EPR-12316.IC18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) ) |
| 2412 | ROM_LOAD32_BYTE( "EPR-12317.IC19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) ) |
| 2413 | ROM_LOAD32_BYTE( "EPR-12318.IC20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) ) |
| 2414 | ROM_LOAD32_BYTE( "EPR-12319.IC21", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) ) |
| 2415 | ROM_LOAD32_BYTE( "EPR-12320.IC22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) ) |
| 2416 | ROM_LOAD32_BYTE( "EPR-12321.IC23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) ) |
| 2417 | ROM_LOAD32_BYTE( "EPR-12322.IC24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) ) |
2418 | 2418 | |
2419 | 2419 | ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road) |
2420 | | ROM_LOAD( "epr-12298.ic47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Both are EPR-12298 |
2421 | | ROM_LOAD( "epr-12298.ic28", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) |
| 2420 | ROM_LOAD( "EPR-12298.IC47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Both are EPR-12298 |
| 2421 | ROM_LOAD( "EPR-12298.IC28", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) |
2422 | 2422 | |
2423 | 2423 | ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU |
2424 | | ROM_LOAD( "epr-12300.ic88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) ) |
| 2424 | ROM_LOAD( "EPR-12300.IC88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) ) |
2425 | 2425 | |
2426 | 2426 | ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data |
2427 | | ROM_LOAD( "epr-12301.ic66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) ) |
2428 | | ROM_LOAD( "epr-12302.ic67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) ) |
2429 | | ROM_LOAD( "epr-12303.ic68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) ) |
2430 | | ROM_LOAD( "epr-12304.ic69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) ) |
2431 | | ROM_LOAD( "epr-12305.ic70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) ) |
2432 | | ROM_LOAD( "epr-12306.ic71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) ) |
| 2427 | ROM_LOAD( "EPR-12301.IC66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) ) |
| 2428 | ROM_LOAD( "EPR-12302.IC67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) ) |
| 2429 | ROM_LOAD( "EPR-12303.IC68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) ) |
| 2430 | ROM_LOAD( "EPR-12304.IC69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) ) |
| 2431 | ROM_LOAD( "EPR-12305.IC70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) ) |
| 2432 | ROM_LOAD( "EPR-12306.IC71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) ) |
2433 | 2433 | ROM_END |
2434 | 2434 | |
2435 | 2435 | //************************************************************************** |
trunk/src/mame/drivers/speedatk.c
r243756 | r243757 | |
7 | 7 | driver by Pierpaolo Prazzoli & Angelo Salese, based on early work by David Haywood |
8 | 8 | |
9 | 9 | TODO: |
| 10 | - Video emulation requires a major conversion to the HD46505SP C.R.T. chip (MC6845 clone) |
10 | 11 | - It's possible that there is only one coin chute and not two,needs a real board to know |
11 | 12 | more about it. |
12 | 13 | |
r243756 | r243757 | |
78 | 79 | #include "emu.h" |
79 | 80 | #include "cpu/z80/z80.h" |
80 | 81 | #include "sound/ay8910.h" |
| 82 | #include "video/mc6845.h" |
81 | 83 | #include "includes/speedatk.h" |
82 | 84 | |
83 | 85 | #define MASTER_CLOCK XTAL_12MHz |
84 | 86 | |
85 | | void speedatk_state::machine_start() |
86 | | { |
87 | | save_item(NAME(m_mux_data)); |
88 | | save_item(NAME(m_km_status)); |
89 | | save_item(NAME(m_coin_settings)); |
90 | | save_item(NAME(m_coin_impulse)); |
91 | | } |
92 | | |
93 | 87 | UINT8 speedatk_state::iox_key_matrix_calc(UINT8 p_side) |
94 | 88 | { |
95 | 89 | static const char *const keynames[] = { "P1_ROW0", "P1_ROW1", "P2_ROW0", "P2_ROW1" }; |
r243756 | r243757 | |
181 | 175 | AM_RANGE(0x8000, 0x8000) AM_READWRITE(key_matrix_r,key_matrix_w) |
182 | 176 | AM_RANGE(0x8001, 0x8001) AM_READWRITE(key_matrix_status_r,key_matrix_status_w) |
183 | 177 | AM_RANGE(0x8800, 0x8fff) AM_RAM |
184 | | AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_SHARE("videoram") |
185 | | AM_RANGE(0xb000, 0xb3ff) AM_RAM AM_SHARE("colorram") |
| 178 | AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(speedatk_videoram_w) AM_SHARE("videoram") |
| 179 | AM_RANGE(0xb000, 0xb3ff) AM_RAM_WRITE(speedatk_colorram_w) AM_SHARE("colorram") |
186 | 180 | ADDRESS_MAP_END |
187 | 181 | |
188 | 182 | |
189 | 183 | static ADDRESS_MAP_START( speedatk_io, AS_IO, 8, speedatk_state ) |
190 | 184 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
191 | | AM_RANGE(0x00, 0x01) AM_WRITE(m6845_w) //h46505 address / data routing |
| 185 | AM_RANGE(0x00, 0x01) AM_WRITE(speedatk_6845_w) //h46505 address / data routing |
192 | 186 | AM_RANGE(0x24, 0x24) AM_WRITE(watchdog_reset_w) |
193 | 187 | AM_RANGE(0x40, 0x40) AM_DEVREAD("aysnd", ay8910_device, data_r) |
194 | 188 | AM_RANGE(0x40, 0x41) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
r243756 | r243757 | |
291 | 285 | GFXDECODE_ENTRY( "gfx2", 0, charlayout_3bpp, 0, 32 ) |
292 | 286 | GFXDECODE_END |
293 | 287 | |
294 | | WRITE8_MEMBER(speedatk_state::output_w) |
| 288 | WRITE8_MEMBER(speedatk_state::speedatk_output_w) |
295 | 289 | { |
296 | 290 | m_flip_scr = data & 0x80; |
297 | 291 | |
r243756 | r243757 | |
314 | 308 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
315 | 309 | MCFG_SCREEN_SIZE(320, 256) |
316 | 310 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
317 | | MCFG_SCREEN_UPDATE_DRIVER(speedatk_state, screen_update) |
| 311 | MCFG_SCREEN_UPDATE_DRIVER(speedatk_state, screen_update_speedatk) |
318 | 312 | MCFG_SCREEN_PALETTE("palette") |
319 | 313 | |
320 | 314 | MCFG_MC6845_ADD("crtc", H46505, "screen", MASTER_CLOCK/16) /* hand tuned to get ~60 fps */ |
r243756 | r243757 | |
331 | 325 | |
332 | 326 | MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/4) //divider is unknown |
333 | 327 | MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW")) |
334 | | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(speedatk_state, output_w)) |
| 328 | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(speedatk_state, speedatk_output_w)) |
335 | 329 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) |
336 | 330 | MACHINE_CONFIG_END |
337 | 331 | |
r243756 | r243757 | |
356 | 350 | ROM_LOAD( "cb2.bpr", 0x0020, 0x0100, CRC(a604cf96) SHA1(a4ef6e77dcd3abe4c27e8e636222a5ee711a51f5) ) /* lookup table */ |
357 | 351 | ROM_END |
358 | 352 | |
359 | | GAME( 1984, speedatk, 0, speedatk, speedatk, driver_device, 0, ROT0, "Seta Kikaku Corp.", "Speed Attack! (Japan)", GAME_SUPPORTS_SAVE ) |
| 353 | GAME( 1984, speedatk, 0, speedatk, speedatk, driver_device, 0, ROT0, "Seta Kikaku Corp.", "Speed Attack! (Japan)", 0 ) |
trunk/src/mame/drivers/thedeep.c
r243756 | r243757 | |
38 | 38 | ***************************************************************************/ |
39 | 39 | |
40 | 40 | |
41 | | WRITE8_MEMBER(thedeep_state::nmi_w) |
| 41 | WRITE8_MEMBER(thedeep_state::thedeep_nmi_w) |
42 | 42 | { |
43 | 43 | m_nmi_enable = data; |
44 | 44 | } |
45 | 45 | |
46 | | WRITE8_MEMBER(thedeep_state::sound_w) |
| 46 | WRITE8_MEMBER(thedeep_state::thedeep_sound_w) |
47 | 47 | { |
48 | 48 | soundlatch_byte_w(space, 0, data); |
49 | 49 | m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
50 | 50 | } |
51 | 51 | |
52 | | void thedeep_state::machine_start() |
53 | | { |
54 | | membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000); |
55 | | save_item(NAME(m_nmi_enable)); |
56 | | save_item(NAME(m_protection_command)); |
57 | | save_item(NAME(m_protection_data)); |
58 | | save_item(NAME(m_protection_index)); |
59 | | save_item(NAME(m_protection_irq)); |
60 | | save_item(NAME(m_mcu_p3_reg)); |
61 | | } |
62 | 52 | |
63 | 53 | void thedeep_state::machine_reset() |
64 | 54 | { |
65 | | membank("bank1")->set_entry(0); |
| 55 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000 + 0 * 0x4000); |
66 | 56 | m_scroll[0] = 0; |
67 | 57 | m_scroll[1] = 0; |
68 | 58 | m_scroll[2] = 0; |
r243756 | r243757 | |
70 | 60 | m_protection_command = 0; |
71 | 61 | m_protection_index = -1; |
72 | 62 | m_protection_irq = 0; |
| 63 | m_rombank = -1; |
73 | 64 | } |
74 | 65 | |
75 | | WRITE8_MEMBER(thedeep_state::protection_w) |
| 66 | WRITE8_MEMBER(thedeep_state::thedeep_protection_w) |
76 | 67 | { |
77 | 68 | m_protection_command = data; |
78 | 69 | switch (m_protection_command) |
r243756 | r243757 | |
89 | 80 | case 0x31: |
90 | 81 | case 0x32: |
91 | 82 | case 0x33: |
92 | | membank("bank1")->set_entry(m_protection_command & 3); |
| 83 | { |
| 84 | UINT8 *rom; |
| 85 | int new_rombank = m_protection_command & 3; |
| 86 | if (m_rombank == new_rombank) break; |
| 87 | m_rombank = new_rombank; |
| 88 | rom = memregion("maincpu")->base(); |
| 89 | membank("bank1")->set_base(rom + 0x10000 + m_rombank * 0x4000); |
| 90 | |
| 91 | } |
93 | 92 | break; |
94 | 93 | |
95 | 94 | case 0x59: |
r243756 | r243757 | |
127 | 126 | } |
128 | 127 | } |
129 | 128 | |
130 | | READ8_MEMBER(thedeep_state::e004_r) |
| 129 | READ8_MEMBER(thedeep_state::thedeep_e004_r) |
131 | 130 | { |
132 | 131 | return m_protection_irq ? 1 : 0; |
133 | 132 | } |
134 | 133 | |
135 | | READ8_MEMBER(thedeep_state::protection_r) |
| 134 | READ8_MEMBER(thedeep_state::thedeep_protection_r) |
136 | 135 | { |
137 | 136 | m_protection_irq = 0; |
138 | 137 | return m_protection_data; |
139 | 138 | } |
140 | 139 | |
141 | | WRITE8_MEMBER(thedeep_state::e100_w) |
| 140 | WRITE8_MEMBER(thedeep_state::thedeep_e100_w) |
142 | 141 | { |
143 | 142 | if (data != 1) |
144 | 143 | logerror("pc %04x: e100 = %02x\n", space.device().safe_pc(),data); |
r243756 | r243757 | |
149 | 148 | AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // ROM (banked) |
150 | 149 | AM_RANGE(0xc000, 0xcfff) AM_RAM |
151 | 150 | AM_RANGE(0xd000, 0xdfff) AM_RAM // RAM (MCU data copied here) |
152 | | AM_RANGE(0xe000, 0xe000) AM_READWRITE(protection_r, protection_w) // To MCU |
153 | | AM_RANGE(0xe004, 0xe004) AM_READWRITE(e004_r, nmi_w) // |
| 151 | AM_RANGE(0xe000, 0xe000) AM_READWRITE(thedeep_protection_r, thedeep_protection_w) // To MCU |
| 152 | AM_RANGE(0xe004, 0xe004) AM_READWRITE(thedeep_e004_r, thedeep_nmi_w) // |
154 | 153 | AM_RANGE(0xe008, 0xe008) AM_READ_PORT("e008") // P1 (Inputs) |
155 | 154 | AM_RANGE(0xe009, 0xe009) AM_READ_PORT("e009") // P2 |
156 | 155 | AM_RANGE(0xe00a, 0xe00a) AM_READ_PORT("e00a") // DSW1 |
157 | 156 | AM_RANGE(0xe00b, 0xe00b) AM_READ_PORT("e00b") // DSW2 |
158 | | AM_RANGE(0xe00c, 0xe00c) AM_WRITE(sound_w) // To Sound CPU |
159 | | AM_RANGE(0xe100, 0xe100) AM_WRITE(e100_w) // ? |
| 157 | AM_RANGE(0xe00c, 0xe00c) AM_WRITE(thedeep_sound_w) // To Sound CPU |
| 158 | AM_RANGE(0xe100, 0xe100) AM_WRITE(thedeep_e100_w) // ? |
160 | 159 | AM_RANGE(0xe210, 0xe213) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
161 | 160 | AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_SHARE("spriteram") // Sprites |
162 | | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(vram_1_w) AM_SHARE("vram_1") // Text Layer |
163 | | AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(vram_0_w) AM_SHARE("vram_0") // Background Layer |
| 161 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(thedeep_vram_1_w) AM_SHARE("vram_1") // Text Layer |
| 162 | AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(thedeep_vram_0_w) AM_SHARE("vram_0") // Background Layer |
164 | 163 | AM_RANGE(0xf800, 0xf83f) AM_RAM AM_SHARE("scroll2") // Column Scroll |
165 | 164 | AM_RANGE(0xf840, 0xffff) AM_RAM |
166 | 165 | ADDRESS_MAP_END |
r243756 | r243757 | |
186 | 185 | |
187 | 186 | ***************************************************************************/ |
188 | 187 | |
189 | | WRITE8_MEMBER(thedeep_state::p1_w) |
| 188 | void thedeep_state::thedeep_maincpu_bankswitch(UINT8 bank_trig) |
190 | 189 | { |
| 190 | UINT8 *rom; |
| 191 | int new_rombank = bank_trig & 3; |
| 192 | |
| 193 | if (m_rombank == new_rombank) |
| 194 | return; |
| 195 | m_rombank = new_rombank; |
| 196 | rom = memregion("maincpu")->base(); |
| 197 | membank("bank1")->set_base(rom + 0x10000 + m_rombank * 0x4000); |
| 198 | |
| 199 | } |
| 200 | |
| 201 | WRITE8_MEMBER(thedeep_state::thedeep_p1_w) |
| 202 | { |
191 | 203 | flip_screen_set((data & 1) ^ 1); |
192 | | membank("bank1")->set_entry((data & 6) >> 1); |
| 204 | thedeep_maincpu_bankswitch((data & 6) >> 1); |
193 | 205 | logerror("P1 %02x\n",data); |
194 | 206 | } |
195 | 207 | |
196 | | READ8_MEMBER(thedeep_state::from_main_r) |
| 208 | READ8_MEMBER(thedeep_state::thedeep_from_main_r) |
197 | 209 | { |
198 | 210 | static UINT8 res; |
199 | 211 | |
r243756 | r243757 | |
203 | 215 | return 0x20; |
204 | 216 | } |
205 | 217 | |
206 | | WRITE8_MEMBER(thedeep_state::to_main_w) |
| 218 | WRITE8_MEMBER(thedeep_state::thedeep_to_main_w) |
207 | 219 | { |
208 | 220 | // ... |
209 | 221 | } |
210 | 222 | |
211 | | WRITE8_MEMBER(thedeep_state::p3_w) |
| 223 | WRITE8_MEMBER(thedeep_state::thedeep_p3_w) |
212 | 224 | { |
213 | 225 | /* bit 0 0->1 transition IRQ0 to main */ |
214 | 226 | if((!(m_mcu_p3_reg & 0x01)) && data & 0x01) |
r243756 | r243757 | |
226 | 238 | logerror("P3 %02x\n",data); |
227 | 239 | } |
228 | 240 | |
229 | | READ8_MEMBER(thedeep_state::p0_r) |
| 241 | READ8_MEMBER(thedeep_state::thedeep_p0_r) |
230 | 242 | { |
231 | 243 | UINT8 coin_mux; |
232 | 244 | |
r243756 | r243757 | |
237 | 249 | |
238 | 250 | static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, thedeep_state ) |
239 | 251 | ADDRESS_MAP_UNMAP_HIGH |
240 | | AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P0) AM_READ(p0_r) |
241 | | AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P1) AM_WRITE(p1_w) |
242 | | AM_RANGE(MCS51_PORT_P2,MCS51_PORT_P2) AM_READWRITE(from_main_r,to_main_w) |
243 | | AM_RANGE(MCS51_PORT_P3,MCS51_PORT_P3) AM_WRITE(p3_w) |
| 252 | AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P0) AM_READ(thedeep_p0_r) |
| 253 | AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P1) AM_WRITE(thedeep_p1_w) |
| 254 | AM_RANGE(MCS51_PORT_P2,MCS51_PORT_P2) AM_READWRITE(thedeep_from_main_r,thedeep_to_main_w) |
| 255 | AM_RANGE(MCS51_PORT_P3,MCS51_PORT_P3) AM_WRITE(thedeep_p3_w) |
244 | 256 | ADDRESS_MAP_END |
245 | 257 | |
246 | 258 | |
r243756 | r243757 | |
370 | 382 | |
371 | 383 | ***************************************************************************/ |
372 | 384 | |
373 | | TIMER_DEVICE_CALLBACK_MEMBER(thedeep_state::interrupt) |
| 385 | WRITE_LINE_MEMBER(thedeep_state::irqhandler) |
374 | 386 | { |
| 387 | m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); |
| 388 | } |
| 389 | |
| 390 | TIMER_DEVICE_CALLBACK_MEMBER(thedeep_state::thedeep_interrupt) |
| 391 | { |
375 | 392 | int scanline = param; |
376 | 393 | |
377 | 394 | if (scanline == 124) // TODO: clean this |
r243756 | r243757 | |
400 | 417 | } |
401 | 418 | } |
402 | 419 | |
403 | | INTERRUPT_GEN_MEMBER(thedeep_state::mcu_irq) |
| 420 | INTERRUPT_GEN_MEMBER(thedeep_state::thedeep_mcu_irq) |
404 | 421 | { |
405 | 422 | m_mcu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE); |
406 | 423 | } |
r243756 | r243757 | |
410 | 427 | /* basic machine hardware */ |
411 | 428 | MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ |
412 | 429 | MCFG_CPU_PROGRAM_MAP(main_map) |
413 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", thedeep_state, interrupt, "screen", 0, 1) |
| 430 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", thedeep_state, thedeep_interrupt, "screen", 0, 1) |
414 | 431 | |
415 | 432 | MCFG_CPU_ADD("audiocpu", M65C02, XTAL_12MHz/8) /* verified on pcb */ |
416 | 433 | MCFG_CPU_PROGRAM_MAP(audio_map) |
r243756 | r243757 | |
419 | 436 | /* MCU is a i8751 running at 8Mhz (8mhz xtal)*/ |
420 | 437 | MCFG_CPU_ADD("mcu", I8751, XTAL_8MHz) |
421 | 438 | MCFG_CPU_IO_MAP(mcu_io_map) |
422 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", thedeep_state, mcu_irq) // unknown source, but presumably vblank |
| 439 | MCFG_CPU_VBLANK_INT_DRIVER("screen", thedeep_state, thedeep_mcu_irq) // unknown source, but presumably vblank |
423 | 440 | MCFG_DEVICE_DISABLE() |
424 | 441 | |
425 | 442 | |
r243756 | r243757 | |
429 | 446 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
430 | 447 | MCFG_SCREEN_SIZE(0x100, 0xf8) |
431 | 448 | MCFG_SCREEN_VISIBLE_AREA(0, 0x100-1, 0, 0xf8-1) |
432 | | MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update) |
| 449 | MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update_thedeep) |
433 | 450 | MCFG_SCREEN_PALETTE("palette") |
434 | 451 | |
435 | 452 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", thedeep) |
r243756 | r243757 | |
441 | 458 | MCFG_SPEAKER_STANDARD_MONO("mono") |
442 | 459 | |
443 | 460 | MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */ |
444 | | MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) |
| 461 | MCFG_YM2203_IRQ_HANDLER(WRITELINE(thedeep_state, irqhandler)) |
445 | 462 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
446 | 463 | MACHINE_CONFIG_END |
447 | 464 | |
r243756 | r243757 | |
457 | 474 | |
458 | 475 | Here are the proms for The Deep! |
459 | 476 | NOTE: This game is Vertical. |
460 | | I couldn't test this board so I don't know the manufacturer, sorry. |
| 477 | I couldn't test this board so I don't know the manufakturer, sorry. |
461 | 478 | 1 Z80 |
462 | 479 | 1 R6502 |
463 | 480 | 1 YM 2203 |
r243756 | r243757 | |
536 | 553 | ROM_LOAD( "fi-3", 0x400, 0x200, CRC(f61a9686) SHA1(24082f60b72268d240ceca6999bdf18872625cd2) ) |
537 | 554 | ROM_END |
538 | 555 | |
539 | | GAME( 1987, thedeep, 0, thedeep, thedeep, driver_device, 0, ROT270, "Wood Place Inc.", "The Deep (Japan)", GAME_SUPPORTS_SAVE ) |
540 | | GAME( 1988, rundeep, thedeep,thedeep, thedeep, driver_device, 0, ROT270, "bootleg (Cream)", "Run Deep", GAME_SUPPORTS_SAVE ) |
| 556 | GAME( 1987, thedeep, 0, thedeep, thedeep, driver_device, 0, ROT270, "Wood Place Inc.", "The Deep (Japan)", 0 ) |
| 557 | GAME( 1988, rundeep, thedeep,thedeep, thedeep, driver_device, 0, ROT270, "bootleg (Cream)", "Run Deep", 0 ) |
trunk/src/mame/includes/retofinv.h
r243756 | r243757 | |
3 | 3 | public: |
4 | 4 | retofinv_state(const machine_config &mconfig, device_type type, const char *tag) |
5 | 5 | : driver_device(mconfig, type, tag), |
| 6 | m_fg_videoram(*this, "fg_videoram"), |
| 7 | m_sharedram(*this, "sharedram"), |
| 8 | m_bg_videoram(*this, "bg_videoram"), |
6 | 9 | m_maincpu(*this, "maincpu"), |
7 | 10 | m_audiocpu(*this, "audiocpu"), |
8 | 11 | m_subcpu(*this, "sub"), |
9 | 12 | m_68705(*this, "68705"), |
10 | 13 | m_gfxdecode(*this, "gfxdecode"), |
11 | | m_palette(*this, "palette"), |
12 | | m_fg_videoram(*this, "fg_videoram"), |
13 | | m_sharedram(*this, "sharedram"), |
14 | | m_bg_videoram(*this, "bg_videoram") { } |
| 14 | m_palette(*this, "palette") { } |
15 | 15 | |
16 | | required_device<cpu_device> m_maincpu; |
17 | | required_device<cpu_device> m_audiocpu; |
18 | | required_device<cpu_device> m_subcpu; |
19 | | optional_device<cpu_device> m_68705; |
20 | | required_device<gfxdecode_device> m_gfxdecode; |
21 | | required_device<palette_device> m_palette; |
22 | | |
| 16 | UINT8 m_cpu2_m6000; |
23 | 17 | required_shared_ptr<UINT8> m_fg_videoram; |
24 | 18 | required_shared_ptr<UINT8> m_sharedram; |
25 | 19 | required_shared_ptr<UINT8> m_bg_videoram; |
26 | | |
27 | | UINT8 m_main_irq_mask; |
28 | | UINT8 m_sub_irq_mask; |
29 | | UINT8 m_cpu2_m6000; |
30 | 20 | UINT8 m_from_main; |
31 | 21 | UINT8 m_from_mcu; |
32 | 22 | int m_mcu_sent; |
r243756 | r243757 | |
45 | 35 | tilemap_t *m_bg_tilemap; |
46 | 36 | tilemap_t *m_fg_tilemap; |
47 | 37 | |
| 38 | UINT8 m_main_irq_mask; |
| 39 | UINT8 m_sub_irq_mask; |
48 | 40 | DECLARE_WRITE8_MEMBER(cpu1_reset_w); |
49 | 41 | DECLARE_WRITE8_MEMBER(cpu2_reset_w); |
50 | 42 | DECLARE_WRITE8_MEMBER(mcu_reset_w); |
r243756 | r243757 | |
55 | 47 | DECLARE_WRITE8_MEMBER(irq1_ack_w); |
56 | 48 | DECLARE_WRITE8_MEMBER(coincounter_w); |
57 | 49 | DECLARE_WRITE8_MEMBER(coinlockout_w); |
58 | | DECLARE_READ8_MEMBER(mcu_portA_r); |
59 | | DECLARE_WRITE8_MEMBER(mcu_portA_w); |
60 | | DECLARE_WRITE8_MEMBER(mcu_ddrA_w); |
61 | | DECLARE_READ8_MEMBER(mcu_portB_r); |
62 | | DECLARE_WRITE8_MEMBER(mcu_portB_w); |
63 | | DECLARE_WRITE8_MEMBER(mcu_ddrB_w); |
64 | | DECLARE_READ8_MEMBER(mcu_portC_r); |
65 | | DECLARE_WRITE8_MEMBER(mcu_portC_w); |
66 | | DECLARE_WRITE8_MEMBER(mcu_ddrC_w); |
67 | | DECLARE_WRITE8_MEMBER(mcu_w); |
68 | | DECLARE_READ8_MEMBER(mcu_r); |
69 | | DECLARE_READ8_MEMBER(mcu_status_r); |
70 | | DECLARE_WRITE8_MEMBER(bg_videoram_w); |
71 | | DECLARE_WRITE8_MEMBER(fg_videoram_w); |
72 | | DECLARE_WRITE8_MEMBER(gfx_ctrl_w); |
73 | | |
| 50 | DECLARE_READ8_MEMBER(retofinv_68705_portA_r); |
| 51 | DECLARE_WRITE8_MEMBER(retofinv_68705_portA_w); |
| 52 | DECLARE_WRITE8_MEMBER(retofinv_68705_ddrA_w); |
| 53 | DECLARE_READ8_MEMBER(retofinv_68705_portB_r); |
| 54 | DECLARE_WRITE8_MEMBER(retofinv_68705_portB_w); |
| 55 | DECLARE_WRITE8_MEMBER(retofinv_68705_ddrB_w); |
| 56 | DECLARE_READ8_MEMBER(retofinv_68705_portC_r); |
| 57 | DECLARE_WRITE8_MEMBER(retofinv_68705_portC_w); |
| 58 | DECLARE_WRITE8_MEMBER(retofinv_68705_ddrC_w); |
| 59 | DECLARE_WRITE8_MEMBER(retofinv_mcu_w); |
| 60 | DECLARE_READ8_MEMBER(retofinv_mcu_r); |
| 61 | DECLARE_READ8_MEMBER(retofinv_mcu_status_r); |
| 62 | DECLARE_WRITE8_MEMBER(retofinv_bg_videoram_w); |
| 63 | DECLARE_WRITE8_MEMBER(retofinv_fg_videoram_w); |
| 64 | DECLARE_WRITE8_MEMBER(retofinv_gfx_ctrl_w); |
74 | 65 | TILEMAP_MAPPER_MEMBER(tilemap_scan); |
75 | 66 | TILE_GET_INFO_MEMBER(bg_get_tile_info); |
76 | 67 | TILE_GET_INFO_MEMBER(fg_get_tile_info); |
77 | | |
78 | | virtual void machine_start(); |
79 | 68 | virtual void video_start(); |
80 | 69 | DECLARE_PALETTE_INIT(retofinv); |
81 | | |
82 | | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
83 | | void draw_sprites(bitmap_ind16 &bitmap); |
84 | | |
| 70 | UINT32 screen_update_retofinv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
85 | 71 | INTERRUPT_GEN_MEMBER(main_vblank_irq); |
86 | 72 | INTERRUPT_GEN_MEMBER(sub_vblank_irq); |
| 73 | void draw_sprites(bitmap_ind16 &bitmap); |
| 74 | required_device<cpu_device> m_maincpu; |
| 75 | required_device<cpu_device> m_audiocpu; |
| 76 | required_device<cpu_device> m_subcpu; |
| 77 | optional_device<cpu_device> m_68705; |
| 78 | required_device<gfxdecode_device> m_gfxdecode; |
| 79 | required_device<palette_device> m_palette; |
87 | 80 | }; |
trunk/src/mame/includes/speedatk.h
r243756 | r243757 | |
1 | | #include "video/mc6845.h" |
2 | | |
3 | 1 | class speedatk_state : public driver_device |
4 | 2 | { |
5 | 3 | public: |
6 | 4 | speedatk_state(const machine_config &mconfig, device_type type, const char *tag) |
7 | 5 | : driver_device(mconfig, type, tag), |
| 6 | m_videoram(*this, "videoram"), |
| 7 | m_colorram(*this, "colorram"), |
8 | 8 | m_maincpu(*this, "maincpu"), |
9 | | m_crtc(*this, "crtc"), |
10 | 9 | m_gfxdecode(*this, "gfxdecode"), |
11 | | m_palette(*this, "palette"), |
12 | | m_videoram(*this, "videoram"), |
13 | | m_colorram(*this, "colorram") { } |
| 10 | m_palette(*this, "palette") { } |
14 | 11 | |
15 | | required_device<cpu_device> m_maincpu; |
16 | | required_device<h46505_device> m_crtc; |
17 | | required_device<gfxdecode_device> m_gfxdecode; |
18 | | required_device<palette_device> m_palette; |
19 | | |
20 | 12 | required_shared_ptr<UINT8> m_videoram; |
21 | 13 | required_shared_ptr<UINT8> m_colorram; |
22 | | |
23 | 14 | UINT8 m_crtc_vreg[0x100]; |
24 | 15 | UINT8 m_crtc_index; |
25 | 16 | UINT8 m_flip_scr; |
| 17 | |
26 | 18 | UINT8 m_mux_data; |
27 | 19 | UINT8 m_km_status; |
28 | 20 | UINT8 m_coin_settings; |
29 | 21 | UINT8 m_coin_impulse; |
30 | | |
31 | 22 | DECLARE_READ8_MEMBER(key_matrix_r); |
32 | 23 | DECLARE_WRITE8_MEMBER(key_matrix_w); |
33 | 24 | DECLARE_READ8_MEMBER(key_matrix_status_r); |
34 | 25 | DECLARE_WRITE8_MEMBER(key_matrix_status_w); |
35 | | DECLARE_WRITE8_MEMBER(videoram_w); |
36 | | DECLARE_WRITE8_MEMBER(colorram_w); |
37 | | DECLARE_WRITE8_MEMBER(m6845_w); |
38 | | DECLARE_WRITE8_MEMBER(output_w); |
39 | | |
40 | | virtual void machine_start(); |
| 26 | DECLARE_WRITE8_MEMBER(speedatk_videoram_w); |
| 27 | DECLARE_WRITE8_MEMBER(speedatk_colorram_w); |
| 28 | DECLARE_WRITE8_MEMBER(speedatk_6845_w); |
| 29 | DECLARE_WRITE8_MEMBER(speedatk_output_w); |
41 | 30 | virtual void video_start(); |
42 | 31 | DECLARE_PALETTE_INIT(speedatk); |
43 | | |
44 | | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
45 | | |
| 32 | UINT32 screen_update_speedatk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
46 | 33 | UINT8 iox_key_matrix_calc(UINT8 p_side); |
| 34 | required_device<cpu_device> m_maincpu; |
| 35 | required_device<gfxdecode_device> m_gfxdecode; |
| 36 | required_device<palette_device> m_palette; |
47 | 37 | }; |
trunk/src/mame/includes/thedeep.h
r243756 | r243757 | |
3 | 3 | public: |
4 | 4 | thedeep_state(const machine_config &mconfig, device_type type, const char *tag) |
5 | 5 | : driver_device(mconfig, type, tag), |
6 | | m_maincpu(*this,"maincpu"), |
7 | | m_audiocpu(*this, "audiocpu"), |
8 | | m_mcu(*this, "mcu"), |
9 | | m_gfxdecode(*this, "gfxdecode"), |
10 | | m_palette(*this, "palette"), |
11 | 6 | m_spriteram(*this, "spriteram"), |
12 | 7 | m_vram_0(*this, "vram_0"), |
13 | 8 | m_vram_1(*this, "vram_1"), |
14 | 9 | m_scroll(*this, "scroll"), |
15 | | m_scroll2(*this, "scroll2") { } |
| 10 | m_scroll2(*this, "scroll2"), |
| 11 | m_maincpu(*this,"maincpu"), |
| 12 | m_audiocpu(*this, "audiocpu"), |
| 13 | m_mcu(*this, "mcu"), |
| 14 | m_gfxdecode(*this, "gfxdecode"), |
| 15 | m_palette(*this, "palette") { } |
16 | 16 | |
17 | | required_device<cpu_device> m_maincpu; |
18 | | required_device<cpu_device> m_audiocpu; |
19 | | required_device<cpu_device> m_mcu; |
20 | | required_device<gfxdecode_device> m_gfxdecode; |
21 | | required_device<palette_device> m_palette; |
22 | | |
23 | 17 | required_shared_ptr<UINT8> m_spriteram; |
24 | | required_shared_ptr<UINT8> m_vram_0; |
25 | | required_shared_ptr<UINT8> m_vram_1; |
26 | | required_shared_ptr<UINT8> m_scroll; |
27 | | required_shared_ptr<UINT8> m_scroll2; |
28 | | |
29 | 18 | int m_nmi_enable; |
30 | 19 | UINT8 m_protection_command; |
31 | 20 | UINT8 m_protection_data; |
32 | 21 | int m_protection_index; |
33 | 22 | int m_protection_irq; |
| 23 | int m_rombank; |
| 24 | required_shared_ptr<UINT8> m_vram_0; |
| 25 | required_shared_ptr<UINT8> m_vram_1; |
| 26 | required_shared_ptr<UINT8> m_scroll; |
| 27 | required_shared_ptr<UINT8> m_scroll2; |
34 | 28 | tilemap_t *m_tilemap_0; |
35 | 29 | tilemap_t *m_tilemap_1; |
36 | 30 | UINT8 m_mcu_p3_reg; |
37 | 31 | |
38 | | DECLARE_WRITE8_MEMBER(nmi_w); |
39 | | DECLARE_WRITE8_MEMBER(sound_w); |
40 | | DECLARE_WRITE8_MEMBER(protection_w); |
41 | | DECLARE_READ8_MEMBER(e004_r); |
42 | | DECLARE_READ8_MEMBER(protection_r); |
43 | | DECLARE_WRITE8_MEMBER(e100_w); |
44 | | DECLARE_WRITE8_MEMBER(p1_w); |
45 | | DECLARE_READ8_MEMBER(from_main_r); |
46 | | DECLARE_WRITE8_MEMBER(to_main_w); |
47 | | DECLARE_WRITE8_MEMBER(p3_w); |
48 | | DECLARE_READ8_MEMBER(p0_r); |
49 | | DECLARE_WRITE8_MEMBER(vram_0_w); |
50 | | DECLARE_WRITE8_MEMBER(vram_1_w); |
51 | | |
| 32 | required_device<cpu_device> m_maincpu; |
| 33 | required_device<cpu_device> m_audiocpu; |
| 34 | required_device<cpu_device> m_mcu; |
| 35 | required_device<gfxdecode_device> m_gfxdecode; |
| 36 | required_device<palette_device> m_palette; |
| 37 | |
| 38 | DECLARE_WRITE8_MEMBER(thedeep_nmi_w); |
| 39 | DECLARE_WRITE8_MEMBER(thedeep_sound_w); |
| 40 | DECLARE_WRITE8_MEMBER(thedeep_protection_w); |
| 41 | DECLARE_READ8_MEMBER(thedeep_e004_r); |
| 42 | DECLARE_READ8_MEMBER(thedeep_protection_r); |
| 43 | DECLARE_WRITE8_MEMBER(thedeep_e100_w); |
| 44 | DECLARE_WRITE8_MEMBER(thedeep_p1_w); |
| 45 | DECLARE_READ8_MEMBER(thedeep_from_main_r); |
| 46 | DECLARE_WRITE8_MEMBER(thedeep_to_main_w); |
| 47 | DECLARE_WRITE8_MEMBER(thedeep_p3_w); |
| 48 | DECLARE_READ8_MEMBER(thedeep_p0_r); |
| 49 | DECLARE_WRITE8_MEMBER(thedeep_vram_0_w); |
| 50 | DECLARE_WRITE8_MEMBER(thedeep_vram_1_w); |
52 | 51 | TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_back); |
53 | 52 | TILE_GET_INFO_MEMBER(get_tile_info_0); |
54 | 53 | TILE_GET_INFO_MEMBER(get_tile_info_1); |
55 | | |
56 | | virtual void machine_start(); |
57 | 54 | virtual void machine_reset(); |
58 | 55 | virtual void video_start(); |
59 | 56 | DECLARE_PALETTE_INIT(thedeep); |
60 | | |
61 | | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 57 | UINT32 screen_update_thedeep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 58 | INTERRUPT_GEN_MEMBER(thedeep_mcu_irq); |
| 59 | TIMER_DEVICE_CALLBACK_MEMBER(thedeep_interrupt); |
62 | 60 | void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); |
63 | | |
64 | | INTERRUPT_GEN_MEMBER(mcu_irq); |
65 | | TIMER_DEVICE_CALLBACK_MEMBER(interrupt); |
| 61 | void thedeep_maincpu_bankswitch(UINT8 bank_trig); |
| 62 | DECLARE_WRITE_LINE_MEMBER(irqhandler); |
66 | 63 | }; |
trunk/src/osd/sdl/drawogl.c
r243756 | r243757 | |
1816 | 1816 | if ( texture_copy_properties[texture->format][SDL_TEXFORMAT_SRC_EQUALS_DEST] && |
1817 | 1817 | !texture_copy_properties[texture->format][SDL_TEXFORMAT_SRC_HAS_PALETTE] && |
1818 | 1818 | texture->xprescale == 1 && texture->yprescale == 1 && |
1819 | | !texture->borderpix && !texsource->palette && |
| 1819 | !texture->borderpix && !texsource->palette() && |
1820 | 1820 | texsource->rowpixels <= m_texture_max_width ) |
1821 | 1821 | { |
1822 | 1822 | texture->nocopy = TRUE; |
r243756 | r243757 | |
2263 | 2263 | texture->format = SDL_TEXFORMAT_ARGB32; |
2264 | 2264 | break; |
2265 | 2265 | case TEXFORMAT_RGB32: |
2266 | | if (texsource->palette != NULL) |
| 2266 | if (texsource->palette() != NULL) |
2267 | 2267 | texture->format = SDL_TEXFORMAT_RGB32_PALETTED; |
2268 | 2268 | else |
2269 | 2269 | texture->format = SDL_TEXFORMAT_RGB32; |
r243756 | r243757 | |
2275 | 2275 | texture->format = SDL_TEXFORMAT_PALETTE16A; |
2276 | 2276 | break; |
2277 | 2277 | case TEXFORMAT_YUY16: |
2278 | | if (texsource->palette != NULL) |
| 2278 | if (texsource->palette() != NULL) |
2279 | 2279 | texture->format = SDL_TEXFORMAT_YUY16_PALETTED; |
2280 | 2280 | else |
2281 | 2281 | texture->format = SDL_TEXFORMAT_YUY16; |
r243756 | r243757 | |
2717 | 2717 | switch (PRIMFLAG_GET_TEXFORMAT(flags)) |
2718 | 2718 | { |
2719 | 2719 | case TEXFORMAT_PALETTE16: |
2720 | | copyline_palette16((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); |
| 2720 | copyline_palette16((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); |
2721 | 2721 | break; |
2722 | 2722 | |
2723 | 2723 | case TEXFORMAT_PALETTEA16: |
2724 | | copyline_palettea16((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); |
| 2724 | copyline_palettea16((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); |
2725 | 2725 | break; |
2726 | 2726 | |
2727 | 2727 | case TEXFORMAT_RGB32: |
2728 | | copyline_rgb32((UINT32 *)dst, (UINT32 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); |
| 2728 | copyline_rgb32((UINT32 *)dst, (UINT32 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); |
2729 | 2729 | break; |
2730 | 2730 | |
2731 | 2731 | case TEXFORMAT_ARGB32: |
2732 | | copyline_argb32((UINT32 *)dst, (UINT32 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); |
| 2732 | copyline_argb32((UINT32 *)dst, (UINT32 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); |
2733 | 2733 | break; |
2734 | 2734 | |
2735 | 2735 | case TEXFORMAT_YUY16: |
2736 | | copyline_yuy16_to_argb((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette, texture->borderpix, texture->xprescale); |
| 2736 | copyline_yuy16_to_argb((UINT32 *)dst, (UINT16 *)texsource->base + y * texsource->rowpixels, texsource->width, texsource->palette(), texture->borderpix, texture->xprescale); |
2737 | 2737 | break; |
2738 | 2738 | |
2739 | 2739 | default: |
r243756 | r243757 | |
2806 | 2806 | texture->texinfo.width == prim->texture.width && |
2807 | 2807 | texture->texinfo.height == prim->texture.height && |
2808 | 2808 | texture->texinfo.rowpixels == prim->texture.rowpixels && |
2809 | | /* texture->texinfo.palette == prim->texture.palette && */ |
| 2809 | /* texture->texinfo.palette() == prim->texture.palette() && */ |
2810 | 2810 | ((texture->flags ^ prim->flags) & (PRIMFLAG_BLENDMODE_MASK | PRIMFLAG_TEXFORMAT_MASK)) == 0) |
2811 | 2811 | return 1; |
2812 | 2812 | else |
trunk/src/osd/windows/drawd3d.c
r243756 | r243757 | |
500 | 500 | texture.rowpixels = m_default_bitmap.rowpixels(); |
501 | 501 | texture.width = m_default_bitmap.width(); |
502 | 502 | texture.height = m_default_bitmap.height(); |
503 | | texture.palette = NULL; |
| 503 | texture.set_palette(NULL); |
504 | 504 | texture.seqid = 0; |
505 | 505 | |
506 | 506 | // now create it |
r243756 | r243757 | |
517 | 517 | texture.rowpixels = m_vector_bitmap.rowpixels(); |
518 | 518 | texture.width = m_vector_bitmap.width(); |
519 | 519 | texture.height = m_vector_bitmap.height(); |
520 | | texture.palette = NULL; |
| 520 | texture.set_palette(NULL); |
521 | 521 | texture.seqid = 0; |
522 | 522 | |
523 | 523 | // now create it |
r243756 | r243757 | |
2544 | 2544 | switch (PRIMFLAG_GET_TEXFORMAT(flags)) |
2545 | 2545 | { |
2546 | 2546 | case TEXFORMAT_PALETTE16: |
2547 | | copyline_palette16((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); |
| 2547 | copyline_palette16((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); |
2548 | 2548 | break; |
2549 | 2549 | |
2550 | 2550 | case TEXFORMAT_PALETTEA16: |
2551 | | copyline_palettea16((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); |
| 2551 | copyline_palettea16((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); |
2552 | 2552 | break; |
2553 | 2553 | |
2554 | 2554 | case TEXFORMAT_RGB32: |
2555 | | copyline_rgb32((UINT32 *)dst, (UINT32 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); |
| 2555 | copyline_rgb32((UINT32 *)dst, (UINT32 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); |
2556 | 2556 | break; |
2557 | 2557 | |
2558 | 2558 | case TEXFORMAT_ARGB32: |
2559 | | copyline_argb32((UINT32 *)dst, (UINT32 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); |
| 2559 | copyline_argb32((UINT32 *)dst, (UINT32 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); |
2560 | 2560 | break; |
2561 | 2561 | |
2562 | 2562 | case TEXFORMAT_YUY16: |
2563 | 2563 | if (m_texture_manager->get_yuv_format() == D3DFMT_YUY2) |
2564 | | copyline_yuy16_to_yuy2((UINT16 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); |
| 2564 | copyline_yuy16_to_yuy2((UINT16 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); |
2565 | 2565 | else if (m_texture_manager->get_yuv_format() == D3DFMT_UYVY) |
2566 | | copyline_yuy16_to_uyvy((UINT16 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); |
| 2566 | copyline_yuy16_to_uyvy((UINT16 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); |
2567 | 2567 | else |
2568 | | copyline_yuy16_to_argb((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix); |
| 2568 | copyline_yuy16_to_argb((UINT32 *)dst, (UINT16 *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette(), m_xborderpix); |
2569 | 2569 | break; |
2570 | 2570 | |
2571 | 2571 | default: |