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: |