trunk/hash/pico.xml
r243757 | r243758 | |
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) |
18 | 17 | * さわってみよう! よいこのはじめてキーボード - Sawattemiyou! Yoiko no Hajimete Keyboard (Sega - 199712xx - HPC-6053) |
19 | 18 | * プーさんとたのしいなかまたち - Pooh-san to Tanoshii na Kamatachi (Sega - ???? - HPC-6054) |
20 | 19 | * はじめまシリーズ5 けろけろけろっぴのハリキリうんどうかい - Hajimema Series 5 - Kerokero Keroppi no Harikiri Undoukai (Sega - 1998xxxx - HPC-6059) [reprint HPC-6006] |
r243757 | r243758 | |
45 | 44 | * ディズニープリンセス 白雪姫 ~しらゆきひめ~ <Best> - Disney Princesses - Shirayukihime Best Selection (Sega Toys - 20040426 - HPC-6139) |
46 | 45 | * 七田 眞 監修 右脳イメージトレーニング さんすう・えいごでモジャーズに挑戦 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-????) |
47 | 46 | * 七田 眞 監修 右脳イメージトレーニング ひらがな・カタカナ カジノでモジャベガスドリーム <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) |
49 | 47 | |
50 | 48 | to be verified |
51 | 49 | * アンパンマンのもしもしピコ セット それいけ!アンパンマン アンパンマンとでんわであそぼう!<同梱> - 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?] |
r243757 | r243758 | |
59 | 57 | * ウルトラマンピコ ウルトラファイティングベース - Ultraman Pico Ultraman Fighting Best (Bandai - 200009xx - T-133???) |
60 | 58 | * アンパンマンピコ わくわくパン工場 - Anpanman Pico Wakuwaku Pan Koujou (Bandai - 200106xx - T-133350) |
61 | 59 | * おジャ魔女どれみ ドッカ~ン! - 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) |
64 | 60 | * いっしょにはしろうきかんしゃトーマス <Best Selection> - Issho ni Hashirou Kikansha Thomas Best Selection (Bandai - 20040713 - T-133490) [reprint T-133140] |
65 | 61 | * 学研のおべんきょうソフト たしざん ひきざん - Gakken no Obenkyou Soft - Tashizan Hikizan (Gakken - 1995xxxx - T-169030) |
66 | 62 | * はじめまシリーズ4 学研のおべんきょうソフト たしざん ひきざん - Hajimema Series 4 - Gakken no Obenkyou Soft - Tashizan Hikizan (Gakken - 1998xxxx - T-169070) |
r243757 | r243758 | |
790 | 786 | </part> |
791 | 787 | </software> |
792 | 788 | |
| 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 | |
793 | 805 | <software name="ariel"> |
794 | 806 | <description>Disney Princess Ariel (Jpn)</description> |
795 | 807 | <year>2004</year> |
r243757 | r243758 | |
1190 | 1202 | </part> |
1191 | 1203 | </software> |
1192 | 1204 | |
1193 | | <software name="eccojrg" cloneof="eccojr"> |
1194 | | <description>Ecco Jr. und die große Schatzsuche im Ozean! (Ger)</description> |
| 1205 | <software name="eccojrb" cloneof="eccojr"> |
| 1206 | <description>Ecco Jr. - No fundo do mar! (Bra)</description> |
1195 | 1207 | <year>19??</year> |
1196 | 1208 | <publisher>Sega</publisher> |
1197 | 1209 | <part name="cart" interface="pico_cart"> |
| 1210 | <feature name="pcb" value="171-6882A" /> |
| 1211 | <feature name="ic1" value="MPR-18318-U" /> |
1198 | 1212 | <dataarea name="rom" size="524288"> |
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" /> |
| 1213 | <rom name="mpr-18318-u.ic1" size="524288" crc="557670cf" sha1="fc8936611b4fb868838fd1ad60fba4944e4f8822" offset="0" loadflag="load16_word_swap" /> |
1200 | 1214 | </dataarea> |
1201 | 1215 | </part> |
1202 | 1216 | </software> |
r243757 | r243758 | |
1215 | 1229 | </part> |
1216 | 1230 | </software> |
1217 | 1231 | |
| 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 | |
1218 | 1243 | <software name="eccojrj" cloneof="eccojr"> |
1219 | 1244 | <description>Ecco Jr. and the Great Ocean Treasure Hunt! (Jpn)</description> |
1220 | 1245 | <year>1995</year> |
r243757 | r243758 | |
2394 | 2419 | </part> |
2395 | 2420 | </software> |
2396 | 2421 | |
| 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 | |
2397 | 2435 | <software name="magiccraf" cloneof="magiccra"> |
2398 | 2436 | <description>Crayons Magiques (Fra)</description> |
2399 | 2437 | <year>1994</year> |
r243757 | r243758 | |
2616 | 2654 | </part> |
2617 | 2655 | </software> |
2618 | 2656 | |
| 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 | |
2619 | 2670 | <software name="mickblstf" cloneof="mickblst" supported="no"> |
2620 | 2671 | <description>Mickey - Fait un Voyage Eclair Dans Le Passé (Fra)</description> |
2621 | 2672 | <year>1994</year> |
r243757 | r243758 | |
3107 | 3158 | </part> |
3108 | 3159 | </software> |
3109 | 3160 | |
| 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 | |
3110 | 3177 | <software name="pecola"> |
3111 | 3178 | <description>Pecola no Daibouken Maboroshi no Ice Cream wo Sagase! (Jpn)</description> |
3112 | 3179 | <year>1998</year> |
r243757 | r243758 | |
4007 | 4074 | </software> |
4008 | 4075 | |
4009 | 4076 | <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"> |
4010 | 4093 | <description>Soreike! Anpanman no Medalympic World 2 (Jpn)</description> |
4011 | 4094 | <year>199?</year> |
4012 | 4095 | <publisher>Bandai</publisher> |
r243757 | r243758 | |
4210 | 4293 | </part> |
4211 | 4294 | </software> |
4212 | 4295 | |
| 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 | |
4213 | 4312 | <!-- The game was re-released in 2003 for the Pico 10th Anniversary. The ROM content is the same, but the PCB is different. --> |
4214 | 4313 | <software name="tokyodtt"> |
4215 | 4314 | <description>Tokyo Disneyland Toon Town - Mickey no Boku wa Untenshu (Jpn)</description> |
r243757 | r243758 | |
4462 | 4561 | </software> |
4463 | 4562 | |
4464 | 4563 | <software name="yukaimp"> |
4465 | | <description>Yukai na Mori no Packet (Jpn)</description> |
| 4564 | <description>Yukai na Mori no Paketto (Jpn)</description> |
4466 | 4565 | <year>1995</year> |
4467 | 4566 | <publisher>Sega</publisher> |
4468 | 4567 | <info name="serial" value="HPC-6034"/> |
trunk/src/emu/bus/cpc/smartwatch.c
r0 | r243758 | |
| 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
r243757 | r243758 | |
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 | | //************************************************************************** |
270 | 205 | // RENDER PRIMITIVE |
271 | 206 | //************************************************************************** |
272 | 207 | |
r243757 | r243758 | |
277 | 212 | |
278 | 213 | void render_primitive::reset() |
279 | 214 | { |
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 | | |
304 | 215 | // do not clear m_next! |
305 | | // memset(&type, 0, FPTR(&texcoords + 1) - FPTR(&type)); |
| 216 | memset(&type, 0, FPTR(&texcoords + 1) - FPTR(&type)); |
306 | 217 | } |
307 | 218 | |
308 | 219 | |
r243757 | r243758 | |
556 | 467 | texinfo.rowpixels = m_bitmap->rowpixels(); |
557 | 468 | texinfo.width = swidth; |
558 | 469 | texinfo.height = sheight; |
559 | | // will be set later |
560 | | texinfo.set_palette(NULL); |
| 470 | // palette will be set later |
561 | 471 | texinfo.seqid = ++m_curseq; |
562 | 472 | } |
563 | 473 | else |
r243757 | r243758 | |
611 | 521 | texinfo.rowpixels = scaled->bitmap->rowpixels(); |
612 | 522 | texinfo.width = dwidth; |
613 | 523 | texinfo.height = dheight; |
614 | | // will be set later |
615 | | texinfo.set_palette(NULL); |
| 524 | // palette will be set later |
616 | 525 | texinfo.seqid = scaled->seqid; |
617 | 526 | } |
618 | 527 | } |
r243757 | r243758 | |
623 | 532 | // palette for a texture |
624 | 533 | //------------------------------------------------- |
625 | 534 | |
626 | | const dynamic_array<rgb_t> *render_texture::get_adjusted_palette(render_container &container) |
| 535 | const rgb_t *render_texture::get_adjusted_palette(render_container &container) |
627 | 536 | { |
628 | 537 | // override the palette with our adjusted palette |
629 | 538 | switch (m_format) |
r243757 | r243758 | |
633 | 542 | |
634 | 543 | assert(m_bitmap->palette() != NULL); |
635 | 544 | |
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 |
| 545 | // return our adjusted palette |
641 | 546 | return container.bcg_lookup_table(m_format, m_bitmap->palette()); |
642 | 547 | |
643 | 548 | case TEXFORMAT_RGB32: |
r243757 | r243758 | |
671 | 576 | m_manager(manager), |
672 | 577 | m_screen(screen), |
673 | 578 | m_overlaybitmap(NULL), |
674 | | m_overlaytexture(NULL), |
675 | | m_bcglookup256(0x400) |
| 579 | m_overlaytexture(NULL) |
676 | 580 | { |
677 | 581 | // make sure it is empty |
678 | 582 | empty(); |
r243757 | r243758 | |
685 | 589 | m_user.m_brightness = manager.machine().options().brightness(); |
686 | 590 | m_user.m_contrast = manager.machine().options().contrast(); |
687 | 591 | m_user.m_gamma = manager.machine().options().gamma(); |
688 | | // can't allocate palette client yet since palette and screen devices aren't started yet |
| 592 | // palette client will be allocated later |
689 | 593 | } |
690 | 594 | |
691 | 595 | recompute_lookups(); |
r243757 | r243758 | |
812 | 716 | // given texture mode |
813 | 717 | //------------------------------------------------- |
814 | 718 | |
815 | | const dynamic_array<rgb_t> *render_container::bcg_lookup_table(int texformat, palette_t *palette) |
| 719 | const rgb_t *render_container::bcg_lookup_table(int texformat, palette_t *palette) |
816 | 720 | { |
817 | 721 | switch (texformat) |
818 | 722 | { |
r243757 | r243758 | |
820 | 724 | case TEXFORMAT_PALETTEA16: |
821 | 725 | if (m_palclient == NULL) // if adjusted palette hasn't been created yet, create it |
822 | 726 | { |
823 | | assert(palette == m_screen->palette()->palette()); |
824 | 727 | m_palclient.reset(global_alloc(palette_client(*palette))); |
825 | 728 | m_bcglookup.resize(palette->max_index()); |
826 | 729 | recompute_lookups(); |
827 | 730 | } |
828 | 731 | assert (palette == &m_palclient->palette()); |
829 | | return &m_bcglookup; |
| 732 | return m_bcglookup; |
830 | 733 | |
831 | 734 | case TEXFORMAT_RGB32: |
832 | 735 | case TEXFORMAT_ARGB32: |
833 | 736 | case TEXFORMAT_YUY16: |
834 | | return &m_bcglookup256; |
| 737 | return m_bcglookup256; |
835 | 738 | |
836 | 739 | default: |
837 | 740 | return NULL; |
r243757 | r243758 | |
916 | 819 | const rgb_t *adjusted_palette = palette.entry_list_adjusted(); |
917 | 820 | int colors = palette.max_index(); |
918 | 821 | |
919 | | for (int i = 0; i < colors; i++) |
| 822 | if (has_brightness_contrast_gamma_changes()) |
920 | 823 | { |
921 | | rgb_t newval = adjusted_palette[i]; |
922 | | m_bcglookup[i] = (newval & 0xff000000) | |
| 824 | for (int i = 0; i < colors; i++) |
| 825 | { |
| 826 | rgb_t newval = adjusted_palette[i]; |
| 827 | m_bcglookup[i] = (newval & 0xff000000) | |
923 | 828 | m_bcglookup256[0x200 + newval.r()] | |
924 | 829 | m_bcglookup256[0x100 + newval.g()] | |
925 | 830 | m_bcglookup256[0x000 + newval.b()]; |
| 831 | } |
926 | 832 | } |
| 833 | else |
| 834 | memcpy(&m_bcglookup[0], adjusted_palette, colors * sizeof(rgb_t)); |
927 | 835 | } |
928 | 836 | } |
929 | 837 | |
r243757 | r243758 | |
949 | 857 | palette_t &palette = m_palclient->palette(); |
950 | 858 | const rgb_t *adjusted_palette = palette.entry_list_adjusted(); |
951 | 859 | |
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++) |
| 860 | if (has_brightness_contrast_gamma_changes()) |
954 | 861 | { |
955 | | UINT32 dirtybits = dirty[entry32]; |
956 | | if (dirtybits != 0) |
| 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) |
957 | 867 | |
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) | |
| 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) | |
965 | 875 | m_bcglookup256[0x200 + newval.r()] | |
966 | 876 | m_bcglookup256[0x100 + newval.g()] | |
967 | 877 | m_bcglookup256[0x000 + newval.b()]; |
968 | | } |
| 878 | } |
| 879 | } |
969 | 880 | } |
| 881 | else |
| 882 | memcpy(&m_bcglookup[mindirty], &adjusted_palette[mindirty], (maxdirty - mindirty + 1) * sizeof(rgb_t)); |
970 | 883 | } |
971 | 884 | } |
972 | 885 | |
r243757 | r243758 | |
1821 | 1734 | height = MIN(height, m_maxtexheight); |
1822 | 1735 | |
1823 | 1736 | curitem->texture()->get_scaled(width, height, prim->texture, list); |
| 1737 | |
1824 | 1738 | // 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 |
1829 | 1739 | prim->texture.palette = curitem->texture()->get_adjusted_palette(container); |
1830 | | #endif |
1831 | 1740 | |
1832 | 1741 | // determine UV coordinates and apply clipping |
1833 | 1742 | prim->texcoords = oriented_texcoords[finalorient]; |
trunk/src/emu/rendersw.inc
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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)) |
r243757 | r243758 | |
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)) |
r243757 | r243758 | |
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)) |
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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
r243757 | r243758 | |
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 | |
r243757 | r243758 | |
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 | |
r243757 | r243758 | |
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 |
1911 | 1909 | */ |
1912 | 1910 | ROM_START( hotd3 ) |
1913 | 1911 | CHIHIRO_BIOS |
r243757 | r243758 | |
1967 | 1965 | |
1968 | 1966 | PIC |
1969 | 1967 | 255-5508-354 |
1970 | | 317-054-COM |
| 1968 | 317-0354-COM |
1971 | 1969 | */ |
1972 | 1970 | ROM_START( vcop3 ) |
1973 | 1971 | CHIHIRO_BIOS |
r243757 | r243758 | |
1983 | 1981 | CHIHIRO_BIOS |
1984 | 1982 | |
1985 | 1983 | DISK_REGION( "gdrom" ) |
1986 | | DISK_IMAGE_READONLY( "gdx-0004a", 0, BAD_DUMP SHA1(27acd2d0680e6bafa0d052f60b4372adc37224fd) ) |
| 1984 | DISK_IMAGE_READONLY( "gdx-0004a", 0, SHA1(055a13a5dc4f54e6b6bdf5ce29dbda14cc9741d7) ) |
1987 | 1985 | |
1988 | 1986 | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) |
1989 | 1987 | ROM_LOAD("317-0372-com.data", 0x00, 0x50, CRC(a15c9666) SHA1(fd36c524744acb33e579ccb257c71375a5d3af67) ) |
r243757 | r243758 | |
1999 | 1997 | ROM_LOAD("317-0374-jpn.data", 0x00, 0x50, NO_DUMP ) |
2000 | 1998 | ROM_END |
2001 | 1999 | |
| 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 | |
2002 | 2010 | /* |
2003 | 2011 | Title MJ2 |
2004 | 2012 | Media ID 3580 |
r243757 | r243758 | |
2039 | 2047 | CHIHIRO_BIOS |
2040 | 2048 | |
2041 | 2049 | DISK_REGION( "gdrom" ) |
2042 | | DISK_IMAGE_READONLY( "gdx-0009b", 0, BAD_DUMP SHA1(e032b9fd8d5d09255592f02f7531a608e8179c9c) ) |
| 2050 | DISK_IMAGE_READONLY( "gdx-0009b", 0, SHA1(6fcbebb95b53eaabbc5da6ee08fbe15c2922b8d4) ) |
2043 | 2051 | |
2044 | 2052 | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) |
2045 | 2053 | ROM_LOAD("317-5101-com.data", 0x00, 0x50, CRC(3af801f3) SHA1(e9a2558930f3f1f55d5b3c2cadad69329d931f26) ) |
2046 | 2054 | ROM_END |
2047 | 2055 | |
| 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 | |
2048 | 2066 | /* |
2049 | 2067 | Title GHOST SQUAD |
2050 | 2068 | Media ID 004F |
r243757 | r243758 | |
2156 | 2174 | track01.bin 150 8740 20206032 |
2157 | 2175 | track02.raw 8891 10242 3179904 |
2158 | 2176 | track03.bin 45150 549299 1185760800 |
2159 | | |
2160 | | PIC16C621A () |
2161 | | Sticker: 235-5508-0567 |
2162 | | VER0001, TEST_OK, BRN.BIN, '70 1F 71 1F' D96446469BDCE9C1 |
2163 | 2177 | */ |
2164 | 2178 | ROM_START( ccfboxa ) |
2165 | 2179 | CHIHIRO_BIOS |
r243757 | r243758 | |
2167 | 2181 | DISK_REGION( "gdrom" ) |
2168 | 2182 | DISK_IMAGE_READONLY( "gdx-0024a", 0, SHA1(79d8c0faeec7cf6882f014760b8af938800b7e52) ) |
2169 | 2183 | |
2170 | | ROM_REGION( 0x50, "pic", ROMREGION_ERASE) |
2171 | | ROM_LOAD("317-0567-exp.data", 0x00, 0x50, NO_DUMP ) |
| 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) ) |
2172 | 2188 | ROM_END |
2173 | 2189 | |
2174 | 2190 | |
r243757 | r243758 | |
2191 | 2207 | /* 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 ) |
2192 | 2208 | // 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 ) |
2193 | 2209 | // 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 ) |
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 ) |
| 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 ) |
2195 | 2211 | /* 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 ) |
2196 | 2212 | /* 0007 */ GAME( 2004, ollie, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Amusement Vision", "Ollie King (GDX-0007)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2197 | 2213 | // 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 ) |
r243757 | r243758 | |
2202 | 2218 | /* 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 ) |
2203 | 2219 | // 0010 |
2204 | 2220 | // 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 ) |
2205 | | // 0012 GAME( 2004, ghostsqo, ghostsqu, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (GDX-0012)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 2221 | /* 0012 */ GAME( 2004, ghostsqo, ghostsqu, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (GDX-0012)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2206 | 2222 | /* 0012A */ GAME( 2004, ghostsqu, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (Rev A) (GDX-0012A)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2207 | 2223 | /* 0013 */ GAME( 2005, gundamos, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Gundam Battle Operating Simulator (GDX-0013)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
2208 | 2224 | // 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
r243757 | r243758 | |
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!", 0 ) |
| 5568 | GAME( 1990, gollygho, 0, gollygho, gollygho, namcos2_state, gollygho, ROT180, "Namco", "Golly! Ghost!", GAME_REQUIRES_ARTWORK ) |
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 ) |
r243757 | r243758 | |
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_IMPERFECT_GRAPHICS ) /* missing external artwork */ |
| 5582 | GAME( 1992, bubbletr, 0, gollygho, bubbletr, namcos2_state, bubbletr, ROT180, "Namco", "Bubble Trouble (Japan, Rev C)", GAME_REQUIRES_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 ) |
r243757 | r243758 | |
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
r243757 | r243758 | |
551 | 551 | static INPUT_PORTS_START( opwolf ) |
552 | 552 | /* 0x380000 -> 0x0ff028 (-$fd8,A5) (C-chip) */ |
553 | 553 | PORT_START("DSWA") |
554 | | PORT_DIPUNUSED( 0x01, IP_ACTIVE_LOW ) |
555 | | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) ) |
| 554 | PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW1:1" ) |
| 555 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:2") |
556 | 556 | PORT_DIPSETTING( 0x02, DEF_STR( No ) ) |
557 | 557 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
558 | | TAITO_DSWA_BITS_2_TO_3 |
559 | | TAITO_COINAGE_WORLD |
| 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) |
560 | 563 | |
561 | 564 | /* 0x380002 -> 0x0ff02a (-$fd6,A5) (C-chip) */ |
562 | 565 | PORT_START("DSWB") |
563 | | TAITO_DIFFICULTY |
564 | | PORT_DIPNAME( 0x0c, 0x0c, "Ammo Magazines at Start" ) |
| 566 | TAITO_DIFFICULTY_LOC(SW2) |
| 567 | PORT_DIPNAME( 0x0c, 0x0c, "Ammo Magazines at Start" ) PORT_DIPLOCATION("SW2:3,4") |
565 | 568 | PORT_DIPSETTING( 0x00, "4" ) |
566 | 569 | PORT_DIPSETTING( 0x04, "5" ) |
567 | 570 | PORT_DIPSETTING( 0x0c, "6" ) |
568 | 571 | PORT_DIPSETTING( 0x08, "7" ) |
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 ) ) |
| 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") |
573 | 578 | PORT_DIPSETTING( 0x80, DEF_STR( Japanese ) ) |
574 | 579 | PORT_DIPSETTING( 0x00, DEF_STR( English ) ) |
575 | 580 | |
trunk/src/mame/drivers/retofinv.c
r243757 | r243758 | |
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 | } |
38 | 61 | |
39 | 62 | WRITE8_MEMBER(retofinv_state::cpu1_reset_w) |
40 | 63 | { |
r243757 | r243758 | |
99 | 122 | AM_RANGE(0x7fff, 0x7fff) AM_WRITE(coincounter_w) |
100 | 123 | AM_RANGE(0x7b00, 0x7bff) AM_ROM /* space for diagnostic ROM? The code looks */ |
101 | 124 | /* for a string here, and jumps if it's present */ |
102 | | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(retofinv_fg_videoram_w) AM_SHARE("fg_videoram") |
| 125 | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram") |
103 | 126 | AM_RANGE(0x8800, 0x9fff) AM_RAM AM_SHARE("sharedram") |
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) |
| 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) |
106 | 129 | AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1") |
107 | 130 | AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P2") |
108 | 131 | AM_RANGE(0xc002, 0xc002) AM_READNOP /* bit 7 must be 0, otherwise game resets */ |
109 | | AM_RANGE(0xc003, 0xc003) AM_READ(retofinv_mcu_status_r) |
| 132 | AM_RANGE(0xc003, 0xc003) AM_READ(mcu_status_r) |
110 | 133 | AM_RANGE(0xc004, 0xc004) AM_READ_PORT("SYSTEM") |
111 | 134 | AM_RANGE(0xc005, 0xc005) AM_READ_PORT("DSW1") |
112 | 135 | AM_RANGE(0xc006, 0xc006) AM_READ_PORT("DSW2") |
r243757 | r243758 | |
119 | 142 | AM_RANGE(0xc805, 0xc805) AM_WRITE(cpu1_reset_w) |
120 | 143 | AM_RANGE(0xd000, 0xd000) AM_WRITE(watchdog_reset_w) |
121 | 144 | AM_RANGE(0xd800, 0xd800) AM_WRITE(soundcommand_w) |
122 | | AM_RANGE(0xe000, 0xe000) AM_READ(retofinv_mcu_r) |
123 | | AM_RANGE(0xe800, 0xe800) AM_WRITE(retofinv_mcu_w) |
| 145 | AM_RANGE(0xe000, 0xe000) AM_READ(mcu_r) |
| 146 | AM_RANGE(0xe800, 0xe800) AM_WRITE(mcu_w) |
124 | 147 | AM_RANGE(0xf800, 0xf800) AM_READ(cpu0_mf800_r) |
125 | 148 | ADDRESS_MAP_END |
126 | 149 | |
127 | 150 | static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, retofinv_state ) |
128 | 151 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
129 | | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(retofinv_fg_videoram_w) AM_SHARE("fg_videoram") |
| 152 | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram") |
130 | 153 | AM_RANGE(0x8800, 0x9fff) AM_RAM AM_SHARE("sharedram") |
131 | | AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(retofinv_bg_videoram_w) AM_SHARE("bg_videoram") |
| 154 | AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram") |
132 | 155 | AM_RANGE(0xc804, 0xc804) AM_WRITE(irq1_ack_w) |
133 | 156 | ADDRESS_MAP_END |
134 | 157 | |
r243757 | r243758 | |
144 | 167 | |
145 | 168 | static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, retofinv_state ) |
146 | 169 | ADDRESS_MAP_GLOBAL_MASK(0x7ff) |
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) |
| 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) |
153 | 176 | AM_RANGE(0x0010, 0x007f) AM_RAM |
154 | 177 | AM_RANGE(0x0080, 0x07ff) AM_ROM |
155 | 178 | ADDRESS_MAP_END |
r243757 | r243758 | |
367 | 390 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
368 | 391 | MCFG_SCREEN_SIZE(36*8, 28*8) |
369 | 392 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
370 | | MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update_retofinv) |
| 393 | MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update) |
371 | 394 | MCFG_SCREEN_PALETTE("palette") |
372 | 395 | |
373 | 396 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", retofinv) |
r243757 | r243758 | |
501 | 524 | |
502 | 525 | |
503 | 526 | |
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 ) |
| 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 ) |
trunk/src/mame/drivers/segaorun.c
r243757 | r243758 | |
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
r243757 | r243758 | |
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) |
11 | 10 | - It's possible that there is only one coin chute and not two,needs a real board to know |
12 | 11 | more about it. |
13 | 12 | |
r243757 | r243758 | |
79 | 78 | #include "emu.h" |
80 | 79 | #include "cpu/z80/z80.h" |
81 | 80 | #include "sound/ay8910.h" |
82 | | #include "video/mc6845.h" |
83 | 81 | #include "includes/speedatk.h" |
84 | 82 | |
85 | 83 | #define MASTER_CLOCK XTAL_12MHz |
86 | 84 | |
| 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 | |
87 | 93 | UINT8 speedatk_state::iox_key_matrix_calc(UINT8 p_side) |
88 | 94 | { |
89 | 95 | static const char *const keynames[] = { "P1_ROW0", "P1_ROW1", "P2_ROW0", "P2_ROW1" }; |
r243757 | r243758 | |
175 | 181 | AM_RANGE(0x8000, 0x8000) AM_READWRITE(key_matrix_r,key_matrix_w) |
176 | 182 | AM_RANGE(0x8001, 0x8001) AM_READWRITE(key_matrix_status_r,key_matrix_status_w) |
177 | 183 | AM_RANGE(0x8800, 0x8fff) AM_RAM |
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") |
| 184 | AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_SHARE("videoram") |
| 185 | AM_RANGE(0xb000, 0xb3ff) AM_RAM AM_SHARE("colorram") |
180 | 186 | ADDRESS_MAP_END |
181 | 187 | |
182 | 188 | |
183 | 189 | static ADDRESS_MAP_START( speedatk_io, AS_IO, 8, speedatk_state ) |
184 | 190 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
185 | | AM_RANGE(0x00, 0x01) AM_WRITE(speedatk_6845_w) //h46505 address / data routing |
| 191 | AM_RANGE(0x00, 0x01) AM_WRITE(m6845_w) //h46505 address / data routing |
186 | 192 | AM_RANGE(0x24, 0x24) AM_WRITE(watchdog_reset_w) |
187 | 193 | AM_RANGE(0x40, 0x40) AM_DEVREAD("aysnd", ay8910_device, data_r) |
188 | 194 | AM_RANGE(0x40, 0x41) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
r243757 | r243758 | |
285 | 291 | GFXDECODE_ENTRY( "gfx2", 0, charlayout_3bpp, 0, 32 ) |
286 | 292 | GFXDECODE_END |
287 | 293 | |
288 | | WRITE8_MEMBER(speedatk_state::speedatk_output_w) |
| 294 | WRITE8_MEMBER(speedatk_state::output_w) |
289 | 295 | { |
290 | 296 | m_flip_scr = data & 0x80; |
291 | 297 | |
r243757 | r243758 | |
308 | 314 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
309 | 315 | MCFG_SCREEN_SIZE(320, 256) |
310 | 316 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
311 | | MCFG_SCREEN_UPDATE_DRIVER(speedatk_state, screen_update_speedatk) |
| 317 | MCFG_SCREEN_UPDATE_DRIVER(speedatk_state, screen_update) |
312 | 318 | MCFG_SCREEN_PALETTE("palette") |
313 | 319 | |
314 | 320 | MCFG_MC6845_ADD("crtc", H46505, "screen", MASTER_CLOCK/16) /* hand tuned to get ~60 fps */ |
r243757 | r243758 | |
325 | 331 | |
326 | 332 | MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/4) //divider is unknown |
327 | 333 | MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW")) |
328 | | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(speedatk_state, speedatk_output_w)) |
| 334 | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(speedatk_state, output_w)) |
329 | 335 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) |
330 | 336 | MACHINE_CONFIG_END |
331 | 337 | |
r243757 | r243758 | |
350 | 356 | ROM_LOAD( "cb2.bpr", 0x0020, 0x0100, CRC(a604cf96) SHA1(a4ef6e77dcd3abe4c27e8e636222a5ee711a51f5) ) /* lookup table */ |
351 | 357 | ROM_END |
352 | 358 | |
353 | | GAME( 1984, speedatk, 0, speedatk, speedatk, driver_device, 0, ROT0, "Seta Kikaku Corp.", "Speed Attack! (Japan)", 0 ) |
| 359 | GAME( 1984, speedatk, 0, speedatk, speedatk, driver_device, 0, ROT0, "Seta Kikaku Corp.", "Speed Attack! (Japan)", GAME_SUPPORTS_SAVE ) |
trunk/src/mame/drivers/thedeep.c
r243757 | r243758 | |
38 | 38 | ***************************************************************************/ |
39 | 39 | |
40 | 40 | |
41 | | WRITE8_MEMBER(thedeep_state::thedeep_nmi_w) |
| 41 | WRITE8_MEMBER(thedeep_state::nmi_w) |
42 | 42 | { |
43 | 43 | m_nmi_enable = data; |
44 | 44 | } |
45 | 45 | |
46 | | WRITE8_MEMBER(thedeep_state::thedeep_sound_w) |
| 46 | WRITE8_MEMBER(thedeep_state::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 | } |
52 | 62 | |
53 | 63 | void thedeep_state::machine_reset() |
54 | 64 | { |
55 | | membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000 + 0 * 0x4000); |
| 65 | membank("bank1")->set_entry(0); |
56 | 66 | m_scroll[0] = 0; |
57 | 67 | m_scroll[1] = 0; |
58 | 68 | m_scroll[2] = 0; |
r243757 | r243758 | |
60 | 70 | m_protection_command = 0; |
61 | 71 | m_protection_index = -1; |
62 | 72 | m_protection_irq = 0; |
63 | | m_rombank = -1; |
64 | 73 | } |
65 | 74 | |
66 | | WRITE8_MEMBER(thedeep_state::thedeep_protection_w) |
| 75 | WRITE8_MEMBER(thedeep_state::protection_w) |
67 | 76 | { |
68 | 77 | m_protection_command = data; |
69 | 78 | switch (m_protection_command) |
r243757 | r243758 | |
80 | 89 | case 0x31: |
81 | 90 | case 0x32: |
82 | 91 | case 0x33: |
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 | | } |
| 92 | membank("bank1")->set_entry(m_protection_command & 3); |
92 | 93 | break; |
93 | 94 | |
94 | 95 | case 0x59: |
r243757 | r243758 | |
126 | 127 | } |
127 | 128 | } |
128 | 129 | |
129 | | READ8_MEMBER(thedeep_state::thedeep_e004_r) |
| 130 | READ8_MEMBER(thedeep_state::e004_r) |
130 | 131 | { |
131 | 132 | return m_protection_irq ? 1 : 0; |
132 | 133 | } |
133 | 134 | |
134 | | READ8_MEMBER(thedeep_state::thedeep_protection_r) |
| 135 | READ8_MEMBER(thedeep_state::protection_r) |
135 | 136 | { |
136 | 137 | m_protection_irq = 0; |
137 | 138 | return m_protection_data; |
138 | 139 | } |
139 | 140 | |
140 | | WRITE8_MEMBER(thedeep_state::thedeep_e100_w) |
| 141 | WRITE8_MEMBER(thedeep_state::e100_w) |
141 | 142 | { |
142 | 143 | if (data != 1) |
143 | 144 | logerror("pc %04x: e100 = %02x\n", space.device().safe_pc(),data); |
r243757 | r243758 | |
148 | 149 | AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // ROM (banked) |
149 | 150 | AM_RANGE(0xc000, 0xcfff) AM_RAM |
150 | 151 | AM_RANGE(0xd000, 0xdfff) AM_RAM // RAM (MCU data copied here) |
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) // |
| 152 | AM_RANGE(0xe000, 0xe000) AM_READWRITE(protection_r, protection_w) // To MCU |
| 153 | AM_RANGE(0xe004, 0xe004) AM_READWRITE(e004_r, nmi_w) // |
153 | 154 | AM_RANGE(0xe008, 0xe008) AM_READ_PORT("e008") // P1 (Inputs) |
154 | 155 | AM_RANGE(0xe009, 0xe009) AM_READ_PORT("e009") // P2 |
155 | 156 | AM_RANGE(0xe00a, 0xe00a) AM_READ_PORT("e00a") // DSW1 |
156 | 157 | AM_RANGE(0xe00b, 0xe00b) AM_READ_PORT("e00b") // DSW2 |
157 | | AM_RANGE(0xe00c, 0xe00c) AM_WRITE(thedeep_sound_w) // To Sound CPU |
158 | | AM_RANGE(0xe100, 0xe100) AM_WRITE(thedeep_e100_w) // ? |
| 158 | AM_RANGE(0xe00c, 0xe00c) AM_WRITE(sound_w) // To Sound CPU |
| 159 | AM_RANGE(0xe100, 0xe100) AM_WRITE(e100_w) // ? |
159 | 160 | AM_RANGE(0xe210, 0xe213) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
160 | 161 | AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_SHARE("spriteram") // Sprites |
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 |
| 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 |
163 | 164 | AM_RANGE(0xf800, 0xf83f) AM_RAM AM_SHARE("scroll2") // Column Scroll |
164 | 165 | AM_RANGE(0xf840, 0xffff) AM_RAM |
165 | 166 | ADDRESS_MAP_END |
r243757 | r243758 | |
185 | 186 | |
186 | 187 | ***************************************************************************/ |
187 | 188 | |
188 | | void thedeep_state::thedeep_maincpu_bankswitch(UINT8 bank_trig) |
| 189 | WRITE8_MEMBER(thedeep_state::p1_w) |
189 | 190 | { |
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 | | { |
203 | 191 | flip_screen_set((data & 1) ^ 1); |
204 | | thedeep_maincpu_bankswitch((data & 6) >> 1); |
| 192 | membank("bank1")->set_entry((data & 6) >> 1); |
205 | 193 | logerror("P1 %02x\n",data); |
206 | 194 | } |
207 | 195 | |
208 | | READ8_MEMBER(thedeep_state::thedeep_from_main_r) |
| 196 | READ8_MEMBER(thedeep_state::from_main_r) |
209 | 197 | { |
210 | 198 | static UINT8 res; |
211 | 199 | |
r243757 | r243758 | |
215 | 203 | return 0x20; |
216 | 204 | } |
217 | 205 | |
218 | | WRITE8_MEMBER(thedeep_state::thedeep_to_main_w) |
| 206 | WRITE8_MEMBER(thedeep_state::to_main_w) |
219 | 207 | { |
220 | 208 | // ... |
221 | 209 | } |
222 | 210 | |
223 | | WRITE8_MEMBER(thedeep_state::thedeep_p3_w) |
| 211 | WRITE8_MEMBER(thedeep_state::p3_w) |
224 | 212 | { |
225 | 213 | /* bit 0 0->1 transition IRQ0 to main */ |
226 | 214 | if((!(m_mcu_p3_reg & 0x01)) && data & 0x01) |
r243757 | r243758 | |
238 | 226 | logerror("P3 %02x\n",data); |
239 | 227 | } |
240 | 228 | |
241 | | READ8_MEMBER(thedeep_state::thedeep_p0_r) |
| 229 | READ8_MEMBER(thedeep_state::p0_r) |
242 | 230 | { |
243 | 231 | UINT8 coin_mux; |
244 | 232 | |
r243757 | r243758 | |
249 | 237 | |
250 | 238 | static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, thedeep_state ) |
251 | 239 | ADDRESS_MAP_UNMAP_HIGH |
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) |
| 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) |
256 | 244 | ADDRESS_MAP_END |
257 | 245 | |
258 | 246 | |
r243757 | r243758 | |
382 | 370 | |
383 | 371 | ***************************************************************************/ |
384 | 372 | |
385 | | WRITE_LINE_MEMBER(thedeep_state::irqhandler) |
| 373 | TIMER_DEVICE_CALLBACK_MEMBER(thedeep_state::interrupt) |
386 | 374 | { |
387 | | m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); |
388 | | } |
389 | | |
390 | | TIMER_DEVICE_CALLBACK_MEMBER(thedeep_state::thedeep_interrupt) |
391 | | { |
392 | 375 | int scanline = param; |
393 | 376 | |
394 | 377 | if (scanline == 124) // TODO: clean this |
r243757 | r243758 | |
417 | 400 | } |
418 | 401 | } |
419 | 402 | |
420 | | INTERRUPT_GEN_MEMBER(thedeep_state::thedeep_mcu_irq) |
| 403 | INTERRUPT_GEN_MEMBER(thedeep_state::mcu_irq) |
421 | 404 | { |
422 | 405 | m_mcu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE); |
423 | 406 | } |
r243757 | r243758 | |
427 | 410 | /* basic machine hardware */ |
428 | 411 | MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ |
429 | 412 | MCFG_CPU_PROGRAM_MAP(main_map) |
430 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", thedeep_state, thedeep_interrupt, "screen", 0, 1) |
| 413 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", thedeep_state, interrupt, "screen", 0, 1) |
431 | 414 | |
432 | 415 | MCFG_CPU_ADD("audiocpu", M65C02, XTAL_12MHz/8) /* verified on pcb */ |
433 | 416 | MCFG_CPU_PROGRAM_MAP(audio_map) |
r243757 | r243758 | |
436 | 419 | /* MCU is a i8751 running at 8Mhz (8mhz xtal)*/ |
437 | 420 | MCFG_CPU_ADD("mcu", I8751, XTAL_8MHz) |
438 | 421 | MCFG_CPU_IO_MAP(mcu_io_map) |
439 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", thedeep_state, thedeep_mcu_irq) // unknown source, but presumably vblank |
| 422 | MCFG_CPU_VBLANK_INT_DRIVER("screen", thedeep_state, mcu_irq) // unknown source, but presumably vblank |
440 | 423 | MCFG_DEVICE_DISABLE() |
441 | 424 | |
442 | 425 | |
r243757 | r243758 | |
446 | 429 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
447 | 430 | MCFG_SCREEN_SIZE(0x100, 0xf8) |
448 | 431 | MCFG_SCREEN_VISIBLE_AREA(0, 0x100-1, 0, 0xf8-1) |
449 | | MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update_thedeep) |
| 432 | MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update) |
450 | 433 | MCFG_SCREEN_PALETTE("palette") |
451 | 434 | |
452 | 435 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", thedeep) |
r243757 | r243758 | |
458 | 441 | MCFG_SPEAKER_STANDARD_MONO("mono") |
459 | 442 | |
460 | 443 | MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */ |
461 | | MCFG_YM2203_IRQ_HANDLER(WRITELINE(thedeep_state, irqhandler)) |
| 444 | MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) |
462 | 445 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
463 | 446 | MACHINE_CONFIG_END |
464 | 447 | |
r243757 | r243758 | |
474 | 457 | |
475 | 458 | Here are the proms for The Deep! |
476 | 459 | NOTE: This game is Vertical. |
477 | | I couldn't test this board so I don't know the manufakturer, sorry. |
| 460 | I couldn't test this board so I don't know the manufacturer, sorry. |
478 | 461 | 1 Z80 |
479 | 462 | 1 R6502 |
480 | 463 | 1 YM 2203 |
r243757 | r243758 | |
553 | 536 | ROM_LOAD( "fi-3", 0x400, 0x200, CRC(f61a9686) SHA1(24082f60b72268d240ceca6999bdf18872625cd2) ) |
554 | 537 | ROM_END |
555 | 538 | |
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 ) |
| 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 ) |
trunk/src/mame/includes/retofinv.h
r243757 | r243758 | |
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"), |
9 | 6 | m_maincpu(*this, "maincpu"), |
10 | 7 | m_audiocpu(*this, "audiocpu"), |
11 | 8 | m_subcpu(*this, "sub"), |
12 | 9 | m_68705(*this, "68705"), |
13 | 10 | m_gfxdecode(*this, "gfxdecode"), |
14 | | m_palette(*this, "palette") { } |
| 11 | m_palette(*this, "palette"), |
| 12 | m_fg_videoram(*this, "fg_videoram"), |
| 13 | m_sharedram(*this, "sharedram"), |
| 14 | m_bg_videoram(*this, "bg_videoram") { } |
15 | 15 | |
16 | | UINT8 m_cpu2_m6000; |
| 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 | |
17 | 23 | required_shared_ptr<UINT8> m_fg_videoram; |
18 | 24 | required_shared_ptr<UINT8> m_sharedram; |
19 | 25 | 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; |
20 | 30 | UINT8 m_from_main; |
21 | 31 | UINT8 m_from_mcu; |
22 | 32 | int m_mcu_sent; |
r243757 | r243758 | |
35 | 45 | tilemap_t *m_bg_tilemap; |
36 | 46 | tilemap_t *m_fg_tilemap; |
37 | 47 | |
38 | | UINT8 m_main_irq_mask; |
39 | | UINT8 m_sub_irq_mask; |
40 | 48 | DECLARE_WRITE8_MEMBER(cpu1_reset_w); |
41 | 49 | DECLARE_WRITE8_MEMBER(cpu2_reset_w); |
42 | 50 | DECLARE_WRITE8_MEMBER(mcu_reset_w); |
r243757 | r243758 | |
47 | 55 | DECLARE_WRITE8_MEMBER(irq1_ack_w); |
48 | 56 | DECLARE_WRITE8_MEMBER(coincounter_w); |
49 | 57 | DECLARE_WRITE8_MEMBER(coinlockout_w); |
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); |
| 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 | |
65 | 74 | TILEMAP_MAPPER_MEMBER(tilemap_scan); |
66 | 75 | TILE_GET_INFO_MEMBER(bg_get_tile_info); |
67 | 76 | TILE_GET_INFO_MEMBER(fg_get_tile_info); |
| 77 | |
| 78 | virtual void machine_start(); |
68 | 79 | virtual void video_start(); |
69 | 80 | DECLARE_PALETTE_INIT(retofinv); |
70 | | UINT32 screen_update_retofinv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 81 | |
| 82 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 83 | void draw_sprites(bitmap_ind16 &bitmap); |
| 84 | |
71 | 85 | INTERRUPT_GEN_MEMBER(main_vblank_irq); |
72 | 86 | 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; |
80 | 87 | }; |
trunk/src/mame/includes/speedatk.h
r243757 | r243758 | |
| 1 | #include "video/mc6845.h" |
| 2 | |
1 | 3 | class speedatk_state : public driver_device |
2 | 4 | { |
3 | 5 | public: |
r243757 | r243758 | |
3 | 5 | speedatk_state(const machine_config &mconfig, device_type type, const char *tag) |
4 | 6 | : driver_device(mconfig, type, tag), |
5 | | m_videoram(*this, "videoram"), |
6 | | m_colorram(*this, "colorram"), |
7 | 7 | m_maincpu(*this, "maincpu"), |
| 8 | m_crtc(*this, "crtc"), |
8 | 9 | m_gfxdecode(*this, "gfxdecode"), |
9 | | m_palette(*this, "palette") { } |
| 10 | m_palette(*this, "palette"), |
| 11 | m_videoram(*this, "videoram"), |
| 12 | m_colorram(*this, "colorram") { } |
10 | 13 | |
| 14 | required_device<cpu_device> m_maincpu; |
| 15 | required_device<h46505_device> m_crtc; |
| 16 | required_device<gfxdecode_device> m_gfxdecode; |
| 17 | required_device<palette_device> m_palette; |
| 18 | |
11 | 19 | required_shared_ptr<UINT8> m_videoram; |
12 | 20 | required_shared_ptr<UINT8> m_colorram; |
| 21 | |
13 | 22 | UINT8 m_crtc_vreg[0x100]; |
14 | 23 | UINT8 m_crtc_index; |
15 | 24 | UINT8 m_flip_scr; |
16 | | |
17 | 25 | UINT8 m_mux_data; |
18 | 26 | UINT8 m_km_status; |
19 | 27 | UINT8 m_coin_settings; |
20 | 28 | UINT8 m_coin_impulse; |
| 29 | |
21 | 30 | DECLARE_READ8_MEMBER(key_matrix_r); |
22 | 31 | DECLARE_WRITE8_MEMBER(key_matrix_w); |
23 | 32 | DECLARE_READ8_MEMBER(key_matrix_status_r); |
24 | 33 | DECLARE_WRITE8_MEMBER(key_matrix_status_w); |
25 | | DECLARE_WRITE8_MEMBER(speedatk_videoram_w); |
26 | | DECLARE_WRITE8_MEMBER(speedatk_colorram_w); |
27 | | DECLARE_WRITE8_MEMBER(speedatk_6845_w); |
28 | | DECLARE_WRITE8_MEMBER(speedatk_output_w); |
| 34 | DECLARE_WRITE8_MEMBER(videoram_w); |
| 35 | DECLARE_WRITE8_MEMBER(colorram_w); |
| 36 | DECLARE_WRITE8_MEMBER(m6845_w); |
| 37 | DECLARE_WRITE8_MEMBER(output_w); |
| 38 | |
| 39 | virtual void machine_start(); |
29 | 40 | virtual void video_start(); |
30 | 41 | DECLARE_PALETTE_INIT(speedatk); |
31 | | UINT32 screen_update_speedatk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 42 | |
| 43 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 44 | |
32 | 45 | UINT8 iox_key_matrix_calc(UINT8 p_side); |
33 | | required_device<cpu_device> m_maincpu; |
34 | | required_device<gfxdecode_device> m_gfxdecode; |
35 | | required_device<palette_device> m_palette; |
36 | 46 | }; |
trunk/src/mame/includes/thedeep.h
r243757 | r243758 | |
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"), |
6 | 11 | m_spriteram(*this, "spriteram"), |
7 | 12 | m_vram_0(*this, "vram_0"), |
8 | 13 | m_vram_1(*this, "vram_1"), |
9 | 14 | m_scroll(*this, "scroll"), |
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") { } |
| 15 | m_scroll2(*this, "scroll2") { } |
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 | |
17 | 23 | 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 | |
18 | 29 | int m_nmi_enable; |
19 | 30 | UINT8 m_protection_command; |
20 | 31 | UINT8 m_protection_data; |
21 | 32 | int m_protection_index; |
22 | 33 | 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; |
28 | 34 | tilemap_t *m_tilemap_0; |
29 | 35 | tilemap_t *m_tilemap_1; |
30 | 36 | UINT8 m_mcu_p3_reg; |
31 | 37 | |
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); |
| 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 | |
51 | 52 | TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_back); |
52 | 53 | TILE_GET_INFO_MEMBER(get_tile_info_0); |
53 | 54 | TILE_GET_INFO_MEMBER(get_tile_info_1); |
| 55 | |
| 56 | virtual void machine_start(); |
54 | 57 | virtual void machine_reset(); |
55 | 58 | virtual void video_start(); |
56 | 59 | DECLARE_PALETTE_INIT(thedeep); |
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); |
| 60 | |
| 61 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
60 | 62 | void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); |
61 | | void thedeep_maincpu_bankswitch(UINT8 bank_trig); |
62 | | DECLARE_WRITE_LINE_MEMBER(irqhandler); |
| 63 | |
| 64 | INTERRUPT_GEN_MEMBER(mcu_irq); |
| 65 | TIMER_DEVICE_CALLBACK_MEMBER(interrupt); |
63 | 66 | }; |
trunk/src/osd/sdl/drawogl.c
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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; |
r243757 | r243758 | |
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: |
r243757 | r243758 | |
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
r243757 | r243758 | |
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.set_palette(NULL); |
| 503 | texture.palette = NULL; |
504 | 504 | texture.seqid = 0; |
505 | 505 | |
506 | 506 | // now create it |
r243757 | r243758 | |
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.set_palette(NULL); |
| 520 | texture.palette = NULL; |
521 | 521 | texture.seqid = 0; |
522 | 522 | |
523 | 523 | // now create it |
r243757 | r243758 | |
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: |