diff options
423 files changed, 7663 insertions, 6162 deletions
diff --git a/hash/fidel_msc.xml b/hash/fidel_msc.xml index e48585f301e..18058356c1e 100644 --- a/hash/fidel_msc.xml +++ b/hash/fidel_msc.xml @@ -24,4 +24,15 @@ The 1st half is for Z8, 2nd half is for MCS48. A12 is forced high or low. </part> </software> + <software name="cbo"> + <description>Challenger Book Openings</description> + <year>1982</year> + <publisher>Fidelity Electronics</publisher> + <part name="cart" interface="fidel_msc"> + <dataarea name="rom" size="0x2000"> + <rom name="mk36a43n-4_101-1043a01" size="0x2000" crc="430d0969" sha1="34a436fdf26c5feb503228ffcf6ce5ac2632168e" /> <!-- MK36000 --> + </dataarea> + </part> + </software> + </softwarelist> diff --git a/hash/fmtowns_cd.xml b/hash/fmtowns_cd.xml index dc00f200166..89dad02e536 100644 --- a/hash/fmtowns_cd.xml +++ b/hash/fmtowns_cd.xml @@ -128,7 +128,6 @@ Dick Amorphous Digital Pinup Girls Vol. 2 Transpegasus Limited 1993/6 CD * Doki Doki Vacation Cocktail Soft 1995/3 SET(CD+FD) Do-Re-Mi Canvas Tokyo Shoseki 1994/12 CD -Dracula Hakushaku Fairytale 1993/3 CD Dragon Souseiki Basho House 1993/12 CD Drive Simulator Home Navi Fujitsu Ten 1994/8 SET(CD+FD) Dynamic Business English 1 DynEd Japan 1994/11 SET(CD+FD) @@ -228,7 +227,6 @@ Gram Cats 2 Dot Kikaku Grand Prix Densetsu Soft Studio Wing 1993/9 CD Green Box Chihi Shokubutsu Database On 1993/4 ? Green Box Flower Database On 1991/10 ? -Grimm Douwa 2: Bremen no Ongakutai Gyousei 1989/11 CD Grimm Douwa 3: Ookami to Nana-hiki Komagi Gyousei 1990/11 CD Grimm Douwa 4: Ibarahime (Nemurihime) Gyousei 1990/11 CD Gyoukai Arijigoku TAC 1994/6 CD @@ -290,7 +288,6 @@ Hyper Media NHK Zoku Kiso Eigo: Dai-2-kan CSK Research Insti * Hyper Media NHK Zoku Kiso Eigo: Dai-3-kan CSK Research Institute (CRI) 1991/9 SET(CD+FD) Hyper Note Datt Japan 1991/12 SET(CD+FD) Hyper Photo DB Fujitsu 1993/9 CD -Hyper Planet Datt Japan 1990/9 SET(CD+FD) Hyper Planet for Marty Datt Japan 1993/6 SET(CD+FD) Hyper Planet Shiki Vol. 1 Datt Japan 1992/7 CD Hyper Planet Shiki Vol. 2: Utsukushii Fuyu no Seiza Hen Datt Japan 1993/12 CD @@ -358,15 +355,15 @@ Kousoku Choujin Foster Kusuriyubi no Kyoukasho Active 1996/4 CD Kyouiku & FM Towns Vol. 1 Fujitsu ? CD Kyouiku & FM Towns Vol. 2 Fujitsu ? CD +Kyouiku & FM Towns Vol. 4 Fujitsu ? CD Kyouko no Ijiwaru!! Hachamecha Daishingeki Ponytail Soft 1994/10 CD -Lemon Cocktail Collection Cocktail Soft 1993/3 CD L'Empereur Koei 1991/1 SET(CD+FD) Let's go 1-1 DynEd Japan 1995/7 SET(CD+FD) Let's go 1-2 DynEd Japan 1995/7 SET(CD+FD) Let's go 2-1 DynEd Japan 1995/7 SET(CD+FD) Let's go 2-2 DynEd Japan 1995/7 SET(CD+FD) Lettuce Cooking 2: Tanoshiku Tsukureru Obentou SS Communications 1990/8 SET(CD+FD) -Lipstick Adventure 3 Fairytale 1993/5 CD +* Lipstick Adventure 3 Fairytale 1993/5 CD Little Big Adventure Electronic Arts Victor 1995/12 CD LiveAnimation V1.1 Fujitsu 1992/12 CD LiveAnimation V2.1 Fujitsu 1994/5 CD @@ -389,6 +386,7 @@ Maruanki Eitango: Chuugaku 1-nensei CSK Research Insti Maruanki Eitango: Chuugaku 2-nensei CSK Research Institute (CRI) 1989/12 SET(CD+FD) Maruanki Eitango: Chuugaku 3-nensei CSK Research Institute (CRI) 1990/2 SET(CD+FD) Masuo per Masuo: Ikeda Masuo Hanga-shuu Kazadama Vol. 2 Fujitsu 1994/7 CD +Megamorph Demo Fujitsu ? CD Meisou Toshi Tiara 1995/12 CD Microsoft Windows 95 (Upgrade Package) Fujitsu 1996/6 CD Mietarou V2.0 Uchida Youkou 1992/12 SET(CD+FD) @@ -466,7 +464,6 @@ Nihon no Chou (Marty-compatible) Fujitsu Social Sci Nihon no Kaisuigyo Inter Limited Logic 1995/10 CD Nihon no Kusabana Fujitsu Social Science Laboratory 1997/10 CD Nihon no Rekishi 4-hen Set Uchida Youkou 1993/8 CD×04 -Nihon no Rekishi: Ishin-hen CSK Research Institute (CRI) 1990/8 CD Nihon no Rekishi: Sengoku-hen CSK Research Institute (CRI) 1990/6 CD Nihon no Tansuigyo Inter Limited Logic 1995/12 CD Nihon no Tenki Uchida Youkou 1992/9 CD @@ -496,7 +493,6 @@ Otto Anime-kun Nihon Micom Hanbai Palamedes Ving 1991/10 CD Pasocon de Tanoshimu Yama to Chizu Inter Limited Logic 1995/10 CD Petit Collage Pandora Box 1994/3 CD -Phobos Himeya Soft 1995/8 CD Pi's Solitaire Royale Fujitsu 1989/7 CD Planet Harmony Datt Japan 1993/9 SET(CD+FD) Pocky 1-2 & Ponyon Ponytail Soft 1994/6 CD @@ -645,12 +641,14 @@ Touch the Music by Casiopea Fujitsu Tougenkyou (Shichuusuimeigaku Nyuumon) Nanken Koubou 1991/2 CD Toukyou Genshikai - Tokyo Sexy Ave. HOP 1994/7 SET(CD+FD) Towns Amone Kozu System 1990/4 SET(CD+FD) -Towns Chiri Jigsaw World Fujitsu Ooita Software Laboratory 1991/3 CD Towns Chiri Shizen no Naritachi Fujitsu Ooita Software Laboratory 1991/9 CD Towns Cruising Chart Raison 1991/4 SET(CD+FD) Towns E to Oto de Manabu Suugaku Rand Computer 1993/3 CD Towns Family Genki Yohou Kozu System 1990/12 CD Towns Magazine Vol. 3 Fujitsu 1995/4 CD×02 +Towns Magazine for School Vol. 1 Fujitsu ? CD +Towns Magazine for School Vol. 2 Fujitsu ? CD +Towns Magazine for School Vol. 3 Fujitsu ? CD Towns Magazine for School Vol. 4 Fujitsu ? CD Towns Meikyoku Master Fujitsu Ooita Software Laboratory 1991/9 CD Towns Meikyoku Master (Marty-compatible) Fujitsu Ooita Software Laboratory 1993/3 CD @@ -2535,28 +2533,45 @@ User/save disks that can be created from the game itself are not included. <software name="bfmaria"> <!-- - Origin: Neo Kobe Collection - <rom name="Ballade for Maria.ccd" size="4201" crc="69ad79f8" sha1="0883c0808b086ceb52b6815bd355fd7306322b43"/> - <rom name="Ballade for Maria.cue" size="793" crc="3758d2c4" sha1="055e261c3291f4eeb642033572e710db86a40493"/> - <rom name="Ballade for Maria.img" size="675788400" crc="b143b770" sha1="c7b09416b175dcd71a8b85a01722c06546b7dc00"/> - <rom name="Ballade for Maria.sub" size="27583200" crc="585890ad" sha1="b39e379ece89bef03ed577ec1093bdf8c3d3782f"/> + Origin: redump.org + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 01).bin" size="52567200" crc="a0453251" sha1="f8057115c857d2820933923930f5ec5bac629217"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 02).bin" size="32281200" crc="f009519a" sha1="60326053000bd97a3f282d6ee76c67cd33892bee"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 03).bin" size="40219200" crc="2ac49aa7" sha1="2f8190ab686b70bce2dc617e4237a4d196d43fdf"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 04).bin" size="35456400" crc="be7f38ec" sha1="33815592642c529d45d43e91604d055f713c66c7"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 05).bin" size="39513600" crc="8bf229a2" sha1="ac14747d52774ae4b694acb0b3780f42611a1652"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 06).bin" size="39513600" crc="ca5d1686" sha1="4bf32b892a8e797fcab0dbf2cf38666696a4296d"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 07).bin" size="38808000" crc="1572806b" sha1="2e8dbf7bd01103e1fc70139a22ae5393672bc6c5"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 08).bin" size="34045200" crc="0e589363" sha1="18deb2fc2df4764d80bdd47e21f374291eeb0960"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 09).bin" size="37396800" crc="d19511b9" sha1="dda8f39f51e2b91f43832a72d5ddfe8e5f4b5f46"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 10).bin" size="45687600" crc="c63395e7" sha1="ee36833da0872755acdd5f32cca5c9ff687f1f59"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 11).bin" size="34045200" crc="35388255" sha1="c76553a6170d379bac7758f118547f511cc73190"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 12).bin" size="42865200" crc="06d8519d" sha1="4091506be83a4500a6b24d8d248c67530021b1e2"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 13).bin" size="40572000" crc="e23fc4d2" sha1="205ccf0c17f88663463b79fd707d1865dcb606c3"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 14).bin" size="40924800" crc="e5e984e8" sha1="43beb44e70d15d3845277c82bdbadf682dc1b46d"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 15).bin" size="42865200" crc="2e73d466" sha1="8bb6a428e689dfeb4ba83f69e78a39f204eb44dd"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 16).bin" size="40395600" crc="6d281276" sha1="b91ad24acb3bc38740520a5fc5e01da173e6b2ff"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 17).bin" size="20286000" crc="4ce7c4d1" sha1="a63d41984208d311c2ada4848efba9e75cdeb7bf"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 18).bin" size="17110800" crc="1b0ce5c1" sha1="1c146d54e8701a773fb2f814d45ad431add9d0c8"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 19).bin" size="1234800" crc="93480c7c" sha1="501ee7f044118543907ae2da4b1aca40b499359b"/> + <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan).cue" size="2817" crc="e380c2b0" sha1="fdb112aebeee6632838efa531fbf02434ee93506"/> --> <description>Ballade for Maria</description> <year>1995</year> <publisher>フェアリーテール (Fairytale)</publisher> <info name="serial" value="HMG-125"/> <info name="alt_title" value="マリアに捧げるバラード" /> + <info name="serial" value="HMG-125"/> <info name="release" value="199506xx" /> <info name="usage" value="Requires 2 MB RAM"/> <part name="flop1" interface="floppy_3_5"> - <feature name="part_id" value="User Disk" /> + <feature name="part_id" value="Disk A" /> <dataarea name="flop" size="1261568"> - <rom name="ballade for maria (user disk).hdm" size="1261568" crc="200678ab" sha1="c658fd357318eb5f1522c88ea333f70bda75a72a" offset="000000" /> + <rom name="ballade for maria (disk a).hdm" size="1261568" crc="200678ab" sha1="c658fd357318eb5f1522c88ea333f70bda75a72a" offset="000000" /> </dataarea> </part> <part name="cdrom" interface="fmt_cdrom"> <diskarea name="cdrom"> - <disk name="ballade for maria" sha1="1f9e39ca63a8a896c5487b4a21100dd67e6a1ffd" /> + <disk name="ballade for maria - maria ni sasageru ballade (japan)" sha1="30aaffec9c420d87dc0b0ffce34c703861ad07c1" /> </diskarea> </part> </software> @@ -4240,6 +4255,34 @@ User/save disks that can be created from the game itself are not included. </part> </software> + <software name="dracula"> + <!-- + Origin: redump.org + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 1).bin" size="10231200" crc="2255328c" sha1="72de510b3ba1173cb809befa3de3b32838c518a8"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 2).bin" size="49921200" crc="55813a81" sha1="239f91a2e4dfa1494d080aad2c43c1bdf6ade158"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 3).bin" size="39690000" crc="69ea0568" sha1="5f0b0827bf50d153213106d0f7863528145c65a8"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 4).bin" size="18169200" crc="76305cf7" sha1="fc946cea8b28842657ec52133d2f554eaef9d5d9"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 5).bin" size="37926000" crc="4835e60b" sha1="2a3cab192a3e314be2756eed4ccf8ef2a1346a16"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 6).bin" size="19404000" crc="88b26112" sha1="0e874c0acc0f3a8320259fb6599425d8f5ed29f8"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 7).bin" size="26636400" crc="43a78467" sha1="47e38ded387ba21b3a630c48092864ccbe96f5e6"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 8).bin" size="30870000" crc="3f3c70dc" sha1="539c22f7ccce658ecc0af316ccf290fd218d8f99"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 9).bin" size="43747200" crc="04bd8701" sha1="18a08d656acd100e5e65fcd8446b04abcb963dea"/> + <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan).cue" size="1386" crc="56362c0e" sha1="a59a6af26679604460a8c4f183e15db79d75792d"/> + --> + <description>Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari</description> + <year>1993</year> + <publisher>フェアリーテール (Fairytale)</publisher> + <info name="alt_title" value="ドラキュラ伯爵 「美少女たちの血のしたたり」" /> + <info name="serial" value="HME-103"/> + <info name="release" value="199303xx" /> + <info name="usage" value="Requires 2 MB RAM"/> + <part name="cdrom" interface="fmt_cdrom"> + <diskarea name="cdrom"> + <disk name="dracula hakushaku - bishoujo-tachi no chi no shitatari (japan)" sha1="9287fda1d1148c86fe280b2f4ab012bb89a73976" /> + </diskarea> + </part> + </software> + <software name="draghalf"> <!-- Origin: Neo Kobe Collection @@ -6057,7 +6100,7 @@ User/save disks that can be created from the game itself are not included. </part> </software> - <software name="grimm"> + <software name="grimmaka"> <!-- Origin: P2P <rom name="Image.cdm" size="5668" crc="3b07aab8" sha1="8730e1aa92035db646f0353e642f3cdcd0b5f097"/> @@ -6079,6 +6122,57 @@ User/save disks that can be created from the game itself are not included. </part> </software> + <software name="grimmbre"> + <!-- + Origin: redump.org + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 01).bin" size="105840000" crc="b0e135f6" sha1="0958fbcc6ac7a77df9e6e9033315c7daab5ddf09"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 02).bin" size="15868944" crc="3a452e17" sha1="e8f501b4a21c37842da494ddf55fd256c919c96d"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 03).bin" size="16623936" crc="9904cb77" sha1="eab60421ef4851cdebc83e5d258809e97ba44b53"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 04).bin" size="5002704" crc="17119d40" sha1="67e2ba4d4d529976a27cfac981ad8586eac59dfa"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 05).bin" size="18098640" crc="2b92b14e" sha1="210a853a55e713a7766750f0853117f49822d11b"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 06).bin" size="1500576" crc="22ca4630" sha1="b35e47642109eb256740102edd1d706a57d66596"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 07).bin" size="4245360" crc="dd59e4af" sha1="eeacfcb890e68022a866e60e0b19f45e52827002"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 08).bin" size="5609520" crc="ef83d09d" sha1="19f040ff2f4c660daddd63b7fbdee330fa01017d"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 09).bin" size="8542464" crc="43b622e0" sha1="1c950e1e8b2ff3a625a43f177801ed3fb42e14c8"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 10).bin" size="10595760" crc="747e1042" sha1="8195a7ca65ab15be9a4aa002731527ad1ac09e36"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 11).bin" size="17317776" crc="6b51b167" sha1="d4fe42d18a87bf00594ac75fffb7baf69c614230"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 12).bin" size="5320224" crc="36234d75" sha1="c92a17c7d170a7c37c3e790832420e4d31717490"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 13).bin" size="3528000" crc="d14610b4" sha1="9501a0237835b3babd75d929bbe0dd0a0d72e641"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 14).bin" size="8874096" crc="738ce546" sha1="938e11f0914663c0b255a94d18aaf49161e69ec2"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 15).bin" size="11865840" crc="ccdc7e7b" sha1="4a48f32b91ce9bc59fb21281f1ff38a9d62a8a83"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 16).bin" size="6143424" crc="3f218f7a" sha1="5c8cb4b8c31efb7e0a7943932e9b9f3ab0eb47c1"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 17).bin" size="15765456" crc="dcc883da" sha1="bd72c227d9b046963b0a550ff2da95da4a9fdfc0"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 18).bin" size="7705152" crc="2cbdaa20" sha1="f5b79acbbf9def2583afb581db55ef1ef0dbab86"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 19).bin" size="4224192" crc="d3e5e166" sha1="a33d59cf6814bfc8178fb551cdfa595382cf2b7d"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 20).bin" size="2535456" crc="1bbbf61d" sha1="cfa4c0e5f5f4b04b3a8569f84a2ebfb991545049"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 21).bin" size="2352000" crc="7ded364a" sha1="fcdbdfed00e83bbfff7dc32a297793f38ac63af8"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 22).bin" size="13382880" crc="eedce739" sha1="c6a8b05a6aac6afb8628dee81915f9bb2eeddfbc"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 23).bin" size="1545264" crc="86d45815" sha1="a09136f74748ea717d7b32a6f57276c563489779"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 24).bin" size="2328480" crc="38015576" sha1="9012a741a43ffdc3a40e7db4e112f3dc0a217679"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 25).bin" size="2312016" crc="215bee1d" sha1="0a58b32476f7a4e9b55d886e499c270521268147"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 26).bin" size="1975680" crc="bd5e1936" sha1="bc24ba261ac14a4355b82eb93f0644d4903bc956"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 27).bin" size="2297904" crc="7d0859e5" sha1="1f23a01c4317f9788b3d964b650f12dac57189d9"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 28).bin" size="1528800" crc="32d14d3b" sha1="ba32d268a9f9f13e43c13b7acb671e9f7bdfd60d"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 29).bin" size="2340240" crc="580d4700" sha1="dbdd55a19d092ace67ebc6ca951de83c1263014f"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 30).bin" size="2069760" crc="4279cf4a" sha1="8bfc39d87c308cf8b12772b999a057eac26295ed"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 31).bin" size="22379280" crc="c11b3c3a" sha1="0e8bffea5a644f911d23825732e949bc02169b14"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 32).bin" size="16652160" crc="356a309b" sha1="d35c70b0f30cbad511c7b7b4742c60f287764ad7"/> + <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan).cue" size="5477" crc="228262b4" sha1="9a3e9bd3b43793f3ff33e75ae47a5661a39a224e"/> + --> + <description>Märchen Toshokan - Grimm Douwa - Bremen no Ongakutai</description> + <year>1989</year> + <publisher>ぎょうせい (Gyousei)</publisher> + <info name="alt_title" value="メルヘン図書館 グリム童話 ブレーメンの音楽隊" /> + <info name="serial" value="HMA-270"/> + <info name="release" value="198911xx" /> + <info name="usage" value="Requires 2 MB RAM"/> + <part name="cdrom" interface="fmt_cdrom"> + <diskarea name="cdrom"> + <disk name="maerchen toshokan grimm douwa - grimm maerchen - bremen no ongakutai (japan)" sha1="083ccc5752f6c472df658ee3cd524013e136649a" /> + </diskarea> + </part> + </software> + <software name="gulfwar"> <!-- Origin: redump.org @@ -6167,11 +6261,28 @@ User/save disks that can be created from the game itself are not included. <software name="gundamhd"> <!-- - Origin: Neo Kobe Collection - <rom name="Mobile Suit Gundam Hyper Desert Operation.ccd" size="4393" crc="c146c679" sha1="8d76c9cfbaaa32f7515c7fcfe810d4e7a214d28a"/> - <rom name="Mobile Suit Gundam Hyper Desert Operation.cue" size="857" crc="adfa275d" sha1="ad93554e89d56d9ce51348089341572ea7f1d709"/> - <rom name="Mobile Suit Gundam Hyper Desert Operation.img" size="251633424" crc="44eb68ec" sha1="5e8827afe57acf7de620c468c9cd6bd3903dea9c"/> - <rom name="Mobile Suit Gundam Hyper Desert Operation.sub" size="10270752" crc="e9e722da" sha1="6a695055bdc6f144e532271952bc785bb3d5c9b3"/> + Origin: redump.org + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 01).bin" size="105840000" crc="39827446" sha1="d829a9bdf5394b5e74b8a29776ab4cb6a0135316"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 02).bin" size="10377024" crc="e70f6e0a" sha1="78aea1ebff8fbfe24974a240d8400a8c61e0d973"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 03).bin" size="8843520" crc="5c6d98a4" sha1="6ad28626f2a55c42dad3487b670eb882184b8fc9"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 04).bin" size="7573440" crc="73653488" sha1="9d8d2438678ef983c6ca568a9ec6b03dcd21f019"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 05).bin" size="11226096" crc="25ccd2a2" sha1="53f4c36075dfe913aa1c937a2aca4002c0798ab7"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 06).bin" size="6684384" crc="4a88a15d" sha1="50c0d88b805bd1473de43edb73a95de419921b80"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 07).bin" size="6851376" crc="36566a2b" sha1="83a3e77f3f8a7e1e547b46627d5c5845c1f3bfbc"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 08).bin" size="10501680" crc="a6e99e47" sha1="15223cbec954109a53f76dfa7b174d3ee168d599"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 09).bin" size="8714160" crc="b2aab6bc" sha1="1b08e5319171899812a17df211c74968258bd2b2"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 10).bin" size="9836064" crc="3855eb68" sha1="d6e89532ffd6c488072b8e85bc7c0f1da95453a1"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 11).bin" size="11543616" crc="c1bb08c4" sha1="13a360b1604b7bc77f2749902efcb3e53c43fed8"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 12).bin" size="9090480" crc="c337cf61" sha1="e5d225bc0a81c4c61801a53a9d1665b48abe7300"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 13).bin" size="9459744" crc="65768c24" sha1="b7eb6495ea25f8cc2ce29aaac3879ad361a7147d"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 14).bin" size="4245360" crc="3bc22466" sha1="1234e1d7b803ed057f5c31950efe6c0ac4e317e7"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 15).bin" size="6169296" crc="6cc732f7" sha1="5e3934c8a7267b299e385143263c2aef7e92ed54"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 16).bin" size="3692640" crc="86045f73" sha1="14b1d7050354f9814c719591102aa875039541d4"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 17).bin" size="4273584" crc="1ec2ee8d" sha1="fae286094839370b6ef5aa7ebc481a2bb1b9b148"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 18).bin" size="8255520" crc="8fbdc8fc" sha1="79f7c5765e2cc6f35e1b0062fb8b3fa8bf1d415b"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 19).bin" size="3687936" crc="0b75a350" sha1="3ce1c833e5bc486cb42155e3d44c997af9a6b0d8"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 20).bin" size="4767504" crc="ec9c7a09" sha1="0f7df177c1d7401d9baf9159d5bea318b8a67544"/> + <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan).cue" size="2925" crc="eeb3779b" sha1="6adcb7c0ad515fbb0d709096a7e828a36373fafc"/> --> <description>Mobile Suit Gundam - Hyper Desert Operation</description> <year>1992</year> @@ -6182,7 +6293,7 @@ User/save disks that can be created from the game itself are not included. <info name="usage" value="Requires 2 MB RAM"/> <part name="cdrom" interface="fmt_cdrom"> <diskarea name="cdrom"> - <disk name="mobile suit gundam hyper desert operation" sha1="05410dc1fe303c5613650f2a697d76ad769644ea" /> + <disk name="mobile suit gundam - hyper desert operation (japan)" sha1="11b91659de9bdb5678ee9eb776bedd0ace620923" /> </diskarea> </part> </software> @@ -6599,6 +6710,44 @@ User/save disks that can be created from the game itself are not included. </part> </software> + <software name="hyplanet"> + <!-- + Origin: redump.org / wiggy2k + <rom name="Hyper Planet (Japan) (Track 01).bin" size="36338400" crc="c6a1c2f8" sha1="88a71285ceafe9a6714260773a226c051433c7e8"/> + <rom name="Hyper Planet (Japan) (Track 02).bin" size="63527520" crc="6b42d003" sha1="c7735206da1a94a84554848a3193ce5e88ffc381"/> + <rom name="Hyper Planet (Japan) (Track 03).bin" size="68871264" crc="bf5e21f5" sha1="75c7dbfb99a58f11ccc0e585262d2418092c29cd"/> + <rom name="Hyper Planet (Japan) (Track 04).bin" size="23879856" crc="42bca228" sha1="794f3d08c1a3a43482ce162b367d378e4c2c9001"/> + <rom name="Hyper Planet (Japan) (Track 05).bin" size="25448640" crc="e90acf65" sha1="56627df5222560c61d1737826bfec0de64e100bb"/> + <rom name="Hyper Planet (Japan) (Track 06).bin" size="26394144" crc="c11ad65c" sha1="e90c27d74397dffb85bc9482f9670a4535e1fe55"/> + <rom name="Hyper Planet (Japan) (Track 07).bin" size="25589760" crc="9da466ec" sha1="ea7f47f2fdc6a3e80be8deb4195811e57c72fe62"/> + <rom name="Hyper Planet (Japan) (Track 08).bin" size="22515696" crc="5b723176" sha1="84f07581d29d524bd8fe0bd604808e9b10ba8c35"/> + <rom name="Hyper Planet (Japan) (Track 09).bin" size="23395344" crc="f84e6fcd" sha1="faf5822563d9d94677b7665441978c5db6feaa93"/> + <rom name="Hyper Planet (Japan) (Track 10).bin" size="23374176" crc="08c038e7" sha1="ebd900a5bfbcc87250208765b6d2c1ab7d066a17"/> + <rom name="Hyper Planet (Japan) (Track 11).bin" size="23214240" crc="c227678c" sha1="5b9e8037740f8c4c6b3e7e0ffcf18066160c5a2f"/> + <rom name="Hyper Planet (Japan) (Track 12).bin" size="23501184" crc="66d6d682" sha1="07285d15c568aca76893bb116742ce42f73651fe"/> + <rom name="Hyper Planet (Japan) (Track 13).bin" size="24025680" crc="ae889eb6" sha1="8051e01d0b7a83c27cee58a2a22351cd014f2c28"/> + <rom name="Hyper Planet (Japan) (Track 14).bin" size="24467856" crc="09d23cef" sha1="d39fe2d5b9b2da5ae6227c541e13de760e57d614"/> + <rom name="Hyper Planet (Japan) (Track 15).bin" size="23437680" crc="36f76375" sha1="c603ed76df9baa767bc5c70ded268bc353fb2d06"/> + <rom name="Hyper Planet (Japan) (Track 16).bin" size="167737584" crc="c31cb371" sha1="103f14a00b4caa526076341e214fe5ee3b6c12db"/> + <rom name="Hyper Planet (Japan).cue" size="1822" crc="48c4f947" sha1="a43de891e62bfac8797422ac3f6cfc920846b8b6"/> + --> + <description>Hyper Planet</description> + <year>1990</year> + <publisher>ダットジャパン (Datt Japan)</publisher> + <info name="serial" value="HMB-107"/> + <info name="release" value="199009xx" /> + <part name="flop1" interface="floppy_3_5"> + <dataarea name="flop" size="1261568"> + <rom name="hyper-planet.hdm" size="1261568" crc="ec701443" sha1="345ba017d784e42d926dc73548e8149c3a10c6c1" offset="000000" /> + </dataarea> + </part> + <part name="cdrom" interface="fmt_cdrom"> + <diskarea name="cdrom"> + <disk name="hyper planet (japan)" sha1="489ede661a707adef7868526cfbbbb9d0bc6e55c" /> + </diskarea> + </part> + </software> + <!-- Missing a floppy disk --> <software name="nhkzkei3" supported="no"> <!-- @@ -7118,6 +7267,76 @@ User/save disks that can be created from the game itself are not included. </part> </software> + <software name="jigwld"> + <!-- + Origin: redump.org + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 01).bin" size="69336960" crc="c7171dbf" sha1="3cfc81580f52b6a137b19a69c80b9ca00fe4a508"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 02).bin" size="18703104" crc="e48b7b9f" sha1="0dc1898b6c8144c7b3503b8bcf00449f89461af7"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 03).bin" size="11760000" crc="27cfc935" sha1="f59216e413bd1649bc01c9f1f9f28324e13c435e"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 04).bin" size="12860736" crc="d5e59703" sha1="af741fe64d81aa8f3e7f91853ef817d89d9dd6e5"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 05).bin" size="45010224" crc="4756d3ff" sha1="6a98fe2f2d06ee93442762b686c9869513b8cd18"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 06).bin" size="8937600" crc="fbabe923" sha1="efa0a7e04da272fffcc032d1946e04b7839099cf"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 07).bin" size="17393040" crc="8c36ced2" sha1="2de80fe9062789970b6f9222b8676359f6974356"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 08).bin" size="11771760" crc="e771bacb" sha1="289615a53edbd175cedd5b0ea62127abb881867f"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 09).bin" size="15177456" crc="6b8aa063" sha1="5962e46c6026e38092a15550708da04eef90b3c5"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 10).bin" size="11200224" crc="2ee221aa" sha1="c00140aa7f88d92eccaf11a6990ecc2e92229510"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 11).bin" size="11595360" crc="118260ea" sha1="94f701cacd0edae8b50de9c2a9e841d941946f92"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 12).bin" size="16106496" crc="02083627" sha1="f96cadbcb1adee3039a00d2bd5830df4df8372ee"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 13).bin" size="9455040" crc="18d84170" sha1="94b7c391bf79947a7e026829ae102eea3e5dad8b"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 14).bin" size="14711760" crc="66f5d0b6" sha1="e1324f8fa34b7b9a601c82e9a47c6ab02baa5690"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 15).bin" size="16845024" crc="8bcaa750" sha1="dcbdf9cba056ae76afcb8c3fe9abcdb8ed480c0f"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 16).bin" size="12395040" crc="a593e8d9" sha1="f806f6057e179a0b0a349ee01735fa1d11a93089"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 17).bin" size="7785120" crc="f76d25b6" sha1="198393c831dfd5cc8109c23321d954f8d2a91a36"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 18).bin" size="25542720" crc="5dce89b1" sha1="c42aecb6a21b49340f4367028309d429a0db4864"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 19).bin" size="19234656" crc="7274ca6c" sha1="1a8c8df5e779e0f89bfb0648557b8dd9b98ae289"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 20).bin" size="9337440" crc="2df62687" sha1="f4d1fe75e89074439bacb8f92fd0441c815d008d"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 21).bin" size="17315424" crc="1889e6be" sha1="c4921b79121b99051c90872ff4429e7b329dbd26"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 22).bin" size="14013216" crc="0e98d8dd" sha1="03971616fbbb1b921b7c74311a3fb952bee145d4"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 23).bin" size="6867840" crc="1c467f69" sha1="6f7a7ea357eeffa5eaa3d4721aca0a4774c886ce"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 24).bin" size="12771360" crc="06cc2f2b" sha1="13f89a019fa2881adf4f189091798b8bf59598ec"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 25).bin" size="20008464" crc="8de5dfe0" sha1="154e3507349ea11465c55100d148d7841f95737a"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 26).bin" size="7714560" crc="cd1aeb39" sha1="8dd75d20ac4c61dbb59385cb12ac4a91a2f38ebf"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 27).bin" size="11442480" crc="6f96dd3e" sha1="a04898207c6299d19c1967d71249cbf55f3ababf"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 28).bin" size="12489120" crc="e15dfab3" sha1="69258e4bdd3fa043dd04a69f67ec8ad939e3a618"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 29).bin" size="10226496" crc="7cdf5afb" sha1="f5f7b67f20f374c2f44ee27a275acc9d2ec89529"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 30).bin" size="10290000" crc="7511854e" sha1="39e809df55b29295d5241e35b8f231faaf189888"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 31).bin" size="11952864" crc="3a81d950" sha1="d00e847dfbb526a3b4c4e2e362e9fbd39cceecc8"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 32).bin" size="9360960" crc="05493e8e" sha1="c8c33670611259a55395dc5aa0c6d47086efde67"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 33).bin" size="12771360" crc="fab7bf34" sha1="e58917e4de1eb78da9be20cc34b2572e97809aa9"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 34).bin" size="19458096" crc="4d910d3f" sha1="33f34ee1e99a7c15b12956901ed13f69a4ad008c"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 35).bin" size="11501280" crc="74ddae06" sha1="126f2b03e861f6c68e50c580a9f774a6dbbdc36c"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 36).bin" size="8820000" crc="75485aeb" sha1="286fb09862999d4a68e8ecf67d90000b85857bcf"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 37).bin" size="36009120" crc="ec58feb2" sha1="64f6342531966b01adf9f6b690ae757dcc9f28f2"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 38).bin" size="11007360" crc="cf1bb7fc" sha1="04b288144ceacffa779f26483542d6e064fbd68f"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 39).bin" size="15005760" crc="b2c0cefc" sha1="92e69950eff589d5992380b3835b3ecb0ddee1e1"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 40).bin" size="14676480" crc="8526ae4c" sha1="73a7da58b8b9ba4382c93550a934b3888e0dfc08"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 41).bin" size="11541264" crc="c312c1fe" sha1="b4a68b115c90eba99c1f02e19a0506f107137f2e"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 42).bin" size="9226896" crc="e9a557ae" sha1="abd407582b6bacb9f2c28c07932709920844e720"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 43).bin" size="15817200" crc="a04abf09" sha1="45b5c04196de98054c19cc42a8b170d0fe3faeb2"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 44).bin" size="12477360" crc="d924092c" sha1="996566bf278fd7496a108fbf9c132db252429b3d"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 45).bin" size="10753344" crc="bd1cdeca" sha1="98aeed60dfec887e8e8dd6c84329941de73bd390"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 46).bin" size="12943056" crc="8cb6da9a" sha1="e3d910d83617672e63c3d45b23fa286595978ffc"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 47).bin" size="16068864" crc="c0199cc5" sha1="7899073e0a882bde62c890cf73b6f6c4507c0eaa"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 48).bin" size="8526000" crc="786ca98d" sha1="8d098f547889231912102e3bde31074684012a38"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 49).bin" size="8380176" crc="31bbd00a" sha1="05cf5230dd87377e10e61456bb85a497c00670f2"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 50).bin" size="18627840" crc="239ca3b7" sha1="b50ae18e815ba1f906bebd5bbd3d5e55da609472"/> + <rom name="Towns Chiri - Jigsaw World (Japan) (Track 51).bin" size="18780720" crc="b49be182" sha1="d3082377511ac59e7159825a4ac9eb85d4ace083"/> + <rom name="Towns Chiri - Jigsaw World (Japan).cue" size="6561" crc="1b27d40d" sha1="2327c0cda0a4a3e6088d9c5c5834b2d42690d1f7"/> + --> + <description>Towns Chiri - Jigsaw World</description> + <year>1991</year> + <publisher>富士通大分ソフトウェアラボラトリ (Fujitsu Ooita Software Laboratory)</publisher> + <info name="alt_title" value="TOWNS地理 ジグソー・ワールド" /> + <info name="serial" value="HMB-514"/> + <info name="release" value="199103xx" /> + <info name="usage" value="Requires 2 MB RAM"/> + <part name="cdrom" interface="fmt_cdrom"> + <diskarea name="cdrom"> + <disk name="towns chiri - jigsaw world (japan)" sha1="a4887948ed3c8e1a3429946460dd9603c5c1b5d3" /> + </diskarea> + </part> + </software> + <software name="joker"> <!-- Origin: redump.org @@ -8152,6 +8371,44 @@ User/save disks that can be created from the game itself are not included. </part> </software> + <software name="lemoncc"> + <!-- + Origin: redump.org + <rom name="Lemon Cocktail Collection (Japan) (Track 01).bin" size="31399200" crc="ed3b3b75" sha1="941364b602e9c0fe9c0682ba342a052de6d4ea03"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 02).bin" size="30164400" crc="6d056e4e" sha1="f08fd5b36730246fa9346858839bb756c640cdde"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 03).bin" size="46746000" crc="1eea2fc5" sha1="27dd006784be1902f58bb88fb726909da6aca250"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 04).bin" size="43747200" crc="eb597d0a" sha1="ab76557a1ca57953592edb9987098cf3364a8098"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 05).bin" size="30340800" crc="4cf5eb6d" sha1="27fdcc111fd63b6844724fabbd94018ff64a957d"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 06).bin" size="37926000" crc="b6356045" sha1="6d35c9872ad7da946a1d06917a030fc7f8809309"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 07).bin" size="38808000" crc="d17604fd" sha1="8f208d1779c1b0e2a4e6238dcf44d73a4dd3baf0"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 08).bin" size="39513600" crc="9fd04581" sha1="e7a09ba8dd070fa4ecd34b6cc309a0a4cf948dfb"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 09).bin" size="33868800" crc="5af50c83" sha1="19672e4e73b0ef9e438b90ffa1a634db7e5e5cb4"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 10).bin" size="30870000" crc="9e43d498" sha1="8d3067f23310b4731a690b4270e46bdfa3c125fe"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 11).bin" size="32457600" crc="00f3d2c0" sha1="f43426a61850877f614895f478ac2dc214d03f29"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 12).bin" size="29282400" crc="3285f41e" sha1="904cf11e4326521897434cf85e4524676405bb21"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 13).bin" size="7408800" crc="dc332186" sha1="e529334b5c58665c70e91d316f0849eb694ba65a"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 14).bin" size="31046400" crc="7a5933cd" sha1="12a5d3b61da4d32c84c23435e79cd7f727215489"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 15).bin" size="32457600" crc="2f2b4fcd" sha1="d67fd767a926fb0874745857ad0f1906945cc1b1"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 16).bin" size="40924800" crc="37f417b1" sha1="25bae598fe25ccd19fd839985c22dc14a80225af"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 17).bin" size="28576800" crc="de0575a8" sha1="a010aedd53a02cdac4930e19e872140382a06748"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 18).bin" size="17463600" crc="1ed23af9" sha1="7628aace5c65598355d2f64f55f243e9892190f2"/> + <rom name="Lemon Cocktail Collection (Japan) (Track 19).bin" size="26107200" crc="89b3a0d3" sha1="4e6dd9a07d655aacad7a2461407ee2ba16b2dc0f"/> + <rom name="Lemon Cocktail Collection (Japan).cue" size="2414" crc="bf6e3f6a" sha1="8c903aa24570e9ea4c9aa6b722504eb7a29b0d73"/> + --> + <description>Lemon Cocktail Collection</description> + <year>1993</year> + <publisher>カクテル・ソフト (Cocktail Soft)</publisher> + <info name="alt_title" value="レモン・カクテル・コレクション" /> + <info name="serial" value="HME-101"/> + <info name="release" value="199303xx" /> + <info name="usage" value="Requires 2 MB RAM"/> + <part name="cdrom" interface="fmt_cdrom"> + <diskarea name="cdrom"> + <disk name="lemon cocktail collection (japan)" sha1="a17512ebc210b781310d79a35cf8da325ed1374a" /> + </diskarea> + </part> + </software> + <software name="lesserm"> <!-- Origin: Neo Kobe Collection @@ -8283,6 +8540,37 @@ User/save disks that can be created from the game itself are not included. </part> </software> + <!-- Missing a floppy disk? --> + <software name="lipsadv3" supported="no"> + <!-- + Origin: redump.org + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 01).bin" size="52567200" crc="7462e0c3" sha1="48900be15c74d4099e25710dcd5e6f26123c1d7f"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 02).bin" size="43923600" crc="12c3a386" sha1="853c797694005ab58666f5c21e2fa0f461c9fc5d"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 03).bin" size="32281200" crc="7fe731f3" sha1="c831ad5520e846d0d2f7145e6358b092ae80ff2f"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 04).bin" size="19404000" crc="0caf8555" sha1="be705a4209922d7253771c9042a9a055b7f46b69"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 05).bin" size="28224000" crc="cb3c404d" sha1="cd06c6312a80fed619c8f1a0d37de35239654a37"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 06).bin" size="33692400" crc="e6832e70" sha1="41424966a28305fbae01f69ad499942a3b145249"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 07).bin" size="27871200" crc="82d18093" sha1="87850e07f580fd8d0c03b712824a91990bc35be4"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 08).bin" size="34574400" crc="ba15484d" sha1="afbfa37d18570433b4786823622eb31caff106c7"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 09).bin" size="46040400" crc="09bcb43a" sha1="9611971fdbf918086742f169b53f860e03be299c"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 10).bin" size="46393200" crc="f2b00612" sha1="d1cd805d5ec73615cc22683f2687c6d67b023f88"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 11).bin" size="33516000" crc="f6b1128f" sha1="c22c7c63a7c0b42f10350581a937b12312aebe3b"/> + <rom name="Lip 3 - Lipstick Adventure 3 (Japan).cue" size="1423" crc="583e7d8b" sha1="68abb3c69843d9a1297c90a04f0613d98962d691"/> + --> + <description>Lip 3 - Lipstick Adventure 3</description> + <year>1993</year> + <publisher>フェアリーテール (Fairytale)</publisher> + <info name="alt_title" value="LIP3 リップスティック・アドベンチャー3" /> + <info name="serial" value="HME-221"/> + <info name="release" value="199305xx" /> + <info name="usage" value="Requires 2 MB RAM"/> + <part name="cdrom" interface="fmt_cdrom"> + <diskarea name="cdrom"> + <disk name="lip 3 - lipstick adventure 3 (japan)" sha1="c0507c340b55c1fa08a8080e0fc3d53d271f6a1e" /> + </diskarea> + </part> + </software> + <software name="lodoss"> <!-- Origin: Neo Kobe Collection @@ -9743,76 +10031,76 @@ User/save disks that can be created from the game itself are not included. <software name="nhkeigo1"> <!-- Origin: redump.org - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 01).bin" size="105487200" crc="92184b93" sha1="5de258e7a0ebb796b56f6dd276a815a7b85209c4"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 02).bin" size="12877200" crc="af6e94a6" sha1="097633403b5e5f9885ef62092d0f71769643a9ba"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 03).bin" size="5468400" crc="32c70401" sha1="795f6d61389111bad66a9b1c7ef5ac972f376b4b"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 04).bin" size="1764000" crc="37f81cfb" sha1="e2bd192da4a7dd3ae4fdd0f777db0232886af159"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 05).bin" size="1587600" crc="c5f974d7" sha1="b453c83887b531703d17fb60a5d05b58f425d33d"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 06).bin" size="1058400" crc="3bad5619" sha1="a6bc00634b5bae5376715cc34966a5b4640bd9dd"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 07).bin" size="1058400" crc="0e2b802c" sha1="eae47bdf712515236c56b4138dae2496837c992c"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 08).bin" size="5821200" crc="28336d0b" sha1="9b9ff92a32a5f42f79494aebfd2d9cae03489e5d"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 09).bin" size="7056000" crc="7bce374a" sha1="fd79f79b6936fbe9bd25fded81a7cb6b1548d524"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 10).bin" size="6703200" crc="ea70dc70" sha1="746d3cbb081261eeba621086fca1daf5f5105487"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 11).bin" size="6526800" crc="39aee815" sha1="963d69c541ce8ae2c7c88d9124334db6afb17223"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 12).bin" size="1058400" crc="b73c05a1" sha1="4cd536e395cfbc07b8562cf44e936243bad67a6d"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 13).bin" size="4762800" crc="78c227c1" sha1="b40ec02b8a2b587ad9c12346b9aba44a22861aec"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 14).bin" size="1940400" crc="71b8a3cd" sha1="bdd065ea15b5a051014fb87721810eeafbcd60aa"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 15).bin" size="5115600" crc="2da901cb" sha1="7d12932152014d55ddbdb12af91bcdbf73ac5a93"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 16).bin" size="12171600" crc="1eeb0234" sha1="dbae00d67b77c8b8bea9caa3c2ef1e7ef4c1e8c0"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 17).bin" size="6703200" crc="6a73bae0" sha1="bebf8444895052055050a2826c02bfa955d5a68c"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 18).bin" size="1411200" crc="f5bb8748" sha1="4f1f97fff875fb1642afa05fb41b0e375401f9db"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 19).bin" size="3704400" crc="bbe795ff" sha1="ba27dccc30fce69b8966d93e11bfc0e2d372c624"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 20).bin" size="4057200" crc="7fc1d42f" sha1="d0bcc2f35355e49ccccb31bd8079d0cf04c45c53"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 21).bin" size="2646000" crc="b645af79" sha1="3dd006fa58742a7c6f00c03e586df5faa4f035a5"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 22).bin" size="3880800" crc="5418b6a1" sha1="5c299a977e578c8b33c3f4fa8b47121c8a0d21b5"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 23).bin" size="5821200" crc="9aebd3c3" sha1="be68e9faa8eb7102151918c93d292a50183441ab"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 24).bin" size="3528000" crc="f7b61586" sha1="402f68bde2fdfacbf08e689a42a51abceaaab3ee"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 25).bin" size="3880800" crc="cb9a22e3" sha1="f6123fef617ce1ba3ec55126aac00a862079bf15"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 26).bin" size="2646000" crc="56e8224b" sha1="9b94a533a527a75a872a6ad6da472a0622739db9"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 27).bin" size="2116800" crc="cf480706" sha1="99cfb86580b397b0f3917ef720d6977a7e2c30cc"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 28).bin" size="7408800" crc="9cee9e96" sha1="c418850b7f71ce0f0d515b91533e69ba5bda95b3"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 29).bin" size="7408800" crc="3788edd5" sha1="246b89235cb81fc4637a9798a8d6f3530ffe9695"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 30).bin" size="7408800" crc="baf95695" sha1="853d54df167d99ea13b3f128447a02e3e5961167"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 31).bin" size="7232400" crc="43f5e582" sha1="716513cd9fc90d53bdd27e5817c0ee2641078bd0"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 32).bin" size="4057200" crc="a19a0367" sha1="637953a15d5adb6399b5b9a9c0f02c8a5cc1f6de"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 33).bin" size="3351600" crc="1ddbdabf" sha1="b9356775a142acd044c40c19760bf0ad49b7bf83"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 34).bin" size="2998800" crc="9cffff08" sha1="d834c4bf1484324e3e702865bd35d2055cb9e28d"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 35).bin" size="7408800" crc="62f861c0" sha1="ce2285aae14afb06f228dc0629c225d8ebddce7a"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 36).bin" size="7408800" crc="57555eb9" sha1="b4945ac39a6da77d1a4145d78a1cd61e48385adf"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 37).bin" size="7408800" crc="af7ee12e" sha1="0a5bd54de12faef36c69dda745dd213aa4e89bfb"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 38).bin" size="7408800" crc="7a6197aa" sha1="dac6f6f6eb61636686c8d895465c96611cc265e8"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 39).bin" size="4939200" crc="0490fb0a" sha1="57050b32313e69590399c61dd17005254842b7e2"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 40).bin" size="4939200" crc="7b2dadaf" sha1="5efa427a342504fd94349a612c2533c4ea6a9d6b"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 41).bin" size="13230000" crc="aeb3bac7" sha1="3009d9a631d6ceded059f40362f72aff2f2c0f68"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 42).bin" size="9878400" crc="b3c1574c" sha1="28b9f34c8103dab675f734b24989860187a97332"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 43).bin" size="2116800" crc="d99d95d9" sha1="594f5b601c622767cce9516b634d72b239ec0250"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 44).bin" size="3880800" crc="2857768f" sha1="6f75a48c61318eb60c908f2066d73c0dc411cb5c"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 45).bin" size="6879600" crc="b04a6a7e" sha1="29e70ee94dd72d85cf055c8ce29f9782c6b43361"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 46).bin" size="3880800" crc="55a5533f" sha1="2cce545b05c98ccdae401b34c53ee2f6817b1a03"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 47).bin" size="5644800" crc="ed18aed7" sha1="668e12bd591382bf83b88edfd431551d3211e6f4"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 48).bin" size="5468400" crc="5a728c16" sha1="d06e1ef5a8bfcf34abd8974c8762f16e82a0706c"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 49).bin" size="6350400" crc="54b6330a" sha1="7d1a94f9202fc27bd99509bfa3bb1d6bd7bc30a9"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 50).bin" size="1764000" crc="b6306af2" sha1="338074731ac4fb641be6ce63e97c8ca2df952bfb"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 51).bin" size="1411200" crc="6386b436" sha1="bffb67de18ed640a6ef9c3d3a213bfc73b303ce9"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 52).bin" size="17816400" crc="4a5ab967" sha1="0818e97b8f96f675ccd76ffba3a02c8fcbe204b8"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 53).bin" size="20638800" crc="3a9cff5e" sha1="0e3260dbb7a3e08ee2f735d0240c2128a8b42e2f"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 54).bin" size="8467200" crc="ceeae035" sha1="ecec2e11ea7c6c0b5cea01a9fddfbee20fe9b2c2"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 55).bin" size="17287200" crc="8ff1553c" sha1="2325f98d96532338faec2688fb54be226005add9"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 56).bin" size="7408800" crc="e141302b" sha1="0c5bd42cee6820017d871465157ed2aaa18bcc97"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 57).bin" size="21344400" crc="c9109649" sha1="e09ec870f41babc0db56cbf0b191e818de9b1390"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 58).bin" size="8643600" crc="1798cb9e" sha1="51143e80a272f802bcf7e9bb313a295ac09101be"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 59).bin" size="11466000" crc="c1e62618" sha1="466666e2e2fa1e197860022b706c70b496a75f73"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 60).bin" size="8643600" crc="058d0c40" sha1="45a2d06451dd743845b46222e1f18ac9efbd5383"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 61).bin" size="4410000" crc="18d6772a" sha1="94104f7519f59ad6c1fdb3a7770f510f73eaa8c3"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 62).bin" size="7938000" crc="d8dff326" sha1="c509d807641f4bb461d69e3406982defe0d96385"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 63).bin" size="1234800" crc="8aee4359" sha1="df0b04ba46413ee10a9013b9ce06d5d3ad2171e6"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 64).bin" size="1940400" crc="838744ea" sha1="df499e1cc6a1833b177ba2b83af8cc3840fbdd95"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 65).bin" size="3880800" crc="d86aaea5" sha1="739655b0daa349c420b6bdb09ec4f2dfd727698e"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 66).bin" size="4762800" crc="e7b4a6c5" sha1="166314035f71e81852638f9379659d7c3f58a349"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 67).bin" size="3528000" crc="bee4e2b5" sha1="07ae1b8cbe06370ad54ee1348e2e3853d74ce626"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 68).bin" size="4233600" crc="7af7ea94" sha1="f211fa772ef0e5b43777776365173ce3541044b7"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 69).bin" size="4762800" crc="d886d260" sha1="51dcf2dc4c1975f9f2954210a55dcaa1a80e3b45"/> - <rom name="NHK Eigo de Asobo Vol. 1 (Japan).cue" size="8745" crc="209eca07" sha1="cd71c0fca0490ee2df8d1f2da27a75c6fa970b87"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 01).bin" size="105487200" crc="92184b93" sha1="5de258e7a0ebb796b56f6dd276a815a7b85209c4"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 02).bin" size="12877200" crc="af6e94a6" sha1="097633403b5e5f9885ef62092d0f71769643a9ba"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 03).bin" size="5468400" crc="32c70401" sha1="795f6d61389111bad66a9b1c7ef5ac972f376b4b"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 04).bin" size="1764000" crc="37f81cfb" sha1="e2bd192da4a7dd3ae4fdd0f777db0232886af159"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 05).bin" size="1587600" crc="c5f974d7" sha1="b453c83887b531703d17fb60a5d05b58f425d33d"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 06).bin" size="1058400" crc="3bad5619" sha1="a6bc00634b5bae5376715cc34966a5b4640bd9dd"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 07).bin" size="1058400" crc="0e2b802c" sha1="eae47bdf712515236c56b4138dae2496837c992c"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 08).bin" size="5821200" crc="28336d0b" sha1="9b9ff92a32a5f42f79494aebfd2d9cae03489e5d"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 09).bin" size="7056000" crc="7bce374a" sha1="fd79f79b6936fbe9bd25fded81a7cb6b1548d524"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 10).bin" size="6703200" crc="ea70dc70" sha1="746d3cbb081261eeba621086fca1daf5f5105487"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 11).bin" size="6526800" crc="39aee815" sha1="963d69c541ce8ae2c7c88d9124334db6afb17223"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 12).bin" size="1058400" crc="b73c05a1" sha1="4cd536e395cfbc07b8562cf44e936243bad67a6d"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 13).bin" size="4762800" crc="78c227c1" sha1="b40ec02b8a2b587ad9c12346b9aba44a22861aec"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 14).bin" size="1940400" crc="71b8a3cd" sha1="bdd065ea15b5a051014fb87721810eeafbcd60aa"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 15).bin" size="5115600" crc="2da901cb" sha1="7d12932152014d55ddbdb12af91bcdbf73ac5a93"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 16).bin" size="12171600" crc="1eeb0234" sha1="dbae00d67b77c8b8bea9caa3c2ef1e7ef4c1e8c0"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 17).bin" size="6703200" crc="6a73bae0" sha1="bebf8444895052055050a2826c02bfa955d5a68c"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 18).bin" size="1411200" crc="f5bb8748" sha1="4f1f97fff875fb1642afa05fb41b0e375401f9db"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 19).bin" size="3704400" crc="bbe795ff" sha1="ba27dccc30fce69b8966d93e11bfc0e2d372c624"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 20).bin" size="4057200" crc="7fc1d42f" sha1="d0bcc2f35355e49ccccb31bd8079d0cf04c45c53"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 21).bin" size="2646000" crc="b645af79" sha1="3dd006fa58742a7c6f00c03e586df5faa4f035a5"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 22).bin" size="3880800" crc="5418b6a1" sha1="5c299a977e578c8b33c3f4fa8b47121c8a0d21b5"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 23).bin" size="5821200" crc="9aebd3c3" sha1="be68e9faa8eb7102151918c93d292a50183441ab"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 24).bin" size="3528000" crc="f7b61586" sha1="402f68bde2fdfacbf08e689a42a51abceaaab3ee"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 25).bin" size="3880800" crc="cb9a22e3" sha1="f6123fef617ce1ba3ec55126aac00a862079bf15"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 26).bin" size="2646000" crc="56e8224b" sha1="9b94a533a527a75a872a6ad6da472a0622739db9"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 27).bin" size="2116800" crc="cf480706" sha1="99cfb86580b397b0f3917ef720d6977a7e2c30cc"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 28).bin" size="7408800" crc="9cee9e96" sha1="c418850b7f71ce0f0d515b91533e69ba5bda95b3"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 29).bin" size="7408800" crc="3788edd5" sha1="246b89235cb81fc4637a9798a8d6f3530ffe9695"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 30).bin" size="7408800" crc="baf95695" sha1="853d54df167d99ea13b3f128447a02e3e5961167"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 31).bin" size="7232400" crc="43f5e582" sha1="716513cd9fc90d53bdd27e5817c0ee2641078bd0"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 32).bin" size="4057200" crc="a19a0367" sha1="637953a15d5adb6399b5b9a9c0f02c8a5cc1f6de"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 33).bin" size="3351600" crc="1ddbdabf" sha1="b9356775a142acd044c40c19760bf0ad49b7bf83"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 34).bin" size="2998800" crc="9cffff08" sha1="d834c4bf1484324e3e702865bd35d2055cb9e28d"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 35).bin" size="7408800" crc="62f861c0" sha1="ce2285aae14afb06f228dc0629c225d8ebddce7a"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 36).bin" size="7408800" crc="57555eb9" sha1="b4945ac39a6da77d1a4145d78a1cd61e48385adf"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 37).bin" size="7408800" crc="af7ee12e" sha1="0a5bd54de12faef36c69dda745dd213aa4e89bfb"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 38).bin" size="7408800" crc="7a6197aa" sha1="dac6f6f6eb61636686c8d895465c96611cc265e8"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 39).bin" size="4939200" crc="0490fb0a" sha1="57050b32313e69590399c61dd17005254842b7e2"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 40).bin" size="4939200" crc="7b2dadaf" sha1="5efa427a342504fd94349a612c2533c4ea6a9d6b"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 41).bin" size="13230000" crc="aeb3bac7" sha1="3009d9a631d6ceded059f40362f72aff2f2c0f68"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 42).bin" size="9878400" crc="b3c1574c" sha1="28b9f34c8103dab675f734b24989860187a97332"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 43).bin" size="2116800" crc="d99d95d9" sha1="594f5b601c622767cce9516b634d72b239ec0250"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 44).bin" size="3880800" crc="2857768f" sha1="6f75a48c61318eb60c908f2066d73c0dc411cb5c"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 45).bin" size="6879600" crc="b04a6a7e" sha1="29e70ee94dd72d85cf055c8ce29f9782c6b43361"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 46).bin" size="3880800" crc="55a5533f" sha1="2cce545b05c98ccdae401b34c53ee2f6817b1a03"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 47).bin" size="5644800" crc="ed18aed7" sha1="668e12bd591382bf83b88edfd431551d3211e6f4"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 48).bin" size="5468400" crc="5a728c16" sha1="d06e1ef5a8bfcf34abd8974c8762f16e82a0706c"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 49).bin" size="6350400" crc="54b6330a" sha1="7d1a94f9202fc27bd99509bfa3bb1d6bd7bc30a9"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 50).bin" size="1764000" crc="b6306af2" sha1="338074731ac4fb641be6ce63e97c8ca2df952bfb"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 51).bin" size="1411200" crc="6386b436" sha1="bffb67de18ed640a6ef9c3d3a213bfc73b303ce9"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 52).bin" size="17816400" crc="4a5ab967" sha1="0818e97b8f96f675ccd76ffba3a02c8fcbe204b8"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 53).bin" size="20638800" crc="3a9cff5e" sha1="0e3260dbb7a3e08ee2f735d0240c2128a8b42e2f"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 54).bin" size="8467200" crc="ceeae035" sha1="ecec2e11ea7c6c0b5cea01a9fddfbee20fe9b2c2"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 55).bin" size="17287200" crc="8ff1553c" sha1="2325f98d96532338faec2688fb54be226005add9"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 56).bin" size="7408800" crc="e141302b" sha1="0c5bd42cee6820017d871465157ed2aaa18bcc97"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 57).bin" size="21344400" crc="c9109649" sha1="e09ec870f41babc0db56cbf0b191e818de9b1390"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 58).bin" size="8643600" crc="1798cb9e" sha1="51143e80a272f802bcf7e9bb313a295ac09101be"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 59).bin" size="11466000" crc="c1e62618" sha1="466666e2e2fa1e197860022b706c70b496a75f73"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 60).bin" size="8643600" crc="058d0c40" sha1="45a2d06451dd743845b46222e1f18ac9efbd5383"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 61).bin" size="4410000" crc="18d6772a" sha1="94104f7519f59ad6c1fdb3a7770f510f73eaa8c3"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 62).bin" size="7938000" crc="d8dff326" sha1="c509d807641f4bb461d69e3406982defe0d96385"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 63).bin" size="1234800" crc="8aee4359" sha1="df0b04ba46413ee10a9013b9ce06d5d3ad2171e6"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 64).bin" size="1940400" crc="838744ea" sha1="df499e1cc6a1833b177ba2b83af8cc3840fbdd95"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 65).bin" size="3880800" crc="d86aaea5" sha1="739655b0daa349c420b6bdb09ec4f2dfd727698e"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 66).bin" size="4762800" crc="e7b4a6c5" sha1="166314035f71e81852638f9379659d7c3f58a349"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 67).bin" size="3528000" crc="bee4e2b5" sha1="07ae1b8cbe06370ad54ee1348e2e3853d74ce626"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 68).bin" size="4233600" crc="7af7ea94" sha1="f211fa772ef0e5b43777776365173ce3541044b7"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 69).bin" size="4762800" crc="d886d260" sha1="51dcf2dc4c1975f9f2954210a55dcaa1a80e3b45"/> + <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan).cue" size="10539" crc="1bec6955" sha1="f989a704e12b27d702f19a3a5d20d253ec4eb2e4"/> --> <description>NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy</description> <year>1993</year> @@ -9823,7 +10111,7 @@ User/save disks that can be created from the game itself are not included. <info name="usage" value="Requires 2 MB RAM"/> <part name="cdrom" interface="fmt_cdrom"> <diskarea name="cdrom"> - <disk name="nhk eigo de asobo vol. 1 (japan)" sha1="ee7667cbdfbd8e1ee0586861745b7e9ea5182164" /> + <disk name="nhk eigo de asobo vol. 1 - daitanken hotel galaxy (japan)" sha1="ee7667cbdfbd8e1ee0586861745b7e9ea5182164" /> </diskarea> </part> </software> @@ -9831,82 +10119,82 @@ User/save disks that can be created from the game itself are not included. <software name="nhkeigo2"> <!-- Origin: redump.org - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 01).bin" size="105487200" crc="3e917fd7" sha1="d1102ca205b660bd09b220a99c070909bf7c6855"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 02).bin" size="8820000" crc="f0f34c31" sha1="980514f926eb57a853807f05204cdc734824a714"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 03).bin" size="4586400" crc="b4ef3dc9" sha1="49455b30f84690635c88ce60aaee7f37db32be34"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 04).bin" size="37749600" crc="65622717" sha1="371e73f3414b4b059aaf535d98cbcea2c6becd6a"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 05).bin" size="2822400" crc="16c10ba0" sha1="23e5852151f41c5ec1ff77d98447c0d3962f5efd"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 06).bin" size="7938000" crc="d8fa731e" sha1="d45557a8624ac5ab84fa76d51b00b64ffec9f2a1"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 07).bin" size="1058400" crc="e6ccd65f" sha1="e24fef9a985538da579cbe303ac23fb57271c7b6"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 08).bin" size="1058400" crc="273fa64f" sha1="4331bb7ca8164628352bb77b57396bb376aec43e"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 09).bin" size="1058400" crc="55d2e767" sha1="f13d16f645f198b59d2e2000b1d107215ffe9f39"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 10).bin" size="4410000" crc="be1a5e7b" sha1="ced1fa21fed44fb010dd7a5b0055ccbb80c9d26a"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 11).bin" size="4939200" crc="97a38c6a" sha1="edd62c80dbd127ba370f682660f25dc09fc6ee5d"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 12).bin" size="7408800" crc="d3b78f2f" sha1="bd087408726079d410d242af230a3ff6b3d3ebe9"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 13).bin" size="10407600" crc="2e6ee0af" sha1="47d7c13d34a081f408c8b92563a1bbaaca1a36d2"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 14).bin" size="7938000" crc="d0a1cfb8" sha1="c88b38f62fa3b8533a4a27728e59dac2a97da5fb"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 15).bin" size="7585200" crc="e38f99d0" sha1="23e6397d4e48cc69c8ff16716ad529c520596f81"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 16).bin" size="5997600" crc="5aa16911" sha1="61057ab1e800527b3db374f3a925043611fca6ec"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 17).bin" size="3528000" crc="cbec8543" sha1="95e7276754370a64a1e46ec02b96a5c17fcf492d"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 18).bin" size="2293200" crc="ca539fb7" sha1="1bdb5294434afd151392f79483b3fb5c64a200a8"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 19).bin" size="1940400" crc="5d371ca2" sha1="0569d7d870b7dc902fca1bfe7a2983933ea150c4"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 20).bin" size="1058400" crc="8e52ec5e" sha1="2912db4c80fd6502218a2834a8484abdddaa977f"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 21).bin" size="1411200" crc="aa1e8bb9" sha1="de32768b3885b39c45e19b2a596f724149abee36"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 22).bin" size="1411200" crc="24c0638a" sha1="d4d59aad3bec95ae6c75c30204516c5dd4ee7f26"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 23).bin" size="7761600" crc="96f40f18" sha1="8270faea321c3ca4b866fbddfe2ae29cb0107ff8"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 24).bin" size="1411200" crc="9c11a189" sha1="7e7242a51eac313238c693341db906550125af62"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 25).bin" size="1411200" crc="35b50acd" sha1="85c74db3a9a2be3dc8b7df0b2273441852304f28"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 26).bin" size="1411200" crc="a08eafc4" sha1="5b8c7fdf1512bd0c9aeb0cf4819dd73339b09fb9"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 27).bin" size="1411200" crc="f6fcac01" sha1="1717bcbaadced5e3b454a77e8f93ea2937901e36"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 28).bin" size="1411200" crc="aecd621c" sha1="fd75bd4fcb6cb92158624254e3679cc933fcd58a"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 29).bin" size="1411200" crc="3f4e610d" sha1="6d0fcc50b6afeaf67af8b39ad15dbec650767c8e"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 30).bin" size="1411200" crc="3bec5ff4" sha1="6a553da2533afb28d9f87162bcddcf869425e680"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 31).bin" size="1411200" crc="8087095b" sha1="7e08b3f458ecf07405f79a039cb47d8bbb01d995"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 32).bin" size="1411200" crc="808f23e8" sha1="942e01449a4b3ec5c5f4d950ac90ed203ee0b94b"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 33).bin" size="1587600" crc="8d113f02" sha1="ff776d5b0dbbd585a20661f517a3784b7260e776"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 34).bin" size="1411200" crc="588a31d5" sha1="c34a45593bbfb3d91cd0a25b5f63331be172ca37"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 35).bin" size="1411200" crc="a31e48ba" sha1="ab80ea00ecdd705a31c96c9c1b0278ab8e46947d"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 36).bin" size="1411200" crc="7de3a375" sha1="7118ed3cb3bbd435beb2a25e14a8eba26706b344"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 37).bin" size="1411200" crc="063d851d" sha1="fd4f7d19aaa6586b184b5a4746c8777c45f28858"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 38).bin" size="1411200" crc="857e0a72" sha1="fa7471df0594005920ccd878b6b57ac7f8e84f2e"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 39).bin" size="1411200" crc="502e8d51" sha1="7547eabf631e07d130e25d7354dec089b97f9841"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 40).bin" size="1764000" crc="07a345e4" sha1="9fbf6de1bf903208df1ac81cc364f4ad157359f1"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 41).bin" size="1587600" crc="0a65b3a8" sha1="56d2e3e6e76b41c1c0f89a537b0e920f7c0ccd08"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 42).bin" size="1234800" crc="854f6a88" sha1="50b98b081a096d678e85bccf0ecf0fad965c717a"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 43).bin" size="1587600" crc="c672d5ff" sha1="6952c170e60924444b28fbb165abc25d7918b01f"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 44).bin" size="1058400" crc="2b19a0d7" sha1="f1c39117474ccee17fd36afdba404843196829a4"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 45).bin" size="1058400" crc="171a05bc" sha1="d80b37c49d83972d1a2bb0e4a9e50ac9d410d4f8"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 46).bin" size="1058400" crc="4d2cda67" sha1="a0c04bedf4854d1f52e4eb499ce13f262d6c1290"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 47).bin" size="1058400" crc="ce0e8e8d" sha1="f5682dd5271bce4280bd407e88b65063572ace4a"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 48).bin" size="1058400" crc="d6e9f797" sha1="b6bf601b73019b94b5ac0f9e88dda7d9356f5299"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 49).bin" size="4410000" crc="d32538c6" sha1="230773999dca8aff3099391a4af6d333bccc8c66"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 50).bin" size="1764000" crc="14c78a30" sha1="6b1c85739f3710c49e41afb893bc40183528d6c8"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 51).bin" size="6526800" crc="badb95e0" sha1="06fabfcca828218481a08c662fdc9bff13fe9463"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 52).bin" size="7056000" crc="7673a3d5" sha1="39b26f657fe7a161b2e910a7fddb359ef695c538"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 53).bin" size="1411200" crc="10492a28" sha1="45cc55839aefa05c6d809db092743eab5936e312"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 54).bin" size="9702000" crc="4a614e49" sha1="724d6f5d66e5c10119dadf32365541556563c05d"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 55).bin" size="7408800" crc="04c8a7b5" sha1="b28d2a872ea98d7756198c1fb4455a7907190c2e"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 56).bin" size="7056000" crc="f73d5aa4" sha1="ba92ccca7adb38b0e80bfe6b73263c04fb6bb43b"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 57).bin" size="6703200" crc="6c7b1140" sha1="0460663ea04b9cf16a0048d45147ba171cccf1cf"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 58).bin" size="6174000" crc="ba1ec1d0" sha1="44ddb7a5426e98793a6165d5cc998e3022e813b0"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 59).bin" size="5821200" crc="8010d878" sha1="560398ff3145a863c4deba9d9100fdd5279cd82c"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 60).bin" size="7056000" crc="9a539341" sha1="fbf1071b8f96c31a6edde42148ae096b95c65085"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 61).bin" size="5468400" crc="c298f15f" sha1="30e3c3452388345e80cd5ad68735c9283b337f8c"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 62).bin" size="35632800" crc="55e7885d" sha1="607e18e9132d238fdcf3e0ca06a8f3549a73840b"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 63).bin" size="1234800" crc="a4676df3" sha1="31a11b2966d49c3c6be985e16ee111978ec37d9c"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 64).bin" size="5115600" crc="4c98c047" sha1="426fa91f9b9e941c1fbf9d9eb9ed5c5e83224897"/> - <rom name="NHK Eigo de Asobo Vol. 2 (Japan).cue" size="8110" crc="6b243018" sha1="104a034e7bccf9266db5ddef5e31f0cfb91f4121"/> - --> - <description>NHK Eigo de Asobo Vol. 2</description> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 01).bin" size="105487200" crc="3e917fd7" sha1="d1102ca205b660bd09b220a99c070909bf7c6855"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 02).bin" size="8820000" crc="f0f34c31" sha1="980514f926eb57a853807f05204cdc734824a714"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 03).bin" size="4586400" crc="b4ef3dc9" sha1="49455b30f84690635c88ce60aaee7f37db32be34"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 04).bin" size="37749600" crc="65622717" sha1="371e73f3414b4b059aaf535d98cbcea2c6becd6a"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 05).bin" size="2822400" crc="16c10ba0" sha1="23e5852151f41c5ec1ff77d98447c0d3962f5efd"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 06).bin" size="7938000" crc="d8fa731e" sha1="d45557a8624ac5ab84fa76d51b00b64ffec9f2a1"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 07).bin" size="1058400" crc="e6ccd65f" sha1="e24fef9a985538da579cbe303ac23fb57271c7b6"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 08).bin" size="1058400" crc="273fa64f" sha1="4331bb7ca8164628352bb77b57396bb376aec43e"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 09).bin" size="1058400" crc="55d2e767" sha1="f13d16f645f198b59d2e2000b1d107215ffe9f39"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 10).bin" size="4410000" crc="be1a5e7b" sha1="ced1fa21fed44fb010dd7a5b0055ccbb80c9d26a"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 11).bin" size="4939200" crc="97a38c6a" sha1="edd62c80dbd127ba370f682660f25dc09fc6ee5d"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 12).bin" size="7408800" crc="d3b78f2f" sha1="bd087408726079d410d242af230a3ff6b3d3ebe9"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 13).bin" size="10407600" crc="2e6ee0af" sha1="47d7c13d34a081f408c8b92563a1bbaaca1a36d2"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 14).bin" size="7938000" crc="d0a1cfb8" sha1="c88b38f62fa3b8533a4a27728e59dac2a97da5fb"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 15).bin" size="7585200" crc="e38f99d0" sha1="23e6397d4e48cc69c8ff16716ad529c520596f81"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 16).bin" size="5997600" crc="5aa16911" sha1="61057ab1e800527b3db374f3a925043611fca6ec"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 17).bin" size="3528000" crc="cbec8543" sha1="95e7276754370a64a1e46ec02b96a5c17fcf492d"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 18).bin" size="2293200" crc="ca539fb7" sha1="1bdb5294434afd151392f79483b3fb5c64a200a8"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 19).bin" size="1940400" crc="5d371ca2" sha1="0569d7d870b7dc902fca1bfe7a2983933ea150c4"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 20).bin" size="1058400" crc="8e52ec5e" sha1="2912db4c80fd6502218a2834a8484abdddaa977f"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 21).bin" size="1411200" crc="aa1e8bb9" sha1="de32768b3885b39c45e19b2a596f724149abee36"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 22).bin" size="1411200" crc="24c0638a" sha1="d4d59aad3bec95ae6c75c30204516c5dd4ee7f26"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 23).bin" size="7761600" crc="96f40f18" sha1="8270faea321c3ca4b866fbddfe2ae29cb0107ff8"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 24).bin" size="1411200" crc="9c11a189" sha1="7e7242a51eac313238c693341db906550125af62"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 25).bin" size="1411200" crc="35b50acd" sha1="85c74db3a9a2be3dc8b7df0b2273441852304f28"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 26).bin" size="1411200" crc="a08eafc4" sha1="5b8c7fdf1512bd0c9aeb0cf4819dd73339b09fb9"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 27).bin" size="1411200" crc="f6fcac01" sha1="1717bcbaadced5e3b454a77e8f93ea2937901e36"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 28).bin" size="1411200" crc="aecd621c" sha1="fd75bd4fcb6cb92158624254e3679cc933fcd58a"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 29).bin" size="1411200" crc="3f4e610d" sha1="6d0fcc50b6afeaf67af8b39ad15dbec650767c8e"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 30).bin" size="1411200" crc="3bec5ff4" sha1="6a553da2533afb28d9f87162bcddcf869425e680"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 31).bin" size="1411200" crc="8087095b" sha1="7e08b3f458ecf07405f79a039cb47d8bbb01d995"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 32).bin" size="1411200" crc="808f23e8" sha1="942e01449a4b3ec5c5f4d950ac90ed203ee0b94b"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 33).bin" size="1587600" crc="8d113f02" sha1="ff776d5b0dbbd585a20661f517a3784b7260e776"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 34).bin" size="1411200" crc="588a31d5" sha1="c34a45593bbfb3d91cd0a25b5f63331be172ca37"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 35).bin" size="1411200" crc="a31e48ba" sha1="ab80ea00ecdd705a31c96c9c1b0278ab8e46947d"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 36).bin" size="1411200" crc="7de3a375" sha1="7118ed3cb3bbd435beb2a25e14a8eba26706b344"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 37).bin" size="1411200" crc="063d851d" sha1="fd4f7d19aaa6586b184b5a4746c8777c45f28858"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 38).bin" size="1411200" crc="857e0a72" sha1="fa7471df0594005920ccd878b6b57ac7f8e84f2e"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 39).bin" size="1411200" crc="502e8d51" sha1="7547eabf631e07d130e25d7354dec089b97f9841"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 40).bin" size="1764000" crc="07a345e4" sha1="9fbf6de1bf903208df1ac81cc364f4ad157359f1"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 41).bin" size="1587600" crc="0a65b3a8" sha1="56d2e3e6e76b41c1c0f89a537b0e920f7c0ccd08"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 42).bin" size="1234800" crc="854f6a88" sha1="50b98b081a096d678e85bccf0ecf0fad965c717a"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 43).bin" size="1587600" crc="c672d5ff" sha1="6952c170e60924444b28fbb165abc25d7918b01f"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 44).bin" size="1058400" crc="2b19a0d7" sha1="f1c39117474ccee17fd36afdba404843196829a4"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 45).bin" size="1058400" crc="171a05bc" sha1="d80b37c49d83972d1a2bb0e4a9e50ac9d410d4f8"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 46).bin" size="1058400" crc="4d2cda67" sha1="a0c04bedf4854d1f52e4eb499ce13f262d6c1290"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 47).bin" size="1058400" crc="ce0e8e8d" sha1="f5682dd5271bce4280bd407e88b65063572ace4a"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 48).bin" size="1058400" crc="d6e9f797" sha1="b6bf601b73019b94b5ac0f9e88dda7d9356f5299"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 49).bin" size="4410000" crc="d32538c6" sha1="230773999dca8aff3099391a4af6d333bccc8c66"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 50).bin" size="1764000" crc="14c78a30" sha1="6b1c85739f3710c49e41afb893bc40183528d6c8"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 51).bin" size="6526800" crc="badb95e0" sha1="06fabfcca828218481a08c662fdc9bff13fe9463"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 52).bin" size="7056000" crc="7673a3d5" sha1="39b26f657fe7a161b2e910a7fddb359ef695c538"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 53).bin" size="1411200" crc="10492a28" sha1="45cc55839aefa05c6d809db092743eab5936e312"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 54).bin" size="9702000" crc="4a614e49" sha1="724d6f5d66e5c10119dadf32365541556563c05d"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 55).bin" size="7408800" crc="04c8a7b5" sha1="b28d2a872ea98d7756198c1fb4455a7907190c2e"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 56).bin" size="7056000" crc="f73d5aa4" sha1="ba92ccca7adb38b0e80bfe6b73263c04fb6bb43b"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 57).bin" size="6703200" crc="6c7b1140" sha1="0460663ea04b9cf16a0048d45147ba171cccf1cf"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 58).bin" size="6174000" crc="ba1ec1d0" sha1="44ddb7a5426e98793a6165d5cc998e3022e813b0"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 59).bin" size="5821200" crc="8010d878" sha1="560398ff3145a863c4deba9d9100fdd5279cd82c"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 60).bin" size="7056000" crc="9a539341" sha1="fbf1071b8f96c31a6edde42148ae096b95c65085"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 61).bin" size="5468400" crc="c298f15f" sha1="30e3c3452388345e80cd5ad68735c9283b337f8c"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 62).bin" size="35632800" crc="55e7885d" sha1="607e18e9132d238fdcf3e0ca06a8f3549a73840b"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 63).bin" size="1234800" crc="a4676df3" sha1="31a11b2966d49c3c6be985e16ee111978ec37d9c"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 64).bin" size="5115600" crc="4c98c047" sha1="426fa91f9b9e941c1fbf9d9eb9ed5c5e83224897"/> + <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan).cue" size="9582" crc="be6d870a" sha1="1323490f25db42f71ec276f1873d27e5000f8488"/> + --> + <description>NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken</description> <year>1993</year> <publisher>富士通 (Fujitsu)</publisher> <info name="serial" value="HME-206 / A2760461"/> - <info name="alt_title" value="NHK英語であそぼ 2" /> + <info name="alt_title" value="NHK英語であそぼ 2 ~ベルナールの大ぼうけん~" /> <info name="release" value="199312xx" /> <info name="usage" value="Requires 2 MB RAM"/> <part name="cdrom" interface="fmt_cdrom"> <diskarea name="cdrom"> - <disk name="nhk eigo de asobo vol. 2 (japan)" sha1="7a0772ba3044392a6df13eeeedb14ea6b1005f21" /> + <disk name="nhk eigo de asobo vol. 2 - bernard no daibouken (japan)" sha1="7a0772ba3044392a6df13eeeedb14ea6b1005f21" /> </diskarea> </part> </software> @@ -10082,6 +10370,86 @@ User/save disks that can be created from the game itself are not included. </part> </software> + <software name="nihonris"> + <!-- + Origin: redump.org + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 01).bin" size="105494256" crc="d12afc6f" sha1="a3e5399bd4684fd83ac0e9919da6f6e3b22dd440"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 02).bin" size="7683984" crc="56cab59b" sha1="a5552688fb2663f054fd734f5b4f4973566d2e41"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 03).bin" size="6750240" crc="7fa6c0f6" sha1="cbbeffdf249eea5b4851f1a78bb832171bd5940c"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 04).bin" size="6479760" crc="dcfb952f" sha1="44f64e65d1503b5477fe34db5f99b70bdeea5341"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 05).bin" size="7213584" crc="a120b133" sha1="4b52a2fa9a252f14072e5f182cfb867db73a55e9"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 06).bin" size="6938400" crc="5d7f94cd" sha1="59ee2103f3057275f98ddeddacba7e6141b736bd"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 07).bin" size="7239456" crc="e8f9f31e" sha1="1152383be6ccf9d8fd5579863c14f232249ff516"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 08).bin" size="5985840" crc="35455b63" sha1="b09d9af1d177c4bf24f56110cdf9074e58e1c18f"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 09).bin" size="7632240" crc="7a1a4985" sha1="59d2b7c81eac284d10d464366cd16a8a1a231646"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 10).bin" size="7890960" crc="8e159584" sha1="ca801aee9ca08b1b512ccad28504e68d65a26c68"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 11).bin" size="8055600" crc="8b9b967c" sha1="f6ffa7c2c3805b5f344ef025fa25eeffe1a1f24f"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 12).bin" size="7267680" crc="1b1ac158" sha1="55c703c10494c30dca27f970ec624e187572472d"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 13).bin" size="8925840" crc="11701307" sha1="af726353d42abf0875852e575154b20af5905bb4"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 14).bin" size="8808240" crc="d279acc3" sha1="63eb072dbf746288a1a12925eb6b7aa44ff81713"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 15).bin" size="7977984" crc="c922deda" sha1="bc973219d9a29583e69af8d6dbc6d94961257705"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 16).bin" size="6867840" crc="6451b676" sha1="7b5a317d0a97861619681332796f3e3d2af00f41"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 17).bin" size="7451136" crc="58c275e1" sha1="3761f32b189503ff97e7cf2830c02cc6ec0f62de"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 18).bin" size="8314320" crc="d4261a94" sha1="66b0986f021b3d3e4b2247018f0e870f36ab668b"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 19).bin" size="6820800" crc="9be91639" sha1="4260c83d760a05eb426c56a21de231cc117e438b"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 20).bin" size="7749840" crc="34bafa84" sha1="2d580bafc14f0b4942e6937b1bee7da0a0f654c8"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 21).bin" size="4873344" crc="7ef5ef74" sha1="1db414d2f2ca26967911aa786a7bb4dcf888081f"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 22).bin" size="8180256" crc="9822be6f" sha1="3991590c2d7182d15d7f18d825bcf8a081e9de64"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 23).bin" size="8495424" crc="fcd0b7f1" sha1="078722502058d97195a69a7d397e8d32f27a2b28"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 24).bin" size="7514640" crc="3b95af83" sha1="07b5e317705452015e579a1765138ee61845797d"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 25).bin" size="6816096" crc="52a284d4" sha1="4fc8ceb3b4ac9ba71fb0edb8228c4b60945f51ad"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 26).bin" size="6072864" crc="ce5bfc8a" sha1="907c4d425e6a017be16a3252b2a8c7359a0c7215"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 27).bin" size="8427216" crc="e5b5260c" sha1="75590fa0df94efcfeb234c15b74180edff327f1f"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 28).bin" size="9443280" crc="2e97a600" sha1="23dc969a355c84471420508e70fb756989b7d201"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 29).bin" size="7502880" crc="d2f9ef11" sha1="fa905835d57deeb44fbc5cb8bea93edb54b2569d"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 30).bin" size="8361360" crc="b62bcb4a" sha1="694f72ea5586788f39dbaadc496ed19303a73c7d"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 31).bin" size="7625184" crc="3dc9db00" sha1="cb31088d16f7df2b43b75b9ed2d6c95eb1dc9b61"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 32).bin" size="6216336" crc="7b37b0f9" sha1="7dd3bbd2e59b292adec773bdbd1ea627aeb93cec"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 33).bin" size="9184560" crc="70981892" sha1="204fd50c62c77aff43356f878c9668e7f9ef3a51"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 34).bin" size="5543664" crc="e038fb17" sha1="616275a857476700dc7e4d6b00cab9951a5ef297"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 35).bin" size="7533456" crc="83cbe3fe" sha1="ea84dec18f414bc14d839fe4f2c5fa76dc935366"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 36).bin" size="7401744" crc="16478b69" sha1="322c5aabc8ea0730fc9304645f0d47fb08e7f50d"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 37).bin" size="7008960" crc="f85dbf6c" sha1="14e45308e4e7c89f17d6192bd99351aa78775899"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 38).bin" size="7686336" crc="3f3c5143" sha1="da6d2d913f6444d23428bab8ec2807529d7310f3"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 39).bin" size="8213184" crc="04487ecb" sha1="87771c997d880ebb06549ab5904b94326fb489b5"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 40).bin" size="7580496" crc="ba31ac27" sha1="bdd232b1fe30a1138ae8e37699c3811d03b4a17a"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 41).bin" size="7742784" crc="d5596b05" sha1="f4d6d99f605cd7d02eac7cd96115548b70185f81"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 42).bin" size="8584800" crc="6e9e0503" sha1="438fad6142f0eed16fcfff76e5c9d8a34e4849df"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 43).bin" size="8184960" crc="1662c585" sha1="92d585d273450b866e8eaf96cddb774b26e88149"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 44).bin" size="6769056" crc="9ecb450b" sha1="79186781ceebc36a4ddf0d26c269a2335aaca822"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 45).bin" size="8366064" crc="d8c9e404" sha1="bb6fca0d9f2d6ea77c0f885dc954c821a3209d0a"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 46).bin" size="8097936" crc="0cb834ac" sha1="8e9157b16171e49c1ffeaa50ec3674ab8b473863"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 47).bin" size="9419760" crc="84d31d9a" sha1="1344b7b74bc4e6d4a44e4d8672e735c552fbe1cb"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 48).bin" size="7079520" crc="fda95ac1" sha1="9acbbb7de8f5f9185c576563fd684879e78a7e21"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 49).bin" size="6197520" crc="8b0dd186" sha1="b745ee7935e355897649029d16bf3f53639604b3"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 50).bin" size="7890960" crc="e105acf3" sha1="d1531b56fc1bbac4a7af0cc0d39e9bef6c2fa92d"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 51).bin" size="7738080" crc="05dbc3ad" sha1="2b0d720e8b6f4471b29b3bcb34692233ffc06629"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 52).bin" size="6072864" crc="251db906" sha1="488d14591f46e228f0d9ffc0dc496737c0077847"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 53).bin" size="9497376" crc="d6b7f63f" sha1="def16ec8b3d6ffb49162dc653db36950b09c9c2a"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 54).bin" size="7667520" crc="b7964f15" sha1="a61bf8e9299458b687b5c2ab71a028f687da5bd6"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 55).bin" size="7879200" crc="848b8d34" sha1="731eb6748dc58cbfe3be0554757240b2ac2b73b3"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 56).bin" size="6609120" crc="f07c62e4" sha1="2d10c61e64b359b813d5599d73f26ece056179a8"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 57).bin" size="7942704" crc="3901d450" sha1="fd9700c22db02cf3be8dfeb8a376fcbcdd0a3550"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 58).bin" size="6968976" crc="645e4dd7" sha1="d73b1a09141dd6529ed918b285e29712451ad09d"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 59).bin" size="8812944" crc="986c0e49" sha1="655073f2d797bf0b0fb7fb1cfbd077d9c871254a"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 60).bin" size="7714560" crc="d9f11f49" sha1="e463ac807c312a188bd4f2345210fe801c66aaa9"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 61).bin" size="7291200" crc="94aa52d5" sha1="ad72fb3b30f9a0903b05210fc1b9b6afe91b15e1"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 62).bin" size="8255520" crc="33a4089b" sha1="df493718de84f6452f5913eed070e7e16de4636b"/> + <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan).cue" size="7840" crc="636acff9" sha1="be94d66771a1068c43817c45af66c8a6b43e1221"/> + --> + <description>Nihon no Rekishi - Ishin-hen - Kurofune Raikou</description> + <year>1990</year> + <publisher>CRI</publisher> + <info name="alt_title" value="日本の歴史 維新編 ~黒船来航~" /> + <info name="release" value="199008xx" /> + <info name="usage" value="Requires 2 MB RAM"/> + <part name="cdrom" interface="fmt_cdrom"> + <diskarea name="cdrom"> + <disk name="nihon no rekishi - ishin-hen - kurofune raikou (japan)" sha1="399338fde2608f98b8fd14ae41cbe72009fe5b95" /> + </diskarea> + </part> + </software> + <software name="nihonrki"> <!-- Origin: Neo Kobe Collection @@ -10182,7 +10550,7 @@ User/save disks that can be created from the game itself are not included. <rom name="Nihon no Rekishi - Kodai-hen - Nihon Tanjou (Japan) (Track 73).bin" size="11009712" crc="49d37230" sha1="6e29e7a54e7df9b2458a396235f05615fe01ca9d"/> <rom name="Nihon no Rekishi - Kodai-hen - Nihon Tanjou (Japan).cue" size="9030" crc="75c7321c" sha1="778875ac2a965fb7c6d152a866639530835cb30e"/> --> - <description>Nihon no Rekishi - Kodai-hen</description> + <description>Nihon no Rekishi - Kodai-hen - Nihon Tanjou</description> <year>1990</year> <publisher>CRI</publisher> <info name="serial" value="HMB-127 / T2016-005"/> @@ -10773,6 +11141,26 @@ User/save disks that can be created from the game itself are not included. </part> </software> + <software name="phobos"> + <!-- + Origin: redump.org + <rom name="Phobos (Japan).bin" size="109074000" crc="7d8a4ad6" sha1="04848bc5e17007c4422dab14934eef29dd50accc"/> + <rom name="Phobos (Japan).cue" size="80" crc="d4091963" sha1="b6ee8af14fbd01ad236d5523acb554ddd6141542"/> + --> + <description>Phobos</description> + <year>1995</year> + <publisher>姫屋ソフト (Himeya Soft)</publisher> + <info name="alt_title" value="フォボス" /> + <info name="serial" value="HMS-0002"/> + <info name="release" value="199508xx" /> + <info name="usage" value="Requires 2 MB RAM"/> + <part name="cdrom" interface="fmt_cdrom"> + <diskarea name="cdrom"> + <disk name="phobos (japan)" sha1="3ef091b02523c332e6c423b02618022a01b8a46b" /> + </diskarea> + </part> + </software> + <software name="pleasure"> <!-- Origin: redump.org / r09 @@ -10889,11 +11277,9 @@ User/save disks that can be created from the game itself are not included. <software name="populous"> <!-- - Origin: Neo Kobe Collection - <rom name="Populous & The Promised Lands.ccd" size="768" crc="5186640f" sha1="f1487992f0c7ef1154468791b67813359f9d2b15"/> - <rom name="Populous & The Promised Lands.cue" size="93" crc="363e2845" sha1="cdc9250932ae9e121e3e6554bfdeff4dbf7c7ad2"/> - <rom name="Populous & The Promised Lands.img" size="11816448" crc="7dbb4b5d" sha1="15dbb35d8f513b5309b04d497218a62bbc35a7f5"/> - <rom name="Populous & The Promised Lands.sub" size="482304" crc="246862d1" sha1="7886b7a398d5e0f1385e242a7952071187c634cc"/> + Origin: redump.org + <rom name="Populous & The Promised Lands (Japan).bin" size="11818800" crc="e01cec99" sha1="b3c5cdd2478f2793f10cd38464941d6dfc6d7abd"/> + <rom name="Populous & The Promised Lands (Japan).cue" size="126" crc="41219b98" sha1="6acaceb805e5575af1933613dc752e83a929193d"/> --> <description>Populous & The Promised Lands</description> <year>1990</year> @@ -10903,7 +11289,7 @@ User/save disks that can be created from the game itself are not included. <info name="release" value="199007xx" /> <part name="cdrom" interface="fmt_cdrom"> <diskarea name="cdrom"> - <disk name="populous & the promised lands" sha1="5e32724bd10a871146b38ecf1991b3f42f91f984" /> + <disk name="populous & the promised lands (japan)" sha1="e08575a9fe2333a5a473324e48104cad6bbb6f10" /> </diskarea> </part> </software> @@ -12603,13 +12989,39 @@ User/save disks that can be created from the game itself are not included. <software name="simearth"> <!-- - Origin: Neo Kobe Collection - <rom name="SimEarth.ccd" size="6113" crc="4f860edf" sha1="198af871373683d7af8eb221ae81cae78762d398"/> - <rom name="SimEarth.cue" size="1184" crc="1e1aa2c4" sha1="987b81262a49ae2dece42ce1e11ce510f0416ad7"/> - <rom name="SimEarth.img" size="372521520" crc="20c3d4b4" sha1="87a87ac199a3f0e2b551bedf656182a56bddbfdd"/> - <rom name="SimEarth.sub" size="15204960" crc="8168beff" sha1="a3ed345ca53f58e0267c6689f79eb2a64d04ed03"/> - --> - <description>SimEarth</description> + Origin: redump.org + <rom name="SimEarth - The Living Planet (Japan) (Track 01).bin" size="20286000" crc="2c03c1fd" sha1="f4b34db329ea14c96ae2e333272aa3fae434b7a8"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 02).bin" size="12594960" crc="e6a14806" sha1="b716b663357b8c03c81baf2b4b341df22b2d68f7"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 03).bin" size="6291600" crc="fa791846" sha1="a85b1372cb12c10c1f5afc6c8463e82169159cae"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 04).bin" size="15534960" crc="58e6c405" sha1="e51e5e4dc9b38c253675aafe20af0dce1a8cddfa"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 05).bin" size="21803040" crc="8d1a3e72" sha1="ee960a62db79bb5346c56e914cad3a3d238bc43f"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 06).bin" size="20521200" crc="b5810d5a" sha1="ebf6338bd7d1bf282bf47bdefcd68a41c7737c81"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 07).bin" size="15758400" crc="8b5ee9e6" sha1="80992289fa495c485022c588179564d026f4c800"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 08).bin" size="13888560" crc="7a83a8c2" sha1="d90037a41c2bba5121fe0c7e6b56a909c97decf8"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 09).bin" size="7173600" crc="e1fbd819" sha1="8d1e740331c385f62571fd47caf70b939e1a1773"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 10).bin" size="9055200" crc="d615f788" sha1="2722d169d285ec18cc94fcc518773165141fbb15"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 11).bin" size="13253520" crc="1d70bd4e" sha1="101ed4d0bf6a20909ed442dd862600080eb55586"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 12).bin" size="14794080" crc="8a9e6f2a" sha1="2bd0845d19b45f624c6687d7d3134968b65f4617"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 13).bin" size="22155840" crc="afdf1f7b" sha1="ad499ea3feda3fb933bb02d4b68d7a686f994c9d"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 14).bin" size="9008160" crc="880dbaad" sha1="9956bad631dc00ffab3954752c30e39c440d9eb2"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 15).bin" size="14511840" crc="a101aa69" sha1="c92edf55444b10f6c4547d87a6478c88c96fda52"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 16).bin" size="3269280" crc="30f4422b" sha1="bef613e049f25d4e147cd34df184377bafc4f968"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 17).bin" size="8267280" crc="412fa033" sha1="6b2dbced27a5b2f9df844bf4bd92b1d7d5146418"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 18).bin" size="17393040" crc="cdbe203e" sha1="cde2b2fabde77d165d4f518fbdbc96cf45e06cfc"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 19).bin" size="9901920" crc="df0b5914" sha1="579992c40735584119120afe1120baabf8023bb8"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 20).bin" size="20356560" crc="ea0d59b6" sha1="028a130bbf48f03ff1db27540b7fc2a26be038f5"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 21).bin" size="9408000" crc="f85f4f7b" sha1="acde9fd6d7b60de1f9641193c3e292d38a03ccae"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 22).bin" size="12183360" crc="383d0c9b" sha1="741e110a976429f7eebd1c2ad7730c7ccf707bf5"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 23).bin" size="16181760" crc="456b9480" sha1="3e0482c4126087633479f9d01d84673e1ef07248"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 24).bin" size="15958320" crc="a125ec07" sha1="ae1790f597729a64d58bb48c5e2db3f23763afce"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 25).bin" size="7890960" crc="cdf39fab" sha1="8f9580f2f4f57a6e1fbb16dbffbe98a321d7d112"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 26).bin" size="6221040" crc="eeece809" sha1="50102585c1455fff3e256d8516efdd23f7605b36"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 27).bin" size="11019120" crc="e1119b05" sha1="d150c6314965ac6f030aa921f056748785bd8a64"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 28).bin" size="10960320" crc="3b59465e" sha1="70375f03e00aafdd6c3417e29f094854271af1b5"/> + <rom name="SimEarth - The Living Planet (Japan) (Track 29).bin" size="6879600" crc="c49cec7a" sha1="118058985a1b6c376b5fd6df6a369fac9a52e419"/> + <rom name="SimEarth - The Living Planet (Japan).cue" size="3781" crc="93045407" sha1="6be41a9772dcc19039feba30e7390594ae3628ad"/> + --> + <description>SimEarth - The Living Planet</description> <year>1991</year> <publisher>イマジニア (Imagineer)</publisher> <info name="serial" value="HMC-141"/> @@ -12618,7 +13030,7 @@ User/save disks that can be created from the game itself are not included. <info name="usage" value="Requires 2 MB RAM"/> <part name="cdrom" interface="fmt_cdrom"> <diskarea name="cdrom"> - <disk name="simearth" sha1="e14823bae0e649313d2dec35d889e06d2a42986a" /> + <disk name="simearth - the living planet (japan)" sha1="619b96b4f860e1d10de9f82c6ceac3544377540a" /> </diskarea> </part> </software> @@ -14413,27 +14825,23 @@ User/save disks that can be created from the game itself are not included. <software name="tuntroll"> <!-- - Origin: Neo Kobe Collection - <rom name="Tunnels and Trolls.mdf" size="176929200" crc="5f61e6c3" sha1="12f1c1c6a718d9837a2e8d09f6d1c971d9062e03"/> - <rom name="Tunnels and Trolls.mds" size="1550" crc="6d577287" sha1="ff70c805befbbc024f8dfa4595b12109c40fb5fc"/> - - *after conversion with IsoBuster+EAC * - <rom name="track01.bin" size="20286000" crc="c2414a55" sha1="8a889a9d14f8509bd592f145efbbcf825af3a5c1"/> - <rom name="track02.bin" size="19404000" crc="dfaf532f" sha1="45b19968f41500a58c0a49e2cb930c14ebaba057"/> - <rom name="track03.bin" size="28047600" crc="88189cc0" sha1="35c497395900fdf29f45dc0ab564cebd3014bc0a"/> - <rom name="track04.bin" size="12171600" crc="b2e4193a" sha1="e104286ecac9e986c6445ab013bbf8ad066ab35b"/> - <rom name="track05.bin" size="9525600" crc="b6d6d389" sha1="280e2d5d44dcfdef33ea8a657ca8a85c445afb68"/> - <rom name="track06.bin" size="17287200" crc="a178227c" sha1="31c3006059aa40e5f63a059e0b83fcbef37321b1"/> - <rom name="track07.bin" size="20991600" crc="f9a6bff7" sha1="7a3ebdea92b0a61ee77028a83a6fe6d6bc01f15e"/> - <rom name="track08.bin" size="8290800" crc="80f1b504" sha1="b390db22f6c64fa256995a089a54d9dce9fa6460"/> - <rom name="track09.bin" size="8643600" crc="d5f63b96" sha1="bf051374dc14bc6ca929ddb9e5c3688615788751"/> - <rom name="track10.bin" size="3175200" crc="5f1dcbe5" sha1="866ca8b0849507227d67012ddae39b0e9c439a9d"/> - <rom name="track11.bin" size="13230000" crc="79959a32" sha1="a119b7e25fee2e97f8af96cbf0d2d2a9bb378d9a"/> - <rom name="track12.bin" size="9349200" crc="4ada562f" sha1="aaa443c92a747e323ee9d772126372da37904558"/> - <rom name="track13.bin" size="6879600" crc="c2191ed4" sha1="7bf96bff35197f435dc5f248f538097073cd06db"/> - <rom name="tunnels and trolls.cue" size="1710" crc="a7fbc735" sha1="32aa1fe7d45d852f53ac99a8906296677d22faa9"/> - --> - <description>Tunnels and Trolls - Khazan no Senshi-tachi</description> + Origin: redump.org + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 01).bin" size="9702000" crc="e9592b1f" sha1="12fe8f3653d6634d205937160152495f53a5b4fd"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 02).bin" size="28929600" crc="c80ea9e1" sha1="7f5d9d3e7d066e44e00a776164cb736557dbb0d4"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 03).bin" size="28400400" crc="4d695ce6" sha1="7d4a717db68ec0a453f78f111d140b5906d37caa"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 04).bin" size="12171600" crc="10269ad4" sha1="852a14cfdbd581e92bbf23295730f22bd7606589"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 05).bin" size="9878400" crc="938b3d01" sha1="c008735555eb22d2767724ffe07be801e5eb55a2"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 06).bin" size="17110800" crc="47bcec2f" sha1="d098c05e8747533d4d7df1d6abc6dc6bb0c6fb4b"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 07).bin" size="20638800" crc="96a2c441" sha1="ebfe5d5453aa990e8740c899f8a5b70b205aabb4"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 08).bin" size="8467200" crc="0bacc3cc" sha1="bba2a10df18a524280f173b5223a8ad2ae57ccac"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 09).bin" size="8643600" crc="e92d9c81" sha1="685762abc6a8774a687536a93387143ebf403f15"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 10).bin" size="3528000" crc="26da0753" sha1="03d345da449a8aee9c55630b65345ebe7a6a5084"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 11).bin" size="13230000" crc="a646d8a2" sha1="0faa87ac0a7a9f2dc05881b81873f308c8b6ff43"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 12).bin" size="9172800" crc="6fe02270" sha1="00920d4aab7716c3f224751cbc3f863e37cce9f7"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan) (Track 13).bin" size="7408800" crc="2d6dfc54" sha1="e882c93c6639116f01aab8317f3aefdd603deb27"/> + <rom name="Tunnels & Trolls - Crusaders of Khazan (Japan).cue" size="1815" crc="0877d1eb" sha1="7fd7aa51c6634e6081fece496240b3d854f66403"/> + --> + <description>Tunnels & Trolls - Crusaders of Khazan</description> <year>1990</year> <publisher>スタークラフト (Starcraft)</publisher> <info name="serial" value="HMB-196"/> @@ -14442,7 +14850,7 @@ User/save disks that can be created from the game itself are not included. <info name="usage" value="Requires 2 MB RAM"/> <part name="cdrom" interface="fmt_cdrom"> <diskarea name="cdrom"> - <disk name="tunnels and trolls" sha1="098e7889db2229e69fe4ebbb9af0728154c94658" /> + <disk name="tunnels & trolls - crusaders of khazan (japan)" sha1="98ac021e4c4e1549692fa9395a388a2e4efc864f" /> </diskarea> </part> </software> diff --git a/hash/msx1_cart.xml b/hash/msx1_cart.xml index 53fe52b1d71..59cce75f4a6 100644 --- a/hash/msx1_cart.xml +++ b/hash/msx1_cart.xml @@ -6469,6 +6469,19 @@ kept for now until finding out what those bytes affect... </part> </software> + <software name="ink"> + <description>Ink - Exxon Surfing</description> + <year>2006</year> + <publisher>Matra</publisher> + <part name="cart" interface="msx_cart"> + <feature name="slot" value="ink" /> + <dataarea name="rom" size="524288"> + <!-- Am29F040B flashrom dump --> + <rom name="ink.bin" size="524288" crc="23049642" sha1="4d74d3bad55a9b1deb88b81bd4ad5165383508d5" offset="0" /> + </dataarea> + </part> + </software> + <software name="theseus"> <description>Theseus - Iligks I (Jpn)</description> <year>1984</year> diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 0130cf9e40e..0fb2ad140d9 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -909,6 +909,8 @@ if (BUSES["COLECO_CART"]~=null) then files { MAME_DIR .. "src/devices/bus/coleco/cartridge/exp.cpp", MAME_DIR .. "src/devices/bus/coleco/cartridge/exp.h", + MAME_DIR .. "src/devices/bus/coleco/cartridge/megacart.cpp", + MAME_DIR .. "src/devices/bus/coleco/cartridge/megacart.h", MAME_DIR .. "src/devices/bus/coleco/cartridge/std.cpp", MAME_DIR .. "src/devices/bus/coleco/cartridge/std.h", MAME_DIR .. "src/devices/bus/coleco/cartridge/xin1.h", @@ -1608,6 +1610,8 @@ if (BUSES["MSX_SLOT"]~=null) then MAME_DIR .. "src/devices/bus/msx_cart/hfox.h", MAME_DIR .. "src/devices/bus/msx_cart/holy_quran.cpp", MAME_DIR .. "src/devices/bus/msx_cart/holy_quran.h", + MAME_DIR .. "src/devices/bus/msx_cart/ink.cpp", + MAME_DIR .. "src/devices/bus/msx_cart/ink.h", MAME_DIR .. "src/devices/bus/msx_cart/konami.cpp", MAME_DIR .. "src/devices/bus/msx_cart/konami.h", MAME_DIR .. "src/devices/bus/msx_cart/korean.cpp", diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua index 2f6ed7aabff..ea56fd2b1f7 100644 --- a/scripts/src/cpu.lua +++ b/scripts/src/cpu.lua @@ -2063,6 +2063,23 @@ if (CPUS["RSP"]~=null or _OPTIONS["with-tools"]) then end -------------------------------------------------- +-- Panasonic MN1880 +--@src/devices/cpu/mn1800/mn1880.h,CPUS["MN1880"] = true +-------------------------------------------------- + +if (CPUS["MN1880"]~=null) then + files { + MAME_DIR .. "src/devices/cpu/mn1880/mn1880.cpp", + MAME_DIR .. "src/devices/cpu/mn1880/mn1880.h", + } +end + +if (CPUS["MN1880"]~=null or _OPTIONS["with-tools"]) then + table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mn1880/mn1880d.cpp") + table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mn1880/mn1880d.h") +end + +-------------------------------------------------- -- Panasonic MN10200 --@src/devices/cpu/mn10200/mn10200.h,CPUS["MN10200"] = true -------------------------------------------------- diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index d605fab6068..8d31b543f9a 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -108,6 +108,7 @@ CPUS["SUPERFX"] = true CPUS["Z8"] = true CPUS["I8008"] = true CPUS["SCMP"] = true +--CPUS["MN1880"] = true CPUS["MN10200"] = true CPUS["COSMAC"] = true CPUS["UNSP"] = true diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 1ed1bd1c464..e1c22a78722 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -109,6 +109,7 @@ CPUS["SUPERFX"] = true CPUS["Z8"] = true CPUS["I8008"] = true CPUS["SCMP"] = true +CPUS["MN1880"] = true --CPUS["MN10200"] = true CPUS["COSMAC"] = true CPUS["UNSP"] = true @@ -1256,6 +1257,7 @@ function linkProjects_mame_mess(_target, _subtarget) "nokia", "northstar", "novag", + "novation", "olivetti", "olympia", "omnibyte", @@ -3079,6 +3081,12 @@ files { MAME_DIR .. "src/mame/drivers/novag_supremo.cpp", } +createMESSProjects(_target, _subtarget, "novation") +files { + MAME_DIR .. "src/mame/drivers/basssta.cpp", + MAME_DIR .. "src/mame/drivers/drumsta.cpp", +} + createMESSProjects(_target, _subtarget, "olivetti") files { MAME_DIR .. "src/mame/drivers/m20.cpp", @@ -4279,7 +4287,7 @@ files { MAME_DIR .. "src/mame/drivers/cp1.cpp", MAME_DIR .. "src/mame/drivers/cxhumax.cpp", MAME_DIR .. "src/mame/includes/cxhumax.h", - MAME_DIR .. "src/mame/drivers/czk80.cpp", + MAME_DIR .. "src/mame/drivers/ckz80.cpp", MAME_DIR .. "src/mame/drivers/d400.cpp", MAME_DIR .. "src/mame/drivers/d6800.cpp", MAME_DIR .. "src/mame/drivers/d6809.cpp", @@ -4488,6 +4496,7 @@ files { MAME_DIR .. "src/mame/drivers/gs6809.cpp", MAME_DIR .. "src/mame/drivers/gscpm.cpp", MAME_DIR .. "src/mame/drivers/gsz80.cpp", + MAME_DIR .. "src/mame/drivers/ultim809.cpp", } end diff --git a/src/devices/bus/bbc/tube/tube_80186.cpp b/src/devices/bus/bbc/tube/tube_80186.cpp index 9621110e7ca..874a5b00013 100644 --- a/src/devices/bus/bbc/tube/tube_80186.cpp +++ b/src/devices/bus/bbc/tube/tube_80186.cpp @@ -66,7 +66,7 @@ ROM_END void bbc_tube_80186_device::device_add_mconfig(machine_config &config) { - I80186(config, m_i80186, 20_MHz_XTAL / 2); + I80186(config, m_i80186, 20_MHz_XTAL); m_i80186->set_addrmap(AS_PROGRAM, &bbc_tube_80186_device::tube_80186_mem); m_i80186->set_addrmap(AS_IO, &bbc_tube_80186_device::tube_80186_io); m_i80186->tmrout0_handler().set_inputline(m_i80186, INPUT_LINE_HALT).invert(); diff --git a/src/devices/bus/coleco/cartridge/exp.cpp b/src/devices/bus/coleco/cartridge/exp.cpp index 0cc3e3db90e..27c8bdff12c 100644 --- a/src/devices/bus/coleco/cartridge/exp.cpp +++ b/src/devices/bus/coleco/cartridge/exp.cpp @@ -109,6 +109,12 @@ std::string colecovision_cartridge_slot_device::get_default_card_software(get_de uint32_t length = hook.image_file()->size(); if (length == 0x100000 || length == 0x200000) return software_get_default_slot("xin1"); + + if (length > 0x8000) + { + // Assume roms longer than 32K are megacarts. + return software_get_default_slot("megacart"); + } } return software_get_default_slot("standard"); } @@ -118,12 +124,11 @@ std::string colecovision_cartridge_slot_device::get_default_card_software(get_de // bd_r - cartridge data read //------------------------------------------------- + uint8_t colecovision_cartridge_slot_device::bd_r(offs_t offset, uint8_t data, int _8000, int _a000, int _c000, int _e000) { - if (m_card != nullptr) - { - data = m_card->bd_r(offset, data, _8000, _a000, _c000, _e000); - } + if (m_card) + data = m_card->bd_r(offset , data, _8000, _a000, _c000, _e000); return data; } @@ -133,12 +138,14 @@ uint8_t colecovision_cartridge_slot_device::bd_r(offs_t offset, uint8_t data, in // SLOT_INTERFACE( colecovision_cartridges ) //------------------------------------------------- +#include "megacart.h" #include "std.h" #include "xin1.h" void colecovision_cartridges(device_slot_interface &device) { // the following need ROMs from the software list + device.option_add_internal("megacart", COLECOVISION_MEGACART); device.option_add_internal("standard", COLECOVISION_STANDARD); device.option_add_internal("xin1", COLECOVISION_XIN1); } diff --git a/src/devices/bus/coleco/cartridge/megacart.cpp b/src/devices/bus/coleco/cartridge/megacart.cpp new file mode 100644 index 00000000000..68b84af653b --- /dev/null +++ b/src/devices/bus/coleco/cartridge/megacart.cpp @@ -0,0 +1,95 @@ +// license:BSD-3-Clause +// copyright-holders:Mark/Space Inc. +/********************************************************************** + + ColecoVision MegaCart emulation + +**********************************************************************/ + +#include "emu.h" +#include "megacart.h" + + + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +DEFINE_DEVICE_TYPE(COLECOVISION_MEGACART, colecovision_megacart_cartridge_device, "colecovision_megacart", "ColecoVision MegaCart") + + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// colecovision_megacart_cartridge_device - constructor +//------------------------------------------------- + +colecovision_megacart_cartridge_device::colecovision_megacart_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, COLECOVISION_MEGACART, tag, owner, clock), + device_colecovision_cartridge_interface(mconfig, *this), + m_bankcount(0), + m_activebank(0) +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void colecovision_megacart_cartridge_device::device_start() +{ + save_item(NAME(m_bankcount)); + save_item(NAME(m_activebank)); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void colecovision_megacart_cartridge_device::device_reset() +{ + m_bankcount = m_rom_size >> 14; + m_activebank = 0; +} + + +//------------------------------------------------- +// read - cartridge data read +//------------------------------------------------- + +uint8_t colecovision_megacart_cartridge_device::bd_r(offs_t offset, uint8_t data, int _8000, int _a000, int _c000, int _e000) +{ + if (!_8000 || !_a000 || !_c000 || !_e000) + { + if (m_bankcount > 2) + { + // offset as passed to us is a delta from address 0x8000. + + if (offset >= 0x7FC0) + { + // Reads within the final 64 bytes select which megacart bank is active. + m_activebank = offset & (m_bankcount - 1); + } + + if (offset >= 0x4000) + { + // The offset is within the active megacart bank. + offset = (m_activebank << 14) + (offset - 0x4000); + } + else + { + // The offset is within the last bank. + offset = (m_bankcount << 14) + (offset - 0x4000); + } + } + + data = m_rom[offset]; + } + + return data; +} diff --git a/src/devices/bus/coleco/cartridge/megacart.h b/src/devices/bus/coleco/cartridge/megacart.h new file mode 100644 index 00000000000..6a0b73f5124 --- /dev/null +++ b/src/devices/bus/coleco/cartridge/megacart.h @@ -0,0 +1,49 @@ +// license:BSD-3-Clause +// copyright-holders:Mark/Space Inc. +/********************************************************************** + + ColecoVision MegaCart emulation + +**********************************************************************/ + +#ifndef MAME_BUS_COLECO_MEGACART_H +#define MAME_BUS_COLECO_MEGACART_H + +#pragma once + +#include "exp.h" + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> colecovision_megacart_cartridge_device + +class colecovision_megacart_cartridge_device : public device_t, + public device_colecovision_cartridge_interface +{ +public: + // construction/destruction + colecovision_megacart_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + // device_t overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_colecovision_cartridge_interface overrides + virtual uint8_t bd_r(offs_t offset, uint8_t data, int _8000, int _a000, int _c000, int _e000) override; + +private: + uint32_t m_bankcount; + uint32_t m_activebank; +}; + + +// device type definition +DECLARE_DEVICE_TYPE(COLECOVISION_MEGACART, colecovision_megacart_cartridge_device) + + +#endif // MAME_BUS_COLECO_MEGACART_H diff --git a/src/devices/bus/coleco/cartridge/xin1.cpp b/src/devices/bus/coleco/cartridge/xin1.cpp index 140d2132ee4..954c4a6e483 100644 --- a/src/devices/bus/coleco/cartridge/xin1.cpp +++ b/src/devices/bus/coleco/cartridge/xin1.cpp @@ -41,6 +41,7 @@ colecovision_xin1_cartridge_device::colecovision_xin1_cartridge_device(const mac void colecovision_xin1_cartridge_device::device_start() { + save_item(NAME(m_current_offset)); } diff --git a/src/devices/bus/hp_hil/hlebase.cpp b/src/devices/bus/hp_hil/hlebase.cpp index c7b121dcb44..dc849d9f65b 100644 --- a/src/devices/bus/hp_hil/hlebase.cpp +++ b/src/devices/bus/hp_hil/hlebase.cpp @@ -141,6 +141,12 @@ bool hle_device_base::hil_write(uint16_t *pdata) return true; break; + case HPHIL_DKA: + case HPHIL_EK1: + case HPHIL_EK2: + hil_typematic(data); + break; + default: LOG("command %02X unknown\n", data); break; diff --git a/src/devices/bus/hp_hil/hlebase.h b/src/devices/bus/hp_hil/hlebase.h index b5cbfa84bef..ebffc3455b2 100644 --- a/src/devices/bus/hp_hil/hlebase.h +++ b/src/devices/bus/hp_hil/hlebase.h @@ -30,6 +30,7 @@ protected: // device_hp_hil_interface overrides virtual bool hil_write(uint16_t *data) override; virtual void hil_idd() = 0; + virtual void hil_typematic(uint8_t command) {}; virtual int hil_poll() = 0; private: diff --git a/src/devices/bus/hp_hil/hlekbd.cpp b/src/devices/bus/hp_hil/hlekbd.cpp index 398579e7f08..b3709676d30 100644 --- a/src/devices/bus/hp_hil/hlekbd.cpp +++ b/src/devices/bus/hp_hil/hlekbd.cpp @@ -439,6 +439,7 @@ void hle_hp_itf_device::transmit_byte(uint8_t byte) hle_hp_ipc_device::hle_hp_ipc_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) : hle_device_base(mconfig, HP_IPC_HLE_KEYBOARD, tag, owner, clock) , device_matrix_keyboard_interface(mconfig, *this, "COL1", "COL2", "COL3", "COL4", "COL5", "COL6", "COL7", "COL8", "COL9", "COL10", "COL11", "COL12", "COL13", "COL14", "COL15") + , m_modifiers(*this, "COL8") { } void hle_hp_ipc_device::device_reset() @@ -446,6 +447,9 @@ void hle_hp_ipc_device::device_reset() m_fifo.clear(); reset_key_state(); start_processing(attotime::from_hz(1'200)); + typematic_stop(); + m_typematic = false; + m_typematic_rate = 0; } void hle_hp_ipc_device::hil_idd() @@ -454,17 +458,66 @@ void hle_hp_ipc_device::hil_idd() m_hp_hil_mlc->hil_write(m_device_id16 | 0); } +void hle_hp_ipc_device::hil_typematic(uint8_t command) +{ + switch (command) + { + case HPHIL_DKA: + typematic_stop(); + m_typematic = false; + m_typematic_rate = 0; + break; + + case HPHIL_EK1: + m_typematic = true; + m_typematic_rate = 30; + break; + + case HPHIL_EK2: + m_typematic = true; + m_typematic_rate = 60; + break; + } +} + void hle_hp_ipc_device::key_make(uint8_t row, uint8_t column) { transmit_byte((((row + 1) ^ 8) << 4) + (column << 1)); + if (m_typematic) + typematic_start(row, column, typematic_delay(), typematic_period()); } +void hle_hp_ipc_device::key_repeat(uint8_t row, uint8_t column) +{ + transmit_byte((((row + 1) ^ 8) << 4) + (column << 1)); +} void hle_hp_ipc_device::key_break(uint8_t row, uint8_t column) { transmit_byte((((row + 1) ^ 8) << 4) + (column << 1) + 1); + typematic_stop(); } +void hle_hp_ipc_device::will_scan_row(u8 row) +{ + u16 const modifiers(m_modifiers->read() & 0x7c); + if (modifiers != m_last_modifiers && m_typematic) + typematic_restart(typematic_delay(), typematic_period()); + + m_last_modifiers = modifiers; +} + +attotime hle_hp_ipc_device::typematic_delay() const +{ + return attotime::from_msec(250); // XXX +} + +attotime hle_hp_ipc_device::typematic_period() const +{ + return attotime::from_hz(m_typematic_rate); +} + + int hle_hp_ipc_device::hil_poll() { int frames = 1; diff --git a/src/devices/bus/hp_hil/hlekbd.h b/src/devices/bus/hp_hil/hlekbd.h index 25df57da3b3..c9bb59faaad 100644 --- a/src/devices/bus/hp_hil/hlekbd.h +++ b/src/devices/bus/hp_hil/hlekbd.h @@ -24,12 +24,25 @@ public: // device_matrix_keyboard_interface overrides virtual void key_make(uint8_t row, uint8_t column) override; + virtual void key_repeat(uint8_t row, uint8_t column) override; virtual void key_break(uint8_t row, uint8_t column) override; virtual int hil_poll() override; virtual void hil_idd() override; + virtual void hil_typematic(uint8_t command) override; + + required_ioport m_modifiers; + private: + virtual void will_scan_row(u8 row) override; + util::fifo<uint8_t, 8> m_fifo; void transmit_byte(uint8_t byte); + attotime typematic_delay() const; + attotime typematic_period() const; + + u16 m_last_modifiers; + bool m_typematic; + int m_typematic_rate; }; class hle_hp_itf_device diff --git a/src/devices/bus/interpro/sr/gt.cpp b/src/devices/bus/interpro/sr/gt.cpp index a01017fe2ac..a5411ce7c19 100644 --- a/src/devices/bus/interpro/sr/gt.cpp +++ b/src/devices/bus/interpro/sr/gt.cpp @@ -506,6 +506,7 @@ gt_device_base::gt_device_base(const machine_config &mconfig, device_type type, , m_vram(*this, "vram%u", 0) , m_mram(*this, "mram%u", 0) , m_bpu(*this, "bpu%u", 0) + , m_control(0) , m_double_buffered(double_buffered) , m_masked_reads(masked_reads) { diff --git a/src/devices/bus/isa/3c503.cpp b/src/devices/bus/isa/3c503.cpp index 71e783c5830..de7363ceb26 100644 --- a/src/devices/bus/isa/3c503.cpp +++ b/src/devices/bus/isa/3c503.cpp @@ -110,8 +110,7 @@ void el2_3c503_device::dack_w(int line, uint8_t data) { uint8_t el2_3c503_device::el2_3c503_loport_r(offs_t offset) { switch((m_regs.ctrl >> 2) & 3) { case 0: - m_dp8390->dp8390_cs(CLEAR_LINE); - return m_dp8390->dp8390_r(offset); + return m_dp8390->cs_read(offset); case 1: return m_prom[offset]; case 2: @@ -125,8 +124,7 @@ uint8_t el2_3c503_device::el2_3c503_loport_r(offs_t offset) { void el2_3c503_device::el2_3c503_loport_w(offs_t offset, uint8_t data) { switch((m_regs.ctrl >> 2) & 3) { case 0: - m_dp8390->dp8390_cs(CLEAR_LINE); - return m_dp8390->dp8390_w(offset, data); + return m_dp8390->cs_write(offset, data); case 1: case 2: logerror("3c503: invalid attempt to write to prom\n"); diff --git a/src/devices/bus/isa/eis_sad8852.cpp b/src/devices/bus/isa/eis_sad8852.cpp index 8908831350a..d8b1fec4d87 100644 --- a/src/devices/bus/isa/eis_sad8852.cpp +++ b/src/devices/bus/isa/eis_sad8852.cpp @@ -201,7 +201,7 @@ ioport_constructor isa16_sad8852_device::device_input_ports() const //------------------------------------------------- void isa16_sad8852_device::device_add_mconfig(machine_config &config) { - i80188_cpu_device &cpu(I80188(config, I80188_TAG, XTAL(12'000'000) / 2)); // Chip revision is 6 MHz + i80188_cpu_device &cpu(I80188(config, I80188_TAG, XTAL(12'000'000))); // Chip revision is 6 MHz cpu.set_addrmap(AS_PROGRAM, &isa16_sad8852_device::sad8852_mem); cpu.set_addrmap(AS_IO, &isa16_sad8852_device::sad8852_io); diff --git a/src/devices/bus/isa/ne1000.cpp b/src/devices/bus/isa/ne1000.cpp index 86e0f9b7afe..d2234098c34 100644 --- a/src/devices/bus/isa/ne1000.cpp +++ b/src/devices/bus/isa/ne1000.cpp @@ -41,13 +41,11 @@ void ne1000_device::device_reset() { uint8_t ne1000_device::ne1000_port_r(offs_t offset) { if(offset < 16) { - m_dp8390->dp8390_cs(CLEAR_LINE); - return m_dp8390->dp8390_r(offset); + return m_dp8390->cs_read(offset); } switch(offset) { case 16: - m_dp8390->dp8390_cs(ASSERT_LINE); - return m_dp8390->dp8390_r(offset); + return m_dp8390->remote_read(); case 31: m_dp8390->dp8390_reset(CLEAR_LINE); return 0; @@ -59,14 +57,12 @@ uint8_t ne1000_device::ne1000_port_r(offs_t offset) { void ne1000_device::ne1000_port_w(offs_t offset, uint8_t data) { if(offset < 16) { - m_dp8390->dp8390_cs(CLEAR_LINE); - m_dp8390->dp8390_w(offset, data); + m_dp8390->cs_write(offset, data); return; } switch(offset) { case 16: - m_dp8390->dp8390_cs(ASSERT_LINE); - m_dp8390->dp8390_w(offset, data); + m_dp8390->remote_write(data); return; case 31: m_dp8390->dp8390_reset(ASSERT_LINE); diff --git a/src/devices/bus/isa/ne2000.cpp b/src/devices/bus/isa/ne2000.cpp index 17c8466ce50..3fc60df6b21 100644 --- a/src/devices/bus/isa/ne2000.cpp +++ b/src/devices/bus/isa/ne2000.cpp @@ -42,15 +42,13 @@ void ne2000_device::device_reset() { READ16_MEMBER(ne2000_device::ne2000_port_r) { offset <<= 1; if(offset < 16) { - m_dp8390->dp8390_cs(CLEAR_LINE); - return m_dp8390->dp8390_r(offset) | - m_dp8390->dp8390_r(offset+1) << 8; + return m_dp8390->cs_read(offset) | + m_dp8390->cs_read(offset+1) << 8; } if(mem_mask == 0xff00) offset++; switch(offset) { case 16: - m_dp8390->dp8390_cs(ASSERT_LINE); - return m_dp8390->dp8390_r(offset); + return m_dp8390->remote_read(); case 31: m_dp8390->dp8390_reset(CLEAR_LINE); return 0; @@ -63,20 +61,18 @@ READ16_MEMBER(ne2000_device::ne2000_port_r) { WRITE16_MEMBER(ne2000_device::ne2000_port_w) { offset <<= 1; if(offset < 16) { - m_dp8390->dp8390_cs(CLEAR_LINE); if(mem_mask == 0xff00) { data >>= 8; offset++; } - m_dp8390->dp8390_w(offset, data & 0xff); - if(mem_mask == 0xffff) m_dp8390->dp8390_w(offset+1, data>>8); + m_dp8390->cs_write(offset, data & 0xff); + if(mem_mask == 0xffff) m_dp8390->cs_write(offset+1, data>>8); return; } if(mem_mask == 0xff00) offset++; switch(offset) { case 16: - m_dp8390->dp8390_cs(ASSERT_LINE); - m_dp8390->dp8390_w(offset, data); + m_dp8390->remote_write(data); return; case 31: m_dp8390->dp8390_reset(ASSERT_LINE); diff --git a/src/devices/bus/lpci/pci.cpp b/src/devices/bus/lpci/pci.cpp index 41591758c7d..bb9f8f4c113 100644 --- a/src/devices/bus/lpci/pci.cpp +++ b/src/devices/bus/lpci/pci.cpp @@ -104,7 +104,7 @@ pci_bus_device::pci_bus_device(const machine_config &mconfig, const char *tag, d INLINE FUNCTIONS ***************************************************************************/ -READ32_MEMBER( pci_bus_device::read ) +uint32_t pci_bus_device::read(offs_t offset, uint32_t mem_mask) { uint32_t result = 0xffffffff; int function, reg; @@ -158,7 +158,7 @@ pci_bus_device *pci_bus_device::pci_search_bustree(int busnum, int devicenum, pc -WRITE32_MEMBER( pci_bus_device::write ) +void pci_bus_device::write(offs_t offset, uint32_t data, uint32_t mem_mask) { offset %= 2; @@ -206,25 +206,25 @@ WRITE32_MEMBER( pci_bus_device::write ) -READ64_MEMBER(pci_bus_device::read_64be) +uint64_t pci_bus_device::read_64be(offs_t offset, uint64_t mem_mask) { uint64_t result = 0; mem_mask = swapendian_int64(mem_mask); if (ACCESSING_BITS_0_31) - result |= (uint64_t)read(space, offset * 2 + 0, mem_mask >> 0) << 0; + result |= (uint64_t)read(offset * 2 + 0, mem_mask >> 0) << 0; if (ACCESSING_BITS_32_63) - result |= (uint64_t)read(space, offset * 2 + 1, mem_mask >> 32) << 32; + result |= (uint64_t)read(offset * 2 + 1, mem_mask >> 32) << 32; return swapendian_int64(result); } -WRITE64_MEMBER(pci_bus_device::write_64be) +void pci_bus_device::write_64be(offs_t offset, uint64_t data, uint64_t mem_mask) { data = swapendian_int64(data); mem_mask = swapendian_int64(mem_mask); if (ACCESSING_BITS_0_31) - write(space, offset * 2 + 0, data >> 0, mem_mask >> 0); + write(offset * 2 + 0, data >> 0, mem_mask >> 0); if (ACCESSING_BITS_32_63) - write(space, offset * 2 + 1, data >> 32, mem_mask >> 32); + write(offset * 2 + 1, data >> 32, mem_mask >> 32); } diff --git a/src/devices/bus/lpci/pci.h b/src/devices/bus/lpci/pci.h index 83606aec5da..81fe3b759e5 100644 --- a/src/devices/bus/lpci/pci.h +++ b/src/devices/bus/lpci/pci.h @@ -72,11 +72,11 @@ public: // construction/destruction pci_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ32_MEMBER( read ); - DECLARE_WRITE32_MEMBER( write ); + uint32_t read(offs_t offset, uint32_t mem_mask = ~0); + void write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - DECLARE_READ64_MEMBER( read_64be ); - DECLARE_WRITE64_MEMBER( write_64be ); + uint64_t read_64be(offs_t offset, uint64_t mem_mask = ~0); + void write_64be(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); void set_busnum(int busnum) { m_busnum = busnum; } template <typename T> diff --git a/src/devices/bus/msx_cart/cartridge.cpp b/src/devices/bus/msx_cart/cartridge.cpp index 967732b3ae3..9c1e03a05fb 100644 --- a/src/devices/bus/msx_cart/cartridge.cpp +++ b/src/devices/bus/msx_cart/cartridge.cpp @@ -14,6 +14,7 @@ #include "halnote.h" #include "hfox.h" #include "holy_quran.h" +#include "ink.h" #include "konami.h" #include "korean.h" #include "majutsushi.h" @@ -58,6 +59,7 @@ void msx_cart(device_slot_interface &device) device.option_add_internal("msxaud_nms1205", MSX_CART_MSX_AUDIO_NMS1205); device.option_add_internal("super_swangi", MSX_CART_SUPER_SWANGI); device.option_add_internal("hfox", MSX_CART_HFOX); + device.option_add_internal("ink", MSX_CART_INK); device.option_add_internal("keyboard_master", MSX_CART_KEYBOARD_MASTER); device.option_add_internal("holy_quran", MSX_CART_HOLY_QURAN); device.option_add_internal("dooly", MSX_CART_DOOLY); diff --git a/src/devices/bus/msx_cart/ink.cpp b/src/devices/bus/msx_cart/ink.cpp new file mode 100644 index 00000000000..e3053a5da7d --- /dev/null +++ b/src/devices/bus/msx_cart/ink.cpp @@ -0,0 +1,55 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/****************************************************************************** + +Ink cartridge (Matra, 2006) + +48KB ROM data on an AMD Am29F040B(label scratched off), the game uses it +for protection. + +******************************************************************************/ + +#include "emu.h" +#include "ink.h" + +DEFINE_DEVICE_TYPE(MSX_CART_INK, msx_cart_ink_device, "msx_cart_ink", "MSX Cartridge - Ink") + + +msx_cart_ink_device::msx_cart_ink_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_INK, tag, owner, clock) + , msx_cart_interface(mconfig, *this) + , m_flash(*this, "flash") +{ +} + +ROM_START( msx_cart_ink ) + ROM_REGION(0x80000, "flash", ROMREGION_ERASEFF) +ROM_END + +const tiny_rom_entry *msx_cart_ink_device::device_rom_region() const +{ + return ROM_NAME( msx_cart_ink ); +} + +void msx_cart_ink_device::device_add_mconfig(machine_config &config) +{ + AMD_29F040(config, m_flash); +} + +void msx_cart_ink_device::initialize_cartridge() +{ + size_t size = get_rom_size() > 0x80000 ? 0x80000 : get_rom_size(); + memcpy(memregion("flash")->base(), get_rom_base(), size); +} + + +uint8_t msx_cart_ink_device::read_cart(offs_t offset) +{ + return m_flash->read(offset); +} + +void msx_cart_ink_device::write_cart(offs_t offset, uint8_t data) +{ + // /RD connects to flashrom A16-A18 + m_flash->write(offset | 0x70000, data); +} diff --git a/src/devices/bus/msx_cart/ink.h b/src/devices/bus/msx_cart/ink.h new file mode 100644 index 00000000000..933385c575d --- /dev/null +++ b/src/devices/bus/msx_cart/ink.h @@ -0,0 +1,36 @@ +// license:BSD-3-Clause +// copyright-holders:hap +#ifndef MAME_BUS_MSX_CART_INK_H +#define MAME_BUS_MSX_CART_INK_H + +#pragma once + +#include "bus/msx_cart/cartridge.h" +#include "machine/intelfsh.h" + + +DECLARE_DEVICE_TYPE(MSX_CART_INK, msx_cart_ink_device) + + +class msx_cart_ink_device : public device_t, public msx_cart_interface +{ +public: + msx_cart_ink_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + virtual void initialize_cartridge() override; + + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; + +protected: + // device-level overrides + virtual void device_start() override { ; } + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + +private: + required_device<amd_29f040_device> m_flash; +}; + + +#endif // MAME_BUS_MSX_CART_INK_H diff --git a/src/devices/bus/nubus/nubus_asntmc3b.cpp b/src/devices/bus/nubus/nubus_asntmc3b.cpp index a96dbcfc655..f68328ef45f 100644 --- a/src/devices/bus/nubus/nubus_asntmc3b.cpp +++ b/src/devices/bus/nubus/nubus_asntmc3b.cpp @@ -124,7 +124,6 @@ void nubus_mac8390_device::device_start() void nubus_mac8390_device::device_reset() { m_dp83902->dp8390_reset(0); - m_dp83902->dp8390_cs(0); memcpy(m_prom, m_dp83902->get_mac(), 6); } @@ -145,13 +144,11 @@ WRITE32_MEMBER( nubus_mac8390_device::en_w ) if (mem_mask == 0xff000000) { // printf("%02x to 8390 @ %x\n", data>>24, 0xf-offset); - m_dp83902->dp8390_w(0xf-offset, data>>24); + m_dp83902->cs_write(0xf-offset, data>>24); } else if (mem_mask == 0xffff0000) { - m_dp83902->dp8390_cs(1); - m_dp83902->dp8390_w(0xf-offset, data>>16); - m_dp83902->dp8390_cs(0); + m_dp83902->remote_write(data>>16); } else { @@ -163,13 +160,11 @@ READ32_MEMBER( nubus_mac8390_device::en_r ) { if (mem_mask == 0xff000000) { - return (m_dp83902->dp8390_r(0xf-offset)<<24); + return (m_dp83902->cs_read(0xf-offset)<<24); } else if (mem_mask == 0xffff0000) { - m_dp83902->dp8390_cs(1); - return (m_dp83902->dp8390_r(0xf-offset)<<16); - m_dp83902->dp8390_cs(0); + return (m_dp83902->remote_read()<<16); } else { diff --git a/src/devices/bus/spectrum/beta128.cpp b/src/devices/bus/spectrum/beta128.cpp index 85423618b79..e528fbc8154 100644 --- a/src/devices/bus/spectrum/beta128.cpp +++ b/src/devices/bus/spectrum/beta128.cpp @@ -11,6 +11,7 @@ is moved from 3cxx to 3dxx for example) TODO: + original ROMs should have bits 0 and 7 swapped there were many unofficial ROMs available for this, make them available for use. @@ -39,7 +40,8 @@ INPUT_PORTS_START(beta128) PORT_START("SWITCH") PORT_CONFNAME(0x03, 0x01, "System Switch") //PORT_CHANGED_MEMBER(DEVICE_SELF, spectrum_beta128_device, switch_changed, 0) PORT_CONFSETTING(0x00, "Off (128)") - PORT_CONFSETTING(0x01, "Normal (auto-boot)") + PORT_CONFSETTING(0x01, "Normal (auto-boot)") // also enable Beta-disk V3/V4 compatibility, auto-boot feature does not work on Spectrum128. + //PORT_CONFSETTING(0x02, "Reset") // TODO: implement RESET callback INPUT_PORTS_END //------------------------------------------------- @@ -154,7 +156,7 @@ void spectrum_beta128_device::device_reset() else m_romcs = 0; - m_128rom_bit = false; + m_128rom_bit = true; } //************************************************************************** diff --git a/src/devices/bus/x68k/x68k_neptunex.cpp b/src/devices/bus/x68k/x68k_neptunex.cpp index b1fd9d4542f..608acd4587c 100644 --- a/src/devices/bus/x68k/x68k_neptunex.cpp +++ b/src/devices/bus/x68k/x68k_neptunex.cpp @@ -62,17 +62,15 @@ READ16_MEMBER(x68k_neptune_device::x68k_neptune_port_r) return 0xffff; if(offset < 0x100+16) { - m_dp8390->dp8390_cs(CLEAR_LINE); - return (m_dp8390->dp8390_r(offset) << 8)| - m_dp8390->dp8390_r(offset+1); + return (m_dp8390->cs_read(offset) << 8)| + m_dp8390->cs_read(offset+1); } //if(mem_mask == 0x00ff) offset++; switch(offset) { case 0x100+16: - m_dp8390->dp8390_cs(ASSERT_LINE); - data = m_dp8390->dp8390_r(offset); - data = ((data & 0x00ff) << 8) | ((data & 0xff00) >> 8); + data = m_dp8390->remote_read(); + data = swapendian_int16(data); return data; case 0x100+31: m_dp8390->dp8390_reset(CLEAR_LINE); @@ -89,23 +87,20 @@ WRITE16_MEMBER(x68k_neptune_device::x68k_neptune_port_w) return; if(offset < 0x100+16) { - m_dp8390->dp8390_cs(CLEAR_LINE); if(mem_mask == 0x00ff) { data <<= 8; offset++; } - m_dp8390->dp8390_w(offset, data>>8); - if(mem_mask == 0xffff) m_dp8390->dp8390_w(offset+1, data & 0xff); + m_dp8390->cs_write(offset, data>>8); + if(mem_mask == 0xffff) m_dp8390->cs_write(offset+1, data & 0xff); return; } //if(mem_mask == 0x00ff) offset++; switch(offset) { case 0x100+16: - m_dp8390->dp8390_cs(ASSERT_LINE); - data = ((data & 0x00ff) << 8) | ((data & 0xff00) >> 8); - m_dp8390->dp8390_w(offset, data); + m_dp8390->remote_write(swapendian_int16(data)); return; case 0x100+31: m_dp8390->dp8390_reset(ASSERT_LINE); diff --git a/src/devices/cpu/mips/r4000.cpp b/src/devices/cpu/mips/r4000.cpp index 2d51e7d0e8a..9d126121b1c 100644 --- a/src/devices/cpu/mips/r4000.cpp +++ b/src/devices/cpu/mips/r4000.cpp @@ -212,6 +212,8 @@ void r4000_base_device::device_reset() m_ll_active = false; m_bus_error = false; + m_cp0[CP0_Cause] = 0; + m_cp0[CP0_WatchLo] = 0; m_cp0[CP0_WatchHi] = 0; diff --git a/src/devices/cpu/mn1880/mn1880.cpp b/src/devices/cpu/mn1880/mn1880.cpp new file mode 100644 index 00000000000..cf837a53d28 --- /dev/null +++ b/src/devices/cpu/mn1880/mn1880.cpp @@ -0,0 +1,114 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/*************************************************************************** + + Panasonic MN1880 family + + Currently this device is just a stub with no actual execution core. + +***************************************************************************/ + +#include "emu.h" +#include "mn1880.h" +#include "mn1880d.h" + +// device type definitions +DEFINE_DEVICE_TYPE(MN1880, mn1880_device, "mn1880", "Panasonic MN1880") + +mn1880_device::mn1880_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : cpu_device(mconfig, MN1880, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 8, 16, 0) + , m_data_config("data", ENDIANNESS_LITTLE, 8, 16, 0) + , m_ip(0) + , m_fs(0) + , m_xp(0) + , m_yp(0) + , m_sp(0) + , m_lp(0) + , m_icount(0) +{ +} + +std::unique_ptr<util::disasm_interface> mn1880_device::create_disassembler() +{ + return std::make_unique<mn1880_disassembler>(); +} + +device_memory_interface::space_config_vector mn1880_device::memory_space_config() const +{ + return space_config_vector { + std::make_pair(AS_PROGRAM, &m_program_config), + std::make_pair(AS_DATA, &m_data_config) + }; +} + +void mn1880_device::device_start() +{ + space(AS_PROGRAM).cache(m_cache); + space(AS_DATA).specific(m_data); + set_icountptr(m_icount); + + state_add(MN1880_IP, "IP", m_ip); + state_add(STATE_GENPC, "GENPC", m_ip).noshow(); + state_add(STATE_GENPCBASE, "CURPC", m_ip).noshow(); + state_add(MN1880_FS, "FS", m_fs); + state_add(STATE_GENFLAGS, "FLAGS", m_fs).formatstr("%10s").noshow(); + state_add(MN1880_XP, "XP", m_xp); + state_add(MN1880_YP, "YP", m_yp); + state_add<u8>(MN1880_XPL, "XPl", + [this] () { return m_xp & 0x00ff; }, + [this] (u8 data) { m_xp = (m_xp & 0xff00) | data; } + ).noshow(); + state_add<u8>(MN1880_XPH, "XPh", + [this] () { return (m_xp & 0xff00) >> 8; }, + [this] (u8 data) { m_xp = (m_xp & 0x00ff) | u16(data) << 8; } + ).noshow(); + state_add<u8>(MN1880_YPL, "YPl", + [this] () { return m_yp & 0x00ff; }, + [this] (u8 data) { m_yp = (m_yp & 0xff00) | data; } + ).noshow(); + state_add<u8>(MN1880_YPH, "YPh", + [this] () { return (m_yp & 0xff00) >> 8; }, + [this] (u8 data) { m_yp = (m_yp & 0x00ff) | u16(data) << 8; } + ).noshow(); + state_add(MN1880_SP, "SP", m_sp); + state_add(MN1880_LP, "LP", m_lp); + + save_item(NAME(m_ip)); + save_item(NAME(m_fs)); + save_item(NAME(m_xp)); + save_item(NAME(m_yp)); + save_item(NAME(m_sp)); + save_item(NAME(m_lp)); +} + +void mn1880_device::device_reset() +{ + m_fs &= 0xc0; // CF & ZF might or might not be cleared as well + m_sp = 0x0100; + // TBD: is LP also initialized at reset? +} + +void mn1880_device::execute_run() +{ + m_ip = m_cache.read_word(0); + + debugger_instruction_hook(m_ip); + + m_icount = 0; +} + +void mn1880_device::state_string_export(const device_state_entry &entry, std::string &str) const +{ + switch (entry.index()) + { + case STATE_GENFLAGS: + str = string_format("%c%c%c%c:RC=%-2d", + BIT(m_fs, 7) ? 'C' : '.', // Carry flag + BIT(m_fs, 6) ? 'Z' : '.', // Zero flag + BIT(m_fs, 5) ? 'D' : '.', // Direct flag + BIT(m_fs, 4) ? 'A' : '.', // Auto-repeat flag + m_fs & 0x0f); + break; + } +} diff --git a/src/devices/cpu/mn1880/mn1880.h b/src/devices/cpu/mn1880/mn1880.h new file mode 100644 index 00000000000..e4ab2427f46 --- /dev/null +++ b/src/devices/cpu/mn1880/mn1880.h @@ -0,0 +1,57 @@ +// license:BSD-3-Clause +// copyright-holders:AJR + +#ifndef MAME_CPU_MN1880_MN1880_H +#define MAME_CPU_MN1880_MN1880_H + +#pragma once + +class mn1880_device : public cpu_device +{ +public: + mn1880_device(const machine_config &config, const char *tag, device_t *owner, u32 clock); + + enum { + MN1880_IP, MN1880_FS, + MN1880_XP, MN1880_YP, + MN1880_XPL, MN1880_XPH, MN1880_YPL, MN1880_YPH, + MN1880_SP, MN1880_LP + }; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_execute_interface overrides + virtual void execute_run() override; + + // device_disasm_interface overrides + virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; + + // device_memory_interface overrides + virtual space_config_vector memory_space_config() const override; + + // device_state_interface overrides + virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; + +private: + // address spaces + address_space_config m_program_config; + address_space_config m_data_config; + memory_access<16, 0, 0, ENDIANNESS_BIG>::cache m_cache; + memory_access<16, 0, 0, ENDIANNESS_LITTLE>::specific m_data; + + // internal state + u16 m_ip; + u8 m_fs; + u16 m_xp; + u16 m_yp; + u16 m_sp; + u16 m_lp; + s32 m_icount; +}; + +DECLARE_DEVICE_TYPE(MN1880, mn1880_device) + +#endif // MAME_CPU_MN1880_MN1880_H diff --git a/src/devices/cpu/mn1880/mn1880d.cpp b/src/devices/cpu/mn1880/mn1880d.cpp new file mode 100644 index 00000000000..01ab3fac038 --- /dev/null +++ b/src/devices/cpu/mn1880/mn1880d.cpp @@ -0,0 +1,568 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/*************************************************************************** + + Panasonic MN1880 family disassembler + + Due to the dearth of available documentation for the MN1880 series, + its instruction list has been reconstructed from MN1870 and MN1890 + manuals, a (decidedly incomplete) list of MN1880 instructions not + provided in the MN1870 series, and a few educated guesses based on + reverse engineering (which include CALL XP actually being provided by + the MN1880 despite the MN1870 manual claiming it as exclusive). + + The direct flag (bit 5 of the flag status register) is the key to + data memory addressing. When DF is cleared, the upper bytes of direct + addresses are zeroed; when DF is set, the upper address bytes are + taken from YPh for source operands and XPh for destination operands. + + Note that the REP opcode causes a temporary mode switch, decoding + up to 15 extra sets of operands for the following instruction. + REPEAT_COMBINED attempts to process this correctly by treating the + full sequence as a single instruction, but this option has been + disabled by default because it results in some repeated instructions + being dozens of bytes long and the formatted output being difficult + to read anyway since MAME requires it all be on a single line. + +***************************************************************************/ + +#include "emu.h" +#include "mn1880d.h" + +#define REPEAT_COMBINED 0 + +mn1880_disassembler::mn1880_disassembler(const char *const *inst_names) + : util::disasm_interface() + , m_inst_names(inst_names) +{ +} + +mn1880_disassembler::mn1880_disassembler() + : mn1880_disassembler(s_inst_names) +{ +} + +// MOV, RDTBL, MOV1 and MOV1N may also be known as MV, MVROM, MV1 and MV1CPL +const char *const mn1880_disassembler::s_inst_names[256] = +{ + "nop", "rep", "rep", "rep", "rep", "rep", "rep", "rep", + "rep", "rep", "rep", "rep", "rep", "rep", "rep", "rep", + "clr", "clr", "clr", "clr", "clr", "clr", "clr", "clr", + "set", "set", "set", "set", "set", "set", "set", "set", + "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", + "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", + nullptr, "movl", nullptr, "movl", "movl", "movl", "mov", "mov", + "movl", "movl", "movl", "movl", "asl", "asl", "asr", "asr", + "dec", "dec", "not", "not", "cmpm", "cmpm", "xch4", "xch4", + "inc", "inc", "clr", "clr", "rol", "rol", "ror", "ror", + "cmpm", "div", "cmpm", "movda", "mov", "mov", "mov", "mov", + "xch", "mul", "xch", nullptr, "movl", "movl", "movl", "movl", + "cmp", "cmp", "cmp", "cmp", "and", "and", "and", "and", + "xor", "xor", "xor", "xor", "or", "or", "or", "or", + "subc", "subc", "subc", "subc", "subd", "subd", "subd", "subd", + "addc", "addc", "addc", "addc", "addd", "addd", "addd", "addd", + "skip", "bc", "bz", "ble", "cmpl", "clr", "cmpl", "clr", + "br", "bnc", "bnz", "bgt", nullptr, "set", nullptr, "set", + "call", "call", "call", "call", "call", "call", "call", "call", + "call", "call", "call", "call", "call", "call", "call", "call", + "br", "br", "br", "br", "br", "br", "br", "br", + "br", "br", "br", "br", "br", "br", "br", "br", + nullptr, "pop", nullptr, "pop", "pop", "pop", "pop", "pop", + nullptr, "push", nullptr, "push", "push", "push", "push", "push", + "subcl", "div", "subcl", nullptr, "xch", "xch", "xch", "xch", + "addcl", "mul", "addcl", nullptr, "mov", "mov", "mov", "mov", + "cmp", "cmp", "cmp", "cmp", "xch", "xch", nullptr, "xch", + "mov", "mov", "mov", "mov", "mov", "mov", "mov", "mov", + "loop", "rloop", "loop", "rloop", "dec", "inc", "dec", "inc", + "addr", "addr", "addr", "addr", "addr", "addr", "addr", "addr", + "cmpbne", "cmpbne", "mov1", "wait", "ret", "reti", "br", "call", + "cmpbe", "cmpbe", "mov1n", "push", "br", "call", "rdtbl", "pi" +}; + +mn1870_disassembler::mn1870_disassembler() + : mn1880_disassembler(s_inst_names) +{ +} + +// STOP and HALT appear to be macros each implemented as a SET followed by a T1BNZ +// (their machine language codes are given as 19 16 21 16 FD and 18 16 20 16 FD) +const char *const mn1870_disassembler::s_inst_names[256] = +{ + "nop", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + "clr", "clr", "clr", "clr", "clr", "clr", "clr", "clr", + "set", "set", "set", "set", "set", "set", "set", "set", + "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", + "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", + nullptr, "movl", nullptr, "movl", nullptr, nullptr, "mov", "mov", + "movl", "movl", "movl", "movl", nullptr, nullptr, nullptr, nullptr, + "dec", "dec", "not", "not", "cmpm", "cmpm", "xch4", "xch4", + "inc", "inc", "clr", "clr", "rol", "rol", "ror", "ror", + "cmpm", "div", "cmpm", nullptr, "mov", "mov", "mov", "mov", + "xch", "mul", "xch", nullptr, "movl", "movl", "movl", "movl", + "cmp", "cmp", "cmp", "cmp", "and", "and", "and", "and", + "xor", "xor", "xor", "xor", "or", "or", "or", "or", + "subc", "subc", "subc", "subc", "subd", "subd", "subd", "subd", + "addc", "addc", "addc", "addc", "addd", "addd", "addd", "addd", + "skip", "bc", "bz", "ble", "cmpl", "clr", nullptr, "clr", + "br", "bnc", "bnz", "bgt", nullptr, "set", nullptr, "set", + "call", "call", "call", "call", "call", "call", "call", "call", + "call", "call", "call", "call", "call", "call", "call", "call", + "br", "br", "br", "br", "br", "br", "br", "br", + "br", "br", "br", "br", "br", "br", "br", "br", + "clr", "pop", "t1bnz", "pop", "pop", "pop", "pop", "pop", + "set", "push", "t1bz", "push", "push", "push", "push", "push", + nullptr, "div", nullptr, "decl", nullptr, nullptr, nullptr, nullptr, + nullptr, "mul", nullptr, "incl", "mov", "mov", "mov", "mov", + nullptr, "cmp", nullptr, "cmp", nullptr, "xch", nullptr, "xch", + "mov", "mov", "mov", "mov", nullptr, nullptr, nullptr, nullptr, + "loop", "rloop", "loop", "rloop", "dec", "inc", "dec", "inc", + nullptr, "addr", nullptr, "addr", nullptr, "addr", nullptr, "addr", + "cmpbne", "cmpbne", "mov1", nullptr, "ret", "reti", "br", "call", + "cmpbe", "cmpbe", "mov1n", "push", "br", "call", "rdtbl", nullptr +}; + +u32 mn1880_disassembler::opcode_alignment() const +{ + return 1; +} + +void mn1880_disassembler::format_direct(std::ostream &stream, u8 da) const +{ + util::stream_format(stream, "(x'%02X')", da); +} + +void mn1880_disassembler::format_direct16(std::ostream &stream, u16 da) const +{ + util::stream_format(stream, "(x'%04X')", da); +} + +void mn1880_disassembler::format_direct_bp(std::ostream &stream, u8 da, u8 bp) const +{ + util::stream_format(stream, "(x'%02X')%d", da, bp); +} + +void mn1880_disassembler::format_indirect_bp(std::ostream &stream, const char *ptr, u8 bp) const +{ + util::stream_format(stream, "(%s)%d", ptr, bp); +} + +void mn1880_disassembler::format_direct_masked(std::ostream &stream, u8 da, u8 mask) const +{ + util::stream_format(stream, "(x'%02X')x'%02X'", da, mask); +} + +void mn1880_disassembler::format_indirect_masked(std::ostream &stream, const char *ptr, u8 mask) const +{ + util::stream_format(stream, "(%s)x'%02X'", ptr, mask); +} + +void mn1880_disassembler::format_imm(std::ostream &stream, u8 imm) const +{ + util::stream_format(stream, "x'%02X'", imm); +} + +void mn1880_disassembler::format_imm4(std::ostream &stream, u8 imm) const +{ + util::stream_format(stream, "%d", imm & 0x0f); +} + +void mn1880_disassembler::format_imm16(std::ostream &stream, u16 imm) const +{ + util::stream_format(stream, "x'%04X'", imm); +} + +void mn1880_disassembler::format_rel(std::ostream &stream, u16 base, s8 disp) const +{ + util::stream_format(stream, "$x'%04X'", (base + disp) & 0xffff); +} + +void mn1880_disassembler::format_abs4k(std::ostream &stream, u16 label) const +{ + util::stream_format(stream, "x'%04X'", label); +} + +void mn1880_disassembler::format_abs64k(std::ostream &stream, u16 label) const +{ + util::stream_format(stream, "/x'%04X'", label); +} + +void mn1880_disassembler::dasm_operands(std::ostream &stream, u8 opcode, offs_t &pc, offs_t &flags, const mn1880_disassembler::data_buffer &opcodes) +{ + if (opcode < 0x10) + { + // REP + format_imm4(stream, opcode); + } + else if (opcode < 0x30) + { + // CLR, SET, T1BNZ, T1BZ direct + format_direct_bp(stream, opcodes.r8(pc++), opcode & 0x07); + if (opcode >= 0x20) + { + stream << ", "; + format_rel(stream, pc + 1, opcodes.r8(pc)); + ++pc; + } + } + else if (opcode < 0x34) + { + // MOVL immediate to pointer register + if (BIT(opcode, 0)) + { + util::stream_format(stream, "%s, ", BIT(opcode, 1) ? "yp" : "xp"); + format_imm16(stream, swapendian_int16(opcodes.r16(pc))); + pc += 2; + } + else + stream << "(unknown)"; + } + else if (opcode < 0x3c) + { + // MOV/MOVL direct + if (BIT(opcode, 0)) + { + format_direct(stream, opcodes.r8(pc++)); + stream << ", "; + } + if (opcode < 0x38) + util::stream_format(stream, "(%s)", BIT(opcode, 0) ? "yp" : "xp"); + else if (BIT(opcode, 1)) + stream << "yp"; + else + stream << "xp"; + if (!BIT(opcode, 0)) + { + stream << ", "; + format_direct(stream, opcodes.r8(pc++)); + } + } + else if ((opcode & 0xfe) == 0x44) + { + // CMPM immediate + if (BIT(opcode, 0)) + { + format_direct_masked(stream, opcodes.r8(pc), opcodes.r8(pc + 1)); + pc += 2; + } + else + format_indirect_masked(stream, "xp", opcodes.r8(pc++)); + stream << ", "; + format_imm(stream, opcodes.r8(pc++)); + } + else if (opcode < 0x50 || (opcode & 0xf7) == 0xb5 || (opcode & 0xf7) == 0xc3) + { + // Unary operations + if (BIT(opcode, 0)) + format_direct(stream, opcodes.r8(pc++)); + else + stream << "(xp)"; + } + else if ((opcode & 0xfd) == 0x50) + { + // CMPM with two memory operands + if (BIT(opcode, 1)) + { + u8 da2 = opcodes.r8(pc++); + u8 mask = opcodes.r8(pc++); + format_direct_masked(stream, opcodes.r8(pc++), mask); + stream << ", "; + format_direct_masked(stream, da2, mask); + } + else + { + u8 mask = opcodes.r8(pc++); + format_indirect_masked(stream, "xp", mask); + stream << ", "; + format_indirect_masked(stream, "yp", mask); + } + } + else if ((opcode & 0xf7) == 0x51 || (opcode & 0xf7) == 0xb7) + { + // MUL, DIV, POP, PUSH indirect + stream << "(xp)"; + } + else if (opcode == 0x53) + { + // MOVDA (MN1880 only) + format_direct16(stream, opcodes.r16(pc + 2)); + stream << ", "; + format_direct16(stream, opcodes.r16(pc)); + pc += 4; + } + else if (opcode < 0x80 || (opcode & 0xfd) == 0x84 || (opcode & 0xf4) == 0xc0) + { + // Binary operations + if (BIT(opcode, 1)) + { + // Direct modes + u8 op2 = opcodes.r8(pc++); + format_direct(stream, opcodes.r8(pc++)); + stream << ", "; + if (BIT(opcode, 0)) + { + if (opcode == 0x5f) + format_imm16(stream, op2 | u16(opcodes.r8(pc++)) << 8); + else if ((opcode & 0xf4) == 0x74) + format_imm4(stream, op2); + else + format_imm(stream, op2); + } + else + format_direct(stream, op2); + } + else + { + // Indirect modes + stream << "(xp), "; + if (opcode == 0x5d) + { + format_imm16(stream, swapendian_int16(opcodes.r16(pc))); + pc += 2; + } + else if (BIT(opcode, 0)) + { + if ((opcode & 0xf4) == 0x74) + format_imm4(stream, opcodes.r8(pc++)); + else + format_imm(stream, opcodes.r8(pc++)); + } + else + stream << "(yp)"; + } + } + else if (opcode < 0x90 || (opcode & 0xfc) == 0xe0) + { + if (BIT(opcode, 2)) + { + if (BIT(opcode, 0)) + { + // CLR, SET special flag + if (BIT(opcode, 1)) + stream << "cf"; + else + stream << "df"; + } + else + stream << "(unknown)"; + } + else + { + // Relative branches and loops + if ((opcode & 0xfd) == 0xe1) + util::stream_format(stream, "%s, ", BIT(opcode, 1) ? "yp" : "xp"); + format_rel(stream, pc + 1, opcodes.r8(pc)); + ++pc; + } + } + else if (opcode < 0xb0) + { + // CALL, BR within 4K page + format_abs4k(stream, ((pc + 1) & 0xf000) | u16(opcode & 0x0f) << 8 | opcodes.r8(pc)); + ++pc; + if (opcode < 0xa0) + flags |= STEP_OVER; + } + else if ((opcode & 0xf4) == 0xb0) + { + if (BIT(opcode, 0)) + stream << "fs"; + else + { + // CLR, SET, T1BNZ, T1BZ indirect (MN1870 only) + format_indirect_bp(stream, "xp", opcodes.r8(pc++) & 0x07); + if (BIT(opcode, 1)) + { + stream << ", "; + format_rel(stream, pc + 1, opcodes.r8(pc)); + ++pc; + } + } + } + else if (opcode < 0xc0 || (opcode & 0xfc) == 0xe4 || (opcode & 0xfe) == 0xfc) + { + // PUSH, POP, DEC, INC, BR, CALL pointer + if (BIT(opcode, 1)) + stream << "yp"; + else + stream << "xp"; + if (opcode == 0xfd) + flags |= STEP_OVER; + } + else if (opcode < 0xd0) + { + // XCH, MOV lower half of register + if ((opcode & 0xf5) == 0xc5) + { + util::stream_format(stream, "%sl, ", BIT(opcode, 1) ? "yp" : "xp"); + format_direct(stream, opcodes.r8(pc++)); + } + else if (BIT(opcode, 3)) + { + format_direct(stream, opcodes.r8(pc++)); + util::stream_format(stream, ", %sl", BIT(opcode, 1) ? "yp" : "xp"); + } + else + util::stream_format(stream, "%sl, %sh", BIT(opcode, 1) ? "yp" : "xp", BIT(opcode, 1) ? "yp" : "xp"); + } + else if (opcode < 0xe0) + { + if (BIT(opcode, 2)) + { + // XCH, MOV between pointer registers + if (opcode == 0xd4) + stream << "xp, lp"; + else + { + if (BIT(opcode, 0)) + stream << "xp, "; + if (BIT(opcode, 1)) + stream << "yp"; + else + stream << "sp"; + if (!BIT(opcode, 0)) + stream << ", xp"; + } + } + else + { + // CMP, MOV 8-bit + util::stream_format(stream, "%s%c, ", BIT(opcode, 1) ? "yp" : "xp", (opcode & 0xfd) == 0xd9 ? 'h' : 'l'); + if ((opcode & 0xfd) == 0xd0) + format_direct(stream, opcodes.r8(pc++)); + else + format_imm(stream, opcodes.r8(pc++)); + } + } + else if (opcode < 0xf0) + { + // ADDR + util::stream_format(stream, "%sl, ", BIT(opcode, 1) ? "yp" : "xp"); + if (BIT(opcode, 2)) + { + util::stream_format(stream, "%sl, ", BIT(opcode, 1) ? "yp" : "xp"); + if (BIT(opcode, 0)) + format_imm(stream, opcodes.r8(pc++)); + else + util::stream_format(stream, "%sh", BIT(opcode, 1) ? "yp" : "xp"); + } + else + { + u8 op2 = opcodes.r8(pc++); + format_direct(stream, opcodes.r8(pc++)); + stream << ", "; + if (BIT(opcode, 0)) + format_imm(stream, op2); + else + format_direct(stream, op2); + } + } + else if ((opcode & 0xf6) == 0xf0) + { + // CMPBNE, CMPBE + u8 imm = opcodes.r8(pc++); + if (BIT(opcode, 0)) + format_direct(stream, opcodes.r8(pc++)); + else + stream << "(xp)"; + stream << ", "; + format_imm(stream, imm); + stream << ", "; + format_rel(stream, pc + 1, opcodes.r8(pc)); + ++pc; + } + else if ((opcode & 0xf7) == 0xf2) + { + // MOV1, MOV1N + u8 da2 = opcodes.r8(pc++); + u8 bp = opcodes.r8(pc++); + format_direct_bp(stream, opcodes.r8(pc++), (bp & 0x70) >> 4); + stream << ", "; + format_direct_bp(stream, da2, bp & 0x07); + } + else if (opcode == 0xf3) + { + // WAIT (MN1880 only) + format_imm16(stream, opcodes.r16(pc)); + pc += 2; + } + else if ((opcode & 0xfe) == 0xf6) + { + // BR, CALL absolute + format_abs64k(stream, opcodes.r16(pc)); + pc += 2; + if (BIT(opcode, 0)) + flags |= STEP_OVER; + } + else if (opcode == 0xfb) + { + // PUSH immediate + format_imm(stream, opcodes.r8(pc++)); + } + else if (opcode == 0xfe) + { + // RDTBL + stream << "(xp), (yp)"; + } + else + stream << "(unknown)"; +} + +offs_t mn1880_disassembler::disassemble(std::ostream &stream, offs_t pc, const mn1880_disassembler::data_buffer &opcodes, const mn1880_disassembler::data_buffer ¶ms) +{ + const offs_t pc0 = pc; + offs_t flags = SUPPORTED; + + u8 opcode = opcodes.r8(pc++); + const char *mnemonic = m_inst_names[opcode]; + + u8 rc = 0; + if (REPEAT_COMBINED && mnemonic != nullptr && opcode > 0x00 && opcode < 0x10) + { + rc = opcode; + opcode = opcodes.r8(pc++); + mnemonic = m_inst_names[opcode]; + } + + if (mnemonic == nullptr) + { + util::stream_format(stream, "%-8s", "db"); + format_imm(stream, opcode); + } + else if (opcode == 0x00 || opcode == 0x80) + { + // NOP, SKIP (latter actually executes in immediate mode) + stream << mnemonic; + } + else if (opcode == 0xff) + { + // PI (software interrupt) + stream << mnemonic; + flags |= STEP_OVER; + } + else if ((opcode & 0xfe) == 0xf4) + { + // RET, RETI + stream << mnemonic; + flags |= STEP_OUT; + } + else + { + util::stream_format(stream, "%-8s", mnemonic); + offs_t pc1 = pc; + dasm_operands(stream, opcode, pc, flags, opcodes); + if (REPEAT_COMBINED && rc != 0 && pc1 != pc) + { + do { + stream << ", "; + dasm_operands(stream, opcode, pc, flags, opcodes); + } + while (--rc != 0); + } + } + + if (REPEAT_COMBINED && rc != 0) + util::stream_format(stream, ", rep %d", rc); + + return (pc - pc0) | flags; +} diff --git a/src/devices/cpu/mn1880/mn1880d.h b/src/devices/cpu/mn1880/mn1880d.h new file mode 100644 index 00000000000..453522aa43b --- /dev/null +++ b/src/devices/cpu/mn1880/mn1880d.h @@ -0,0 +1,55 @@ +// license:BSD-3-Clause +// copyright-holders:AJR + +#ifndef MAME_CPU_MN1880_MN1880D_H +#define MAME_CPU_MN1880_MN1880D_H + +#pragma once + +class mn1880_disassembler : public util::disasm_interface +{ +public: + // construction/destruction + mn1880_disassembler(); + +protected: + mn1880_disassembler(const char *const *inst_names); + + // disassembler overrides + virtual u32 opcode_alignment() const override; + virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms) override; + +private: + // instruction mnemonic table + static const char *const s_inst_names[256]; + + // internal helpers + void format_direct(std::ostream &stream, u8 da) const; + void format_direct16(std::ostream &stream, u16 da) const; + void format_direct_bp(std::ostream &stream, u8 da, u8 bp) const; + void format_indirect_bp(std::ostream &stream, const char *ptr, u8 bp) const; + void format_direct_masked(std::ostream &stream, u8 da, u8 mask) const; + void format_indirect_masked(std::ostream &stream, const char *ptr, u8 mask) const; + void format_imm(std::ostream &stream, u8 imm) const; + void format_imm4(std::ostream &stream, u8 imm) const; + void format_imm16(std::ostream &stream, u16 imm) const; + void format_rel(std::ostream &stream, u16 base, s8 disp) const; + void format_abs4k(std::ostream &stream, u16 label) const; + void format_abs64k(std::ostream &stream, u16 label) const; + void dasm_operands(std::ostream &stream, u8 opcode, offs_t &pc, offs_t &flags, const data_buffer &opcodes); + + const char *const *m_inst_names; +}; + +class mn1870_disassembler : public mn1880_disassembler +{ +public: + // construction/destruction + mn1870_disassembler(); + +private: + // instruction mnemonic table + static const char *const s_inst_names[256]; +}; + +#endif // MAME_CPU_PIC17_PIC17D_H diff --git a/src/devices/cpu/powerpc/ppc.h b/src/devices/cpu/powerpc/ppc.h index 8b935f4e58f..80407ed60f7 100644 --- a/src/devices/cpu/powerpc/ppc.h +++ b/src/devices/cpu/powerpc/ppc.h @@ -212,7 +212,7 @@ public: void set_bus_frequency(uint32_t bus_frequency) { c_bus_frequency = bus_frequency; } void set_bus_frequency(const XTAL &xtal) { set_bus_frequency(xtal.value()); } - void ppc_set_dcstore_callback(write32_delegate callback); + void ppc_set_dcstore_callback(write32sm_delegate callback); void ppcdrc_set_options(uint32_t options); void ppcdrc_add_fastram(offs_t start, offs_t end, uint8_t readonly, void *base); @@ -479,7 +479,7 @@ protected: emu_timer * timer; uint8_t rxbuffer[256]; uint32_t rxin, rxout; - write8_delegate tx_cb; + write8smo_delegate tx_cb; }; ppc4xx_spu_state m_spu; @@ -504,10 +504,10 @@ protected: read32_delegate m_dcr_read_func; write32_delegate m_dcr_write_func; - write32_delegate m_dcstore_cb; + write32sm_delegate m_dcstore_cb; read32_delegate::array<4> m_ext_dma_read_cb; - write32_delegate::array<4> m_ext_dma_write_cb; + write32sm_delegate::array<4> m_ext_dma_write_cb; /* PowerPC function pointers for memory accesses/exceptions */ #ifdef PPC_H_INCLUDED_FROM_PPC_C @@ -751,11 +751,11 @@ public: class ppc4xx_device : public ppc_device { public: - void ppc4xx_spu_set_tx_handler(write8_delegate callback); + void ppc4xx_spu_set_tx_handler(write8smo_delegate callback); void ppc4xx_spu_receive_byte(uint8_t byteval); void ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate); - void ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate); + void ppc4xx_set_dma_write_handler(int channel, write32sm_delegate callback, int rate); void ppc4xx_set_dcr_read_handler(read32_delegate dcr_read_func); void ppc4xx_set_dcr_write_handler(write32_delegate dcr_write_func); diff --git a/src/devices/cpu/powerpc/ppccom.cpp b/src/devices/cpu/powerpc/ppccom.cpp index 9624afe4c23..4cb57917035 100644 --- a/src/devices/cpu/powerpc/ppccom.cpp +++ b/src/devices/cpu/powerpc/ppccom.cpp @@ -1214,7 +1214,7 @@ void ppc_device::ppccom_dcstore_callback() { if (!m_dcstore_cb.isnull()) { - m_dcstore_cb(*m_program, m_core->param0, 0, 0xffffffff); + m_dcstore_cb(m_core->param0, 0); } } @@ -2099,7 +2099,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::decrementer_int_callback ) for detecting datacache stores with dcbst -------------------------------------------------*/ -void ppc_device::ppc_set_dcstore_callback(write32_delegate callback) +void ppc_device::ppc_set_dcstore_callback(write32sm_delegate callback) { m_dcstore_cb = callback; } @@ -2371,7 +2371,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_buffered_dma_callback ) { uint8_t data = m_program->read_byte(dmaregs[DCR4XX_DMADA0]); if (!m_ext_dma_write_cb[dmachan].isnull()) - (m_ext_dma_write_cb[dmachan])(*m_program, 1, data, 0xffffffff); + (m_ext_dma_write_cb[dmachan])(1, data); dmaregs[DCR4XX_DMADA0] += destinc; } while (!ppc4xx_dma_decrement_count(dmachan)); break; @@ -2382,7 +2382,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_buffered_dma_callback ) { uint16_t data = m_program->read_word(dmaregs[DCR4XX_DMADA0]); if (!m_ext_dma_write_cb[dmachan].isnull()) - (m_ext_dma_write_cb[dmachan])(*m_program, 2, data, 0xffffffff); + (m_ext_dma_write_cb[dmachan])(2, data); dmaregs[DCR4XX_DMADA0] += destinc; } while (!ppc4xx_dma_decrement_count(dmachan)); break; @@ -2393,7 +2393,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_buffered_dma_callback ) { uint32_t data = m_program->read_dword(dmaregs[DCR4XX_DMADA0]); if (!m_ext_dma_write_cb[dmachan].isnull()) - (m_ext_dma_write_cb[dmachan])(*m_program, 4, data, 0xffffffff); + (m_ext_dma_write_cb[dmachan])(4, data); dmaregs[DCR4XX_DMADA0] += destinc; } while (!ppc4xx_dma_decrement_count(dmachan)); break; @@ -2716,7 +2716,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_spu_callback ) { /* if we have a transmit handler, send it that way */ if (!m_spu.tx_cb.isnull()) - (m_spu.tx_cb)(*m_program, 0, m_spu.txbuf, 0xff); + (m_spu.tx_cb)(m_spu.txbuf); /* indicate that we have moved it to the shift register */ m_spu.regs[SPU4XX_LINE_STATUS] |= 0x04; @@ -2861,7 +2861,7 @@ void ppc4xx_device::ppc4xx_spu_w(offs_t offset, uint8_t data) specific TX handler configuration -------------------------------------------------*/ -void ppc4xx_device::ppc4xx_spu_set_tx_handler(write8_delegate callback) +void ppc4xx_device::ppc4xx_spu_set_tx_handler(write8smo_delegate callback) { m_spu.tx_cb = callback; } @@ -2893,7 +2893,7 @@ void ppc4xx_device::ppc4xx_set_dma_read_handler(int channel, read32_delegate cal specific external DMA write handler configuration -------------------------------------------------*/ -void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate) +void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, write32sm_delegate callback, int rate) { m_ext_dma_write_cb[channel] = callback; m_buffered_dma_rate[channel] = rate; diff --git a/src/devices/machine/dp8390.cpp b/src/devices/machine/dp8390.cpp index c898332d1f4..c238801122b 100644 --- a/src/devices/machine/dp8390.cpp +++ b/src/devices/machine/dp8390.cpp @@ -28,7 +28,6 @@ dp8390_device::dp8390_device(const machine_config &mconfig, device_type type, co , m_mem_read_cb(*this) , m_mem_write_cb(*this) , m_reset(0) - , m_cs(false) , m_rdma_active(0) { } @@ -172,33 +171,29 @@ void dp8390_device::recv_cb(uint8_t *buf, int len) { if(!LOOPBACK) recv(buf, len); } -WRITE_LINE_MEMBER(dp8390_device::dp8390_cs) { - m_cs = state; -} - WRITE_LINE_MEMBER(dp8390_device::dp8390_reset) { if(!state) device_reset(); } -uint16_t dp8390_device::dp8390_r(offs_t offset) { - uint16_t data; - if(m_cs) { - uint32_t high16 = (m_regs.dcr & 4)?m_regs.rsar<<16:0; - if(m_regs.dcr & 1) { - m_regs.crda &= ~1; - data = m_mem_read_cb(high16 + m_regs.crda++); - data |= m_mem_read_cb(high16 + m_regs.crda++) << 8; - m_regs.rbcr -= (m_regs.rbcr < 2)?m_regs.rbcr:2; - check_dma_complete(); - return DP8390_BYTE_ORDER(data); - } else { - m_regs.rbcr -= (m_regs.rbcr)?1:0; - data = m_mem_read_cb(high16 + m_regs.crda++); - check_dma_complete(); - return data; - } +uint16_t dp8390_device::remote_read() { + uint32_t high16 = (m_regs.dcr & 4)?m_regs.rsar<<16:0; + if(m_regs.dcr & 1) { + m_regs.crda &= ~1; + uint16_t data = m_mem_read_cb(high16 + m_regs.crda++); + data |= m_mem_read_cb(high16 + m_regs.crda++) << 8; + m_regs.rbcr -= (m_regs.rbcr < 2)?m_regs.rbcr:2; + check_dma_complete(); + return DP8390_BYTE_ORDER(data); + } else { + m_regs.rbcr -= (m_regs.rbcr)?1:0; + uint16_t data = m_mem_read_cb(high16 + m_regs.crda++); + check_dma_complete(); + return data; } +} +uint8_t dp8390_device::cs_read(offs_t offset) { + uint8_t data; switch((offset & 0x0f)|(m_regs.cr & 0xc0)) { case 0x00: case 0x40: @@ -350,26 +345,24 @@ uint16_t dp8390_device::dp8390_r(offs_t offset) { return data; } -void dp8390_device::dp8390_w(offs_t offset, uint16_t data) { - if(m_cs) { - uint32_t high16 = (m_regs.dcr & 4)?m_regs.rsar<<16:0; - if(m_regs.dcr & 1) { - data = DP8390_BYTE_ORDER(data); - m_regs.crda &= ~1; - m_mem_write_cb(high16 + m_regs.crda++, data & 0xff); - m_mem_write_cb(high16 + m_regs.crda++, data >> 8); - m_regs.rbcr -= (m_regs.rbcr < 2)?m_regs.rbcr:2; - check_dma_complete(); - } else { - data &= 0xff; - m_mem_write_cb(high16 + m_regs.crda++, data); - m_regs.rbcr -= (m_regs.rbcr)?1:0; - check_dma_complete(); - } - return; +void dp8390_device::remote_write(uint16_t data) { + uint32_t high16 = (m_regs.dcr & 4)?m_regs.rsar<<16:0; + if(m_regs.dcr & 1) { + data = DP8390_BYTE_ORDER(data); + m_regs.crda &= ~1; + m_mem_write_cb(high16 + m_regs.crda++, data & 0xff); + m_mem_write_cb(high16 + m_regs.crda++, data >> 8); + m_regs.rbcr -= (m_regs.rbcr < 2)?m_regs.rbcr:2; + check_dma_complete(); + } else { + data &= 0xff; + m_mem_write_cb(high16 + m_regs.crda++, data); + m_regs.rbcr -= (m_regs.rbcr)?1:0; + check_dma_complete(); } +} - data &= 0xff; +void dp8390_device::cs_write(offs_t offset, uint8_t data) { switch((offset & 0x0f)|(m_regs.cr & 0xc0)) { case 0x00: case 0x40: diff --git a/src/devices/machine/dp8390.h b/src/devices/machine/dp8390.h index adaed69d529..64bc6436733 100644 --- a/src/devices/machine/dp8390.h +++ b/src/devices/machine/dp8390.h @@ -16,9 +16,10 @@ public: auto mem_read_callback() { return m_mem_read_cb.bind(); } auto mem_write_callback() { return m_mem_write_cb.bind(); } - void dp8390_w(offs_t offset, uint16_t data); - uint16_t dp8390_r(offs_t offset); - DECLARE_WRITE_LINE_MEMBER( dp8390_cs ); + void remote_write(uint16_t data); + void cs_write(offs_t offset, uint8_t data); + uint16_t remote_read(); + uint8_t cs_read(offs_t offset); DECLARE_WRITE_LINE_MEMBER( dp8390_reset ); void recv_cb(uint8_t *buf, int len) override; @@ -52,7 +53,6 @@ private: void recv(uint8_t *buf, int len); int m_reset; - bool m_cs; int m_rdma_active; struct { diff --git a/src/devices/machine/generalplus_gpl16250soc.cpp b/src/devices/machine/generalplus_gpl16250soc.cpp index dc16e9985f7..29c7f7a2585 100644 --- a/src/devices/machine/generalplus_gpl16250soc.cpp +++ b/src/devices/machine/generalplus_gpl16250soc.cpp @@ -1538,6 +1538,9 @@ void sunplus_gcm394_base_device::device_reset() m_system_dma_memtype = 0x0000; m_unk_timer->adjust(attotime::from_hz(60), 0, attotime::from_hz(60)); + + m_spg_video->set_video_spaces(this->space(AS_PROGRAM), *m_cs_space, m_csbase); + m_spg_video->reset(); } void generalplus_gpac800_device::device_reset() @@ -1649,7 +1652,6 @@ uint16_t sunplus_gcm394_base_device::read_space(uint32_t offset) - void sunplus_gcm394_base_device::write_space(uint32_t offset, uint16_t data) { address_space& space = this->space(AS_PROGRAM); diff --git a/src/devices/machine/generalplus_gpl16250soc_video.cpp b/src/devices/machine/generalplus_gpl16250soc_video.cpp index a45961389cf..fe6e03e534f 100644 --- a/src/devices/machine/generalplus_gpl16250soc_video.cpp +++ b/src/devices/machine/generalplus_gpl16250soc_video.cpp @@ -8,97 +8,6 @@ **********************************************************************/ -/* lots of games, including wrlshunt are not copying tilemap data properly - the analysis below is for wrlshunt, although gormiti could prove to be an easier case to look at - while jak_ths and jak_swc might be more difficult (the latter uses line/bitmap mode, but still - fails to copy the line data) - - - -- - - wrlshunt BG Tilemap location note - - background tilemap appears to be at 24ad30 - 24af87 (byte address) in RAM == 125698 - 1257c3 (word address) - there are pointers to this - (2879-287a) = 98 56 12 00 (00125698) (main background tilemap data is at this address) - (287b-287c) = 30 5e 12 00 (00125e30) (address for other layer tilemap) (or 'end' of above) - where do we get these copied to registers or used as a source to copy from? - - - -- callled from here - 058F79: call 054e56 (with values above, for tilemap 0) - and - 058FB1: call 054e56 (for tilemap 1) - (both of these are at the start of the function at 058F46, which we loop in at the moment, possible main loop for the menu?) - - there are other calls in the code, but those are the ones before sprites are uploaded for the menu - - -- - 054E91: r4 = [bp+27] (contains lower part of address) - 054E92: ds:[r1++] = r4 -- write 5698 to 2879 - 054E93: r4 = [bp+28] (contains upper part of address) - 054E94: ds:[r1] = r4 -- write 0012 to 287a - - (this is a huge function that ends at 55968, also has lots of calls in it) - - --- - - the base for tilemap params being written to RAM is 2879 + 0xe * tilmap number (0,1,2,3) - the code to calculate this offset from base uses 32-bit multiplication and even sign extends the tilemap number before using it, making it - look more complex than it really is! - - 054E7B: 0B0D 0088 bp = bp + 0088 - 054E7D: 9800 r4 = [bp+00] -- which tilemap? (0,1,2,3) - 054E7E: 2B0D 0088 bp = bp - 0088 - - 054E80: 973C r3 = r4 asr 4 -- sign extend tilemap 16-bit register r4 with r3 forming the upper word (always 0) - 054E81: 973B r3 = r3 asr 4 - 054E82: 973B r3 = r3 asr 4 - 054E83: 973B r3 = r3 asr 4 - - 054E84: D688 push r3, r3 to [sp] -- push onto stack for use in call below - 054E85: D888 push r4, r4 to [sp] - - 054E86: 964E r3 = 0e -- store 0000 000e as the 32-bit value to multply with - 054E87: 9840 r4 = 00 - 054E88: D890 push r3, r4 to [sp] -- push that onto stack for function call below - - 054E89: F045 D706 call 05d706 -- returns result in r1,r2 - - the result of this is then added to the base value of 2879 (which was stored earlier) - an additional offset is then added for each parameter. - - this code is repeated multiple times, with slight changes - - --- - - by the time you hit 055098 (which is a switch on tilemap type to disable a tilemap) the following params have been put at - 2879 ( tilemap 0 call ) - 2879 + 0x0e (tilemap 1 call ) - - tmap0 params - 5698 0012 | 5E30 0012 | 0280 01E0 | 0002 0020 0020 0000 0000 0100 0000 0000 - 125698 | 125e30 | = 640 = 480 - - tmap1 params - 7280 000D | 89F0 000D | 0280 01E0 | 0002 0020 0020 0002 0000 0040 0000 0000 - 0d7280 | 0d89f0 | = 640 = 480 | - - these parameter lists are not read after this? is there some kind of indirect dma mode, or is code not being called that should use them. - plenty more code is called, including more that looks a lot like the above, some use of 707f and at the end of the funciton, code to - write various tilemap registers, including reenabling the tilemap that was disabled around 055098. - - -- - - - if you return rand() on 707f reads sometimes you see - [:maincpu] pc:053775: r4 = r4 lsr r3 (5698 0009) : [:maincpu] result 002b (possible unrelated) - - (bg tile addressing is also done by tile #, like the sprites, not fixed step like smartfp) - - -*/ - #include "emu.h" #include "generalplus_gpl16250soc_video.h" @@ -118,20 +27,15 @@ DEFINE_DEVICE_TYPE(GCM394_VIDEO, gcm394_video_device, "gcm394_video", "GeneralPl gcm394_base_video_device::gcm394_base_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock), - //device_gfx_interface(mconfig, *this, nullptr), device_video_interface(mconfig, *this), m_cpu(*this, finder_base::DUMMY_TAG), m_screen(*this, finder_base::DUMMY_TAG), -// m_scrollram(*this, "scrollram"), m_video_irq_cb(*this), m_palette(*this, "palette"), m_gfxdecode(*this, "gfxdecode"), m_space_read_cb(*this), m_rowscroll(*this, "^rowscroll"), m_rowzoom(*this, "^rowzoom"), -// m_pal_displaybank_high(0), -// m_pal_sprites(0x100), -// m_pal_back(0x000), m_alt_extrasprite_hack(0), m_alt_tile_addressing(0), m_renderer(*this, "renderer") @@ -295,17 +199,6 @@ void gcm394_base_video_device::decodegfx(const char* tag) void gcm394_base_video_device::device_start() { - for (uint8_t i = 0; i < 32; i++) - { - m_rgb5_to_rgb8[i] = (i << 3) | (i >> 2); - } - for (uint16_t i = 0; i < 0x8000; i++) - { - m_rgb555_to_rgb888[i] = (m_rgb5_to_rgb8[(i >> 10) & 0x1f] << 16) | - (m_rgb5_to_rgb8[(i >> 5) & 0x1f] << 8) | - (m_rgb5_to_rgb8[(i >> 0) & 0x1f] << 0); - } - m_video_irq_cb.resolve(); m_maxgfxelement = 0; @@ -319,10 +212,6 @@ void gcm394_base_video_device::device_start() m_screenpos_timer = timer_alloc(TIMER_SCREENPOS); m_screenpos_timer->adjust(attotime::never); - - save_item(NAME(m_screenbuf)); - save_item(NAME(m_rgb5_to_rgb8)); - save_item(NAME(m_rgb555_to_rgb888)); save_item(NAME(m_page0_addr_lsb)); save_item(NAME(m_page0_addr_msb)); save_item(NAME(m_page1_addr_lsb)); @@ -365,10 +254,8 @@ void gcm394_base_video_device::device_start() save_item(NAME(m_page3_addr_lsb)); save_item(NAME(m_page3_addr_msb)); save_item(NAME(m_spriteram)); - save_item(NAME(m_spriteextra)); save_item(NAME(m_paletteram)); save_item(NAME(m_maxgfxelement)); -// save_item(NAME(m_pal_displaybank_high)); save_item(NAME(m_alt_tile_addressing)); } @@ -390,16 +277,14 @@ void gcm394_base_video_device::device_reset() m_tmap1_scroll[i] = 0x0000; } - for (int i = 0; i < 0x400; i++) + for (int i = 0; i < 0x400*2; i++) { - m_spriteextra[i] = 0x0000; m_spriteram[i] = 0x0000; } for (int i=0;i<0x100 * 0x10;i++) m_paletteram[i] = machine().rand()&0x7fff; - m_707f = 0x0000; m_703a_palettebank = 0x0000; m_video_irq_enable = 0x0000; @@ -435,546 +320,7 @@ void gcm394_base_video_device::device_reset() m_page3_addr_lsb = 0; m_page3_addr_msb = 0; -} - -/************************* -* Video Hardware * -*************************/ - -template<gcm394_base_video_device::blend_enable_t Blend, gcm394_base_video_device::rowscroll_enable_t RowScroll, gcm394_base_video_device::flipx_t FlipX> -void gcm394_base_video_device::draw(const rectangle &cliprect, uint32_t line, uint32_t xoff, uint32_t yoff, uint32_t bitmap_addr, uint32_t tile, int32_t h, int32_t w, uint8_t bpp, uint32_t yflipmask, uint32_t palette_offset, int addressing_mode) -{ - uint32_t nc_bpp = ((bpp) + 1) << 1; - - // probably don't do this here as this SoC has extended palette for higher bpp modes - //palette_offset >>= nc_bpp; - //palette_offset <<= nc_bpp; - - uint32_t bits_per_row = nc_bpp * w / 16; - uint32_t words_per_tile; - - if (addressing_mode == 1) - { - words_per_tile = bits_per_row * h; - } - else - { - words_per_tile = 8; // seems to be correct for sprites regardless of size / bpp on smartfp - } - - int x_max; - if (m_707f & 0x0010) - { - x_max = 0x400; - } - else - { - x_max = 0x200; - } - - - uint32_t m = (bitmap_addr) + (words_per_tile * tile + bits_per_row * (line ^ yflipmask)); - - - uint32_t bits = 0; - uint32_t nbits = 0; - uint32_t y = line; - - int yy = (yoff + y);// &0x1ff; - //if (yy >= 0x01c0) - // yy -= 0x0200; - - if (yy > cliprect.max_y || yy < 0) - return; - - int y_index = yy * m_screen->width(); - - for (int32_t x = FlipX ? (w - 1) : 0; FlipX ? x >= 0 : x < w; FlipX ? x-- : x++) - { - int xx = xoff + x; - - bits <<= nc_bpp; - - if (nbits < nc_bpp) - { - uint16_t b = m_space_read_cb((m++)&0x7ffffff); // smartfp suggests either 0x7ffffff mask, or some bits are being set incorrectly, jak_s500 needs over 0x3ffffff at least - b = (b << 8) | (b >> 8); - bits |= b << (nc_bpp - nbits); - nbits += 16; - } - nbits -= nc_bpp; - - int pen = bits >> 16; - - int current_palette_offset = palette_offset; - - uint32_t pal = current_palette_offset + pen; - bits &= 0xffff; - - if (RowScroll) - xx -= 0;// (int16_t)m_scrollram[yy & 0x1ff]; - - xx &= (x_max-1); - if (xx >= (x_max-0x40)) - xx -= x_max; - - if (xx >= 0 && xx <= cliprect.max_x) - { - int pix_index = xx + y_index; - - uint16_t rgb = m_paletteram[pal]; - - if (!(rgb & 0x8000)) - { - if (Blend) - { - /* - m_screenbuf[pix_index] = (mix_channel((uint8_t)(m_screenbuf[pix_index] >> 16), m_rgb5_to_rgb8[(rgb >> 10) & 0x1f]) << 16) | - (mix_channel((uint8_t)(m_screenbuf[pix_index] >> 8), m_rgb5_to_rgb8[(rgb >> 5) & 0x1f]) << 8) | - (mix_channel((uint8_t)(m_screenbuf[pix_index] >> 0), m_rgb5_to_rgb8[rgb & 0x1f])); - */ - m_screenbuf[pix_index] = m_rgb555_to_rgb888[rgb]; - } - else - { - m_screenbuf[pix_index] = m_rgb555_to_rgb888[rgb]; - } - } - } - } -} - -void gcm394_base_video_device::draw_page(const rectangle &cliprect, uint32_t scanline, int priority, uint32_t bitmap_addr, uint16_t *regs, uint16_t *scroll, int which) -{ - uint32_t xscroll = scroll[0]; - uint32_t yscroll = scroll[1]; - uint32_t attr_reg = regs[0]; - uint32_t ctrl_reg = regs[1]; - uint32_t tilemap = regs[2]; - uint32_t palette_map = regs[3]; - address_space &space = m_cpu->space(AS_PROGRAM); - - // attr_reg bits - // -Bzz pppp hhww ffbb - // - // B = blend - // zz = depth - // pppp = palette - // ff = flips - // bb = bpp - // hh = height - // ww = width - - // ctrl_reg bits - // ---- ---B h--r ewRl - // - // e = enable - // l = bitmape/line mode - // r = rowscroll - // w = wallpaper mode - // R = regset mode - // h = high colour - // B = blend - - - if (!(ctrl_reg & 0x0008)) - { - return; - } - - if (((attr_reg & 0x3000) >> 12) != priority) - { - return; - } - - if (ctrl_reg & 0x0001) // bitmap mode jak_car2 and jak_s500 use for the ingame race sections, also have a bitmap test in test mode - { - if (0) - { - if (ctrl_reg & 0x0010) - popmessage("bitmap mode %08x with rowscroll\n", bitmap_addr); - else - popmessage("bitmap mode %08x\n", bitmap_addr); - } - - // note, in interlace modes it appears every other line is unused? (480 entry table, but with blank values) - // and furthermore the rowscroll and rowzoom tables only have 240 entries, not enough for every line - // the end of the rowscroll table (entries 240-255) contain something else, maybe garbage data as it's offscreen, maybe not - - uint32_t linebase = space.read_word(tilemap + scanline); // every other word is unused, but there are only enough entries for 240 lines then, sometimes to do with interlace mode? - uint16_t palette = space.read_word(palette_map + (scanline / 2)); - - if (scanline & 1) - palette >>= 8; - else - palette &= 0xff; - - if (!linebase) - return; - - linebase = linebase | (palette << 16); - - // this logic works for jak_s500 and the test modes to get the correct base, doesn't seem to work for jak_car2 ingame, maybe data is copied to wrong place? - int gfxbase = (bitmap_addr&0x7ffffff) + (linebase&0x7ffffff); - - for (int i = 0; i < 160; i++) // will have to be 320 for jak_car2 ingame, jak_s500 lines are wider than screen, and zoomed - { - uint16_t pix = m_space_read_cb((gfxbase++)&0x7ffffff); - int xx; - int y_index = scanline * m_screen->width(); - uint16_t pal; - - if ((scanline >= 0) && (scanline < 480)) - { - xx = i * 2; - - pal = (pix & 0xff) | 0x100; - - if (xx >= 0 && xx <= cliprect.max_x) - { - int pix_index = xx + y_index; - - uint16_t rgb = m_paletteram[pal]; - - if (!(rgb & 0x8000)) - { - m_screenbuf[pix_index] = m_rgb555_to_rgb888[rgb]; - } - } - - xx = (i * 2)+1; - pal = (pix >> 8) + 0x100; - - if (xx >= 0 && xx <= cliprect.max_x) - { - int pix_index = xx + y_index; - - uint16_t rgb = m_paletteram[pal]; - - if (!(rgb & 0x8000)) - { - m_screenbuf[pix_index] = m_rgb555_to_rgb888[rgb]; - } - } - } - } - } - else - { - uint32_t tile_h = 8 << ((attr_reg & 0x00c0) >> 6); - uint32_t tile_w = 8 << ((attr_reg & 0x0030) >> 4); - - int total_width; - int use_alt_drawmode = m_alt_tile_addressing; - int y_mask = 0; - - // just a guess based on this being set on the higher resolution tilemaps we've seen, could be 100% incorrect register - if ((attr_reg >> 15) & 0x1) - { - total_width = 1024; - y_mask = 0x1ff; - // use_alt_drawmode = 1; // probably doesn't control this - } - else - { - total_width = 512; - y_mask = 0xff; - // use_alt_drawmode = 0; // probably doesn't control this - } - - uint32_t tile_count_x = total_width / tile_w; - - uint32_t bitmap_y = (scanline + yscroll) & y_mask; - uint32_t y0 = bitmap_y / tile_h; - uint32_t tile_scanline = bitmap_y % tile_h; - uint32_t tile_address = tile_count_x * y0; - - for (uint32_t x0 = 0; x0 < tile_count_x; x0++, tile_address++) - { - uint32_t yy = ((tile_h * y0 - yscroll + 0x10) & y_mask) - 0x10; - uint32_t xx = (tile_w * x0 - xscroll) & (total_width-1); - uint32_t tile = (ctrl_reg & 0x0004) ? space.read_word(tilemap) : space.read_word(tilemap + tile_address); - - if (!tile) - continue; - - bool blend; - bool row_scroll; - bool flip_x; - uint32_t yflipmask; - uint32_t palette_offset; - - blend = (attr_reg & 0x4000 || ctrl_reg & 0x0100); - row_scroll = (ctrl_reg & 0x0010); - - if ((ctrl_reg & 0x0002) == 0) // RegSet:0 - { - uint16_t palette = (ctrl_reg & 0x0004) ? space.read_word(palette_map) : space.read_word(palette_map + tile_address / 2); - if (x0 & 1) - palette >>= 8; - - // 'palette' format - // --ff pppp - // - // f = flip bits - // p = palette - - flip_x = palette & 0x10; - yflipmask = (palette & 0x20) ? tile_h - 1 : 0; - palette_offset = (palette & 0x0f) << 4; - } - else // RegSet:1 - { - if (m_alt_tile_addressing == 0) - { - // smartfp needs the attribute table to contain extra tile bits even if regset is 1 - uint16_t palette = (ctrl_reg & 0x0004) ? space.read_word(palette_map) : space.read_word(palette_map + tile_address / 2); - if (x0 & 1) - palette >>= 8; - - // 'palette' format - // -- -ttt - // - // t = extra tile number bits - - tile |= (palette & 0x0007) << 16; - } - - flip_x = (attr_reg & 0x0004); - yflipmask = attr_reg & 0x0008 ? tile_h - 1 : 0; - palette_offset = (attr_reg & 0x0f00) >> 4; - } - - const uint8_t bpp = attr_reg & 0x0003; - - // HACKS - // There must be a select bit for the tilemap palettes somewhere, but where?! - - // the different games in paccon also expect a variety of different configs here, maybe a good place to look - - if (m_703a_palettebank & 1) // this actually seems to be the sprite palette bank enable, but for tkmag220 it gives us an easy way to ignore the logic below - { - if (which == 0) // tilemap 0 - { - if (ctrl_reg & 0x0002) // RegSet:1 - { - // smartfp has a conflict between the bootlogos and the first screen, it's in regset mode, no obvious difference in registers but needs palette from different places? - // not even m_707f changes here, which makes the m_707f case specific hacks for jak_s500 below very unlikely to actually be related - if ((bpp + 1) * 2 == 4) - if (m_alt_tile_addressing == 0) - palette_offset |= 0x200; - } - } - - if (which == 1) - { - // can't do this for jak_s500 logos - // jak_s500 also uses this tilemap in both 4 and 6bpp modes expecting the same palette base, so the hack used for smartfp on tilemap 0 is not applicable here - - // m_707f != 0x2d3 for jak_S500 main menu - if ((m_707f != 0x53) && (m_707f != 0x63) && (m_707f != 0x2d3)) - palette_offset |= 0x200; - } - - // jak_car2 screen transitions use layers 2 and 3 the same way, alternating each frame - if (which == 2) - { - // jak_s500 title screen + loading screen before race - if ((m_707f == 0x2d3) || (m_707f == 0x2db)) - palette_offset |= 0x200; - } - - } - //palette_offset |= m_pal_back; - - if (blend) - { - if (row_scroll) - { - if (flip_x) - draw<BlendOn, RowScrollOn, FlipXOn>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode); - else - draw<BlendOn, RowScrollOn, FlipXOff>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode); - } - else - { - if (flip_x) - draw<BlendOn, RowScrollOff, FlipXOn>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode); - else - draw<BlendOn, RowScrollOff, FlipXOff>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode); - } - } - else - { - if (row_scroll) - { - if (flip_x) - draw<BlendOff, RowScrollOn, FlipXOn>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode); - else - draw<BlendOff, RowScrollOn, FlipXOff>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode); - } - else - { - if (flip_x) - draw<BlendOff, RowScrollOff, FlipXOn>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode); - else - draw<BlendOff, RowScrollOff, FlipXOff>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode); - } - } - } - } -} - - -void gcm394_base_video_device::draw_sprite(const rectangle& cliprect, uint32_t scanline, int priority, uint32_t base_addr) -{ - uint32_t bitmap_addr = (m_sprite_702d_gfxbase_msb << 16) | m_sprite_7022_gfxbase_lsb; - uint32_t tile = m_spriteram[base_addr + 0]; - int16_t x = m_spriteram[base_addr + 1]; - int16_t y = m_spriteram[base_addr + 2]; - uint16_t attr = m_spriteram[base_addr + 3]; - - - if (!tile) // this check needs to come before the additional attribute bits are added in? (smartfp title) - { - return; - } - - int addressing_mode = 0; - - int screenwidth, screenheight, x_max; - if (m_707f & 0x0010) - { - screenwidth = 640; - screenheight = 480; - x_max = 0x400; - } - else - { - screenwidth = 320; - screenheight = 240; - x_max = 0x200; - } - - - // good for gormiti, smartfp, wrlshunt, paccon, jak_totm, jak_s500, jak_gtg - if ((m_7042_sprite & 0x0010) == 0x10) - addressing_mode = 0; // smartfp, paccon - else - addressing_mode = 1; - - if (m_alt_extrasprite_hack == 0) - if (addressing_mode == 0) // smartfp, paccon - tile |= m_spriteextra[base_addr / 4] << 16; - - if (m_alt_extrasprite_hack == 1) // jak_prft - tile |= (m_spriteextra[base_addr] & 0x000f) << 16; - - if (((attr & 0x3000) >> 12) != priority) - { - return; - } - - // attr PBzz pppp hhww ffdd - - // P = high palette bit - // b = blend enable - // zz = priority - // pppp = palette - // hh = height - // ww = width - // ff = flips - // dd = depth - - const uint32_t h = 8 << ((attr & 0x00c0) >> 6); - const uint32_t w = 8 << ((attr & 0x0030) >> 4); - - - if (!(m_7042_sprite & 0x0002)) - { - x = ((screenwidth / 2) + x) - w / 2; - y = ((screenheight / 2) - y) - (h / 2) + 8; - } - - x &= (x_max - 1); - y &= 0x01ff; - - uint32_t tile_line = ((scanline - y) + 0x200) % h; - int16_t test_y = (y + tile_line) & 0x1ff; - if (test_y >= 0x01c0) - test_y -= 0x0200; - - if (test_y != scanline) - { - return; - } - - bool blend = (attr & 0x4000); - - bool flip_x; - uint8_t bpp; - uint32_t yflipmask; - uint32_t palette_offset; - - // different attribute use? - if (screenwidth == 320) - { - if (m_alt_extrasprite_hack == 0) - { - flip_x = (attr & 0x0004); - yflipmask = attr & 0x0008 ? h - 1 : 0; - } - else - { - flip_x = 0; - yflipmask = 0; - } - - bpp = attr & 0x0003; - palette_offset = (attr & 0x0f00) >> 4; - } - else - { - flip_x = 0;// (attr & 0x0004); - yflipmask = 0;// attr& 0x0008 ? h - 1 : 0; - - bpp = attr & 0x0003; - palette_offset = (attr & 0x0f00) >> 4; - } - - if (m_703a_palettebank & 1) - palette_offset |= 0x100; - - if (attr & 0x8000) - palette_offset |= 0x200; - - if (blend) - { - if (flip_x) - draw<BlendOn, RowScrollOff, FlipXOn>(cliprect, tile_line, x, y, bitmap_addr, tile, h, w, bpp, yflipmask, palette_offset, addressing_mode); - else - draw<BlendOn, RowScrollOff, FlipXOff>(cliprect, tile_line, x, y, bitmap_addr, tile, h, w, bpp, yflipmask, palette_offset, addressing_mode); - } - else - { - if (flip_x) - draw<BlendOff, RowScrollOff, FlipXOn>(cliprect, tile_line, x, y, bitmap_addr, tile, h, w, bpp, yflipmask, palette_offset, addressing_mode); - else - draw<BlendOff, RowScrollOff, FlipXOff>(cliprect, tile_line, x, y, bitmap_addr, tile, h, w, bpp, yflipmask, palette_offset, addressing_mode); - } -} - -void gcm394_base_video_device::draw_sprites(const rectangle &cliprect, uint32_t scanline, int priority) -{ - // paccon suggests this, does older hardware have similar? - int numsprites = (m_7042_sprite & 0xff00) >> 8; - if (numsprites == 0) - numsprites = 0x100; - - for (uint32_t n = 0; n < numsprites; n++) - { - draw_sprite(cliprect, scanline, priority, 4 * n); - } + m_renderer->set_video_spaces(m_cpuspace, m_cs_space, m_csbase); } uint32_t gcm394_base_video_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) @@ -987,6 +333,12 @@ uint32_t gcm394_base_video_device::screen_update(screen_device &screen, bitmap_r // jak_s500 briely sets pen 0 of the layer to magenta, but then ends up erasing it + const uint32_t page0_addr = (m_page0_addr_msb << 16) | m_page0_addr_lsb; + const uint32_t page1_addr = (m_page1_addr_msb << 16) | m_page1_addr_lsb; + const uint32_t page2_addr = (m_page2_addr_msb << 16) | m_page2_addr_lsb; + const uint32_t page3_addr = (m_page3_addr_msb << 16) | m_page3_addr_lsb; + + if (0) { uint16_t attr0 = m_tmap0_regs[0]; @@ -999,70 +351,63 @@ uint32_t gcm394_base_video_device::screen_update(screen_device &screen, bitmap_r uint16_t ctrl3 = m_tmap3_regs[1]; popmessage( - "p0ctrl u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d\n" - "p1ctrl u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d\n" - "p2ctrl u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d\n" - "p3ctrl u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d\n" - "p0attr u:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d\n" - "p1attr u:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d\n" - "p2attr u:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d\n" - "p3attr u:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d\n" - "palbank %04x 707e: %04x 707f: %04x\n", - (ctrl0 & 0xfe00) >> 9, BIT(ctrl0, 8), BIT(ctrl0, 7), BIT(ctrl0, 6), BIT(ctrl0, 5), BIT(ctrl0, 4), BIT(ctrl0, 3), BIT(ctrl0, 2), BIT(ctrl0, 1), BIT(ctrl0, 0), - (ctrl1 & 0xfe00) >> 9, BIT(ctrl1, 8), BIT(ctrl1, 7), BIT(ctrl1, 6), BIT(ctrl1, 5), BIT(ctrl1, 4), BIT(ctrl1, 3), BIT(ctrl1, 2), BIT(ctrl1, 1), BIT(ctrl1, 0), - (ctrl2 & 0xfe00) >> 9, BIT(ctrl2, 8), BIT(ctrl2, 7), BIT(ctrl2, 6), BIT(ctrl2, 5), BIT(ctrl2, 4), BIT(ctrl2, 3), BIT(ctrl2, 2), BIT(ctrl2, 1), BIT(ctrl2, 0), - (ctrl3 & 0xfe00) >> 9, BIT(ctrl3, 8), BIT(ctrl3, 7), BIT(ctrl3, 6), BIT(ctrl3, 5), BIT(ctrl3, 4), BIT(ctrl3, 3), BIT(ctrl3, 2), BIT(ctrl3, 1), BIT(ctrl3, 0), - (attr0 & 0xc000) >> 14, (attr0 >> 12) & 3, (attr0 >> 8) & 15, 8 << ((attr0 >> 6) & 3), 8 << ((attr0 >> 4) & 3), BIT(attr0, 3), BIT(attr0, 2), 2 * ((attr0 & 3) + 1), - (attr1 & 0xc000) >> 14, (attr1 >> 12) & 3, (attr1 >> 8) & 15, 8 << ((attr1 >> 6) & 3), 8 << ((attr1 >> 4) & 3), BIT(attr1, 3), BIT(attr1, 2), 2 * ((attr1 & 3) + 1), - (attr2 & 0xc000) >> 14, (attr2 >> 12) & 3, (attr2 >> 8) & 15, 8 << ((attr2 >> 6) & 3), 8 << ((attr2 >> 4) & 3), BIT(attr2, 3), BIT(attr2, 2), 2 * ((attr2 & 3) + 1), - (attr3 & 0xc000) >> 14, (attr3 >> 12) & 3, (attr3 >> 8) & 15, 8 << ((attr3 >> 6) & 3), 8 << ((attr3 >> 4) & 3), BIT(attr3, 3), BIT(attr3, 2), 2 * ((attr3 & 3) + 1), - m_703a_palettebank, m_707e_spritebank, m_707f + "p0ct u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d gfxadr: %08x t:%04x p:%04x\n" + "p1ct u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d gfxadr: %08x t:%04x p:%04x\n" + "p2ct u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d gfxadr: %08x t:%04x p:%04x\n" + "p3ct u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d gfxadr: %08x t:%04x p:%04x\n" + "p0attr dw:%01x dh:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d xs: %04x ys %04x\n" + "p1attr dw:%01x dh:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d xs: %04x ys %04x\n" + "p2attr dw:%01x dh:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d xs: %04x ys %04x\n" + "p3attr dw:%01x dh:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d xs: %04x ys %04x\n" + "palbank %04x 707e: %04x 707f: %04x tvc703c: %04x spr7042: %04x\n", + (ctrl0 & 0xfe00) >> 9, BIT(ctrl0, 8), BIT(ctrl0, 7), BIT(ctrl0, 6), BIT(ctrl0, 5), BIT(ctrl0, 4), BIT(ctrl0, 3), BIT(ctrl0, 2), BIT(ctrl0, 1), BIT(ctrl0, 0), page0_addr, m_tmap0_regs[2], m_tmap0_regs[3], + (ctrl1 & 0xfe00) >> 9, BIT(ctrl1, 8), BIT(ctrl1, 7), BIT(ctrl1, 6), BIT(ctrl1, 5), BIT(ctrl1, 4), BIT(ctrl1, 3), BIT(ctrl1, 2), BIT(ctrl1, 1), BIT(ctrl1, 0), page1_addr, m_tmap1_regs[2], m_tmap1_regs[3], + (ctrl2 & 0xfe00) >> 9, BIT(ctrl2, 8), BIT(ctrl2, 7), BIT(ctrl2, 6), BIT(ctrl2, 5), BIT(ctrl2, 4), BIT(ctrl2, 3), BIT(ctrl2, 2), BIT(ctrl2, 1), BIT(ctrl2, 0), page2_addr, m_tmap2_regs[2], m_tmap2_regs[3], + (ctrl3 & 0xfe00) >> 9, BIT(ctrl3, 8), BIT(ctrl3, 7), BIT(ctrl3, 6), BIT(ctrl3, 5), BIT(ctrl3, 4), BIT(ctrl3, 3), BIT(ctrl3, 2), BIT(ctrl3, 1), BIT(ctrl3, 0), page3_addr, m_tmap3_regs[2], m_tmap3_regs[3], + BIT(attr0, 15), BIT(attr0, 14), (attr0 >> 12) & 3, (attr0 >> 8) & 15, 8 << ((attr0 >> 6) & 3), 8 << ((attr0 >> 4) & 3), BIT(attr0, 3), BIT(attr0, 2), 2 * ((attr0 & 3) + 1), m_tmap0_scroll[0], m_tmap0_scroll[1], + BIT(attr1, 15), BIT(attr1, 14), (attr1 >> 12) & 3, (attr1 >> 8) & 15, 8 << ((attr1 >> 6) & 3), 8 << ((attr1 >> 4) & 3), BIT(attr1, 3), BIT(attr1, 2), 2 * ((attr1 & 3) + 1), m_tmap1_scroll[0], m_tmap1_scroll[1], + BIT(attr2, 15), BIT(attr2, 14), (attr2 >> 12) & 3, (attr2 >> 8) & 15, 8 << ((attr2 >> 6) & 3), 8 << ((attr2 >> 4) & 3), BIT(attr2, 3), BIT(attr2, 2), 2 * ((attr2 & 3) + 1), m_tmap2_scroll[0], m_tmap2_scroll[1], + BIT(attr3, 15), BIT(attr3, 14), (attr3 >> 12) & 3, (attr3 >> 8) & 15, 8 << ((attr3 >> 6) & 3), 8 << ((attr3 >> 4) & 3), BIT(attr3, 3), BIT(attr3, 2), 2 * ((attr3 & 3) + 1), m_tmap3_scroll[0], m_tmap3_scroll[1], + m_703a_palettebank, m_707e_spritebank, m_707f, m_703c_tvcontrol1, m_7042_sprite ); } //const uint16_t bgcol = 0x7c1f; // magenta - const uint16_t bgcol = 0x0000; // black - - +// const uint16_t bgcol = 0x0000; // black + bool highres; if (m_707f & 0x0010) { + highres = true; m_screen->set_visible_area(0, 640-1, 0, 480-1); } else { + highres = false; m_screen->set_visible_area(0, 320-1, 0, 240-1); } + address_space &mem = m_cpu->space(AS_PROGRAM); + + + const uint32_t sprites_addr = (m_sprite_702d_gfxbase_msb << 16) | m_sprite_7022_gfxbase_lsb; + + bitmap.fill(0, cliprect); + for (uint32_t scanline = (uint32_t)cliprect.min_y; scanline <= (uint32_t)cliprect.max_y; scanline++) { - uint32_t* bufferline = &m_screenbuf[scanline * m_screen->width()]; - - for (int x = 0; x < m_screen->width(); x++) - { - bufferline[x] = m_rgb555_to_rgb888[bgcol]; - } + uint32_t* dst = &bitmap.pix32(scanline, cliprect.min_x); for (int i = 0; i < 4; i++) { - const int draw_all = 1; - - if (1) - { - if ((!(machine().input().code_pressed(KEYCODE_Q))) || draw_all) draw_page(cliprect, scanline, i, (m_page0_addr_lsb | (m_page0_addr_msb<<16)), m_tmap0_regs, m_tmap0_scroll, 0); - if ((!(machine().input().code_pressed(KEYCODE_W))) || draw_all) draw_page(cliprect, scanline, i, (m_page1_addr_lsb | (m_page1_addr_msb<<16)), m_tmap1_regs, m_tmap1_scroll, 1); - if ((!(machine().input().code_pressed(KEYCODE_E))) || draw_all) draw_page(cliprect, scanline, i, (m_page2_addr_lsb | (m_page2_addr_msb<<16)), m_tmap2_regs, m_tmap2_scroll, 2); - if ((!(machine().input().code_pressed(KEYCODE_R))) || draw_all) draw_page(cliprect, scanline, i, (m_page3_addr_lsb | (m_page3_addr_msb<<16)), m_tmap3_regs, m_tmap3_scroll, 3); + m_renderer->draw_page(true, true, m_alt_tile_addressing ? false : true, m_703a_palettebank, cliprect, dst, scanline, i, page0_addr, m_tmap0_scroll, m_tmap0_regs, mem, m_paletteram, m_rowscroll, 0); + m_renderer->draw_page(true, true, m_alt_tile_addressing ? false : true, m_703a_palettebank, cliprect, dst, scanline, i, page1_addr, m_tmap1_scroll, m_tmap1_regs, mem, m_paletteram, m_rowscroll, 1); + m_renderer->draw_page(true, true, m_alt_tile_addressing ? false : true, m_703a_palettebank, cliprect, dst, scanline, i, page2_addr, m_tmap2_scroll, m_tmap2_regs, mem, m_paletteram, m_rowscroll, 2); + m_renderer->draw_page(true, true, m_alt_tile_addressing ? false : true, m_703a_palettebank, cliprect, dst, scanline, i, page3_addr, m_tmap3_scroll, m_tmap3_regs, mem, m_paletteram, m_rowscroll, 3); - } - if ((!(machine().input().code_pressed(KEYCODE_T))) || draw_all) draw_sprites(cliprect, scanline, i); + m_renderer->draw_sprites(true, true, m_alt_extrasprite_hack ? true : false, m_703a_palettebank, highres, cliprect, dst, scanline, i, sprites_addr, mem, m_paletteram, m_spriteram, -1); } - } - for (int y = cliprect.min_y; y <= cliprect.max_y; y++) - { - uint32_t *dest = &bitmap.pix32(y, cliprect.min_x); - uint32_t *src = &m_screenbuf[cliprect.min_x + m_screen->width() * y]; - memcpy(dest, src, sizeof(uint32_t) * ((cliprect.max_x - cliprect.min_x) + 1)); + m_renderer->apply_saturation_and_fade(bitmap, cliprect, scanline); } return 0; @@ -1391,6 +736,8 @@ WRITE16_MEMBER(gcm394_base_video_device::sprite_7042_extra_w) { LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::sprite_7042_extra_w %04x\n", machine().describe_context(), data); m_7042_sprite = data; + m_renderer->set_video_reg_42(data); + //popmessage("extra modes %04x\n", data); } @@ -1470,7 +817,7 @@ READ16_MEMBER(gcm394_base_video_device::video_707c_r) READ16_MEMBER(gcm394_base_video_device::video_707f_r) { - uint16_t retdata = m_707f; + uint16_t retdata = m_renderer->get_video_reg_7f(); LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_707f_r (returning %04x)\n", machine().describe_context(), retdata); return retdata; } @@ -1496,7 +843,7 @@ WRITE16_MEMBER(gcm394_base_video_device::video_707f_w) } m_707f = data; - + m_renderer->set_video_reg_7f(data); //popmessage("707f is %04x\n", data); } @@ -1558,6 +905,7 @@ WRITE16_MEMBER(gcm394_base_video_device::video_702a_w) { LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_702a_w %04x\n", machine().describe_context(), data); m_702a = data; + m_renderer->set_video_reg_2a(data); } READ16_MEMBER(gcm394_base_video_device::video_curline_r) @@ -1582,15 +930,17 @@ WRITE16_MEMBER(gcm394_base_video_device::video_7030_brightness_w) { LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_7030_brightness_w %04x\n", machine().describe_context(), data); m_7030_brightness = data; + m_renderer->set_video_reg_30(data); } void gcm394_base_video_device::update_raster_split_position() { // this might need updating to handle higher res modes LOGMASKED(LOG_GCM394_VIDEO, "update_raster_split_position: %04x,%04x\n", m_yirqpos, m_xirqpos); - if (m_xirqpos < 300 && m_yirqpos < 240) + if (m_xirqpos < 300 && m_yirqpos < 256) { - m_screenpos_timer->adjust(m_screen->time_until_pos(m_yirqpos, m_xirqpos)); + // where does -19 come from? needed for raster on paccon xevious to fire at correct line for bg scrolling to be seamless + m_screenpos_timer->adjust(m_screen->time_until_pos(m_yirqpos-19, m_xirqpos)); //printf("setting irq timer for y:%d x:%d", m_yirqpos, m_xirqpos); } else @@ -1623,6 +973,7 @@ WRITE16_MEMBER(gcm394_base_video_device::video_703c_tvcontrol1_w) { LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_703c_tvcontrol1_w %04x\n", machine().describe_context(), data); m_703c_tvcontrol1 = data; + m_renderer->set_video_reg_3c(data); } READ16_MEMBER(gcm394_base_video_device::video_7051_r) @@ -1668,7 +1019,7 @@ WRITE16_MEMBER(gcm394_base_video_device::spriteram_w) } else if (m_707e_spritebank == 0x0001) { - m_spriteextra[offset] = data; + m_spriteram[offset + 0x400] = data; } else { @@ -1684,7 +1035,7 @@ READ16_MEMBER(gcm394_base_video_device::spriteram_r) } else if (m_707e_spritebank == 0x0001) { - return m_spriteextra[offset]; + return m_spriteram[offset + 0x400]; } else { @@ -1705,13 +1056,12 @@ WRITE16_MEMBER(gcm394_base_video_device::palette_w) { offset |= (m_703a_palettebank & 0x000c) << 6; m_paletteram[offset] = data; - - uint32_t pal = m_rgb555_to_rgb888[data & 0x7fff]; - int r = (pal >> 16) & 0xff; - int g = (pal >> 8) & 0xff; - int b = (pal >> 0) & 0xff; - - m_palette->set_pen_color(offset, rgb_t(r, g, b)); + + // for debug + m_palette->set_pen_color(offset, rgb_t( + (((data >> 10) & 0x1f)<<3), + (((data >> 5) & 0x1f)<<3), + (((data >> 0) & 0x1f)<<3))); } } @@ -1731,16 +1081,19 @@ READ16_MEMBER(gcm394_base_video_device::palette_r) WRITE16_MEMBER(gcm394_base_video_device::video_701c_w) { LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_701c_w (unknown video reg?) %04x\n", machine().describe_context(), data); + m_renderer->set_video_reg_1c(data); } WRITE16_MEMBER(gcm394_base_video_device::video_701d_w) { LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_701d_w (unknown video reg?) %04x\n", machine().describe_context(), data); + m_renderer->set_video_reg_1d(data); } WRITE16_MEMBER(gcm394_base_video_device::video_701e_w) { LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_701e_w (unknown video reg?) %04x\n", machine().describe_context(), data); + m_renderer->set_video_reg_1e(data); } @@ -1787,7 +1140,7 @@ void gcm394_base_video_device::device_timer(emu_timer &timer, device_timer_id id m_screen->update_partial(m_screen->vpos()); // fire again, jak_dbz pinball needs this - m_screenpos_timer->adjust(m_screen->time_until_pos(m_yirqpos, m_xirqpos)); + m_screenpos_timer->adjust(m_screen->time_until_pos(m_yirqpos-19, m_xirqpos)); break; } } diff --git a/src/devices/machine/generalplus_gpl16250soc_video.h b/src/devices/machine/generalplus_gpl16250soc_video.h index 5edbbe76735..a04540dd5a1 100644 --- a/src/devices/machine/generalplus_gpl16250soc_video.h +++ b/src/devices/machine/generalplus_gpl16250soc_video.h @@ -36,6 +36,8 @@ public: void set_alt_extrasprite(int alt_extrasprite_hack) { m_alt_extrasprite_hack = alt_extrasprite_hack; } + void set_video_spaces(address_space& cpuspace, address_space& cs_space, int csbase) { m_cpuspace = &cpuspace; m_cs_space = &cs_space; m_csbase = csbase; } + //void set_pal_sprites(int pal_sprites) { m_pal_sprites = pal_sprites; } //void set_pal_back(int pal_back) { m_pal_back = pal_back; } @@ -147,37 +149,8 @@ protected: virtual void device_start() override; virtual void device_reset() override; - enum blend_enable_t : bool - { - BlendOff = false, - BlendOn = true - }; - - enum rowscroll_enable_t : bool - { - RowScrollOff = false, - RowScrollOn = true - }; - - enum flipx_t : bool - { - FlipXOff = false, - FlipXOn = true - }; - - template<blend_enable_t Blend, rowscroll_enable_t RowScroll, flipx_t FlipX> - void draw(const rectangle &cliprect, uint32_t line, uint32_t xoff, uint32_t yoff, uint32_t bitmap_addr, uint32_t tile, int32_t h, int32_t w, uint8_t bpp, uint32_t yflipmask, uint32_t palette_offset, int addressing_mode); - void draw_page(const rectangle &cliprect, uint32_t scanline, int priority, uint32_t bitmap_addr, uint16_t *regs, uint16_t *scroll, int which); - void draw_sprites(const rectangle& cliprect, uint32_t scanline, int priority); - void draw_sprite(const rectangle& cliprect, uint32_t scanline, int priority, uint32_t base_addr); - - uint32_t m_screenbuf[640 * 480]; - uint8_t m_rgb5_to_rgb8[32]; - uint32_t m_rgb555_to_rgb888[0x8000]; - required_device<unsp_device> m_cpu; required_device<screen_device> m_screen; -// required_shared_ptr<uint16_t> m_scrollram; uint16_t m_page0_addr_lsb; uint16_t m_page0_addr_msb; @@ -242,8 +215,7 @@ protected: emu_timer *m_screenpos_timer; - uint16_t m_spriteram[0x400]; - uint16_t m_spriteextra[0x400]; + uint16_t m_spriteram[0x400*2]; uint16_t m_paletteram[0x100*0x10]; required_device<palette_device> m_palette; @@ -263,6 +235,10 @@ protected: int m_alt_tile_addressing; required_device<spg_renderer_device> m_renderer; + + address_space* m_cpuspace; + address_space* m_cs_space; + int m_csbase; }; class gcm394_video_device : public gcm394_base_video_device diff --git a/src/devices/machine/intelfsh.cpp b/src/devices/machine/intelfsh.cpp index 027340e4736..b8293cad26e 100644 --- a/src/devices/machine/intelfsh.cpp +++ b/src/devices/machine/intelfsh.cpp @@ -623,7 +623,7 @@ uint32_t intelfsh_device::read_full(uint32_t address) { // used in Fujitsu 29DL16X 8bits mode // used in AMD 29LV200 8bits mode - switch (address) + switch (address & 0xff) { case 0: data = m_maker_id; break; case 2: data = m_device_id; break; @@ -632,7 +632,7 @@ uint32_t intelfsh_device::read_full(uint32_t address) } else { - switch (address) + switch (address & 0xff) { case 0: data = m_maker_id; break; case 1: data = m_device_id; break; @@ -643,7 +643,7 @@ uint32_t intelfsh_device::read_full(uint32_t address) case FM_READID: if (m_maker_id == MFG_INTEL && m_device_id == 0x16) { - switch (address) + switch (address & 0xff) { case 0: data = m_maker_id; break; case 2: data = m_device_id; break; @@ -652,7 +652,7 @@ uint32_t intelfsh_device::read_full(uint32_t address) } else { - switch (address) + switch (address & 0xff) { case 0: // maker ID data = m_maker_id; diff --git a/src/devices/machine/spg2xx_video.cpp b/src/devices/machine/spg2xx_video.cpp index b7615c76a38..d62e6998ea2 100644 --- a/src/devices/machine/spg2xx_video.cpp +++ b/src/devices/machine/spg2xx_video.cpp @@ -103,6 +103,8 @@ uint32_t spg2xx_video_device::screen_update(screen_device &screen, bitmap_rgb32 const uint32_t page1_addr = 0x40 * m_video_regs[0x20]; const uint32_t page2_addr = 0x40 * m_video_regs[0x21]; + const uint32_t sprite_addr = 0x40 * m_video_regs[0x22]; + uint16_t *page1_scroll = m_video_regs + 0x10; uint16_t *page2_scroll = m_video_regs + 0x16; uint16_t *page1_regs = m_video_regs + 0x12; @@ -116,9 +118,9 @@ uint32_t spg2xx_video_device::screen_update(screen_device &screen, bitmap_rgb32 for (int i = 0; i < 4; i++) { - m_renderer->draw_page(cliprect, dst, scanline, i, page1_addr, page1_scroll, page1_regs, mem, m_paletteram, m_scrollram); - m_renderer->draw_page(cliprect, dst, scanline, i, page2_addr, page2_scroll, page2_regs, mem, m_paletteram, m_scrollram); - m_renderer->draw_sprites(cliprect, dst, scanline, i, mem, m_paletteram, m_spriteram, m_sprlimit_read_cb()); + m_renderer->draw_page(false, false, false, 0, cliprect, dst, scanline, i, page1_addr, page1_scroll, page1_regs, mem, m_paletteram, m_scrollram, 0); + m_renderer->draw_page(false, false, false, 0, cliprect, dst, scanline, i, page2_addr, page2_scroll, page2_regs, mem, m_paletteram, m_scrollram, 1); + m_renderer->draw_sprites(false, false, false, 0, false, cliprect, dst, scanline, i, sprite_addr, mem, m_paletteram, m_spriteram, m_sprlimit_read_cb()); } m_renderer->apply_saturation_and_fade(bitmap, cliprect, scanline); @@ -177,7 +179,7 @@ READ16_MEMBER(spg2xx_video_device::video_r) case 0x22: // Sprite Segment Address LOGMASKED(LOG_PPU_READS, "video_r: Sprite Segment Address\n"); - return m_renderer->get_video_reg_22(); + return m_video_regs[offset]; case 0x2a: // Blend Level Control LOGMASKED(LOG_PPU_READS, "video_r: Blend Level Control\n"); @@ -334,7 +336,6 @@ WRITE16_MEMBER(spg2xx_video_device::video_w) case 0x22: // Sprite Segment Address LOGMASKED(LOG_PPU_WRITES, "video_w: Sprite Segment Address = %04x\n", data); m_video_regs[offset] = data; - m_renderer->set_video_reg_22(data); break; case 0x2a: // Blend Level Control diff --git a/src/devices/machine/spg_renderer.cpp b/src/devices/machine/spg_renderer.cpp index ded2c8ebe25..19a0cbaff05 100644 --- a/src/devices/machine/spg_renderer.cpp +++ b/src/devices/machine/spg_renderer.cpp @@ -7,7 +7,8 @@ DEFINE_DEVICE_TYPE(SPG_RENDERER, spg_renderer_device, "spg_renderer", "SunPlus / GeneralPlus video rendering") spg_renderer_device::spg_renderer_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, type, tag, owner, clock) + device_t(mconfig, type, tag, owner, clock), + m_space_read_cb(*this) { } @@ -18,6 +19,8 @@ spg_renderer_device::spg_renderer_device(const machine_config &mconfig, const ch void spg_renderer_device::device_start() { + m_space_read_cb.resolve_safe(0); + for (uint8_t i = 0; i < 32; i++) { m_rgb5_to_rgb8[i] = (i << 3) | (i >> 2); @@ -33,7 +36,6 @@ void spg_renderer_device::device_start() save_item(NAME(m_video_regs_1d)); save_item(NAME(m_video_regs_1e)); - save_item(NAME(m_video_regs_22)); save_item(NAME(m_video_regs_2a)); save_item(NAME(m_video_regs_30)); @@ -41,6 +43,8 @@ void spg_renderer_device::device_start() save_item(NAME(m_video_regs_42)); + save_item(NAME(m_video_regs_7f)); + save_item(NAME(m_ycmp_table)); } @@ -50,7 +54,6 @@ void spg_renderer_device::device_reset() m_video_regs_1d = 0x0000; m_video_regs_1e = 0x0000; - m_video_regs_22 = 0x0000; m_video_regs_2a = 0x0000; m_video_regs_30 = 0x0000; @@ -58,6 +61,8 @@ void spg_renderer_device::device_reset() m_video_regs_42 = 0x0001; + m_video_regs_7f = 0x0000; + for (int i = 0; i < 480; i++) { m_ycmp_table[i] = 0xffffffff; @@ -66,14 +71,13 @@ void spg_renderer_device::device_reset() // Perform a lerp between a and b -inline uint8_t spg_renderer_device::mix_channel(uint8_t bottom, uint8_t top) +inline uint8_t spg_renderer_device::mix_channel(uint8_t bottom, uint8_t top, uint8_t alpha) { - uint8_t alpha = (m_video_regs_2a & 3) << 6; return ((256 - alpha) * bottom + alpha * top) >> 8; } template<spg_renderer_device::blend_enable_t Blend, spg_renderer_device::flipx_t FlipX> -void spg_renderer_device::draw_tilestrip(const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint16_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space &spc, uint16_t* paletteram) +void spg_renderer_device::draw_tilestrip(bool read_from_csspace, uint32_t screenwidth, uint32_t drawwidthmask, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint32_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space &spc, uint16_t* paletteram, uint8_t blendlevel) { const uint32_t yflipmask = flip_y ? tile_h - 1 : 0; uint32_t m = tilegfxdata_addr + words_per_tile * tile + bits_per_row * (tile_scanline ^ yflipmask); @@ -82,23 +86,44 @@ void spg_renderer_device::draw_tilestrip(const rectangle& cliprect, uint32_t* ds for (int32_t x = FlipX ? (tile_w - 1) : 0; FlipX ? x >= 0 : x < tile_w; FlipX ? x-- : x++) { - int realdrawpos = (drawx + x) & 0x1ff; + int realdrawpos = (drawx + x) & drawwidthmask; bits <<= nc_bpp; if (nbits < nc_bpp) { - uint16_t b = spc.read_word(m++ & 0x3fffff); - b = (b << 8) | (b >> 8); - bits |= b << (nc_bpp - nbits); - nbits += 16; + if (!read_from_csspace) + { + uint16_t b = spc.read_word(m++ & 0x3fffff); + b = (b << 8) | (b >> 8); + bits |= b << (nc_bpp - nbits); + nbits += 16; + } + else + { + uint16_t b; + const int addr = m & 0x7ffffff; + if (addr < m_csbase) + { + b = m_cpuspace->read_word(addr); + } + else + { + b = m_cs_space->read_word(addr-m_csbase); + } + m++; + b = (b << 8) | (b >> 8); + bits |= b << (nc_bpp - nbits); + nbits += 16; + } } nbits -= nc_bpp; uint32_t pal = palette_offset + (bits >> 16); bits &= 0xffff; - if (realdrawpos >= 0 && realdrawpos < 320) + + if (realdrawpos >= 0 && realdrawpos < screenwidth) { uint16_t rgb = paletteram[pal]; @@ -106,9 +131,10 @@ void spg_renderer_device::draw_tilestrip(const rectangle& cliprect, uint32_t* ds { if (Blend) { - dst[realdrawpos] = (mix_channel((uint8_t)(dst[realdrawpos] >> 16), m_rgb5_to_rgb8[(rgb >> 10) & 0x1f]) << 16) | - (mix_channel((uint8_t)(dst[realdrawpos] >> 8), m_rgb5_to_rgb8[(rgb >> 5) & 0x1f]) << 8) | - (mix_channel((uint8_t)(dst[realdrawpos] >> 0), m_rgb5_to_rgb8[rgb & 0x1f])); + + dst[realdrawpos] = (mix_channel((uint8_t)(dst[realdrawpos] >> 16), m_rgb5_to_rgb8[(rgb >> 10) & 0x1f], blendlevel) << 16) | + (mix_channel((uint8_t)(dst[realdrawpos] >> 8), m_rgb5_to_rgb8[(rgb >> 5) & 0x1f], blendlevel) << 8) | + (mix_channel((uint8_t)(dst[realdrawpos] >> 0), m_rgb5_to_rgb8[(rgb >> 0) & 0x1f], blendlevel) << 0); } else { @@ -120,122 +146,178 @@ void spg_renderer_device::draw_tilestrip(const rectangle& cliprect, uint32_t* ds } -void spg_renderer_device::draw_linemap(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space &spc, uint16_t* paletteram) +void spg_renderer_device::draw_linemap(bool has_extended_tilemaps, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space &spc, uint16_t* paletteram) { - if ((scanline < 0) || (scanline >= 240)) - return; - - - uint32_t tilemap = tilemapregs[2]; - uint32_t palette_map = tilemapregs[3]; - - //printf("draw bitmap bases %04x %04x\n", tilemap, palette_map); + if (has_extended_tilemaps) + { + uint32_t ctrl = tilemapregs[1]; + + if (0) + { + if (ctrl & 0x0010) + popmessage("bitmap mode %08x with rowscroll\n", tilegfxdata_addr); + else + popmessage("bitmap mode %08x\n", tilegfxdata_addr); + } - //uint32_t xscroll = scrollregs[0]; - uint32_t yscroll = scrollregs[1]; + // note, in interlace modes it appears every other line is unused? (480 entry table, but with blank values) + // and furthermore the rowscroll and rowzoom tables only have 240 entries, not enough for every line + // the end of the rowscroll table (entries 240-255) contain something else, maybe garbage data as it's offscreen, maybe not + uint32_t tilemap = tilemapregs[2]; + uint32_t palette_map = tilemapregs[3]; - int realline = (scanline + yscroll) & 0xff; + uint32_t linebase = spc.read_word(tilemap + scanline); // every other word is unused, but there are only enough entries for 240 lines then, sometimes to do with interlace mode? + uint16_t palette = spc.read_word(palette_map + (scanline / 2)); + if (scanline & 1) + palette >>= 8; + else + palette &= 0xff; - uint16_t tile = spc.read_word(tilemap + realline); - uint16_t palette = 0; + if (!linebase) + return; - //if (!tile) - // continue; + linebase = linebase | (palette << 16); - palette = spc.read_word(palette_map + realline / 2); - if (scanline & 1) - palette >>= 8; - else - palette &= 0x00ff; + int upperpalselect = 0; + if (has_extended_tilemaps && (tilegfxdata_addr & 0x80000000)) + upperpalselect = 1; - //const int linewidth = 320 / 2; - int sourcebase = tile | (palette << 16); + tilegfxdata_addr &= 0x7ffffff; - uint32_t ctrl = tilemapregs[1]; + // this logic works for jak_s500 and the test modes to get the correct base, doesn't seem to work for jak_car2 ingame, maybe data is copied to wrong place? + int gfxbase = (tilegfxdata_addr&0x7ffffff) + (linebase&0x7ffffff); - if (ctrl & 0x80) // HiColor mode (rad_digi) - { - for (int i = 0; i < 320; i++) + for (int i = 0; i < 160; i++) // will have to be 320 for jak_car2 ingame, jak_s500 lines are wider than screen, and zoomed { - const uint16_t data = spc.read_word(sourcebase + i); - - if (!(data & 0x8000)) + uint16_t pix; + const int addr = gfxbase & 0x7ffffff; + if (addr < m_csbase) { - dst[i] = m_rgb555_to_rgb888[data & 0x7fff]; + pix = m_cpuspace->read_word(addr); } - } - } - else - { - for (int i = 0; i < 320 / 2; i++) - { - uint8_t palette_entry; - uint16_t color; - const uint16_t data = spc.read_word(sourcebase + i); - - palette_entry = (data & 0x00ff); - color = paletteram[palette_entry]; - - if (!(color & 0x8000)) + else { - dst[(i * 2) + 0] = m_rgb555_to_rgb888[color & 0x7fff]; + pix = m_cs_space->read_word(addr-m_csbase); } + gfxbase++; - palette_entry = (data & 0xff00) >> 8; - color = paletteram[palette_entry]; + int xx; + uint16_t pal; - if (!(color & 0x8000)) + if ((scanline >= 0) && (scanline < 480)) { - dst[(i * 2) + 1] = m_rgb555_to_rgb888[color & 0x7fff]; + xx = i * 2; + + pal = (pix & 0xff) | 0x100; + + if (upperpalselect) + pal |= 0x200; + + if (xx >= 0 && xx <= cliprect.max_x) + { + uint16_t rgb = paletteram[pal]; + + if (!(rgb & 0x8000)) + { + dst[xx] = m_rgb555_to_rgb888[rgb]; + } + } + + xx = (i * 2)+1; + pal = (pix >> 8) | 0x100; + + if (upperpalselect) + pal |= 0x200; + + if (xx >= 0 && xx <= cliprect.max_x) + { + uint16_t rgb = paletteram[pal]; + + if (!(rgb & 0x8000)) + { + dst[xx] = m_rgb555_to_rgb888[rgb]; + } + } } } } -} + else // code used for spg2xx cases + { + if ((scanline < 0) || (scanline >= 240)) + return; + uint32_t tilemap = tilemapregs[2]; + uint32_t palette_map = tilemapregs[3]; -bool spg_renderer_device::get_tile_info(uint32_t tilemap_rambase, uint32_t palettemap_rambase, uint32_t x0, uint32_t y0, uint32_t tile_count_x, uint32_t ctrl, uint32_t attr, uint16_t& tile, spg_renderer_device::blend_enable_t& blend, spg_renderer_device::flipx_t& flip_x, bool& flip_y, uint32_t& palette_offset, address_space &spc) -{ - uint32_t tile_address = x0 + (tile_count_x * y0); + popmessage("draw draw_linemap bases %04x %04x\n", tilemap, palette_map); - tile = (ctrl & 0x0004) ? spc.read_word(tilemap_rambase) : spc.read_word(tilemap_rambase + tile_address); + //uint32_t xscroll = scrollregs[0]; + uint32_t yscroll = scrollregs[1]; + + int realline = (scanline + yscroll) & 0xff; - if (!tile) - return false; - uint32_t tileattr = attr; - uint32_t tilectrl = ctrl; - if ((ctrl & 2) == 0) - { // -(1) bld(1) flip(2) pal(4) + uint32_t tile = spc.read_word(tilemap + realline); + uint16_t palette = 0; - uint16_t palette = (ctrl & 0x0004) ? spc.read_word(palettemap_rambase) : spc.read_word(palettemap_rambase + tile_address / 2); - if (x0 & 1) + //if (!tile) + // continue; + + palette = spc.read_word(palette_map + realline / 2); + if (scanline & 1) palette >>= 8; else palette &= 0x00ff; + //const int linewidth = 320 / 2; + int sourcebase = tile | (palette << 16); - tileattr &= ~0x000c; - tileattr |= (palette >> 2) & 0x000c; // flip + uint32_t ctrl = tilemapregs[1]; - tileattr &= ~0x0f00; - tileattr |= (palette << 8) & 0x0f00; // palette + if (ctrl & 0x80) // HiColor mode (rad_digi) + { + for (int i = 0; i < 320; i++) + { + const uint16_t data = spc.read_word(sourcebase + i); - tilectrl &= ~0x0100; - tilectrl |= (palette << 2) & 0x0100; // blend - } + if (!(data & 0x8000)) + { + dst[i] = m_rgb555_to_rgb888[data & 0x7fff]; + } + } + } + else + { + for (int i = 0; i < 320 / 2; i++) + { + uint8_t palette_entry; + uint16_t color; + const uint16_t data = spc.read_word(sourcebase + i); - blend = ((tileattr & 0x4000 || tilectrl & 0x0100)) ? BlendOn : BlendOff; - flip_x = (tileattr & 0x0004) ? FlipXOn : FlipXOff; - flip_y= (tileattr & 0x0008); + palette_entry = (data & 0x00ff); + color = paletteram[palette_entry]; - palette_offset = (tileattr & 0x0f00) >> 4; + if (!(color & 0x8000)) + { + dst[(i * 2) + 0] = m_rgb555_to_rgb888[color & 0x7fff]; + } + palette_entry = (data & 0xff00) >> 8; + color = paletteram[palette_entry]; - return true; + if (!(color & 0x8000)) + { + dst[(i * 2) + 1] = m_rgb555_to_rgb888[color & 0x7fff]; + } + } + } + } } + + // this builds up a line table for the vcmp effect, this is not correct when step is used void spg_renderer_device::update_vcmp_table() { @@ -257,7 +339,7 @@ void spg_renderer_device::update_vcmp_table() } else { - if ((currentline >= 0) && (currentline < 240)) + if ((currentline >= 0) && (currentline < 256)) { m_ycmp_table[i] = currentline; } @@ -275,33 +357,33 @@ void spg_renderer_device::update_vcmp_table() } } -void spg_renderer_device::draw_tilestrip(spg_renderer_device::blend_enable_t blend, spg_renderer_device::flipx_t flip_x, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint16_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space& spc, uint16_t* paletteram) +void spg_renderer_device::draw_tilestrip(bool read_from_csspace, uint32_t screenwidth, uint32_t drawwidthmask, spg_renderer_device::blend_enable_t blend, spg_renderer_device::flipx_t flip_x, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint32_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space& spc, uint16_t* paletteram, uint8_t blendlevel) { if (blend) { if (flip_x) { - draw_tilestrip<BlendOn, FlipXOn>(cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram); + draw_tilestrip<BlendOn, FlipXOn>(read_from_csspace, screenwidth, drawwidthmask, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel); } else { - draw_tilestrip<BlendOn, FlipXOff>(cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram); + draw_tilestrip<BlendOn, FlipXOff>(read_from_csspace, screenwidth, drawwidthmask, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel); } } else { if (flip_x) { - draw_tilestrip<BlendOff, FlipXOn>(cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram); + draw_tilestrip<BlendOff, FlipXOn>(read_from_csspace, screenwidth, drawwidthmask, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel); } else { - draw_tilestrip<BlendOff, FlipXOff>(cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram); + draw_tilestrip<BlendOff, FlipXOff>(read_from_csspace, screenwidth, drawwidthmask, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel); } } } -void spg_renderer_device::draw_page(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram, uint16_t* scrollram) +void spg_renderer_device::draw_page(bool read_from_csspace, bool has_extended_tilemaps, bool use_alt_tile_addressing, uint32_t palbank, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram, uint16_t* scrollram, uint32_t which) { const uint32_t attr = tilemapregs[0]; const uint32_t ctrl = tilemapregs[1]; @@ -318,7 +400,7 @@ void spg_renderer_device::draw_page(const rectangle& cliprect, uint32_t* dst, ui if (ctrl & 0x0001) // Bitmap / Linemap mode! (basically screen width tile mode) { - draw_linemap(cliprect, dst, scanline, priority, tilegfxdata_addr, scrollregs, tilemapregs, spc, paletteram); + draw_linemap(has_extended_tilemaps, cliprect, dst, scanline, priority, tilegfxdata_addr, scrollregs, tilemapregs, spc, paletteram); return; } @@ -328,61 +410,189 @@ void spg_renderer_device::draw_page(const rectangle& cliprect, uint32_t* dst, ui { if (m_video_regs_1e != 0x0000) popmessage("vertical compression mode with non-0 step amount %04x offset %04x step %04x\n", m_video_regs_1c, m_video_regs_1d, m_video_regs_1e); - + logical_scanline = m_ycmp_table[scanline]; if (logical_scanline == 0xffffffff) return; } + uint32_t total_width; + uint32_t y_mask; + uint32_t screenwidth; + + + if (read_from_csspace && (attr & 0x8000)) // is this only available in high res mode, or always? + { + // just a guess based on this being set on the higher resolution tilemaps we've seen, could be 100% incorrect register + total_width = 1024; + y_mask = 0x200; + screenwidth = 640; + } + else + { + total_width = 512; + y_mask = 0x100; + screenwidth = 320; + } + + if (has_extended_tilemaps && (attr & 0x4000)) // is this only available in high res mode, or always? + { + y_mask <<= 1; // double height tilemap? + } + + const uint32_t drawwidthmask = total_width - 1; + y_mask--; // turn into actual mask + const uint32_t xscroll = scrollregs[0]; const uint32_t yscroll = scrollregs[1]; const uint32_t tilemap_rambase = tilemapregs[2]; - const uint32_t palettemap_rambase = tilemapregs[3]; + const uint32_t exattributemap_rambase = tilemapregs[3]; const int tile_width = (attr & 0x0030) >> 4; const uint32_t tile_h = 8 << ((attr & 0x00c0) >> 6); const uint32_t tile_w = 8 << (tile_width); - const uint32_t tile_count_x = 512 / tile_w; // all tilemaps are 512 pixels wide - const uint32_t bitmap_y = (logical_scanline + yscroll) & 0xff; // all tilemaps are 256 pixels high + const uint32_t tile_count_x = total_width / tile_w; // tilemaps are 512 or 1024 wide depending on screen mode? + const uint32_t bitmap_y = (logical_scanline + yscroll) & y_mask; // tilemaps are 256 or 512 high depending on screen mode? const uint32_t y0 = bitmap_y / tile_h; const uint32_t tile_scanline = bitmap_y % tile_h; const uint8_t bpp = attr & 0x0003; const uint32_t nc_bpp = ((bpp)+1) << 1; const uint32_t bits_per_row = nc_bpp * tile_w / 16; - const uint32_t words_per_tile = bits_per_row * tile_h; + //const uint32_t words_per_tile = bits_per_row * tile_h; const bool row_scroll = (ctrl & 0x0010); + uint8_t blendlevel = (m_video_regs_2a & 3) << 6; + + uint32_t words_per_tile; + + // good for gormiti, smartfp, wrlshunt, paccon, jak_totm, jak_s500, jak_gtg + if (has_extended_tilemaps && use_alt_tile_addressing) + { + words_per_tile = 8; + } + else + { + words_per_tile = bits_per_row * tile_h; + } int realxscroll = xscroll; if (row_scroll) { - // Tennis in My Wireless Sports confirms the need to add the scroll value here rather than rowscroll being screen-aligned - realxscroll += (int16_t)scrollram[(logical_scanline+yscroll) & 0xff]; + if (!has_extended_tilemaps) + { + // Tennis in My Wireless Sports confirms the need to add the scroll value here rather than rowscroll being screen-aligned + realxscroll += (int16_t)scrollram[(logical_scanline + yscroll) & 0xff]; + } + else + { + // the logic seems to be different on GPL16250, see Galaxian in paccon and Crazy Moto in myac220, is this mode be selected or did behavior just change? + realxscroll += (int16_t)scrollram[logical_scanline & 0xff]; + } } const int upperscrollbits = (realxscroll >> (tile_width + 3)); - const int endpos = (320 + tile_w) / tile_w; + const int endpos = (screenwidth + tile_w) / tile_w; + + int upperpalselect = 0; + if (has_extended_tilemaps && (tilegfxdata_addr & 0x80000000)) + upperpalselect = 1; + + tilegfxdata_addr &= 0x7ffffff; + for (uint32_t x0 = 0; x0 < endpos; x0++) { spg_renderer_device::blend_enable_t blend; spg_renderer_device::flipx_t flip_x; bool flip_y; - uint16_t tile; + uint32_t tile; uint32_t palette_offset; - if (!get_tile_info(tilemap_rambase, palettemap_rambase, (x0 + upperscrollbits) & (tile_count_x-1) , y0, tile_count_x, ctrl, attr, tile, blend, flip_x, flip_y, palette_offset, spc)) - continue; + // get tile info + const int realx0 = (x0 + upperscrollbits) & (tile_count_x - 1); + uint32_t tile_address = realx0 + (tile_count_x * y0); + + tile = (ctrl & 0x0004) ? spc.read_word(tilemap_rambase) : spc.read_word(tilemap_rambase + tile_address); + + if (!tile) + { + if (!has_extended_tilemaps) + { + // always skip on older SPG types? + continue; + } + else if (m_video_regs_7f & 0x0002) + { + // Galaga in paccon won't render '0' characters in the scoring table if you skip empty tiles, so maybe GPL16250 doesn't skip? - extra tile bits from extended read make no difference + + // probably not based on register m_video_regs_7f, but paccon galaga needs no skip, jak_gtg and jak_hmhsm needs to skip + //49 0100 1001 no skip (paccon galaga) + //4b 0100 1011 skip (paccon pacman) + //53 0101 0011 skip (jak_gtg, jak_hmhsm) + continue; + } + } + + + uint32_t tileattr = attr; + uint32_t tilectrl = ctrl; + + if (has_extended_tilemaps && use_alt_tile_addressing) + { + // in this mode what would be the 'palette' bits get used for extra tile bits (even if the usual 'extended table' mode is disabled?) + // used by smartfp + uint16_t exattribute = (ctrl & 0x0004) ? spc.read_word(exattributemap_rambase) : spc.read_word(exattributemap_rambase + tile_address / 2); + if (realx0 & 1) + exattribute >>= 8; + else + exattribute &= 0x00ff; + + tile |= (exattribute & 0x07) << 16; + //blendlevel = 0x1f; // hack + } + else if ((ctrl & 2) == 0) + { // -(1) bld(1) flip(2) pal(4) + + uint16_t exattribute = (ctrl & 0x0004) ? spc.read_word(exattributemap_rambase) : spc.read_word(exattributemap_rambase + tile_address / 2); + if (realx0 & 1) + exattribute >>= 8; + else + exattribute &= 0x00ff; + + + tileattr &= ~0x000c; + tileattr |= (exattribute >> 2) & 0x000c; // flip + + tileattr &= ~0x0f00; + tileattr |= (exattribute << 8) & 0x0f00; // palette + + tilectrl &= ~0x0100; + tilectrl |= (exattribute << 2) & 0x0100; // blend + } + + if (!has_extended_tilemaps) + blend = (tilectrl & 0x0100) ? BlendOn : BlendOff; + else + blend = ((/*tileattr & 0x4000 ||*/ tilectrl & 0x0100)) ? BlendOn : BlendOff; // is this logic even correct or should it just be like above? where is the extra enable needed? + + flip_x = (tileattr & 0x0004) ? FlipXOn : FlipXOff; + flip_y = (tileattr & 0x0008); + + palette_offset = (tileattr & 0x0f00) >> 4; + // got tile info + + if (upperpalselect) + palette_offset |= 0x200; palette_offset >>= nc_bpp; palette_offset <<= nc_bpp; - const int drawx = (x0 * tile_w) - (realxscroll & (tile_w-1)); - draw_tilestrip(blend,flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram); + const int drawx = (x0 * tile_w) - (realxscroll & (tile_w - 1)); + draw_tilestrip(read_from_csspace, screenwidth, drawwidthmask, blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel); } } -void spg_renderer_device::draw_sprite(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t base_addr, address_space &spc, uint16_t* paletteram, uint16_t* spriteram) +void spg_renderer_device::draw_sprite(bool read_from_csspace, bool has_extended_sprites, bool alt_extrasprite_hack, uint32_t palbank, bool highres, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t spritegfxdata_addr, uint32_t base_addr, address_space &spc, uint16_t* paletteram, uint16_t* spriteram) { - uint32_t tilegfxdata_addr = 0x40 * m_video_regs_22; - uint16_t tile = spriteram[base_addr + 0]; + uint32_t tilegfxdata_addr = spritegfxdata_addr; + uint32_t tile = spriteram[base_addr + 0]; int16_t x = spriteram[base_addr + 1]; int16_t y = spriteram[base_addr + 2]; uint16_t attr = spriteram[base_addr + 3]; @@ -397,79 +607,152 @@ void spg_renderer_device::draw_sprite(const rectangle& cliprect, uint32_t* dst, return; } + + uint32_t screenwidth = 320; +// uint32_t screenheight = 240; + uint32_t screenheight = 256; + uint32_t xmask = 0x1ff; + uint32_t ymask = 0x1ff; + + if (highres) + { + screenwidth = 640; +// screenheight = 480; + screenheight = 512; + xmask = 0x3ff; + ymask = 0x3ff; + } + const uint32_t tile_h = 8 << ((attr & 0x00c0) >> 6); const uint32_t tile_w = 8 << ((attr & 0x0030) >> 4); if (!(m_video_regs_42 & 0x0002)) { - x = (160 + x) - tile_w / 2; - y = (120 - y) - (tile_h / 2) + 8; + x = ((screenwidth/2) + x) - tile_w / 2; +// y = ((screenheight/2) - y) - (tile_h / 2) + 8; + y = ((screenheight/2) - y) - (tile_h / 2); } - x &= 0x01ff; - y &= 0x01ff; + x &= xmask; + y &= ymask; int firstline = y; int lastline = y + (tile_h - 1); - lastline &= 0x1ff; + lastline &= ymask; const spg_renderer_device::blend_enable_t blend = (attr & 0x4000) ? BlendOn : BlendOff; - const spg_renderer_device::flipx_t flip_x = (attr & 0x0004) ? FlipXOn : FlipXOff; + spg_renderer_device::flipx_t flip_x = (attr & 0x0004) ? FlipXOn : FlipXOff; const uint8_t bpp = attr & 0x0003; const uint32_t nc_bpp = ((bpp)+1) << 1; const uint32_t bits_per_row = nc_bpp * tile_w / 16; - const uint32_t words_per_tile = bits_per_row * tile_h; + uint8_t blendlevel = (m_video_regs_2a & 3) << 6; + + uint32_t words_per_tile; + + // good for gormiti, smartfp, wrlshunt, paccon, jak_totm, jak_s500, jak_gtg + if (has_extended_sprites && ((m_video_regs_42 & 0x0010) == 0x10)) + { + // paccon and smartfp use this mode + words_per_tile = 8; + + if (!alt_extrasprite_hack) // 1 extra word for each sprite + { + // before or after the 0 tile check? + tile |= (spriteram[(base_addr / 4) + 0x400] & 0x01ff) << 16; + blendlevel = ((spriteram[(base_addr / 4) + 0x400] & 0x3e00) >> 9) << 3; + } + else // jak_prft - no /4 to offset in this mode - 4 extra words per sprite instead ? (or is RAM content incorrect for one of these cases?) + { + tile |= spriteram[(base_addr) + 0x400] << 16; + blendlevel = ((spriteram[(base_addr) + 0x400] & 0x3e00) >> 9) << 3; + } + } + else + { + words_per_tile = bits_per_row * tile_h; + } + bool flip_y = (attr & 0x0008); + + // various games don't want the flip bits in the usual place, wrlshunt for example, there's probably a bit to control this + // and likewise these bits probably now have a different meaning, so this shouldn't be trusted + if (has_extended_sprites) + { + if (highres || alt_extrasprite_hack) + { + flip_x = FlipXOff; + flip_y = 0; + } + } + uint32_t palette_offset = (attr & 0x0f00) >> 4; + if (has_extended_sprites) + { + // guess, tkmag220 / myac220 don't set this bit and expect all sprite palettes to be from the same bank as background palettes + if (palbank & 1) + palette_offset |= 0x100; + + // many other gpl16250 sets have this bit set when they want the upper 256 colours on a per-sprite basis, seems like an extended feature + if (attr & 0x8000) + palette_offset |= 0x200; + } + // the Circuit Racing game in PDC100 needs this or some graphics have bad colours at the edges when turning as it leaves stray lower bits set palette_offset >>= nc_bpp; palette_offset <<= nc_bpp; - if (firstline < lastline) { int scanx = scanline - firstline; if ((scanx >= 0) && (scanline <= lastline)) { - draw_tilestrip(blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram); + draw_tilestrip(read_from_csspace, screenwidth, xmask, blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel); } } else { // clipped from top - int tempfirstline = firstline - 0x200; + int tempfirstline = firstline - (screenheight<<1); int templastline = lastline; int scanx = scanline - tempfirstline; if ((scanx >= 0) && (scanline <= templastline)) { - draw_tilestrip(blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram); + draw_tilestrip(read_from_csspace, screenwidth, xmask, blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel); } // clipped against the bottom tempfirstline = firstline; - templastline = lastline + 0x200; + templastline = lastline + (screenheight<<1); scanx = scanline - tempfirstline; if ((scanx >= 0) && (scanline <= templastline)) { - draw_tilestrip(blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram); + draw_tilestrip(read_from_csspace, screenwidth, xmask, blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel); } } } -void spg_renderer_device::draw_sprites(const rectangle &cliprect, uint32_t* dst, uint32_t scanline, int priority, address_space &spc, uint16_t* paletteram, uint16_t* spriteram, int sprlimit) +void spg_renderer_device::draw_sprites(bool read_from_csspace, bool has_extended_sprites, bool alt_extrasprite_hack, uint32_t palbank, bool highres, const rectangle &cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t spritegfxdata_addr, address_space &spc, uint16_t* paletteram, uint16_t* spriteram, int sprlimit) { if (!(m_video_regs_42 & 0x0001)) { return; } + // paccon suggests this, does older hardware have similar (if so, starting at what point?) or only GPL16250? + if (sprlimit == -1) + { + sprlimit = (m_video_regs_42 & 0xff00) >> 8; + if (sprlimit == 0) + sprlimit = 0x100; + } + for (uint32_t n = 0; n < sprlimit; n++) { - draw_sprite(cliprect, dst, scanline, priority, 4 * n, spc, paletteram, spriteram); + draw_sprite(read_from_csspace, has_extended_sprites, alt_extrasprite_hack, palbank, highres, cliprect, dst, scanline, priority, spritegfxdata_addr, 4 * n, spc, paletteram, spriteram); } } diff --git a/src/devices/machine/spg_renderer.h b/src/devices/machine/spg_renderer.h index cbdb7ccd8d2..50ecf6ff11c 100644 --- a/src/devices/machine/spg_renderer.h +++ b/src/devices/machine/spg_renderer.h @@ -14,14 +14,14 @@ public: spg_renderer_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); spg_renderer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void draw_sprites(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, address_space& spc, uint16_t* paletteram, uint16_t* spriteram, int sprlimit); - void draw_page(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram, uint16_t* scrollram); + void draw_sprites(bool read_from_csspace, bool has_extended_sprites, bool alt_extrasprite_hack, uint32_t palbank, bool highres, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t spritegfxdata_addr, address_space& spc, uint16_t* paletteram, uint16_t* spriteram, int sprlimit); + void draw_page(bool read_from_csspace, bool has_extended_tilemaps, bool use_alt_tile_addressing, uint32_t palbank, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram, uint16_t* scrollram, uint32_t which); + void apply_saturation_and_fade(bitmap_rgb32& bitmap, const rectangle& cliprect, int scanline); void set_video_reg_1c(uint16_t val) { m_video_regs_1c = val; update_vcmp_table(); } void set_video_reg_1d(uint16_t val) { m_video_regs_1d = val; update_vcmp_table(); } void set_video_reg_1e(uint16_t val) { m_video_regs_1e = val; update_vcmp_table(); } - void set_video_reg_22(uint16_t val) { m_video_regs_22 = val; } void set_video_reg_2a(uint16_t val) { m_video_regs_2a = val; } void set_video_reg_30(uint16_t val) { m_video_regs_30 = val; } void set_video_reg_3c(uint16_t val) { m_video_regs_3c = val; } @@ -30,12 +30,18 @@ public: uint16_t get_video_reg_1c(void) { return m_video_regs_1c; } uint16_t get_video_reg_1d(void) { return m_video_regs_1d; } uint16_t get_video_reg_1e(void) { return m_video_regs_1e; } - uint16_t get_video_reg_22(void) { return m_video_regs_22; } uint16_t get_video_reg_2a(void) { return m_video_regs_2a; } uint16_t get_video_reg_30(void) { return m_video_regs_30; } uint16_t get_video_reg_3c(void) { return m_video_regs_3c; } uint16_t get_video_reg_42(void) { return m_video_regs_42; } + // used by some hack logic for the gpl16250 rendering for now + void set_video_reg_7f(uint16_t val) { m_video_regs_7f = val; } + uint16_t get_video_reg_7f(void) { return m_video_regs_7f; } + + auto space_read_callback() { return m_space_read_cb.bind(); } + void set_video_spaces(address_space* cpuspace, address_space* cs_space, int csbase) { m_cpuspace = cpuspace; m_cs_space = cs_space; m_csbase = csbase; } + protected: virtual void device_start() override; @@ -54,22 +60,21 @@ protected: }; template<spg_renderer_device::blend_enable_t Blend, spg_renderer_device::flipx_t FlipX> - inline void draw_tilestrip(const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint16_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space &spc, uint16_t* palette); - - inline void draw_tilestrip(spg_renderer_device::blend_enable_t blend, spg_renderer_device::flipx_t flip_x, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint16_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space& spc, uint16_t* paletteram); + inline void draw_tilestrip(bool read_from_csspace, uint32_t screenwidth, uint32_t drawwidthmask, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint32_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space &spc, uint16_t* palette, uint8_t blendlevel); + inline void draw_tilestrip(bool read_from_csspace, uint32_t screenwidth, uint32_t drawwidthmask, spg_renderer_device::blend_enable_t blend, spg_renderer_device::flipx_t flip_x, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint32_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space& spc, uint16_t* paletteram, uint8_t blendlevel); - void draw_sprite(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t base_addr, address_space& spc, uint16_t* paletteram, uint16_t* spriteram); + inline void draw_sprite(bool read_from_csspace, bool has_extended_sprites, bool alt_extrasprite_hack, uint32_t palbank, bool highres, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t spritegfxdata_addr, uint32_t base_addr, address_space& spc, uint16_t* paletteram, uint16_t* spriteram); - inline bool get_tile_info(uint32_t tilemap_rambase, uint32_t palettemap_rambase, uint32_t x0, uint32_t y0, uint32_t tile_count_x, uint32_t ctrl, uint32_t attr, uint16_t& tile, spg_renderer_device::blend_enable_t& blend, spg_renderer_device::flipx_t& flip_x, bool& flip_y, uint32_t& palette_offset, address_space& spc); - inline void draw_linemap(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram); + inline void draw_linemap(bool has_extended_tilemaps, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram); - uint8_t mix_channel(uint8_t a, uint8_t b); + inline uint8_t mix_channel(uint8_t a, uint8_t b, uint8_t alpha); uint8_t m_rgb5_to_rgb8[32]; uint32_t m_rgb555_to_rgb888[0x8000]; private: + void update_vcmp_table(); uint16_t m_video_regs_1c; @@ -77,14 +82,20 @@ private: uint16_t m_video_regs_1e; uint16_t m_video_regs_2a; - uint16_t m_video_regs_22; uint16_t m_video_regs_42; uint16_t m_video_regs_30; uint16_t m_video_regs_3c; + uint16_t m_video_regs_7f; uint32_t m_ycmp_table[480]; + + devcb_read16 m_space_read_cb; + + address_space* m_cpuspace; + address_space* m_cs_space; + int m_csbase; }; DECLARE_DEVICE_TYPE(SPG_RENDERER, spg_renderer_device) diff --git a/src/mame/audio/asteroid.cpp b/src/mame/audio/asteroid.cpp index cbae5ac9efb..ba965b77f4f 100644 --- a/src/mame/audio/asteroid.cpp +++ b/src/mame/audio/asteroid.cpp @@ -281,7 +281,7 @@ static DISCRETE_SOUND_START(astdelux_discrete) DISCRETE_SOUND_END -WRITE8_MEMBER(asteroid_state::asteroid_explode_w) +void asteroid_state::asteroid_explode_w(uint8_t data) { m_discrete->write(ASTEROID_EXPLODE_DATA,(data&0x3c)>>2); // Volume /* We will modify the pitch data to send the divider value. */ @@ -303,13 +303,13 @@ WRITE8_MEMBER(asteroid_state::asteroid_explode_w) m_discrete->write(ASTEROID_EXPLODE_PITCH, data); } -WRITE8_MEMBER(asteroid_state::asteroid_thump_w) +void asteroid_state::asteroid_thump_w(uint8_t data) { m_discrete->write(ASTEROID_THUMP_EN, data & 0x10); m_discrete->write(ASTEROID_THUMP_DATA, data & 0x0f); } -WRITE8_MEMBER(asteroid_state::asteroid_noise_reset_w) +void asteroid_state::asteroid_noise_reset_w(uint8_t data) { m_discrete->write(ASTEROID_NOISE_RESET, 0); } diff --git a/src/mame/audio/astrof.cpp b/src/mame/audio/astrof.cpp index 663013e1bc8..63ea0bdf085 100644 --- a/src/mame/audio/astrof.cpp +++ b/src/mame/audio/astrof.cpp @@ -33,7 +33,7 @@ #define CHANNEL_FUEL 3 -WRITE8_MEMBER(astrof_state::astrof_audio_1_w) +void astrof_state::astrof_audio_1_w(uint8_t data) { uint8_t rising_bits = data & ~m_port_1_last; @@ -78,7 +78,7 @@ WRITE8_MEMBER(astrof_state::astrof_audio_1_w) } -WRITE8_MEMBER(astrof_state::astrof_audio_2_w) +void astrof_state::astrof_audio_2_w(uint8_t data) { uint8_t rising_bits = data & ~m_port_2_last; @@ -156,7 +156,7 @@ void astrof_state::astrof_audio(machine_config &config) * *************************************/ -WRITE8_MEMBER(astrof_state::spfghmk2_audio_w) +void astrof_state::spfghmk2_audio_w(uint8_t data) { /* nothing yet */ } @@ -175,7 +175,7 @@ void astrof_state::spfghmk2_audio(machine_config &config) * *************************************/ -WRITE8_MEMBER(astrof_state::tomahawk_audio_w) +void astrof_state::tomahawk_audio_w(uint8_t data) { /* D0 - sonar */ diff --git a/src/mame/audio/avalnche.cpp b/src/mame/audio/avalnche.cpp index 471c73a8e5c..3f63d9ca6b1 100644 --- a/src/mame/audio/avalnche.cpp +++ b/src/mame/audio/avalnche.cpp @@ -24,7 +24,7 @@ Avalanche memory audio output handlers ***************************************************************************/ -WRITE8_MEMBER(avalnche_state::avalnche_noise_amplitude_w) +void avalnche_state::avalnche_noise_amplitude_w(uint8_t data) { m_discrete->write(AVALNCHE_SOUNDLVL_DATA, data & 0x3f); } diff --git a/src/mame/audio/aztarac.cpp b/src/mame/audio/aztarac.cpp index 24d0a930fd3..4297509c8a7 100644 --- a/src/mame/audio/aztarac.cpp +++ b/src/mame/audio/aztarac.cpp @@ -11,12 +11,12 @@ #include "includes/aztarac.h" -READ16_MEMBER(aztarac_state::sound_r) +uint16_t aztarac_state::sound_r() { return m_sound_status & 0x01; } -WRITE16_MEMBER(aztarac_state::sound_w) +void aztarac_state::sound_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) { @@ -28,19 +28,19 @@ WRITE16_MEMBER(aztarac_state::sound_w) } } -READ8_MEMBER(aztarac_state::snd_command_r) +uint8_t aztarac_state::snd_command_r() { m_sound_status |= 0x01; m_sound_status &= ~0x20; return m_soundlatch->read(); } -READ8_MEMBER(aztarac_state::snd_status_r) +uint8_t aztarac_state::snd_status_r() { return m_sound_status & ~0x01; } -WRITE8_MEMBER(aztarac_state::snd_status_w) +void aztarac_state::snd_status_w(uint8_t data) { m_sound_status &= ~0x10; } diff --git a/src/mame/audio/bsktball.cpp b/src/mame/audio/bsktball.cpp index 3acf428145b..082322e41ff 100644 --- a/src/mame/audio/bsktball.cpp +++ b/src/mame/audio/bsktball.cpp @@ -12,13 +12,13 @@ /*************************************************************************** Sound handlers ***************************************************************************/ -WRITE8_MEMBER(bsktball_state::bsktball_bounce_w) +void bsktball_state::bsktball_bounce_w(uint8_t data) { m_discrete->write(BSKTBALL_CROWD_DATA, data & 0x0f); // Crowd m_discrete->write(BSKTBALL_BOUNCE_EN, data & 0x10); // Bounce } -WRITE8_MEMBER(bsktball_state::bsktball_note_w) +void bsktball_state::bsktball_note_w(uint8_t data) { m_discrete->write(BSKTBALL_NOTE_DATA, data); // Note } diff --git a/src/mame/audio/llander.cpp b/src/mame/audio/llander.cpp index 80429f032f4..82324455beb 100644 --- a/src/mame/audio/llander.cpp +++ b/src/mame/audio/llander.cpp @@ -83,13 +83,13 @@ static DISCRETE_SOUND_START(llander_discrete) DISCRETE_OUTPUT(NODE_90, 65534.0/(9.2+9.2+600+1000)) // Take the output from the mixer DISCRETE_SOUND_END -WRITE8_MEMBER(asteroid_state::llander_snd_reset_w) +void asteroid_state::llander_snd_reset_w(uint8_t data) { /* Resets the LFSR that is used for the white noise generator */ m_discrete->write(LLANDER_NOISE_RESET, 0); /* Reset */ } -WRITE8_MEMBER(asteroid_state::llander_sounds_w) +void asteroid_state::llander_sounds_w(uint8_t data) { m_discrete->write(LLANDER_THRUST_DATA, data & 0x07); /* Thrust volume */ m_discrete->write(LLANDER_TONE3K_EN, data & 0x10); /* Tone 3KHz enable */ diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp index 01d1f86e677..89e2ab0bb6b 100644 --- a/src/mame/drivers/abc1600.cpp +++ b/src/mame/drivers/abc1600.cpp @@ -122,7 +122,7 @@ enum // bus_r - //------------------------------------------------- -READ8_MEMBER( abc1600_state::bus_r ) +uint8_t abc1600_state::bus_r(offs_t offset) { uint8_t data = 0; @@ -264,7 +264,7 @@ READ8_MEMBER( abc1600_state::bus_r ) // bus_w - //------------------------------------------------- -WRITE8_MEMBER( abc1600_state::bus_w ) +void abc1600_state::bus_w(offs_t offset, uint8_t data) { uint8_t cs = (m_cs7 << 7) | ((offset >> 5) & 0x3f); @@ -360,7 +360,7 @@ WRITE8_MEMBER( abc1600_state::bus_w ) // fw0_w - //------------------------------------------------- -WRITE8_MEMBER( abc1600_state::fw0_w ) +void abc1600_state::fw0_w(uint8_t data) { /* @@ -397,7 +397,7 @@ WRITE8_MEMBER( abc1600_state::fw0_w ) // fw1_w - //------------------------------------------------- -WRITE8_MEMBER( abc1600_state::fw1_w ) +void abc1600_state::fw1_w(uint8_t data) { /* @@ -428,7 +428,7 @@ WRITE8_MEMBER( abc1600_state::fw1_w ) // spec_contr_reg_w - //------------------------------------------------- -WRITE8_MEMBER( abc1600_state::spec_contr_reg_w ) +void abc1600_state::spec_contr_reg_w(uint8_t data) { int state = BIT(data, 3); @@ -602,41 +602,41 @@ void abc1600_state::update_drdy2() // Z80DART //------------------------------------------------- -READ8_MEMBER( abc1600_state::dart_r ) +uint8_t abc1600_state::dart_r(offs_t offset) { return m_dart->ba_cd_r(A2_A1 ^ 0x03); } -WRITE8_MEMBER( abc1600_state::dart_w ) +void abc1600_state::dart_w(offs_t offset, uint8_t data) { m_dart->ba_cd_w(A2_A1 ^ 0x03, data); } //------------------------------------------------- -// SCC8530_INTERFACE( sc_intf ) +// SCC8530 //------------------------------------------------- -READ8_MEMBER( abc1600_state::scc_r ) +uint8_t abc1600_state::scc_r(offs_t offset) { return m_scc->ab_dc_r(A2_A1); } -WRITE8_MEMBER( abc1600_state::scc_w ) +void abc1600_state::scc_w(offs_t offset, uint8_t data) { m_scc->ab_dc_w(A2_A1, data); } //------------------------------------------------- -// Z8536_INTERFACE( cio_intf ) +// Z8536 //------------------------------------------------- -READ8_MEMBER( abc1600_state::cio_r ) +uint8_t abc1600_state::cio_r(offs_t offset) { return m_cio->read(A2_A1); } -WRITE8_MEMBER( abc1600_state::cio_w ) +void abc1600_state::cio_w(offs_t offset, uint8_t data) { m_cio->write(A2_A1, data); } @@ -828,17 +828,15 @@ void abc1600_state::machine_start() void abc1600_state::machine_reset() { - address_space &program = m_maincpu->space(AS_PROGRAM); - // clear special control register for (int i = 0; i < 8; i++) { - spec_contr_reg_w(program, 0, i); + spec_contr_reg_w(i); } // clear floppy registers - fw0_w(program, 0, 0); - fw1_w(program, 0, 0); + fw0_w(0); + fw1_w(0); // clear NMI m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE); diff --git a/src/mame/drivers/actfancr.cpp b/src/mame/drivers/actfancr.cpp index 496d0bbb17a..14c6642b530 100644 --- a/src/mame/drivers/actfancr.cpp +++ b/src/mame/drivers/actfancr.cpp @@ -51,7 +51,7 @@ uint8_t actfancr_state::triothep_control_r() /******************************************************************************/ -WRITE8_MEMBER(actfancr_state::buffer_spriteram_w) +void actfancr_state::buffer_spriteram_w(uint8_t data) { uint8_t *src = reinterpret_cast<uint8_t *>(memshare("spriteram")->ptr()); // copy to a 16-bit region for our sprite draw code too diff --git a/src/mame/drivers/adam.cpp b/src/mame/drivers/adam.cpp index eb4b4e4387b..c4052ae3162 100644 --- a/src/mame/drivers/adam.cpp +++ b/src/mame/drivers/adam.cpp @@ -347,7 +347,7 @@ enum // mreq_r - memory request read //------------------------------------------------- -READ8_MEMBER( adam_state::mreq_r ) +uint8_t adam_state::mreq_r(offs_t offset) { int bmreq = 0, biorq = 1, eos_enable = 1, boot_rom_cs = 1, aux_decode_1 = 1, aux_rom_cs = 1, cas1 = 1, cas2 = 1, cs1 = 1, cs2 = 1, cs3 = 1, cs4 = 1; @@ -470,7 +470,7 @@ READ8_MEMBER( adam_state::mreq_r ) // mreq_w - memory request write //------------------------------------------------- -WRITE8_MEMBER( adam_state::mreq_w ) +void adam_state::mreq_w(offs_t offset, uint8_t data) { int bmreq = 0, biorq = 1, aux_rom_cs = 1, cas1 = 1, cas2 = 1; @@ -526,7 +526,7 @@ WRITE8_MEMBER( adam_state::mreq_w ) // iorq_r - I/O request read //------------------------------------------------- -READ8_MEMBER( adam_state::iorq_r ) +uint8_t adam_state::iorq_r(offs_t offset) { int bmreq = 1, biorq = 0, aux_rom_cs = 1, cas1 = 1, cas2 = 1; @@ -535,11 +535,11 @@ READ8_MEMBER( adam_state::iorq_r ) switch ((offset >> 5) & 0x07) { case 1: - data = adamnet_r(space, 0); + data = adamnet_r(); break; case 3: - data = mioc_r(space, 0); + data = mioc_r(); break; case 5: @@ -569,18 +569,18 @@ READ8_MEMBER( adam_state::iorq_r ) // iorq_w - I/O request write //------------------------------------------------- -WRITE8_MEMBER( adam_state::iorq_w ) +void adam_state::iorq_w(offs_t offset, uint8_t data) { int bmreq = 1, biorq = 0, aux_rom_cs = 1, cas1 = 1, cas2 = 1; switch ((offset >> 5) & 0x07) { case 1: - adamnet_w(space, 0, data); + adamnet_w(data); break; case 3: - mioc_w(space, 0, data); + mioc_w(data); break; case 4: @@ -619,7 +619,7 @@ WRITE8_MEMBER( adam_state::iorq_w ) // mioc_r - //------------------------------------------------- -READ8_MEMBER( adam_state::mioc_r ) +uint8_t adam_state::mioc_r() { return m_mioc & 0x0f; } @@ -629,7 +629,7 @@ READ8_MEMBER( adam_state::mioc_r ) // mioc_w - //------------------------------------------------- -WRITE8_MEMBER( adam_state::mioc_w ) +void adam_state::mioc_w(uint8_t data) { /* @@ -659,7 +659,7 @@ WRITE8_MEMBER( adam_state::mioc_w ) // adamnet_r - //------------------------------------------------- -READ8_MEMBER( adam_state::adamnet_r ) +uint8_t adam_state::adamnet_r() { return m_an & 0x0f; } @@ -669,7 +669,7 @@ READ8_MEMBER( adam_state::adamnet_r ) // adamnet_w - //------------------------------------------------- -WRITE8_MEMBER( adam_state::adamnet_w ) +void adam_state::adamnet_w(uint8_t data) { /* diff --git a/src/mame/drivers/aeroboto.cpp b/src/mame/drivers/aeroboto.cpp index 9ec149faaa6..7957ef66f23 100644 --- a/src/mame/drivers/aeroboto.cpp +++ b/src/mame/drivers/aeroboto.cpp @@ -36,7 +36,7 @@ Revisions: #include "speaker.h" -READ8_MEMBER(aeroboto_state::aeroboto_201_r) +uint8_t aeroboto_state::aeroboto_201_r() { /* if you keep a button pressed during boot, the game will expect this */ /* serie of values to be returned from 3004, and display "PASS 201" if it is */ @@ -60,19 +60,19 @@ WRITE_LINE_MEMBER(aeroboto_state::vblank_irq) } } -READ8_MEMBER(aeroboto_state::aeroboto_irq_ack_r) +uint8_t aeroboto_state::aeroboto_irq_ack_r() { m_maincpu->set_input_line(0, CLEAR_LINE); return 0xff; } -READ8_MEMBER(aeroboto_state::aeroboto_2973_r) +uint8_t aeroboto_state::aeroboto_2973_r() { m_mainram[0x02be] = 0; return 0xff; } -WRITE8_MEMBER(aeroboto_state::aeroboto_1a2_w) +void aeroboto_state::aeroboto_1a2_w(uint8_t data) { m_mainram[0x01a2] = data; if (data) diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp index 0c1ee42e98e..638208e532b 100644 --- a/src/mame/drivers/aerofgt.cpp +++ b/src/mame/drivers/aerofgt.cpp @@ -75,34 +75,34 @@ Verification still needed for the other PCBs. #include "speaker.h" -WRITE8_MEMBER(aerofgt_state::karatblzbl_soundlatch_w) +void aerofgt_state::karatblzbl_soundlatch_w(uint8_t data) { m_soundlatch->write(data); m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -READ8_MEMBER(aerofgt_state::pending_command_r) +uint8_t aerofgt_state::pending_command_r() { return m_soundlatch->pending_r(); } -WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w) +void aerofgt_state::aerofgt_sh_bankswitch_w(uint8_t data) { m_soundbank->set_entry(data & 0x03); } -WRITE8_MEMBER(aerofgt_state::spinlbrk_sh_bankswitch_w) +void aerofgt_state::spinlbrk_sh_bankswitch_w(uint8_t data) { m_soundbank->set_entry(data & 0x01); } -WRITE16_MEMBER(aerofgt_state::pspikesb_oki_banking_w) +void aerofgt_state::pspikesb_oki_banking_w(uint16_t data) { m_oki->set_rom_bank(data & 3); } /*TODO: sound banking. */ -WRITE16_MEMBER(aerofgt_state::aerfboo2_okim6295_banking_w) +void aerofgt_state::aerfboo2_okim6295_banking_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // if(ACCESSING_BITS_8_15) // { @@ -110,40 +110,40 @@ WRITE16_MEMBER(aerofgt_state::aerfboo2_okim6295_banking_w) // } } -WRITE8_MEMBER(aerofgt_state::aerfboot_okim6295_banking_w) +void aerofgt_state::aerfboot_okim6295_banking_w(uint8_t data) { /*bit 2 (0x4) set too?*/ if (data & 0x4) m_okibank->set_entry(data & 0x3); } -WRITE8_MEMBER(aerofgt_state::karatblzbl_d7759_write_port_0_w) +void aerofgt_state::karatblzbl_d7759_write_port_0_w(uint8_t data) { m_upd7759->port_w(data); m_upd7759->start_w(0); m_upd7759->start_w(1); } -WRITE8_MEMBER(aerofgt_state::karatblzbl_d7759_reset_w) +void aerofgt_state::karatblzbl_d7759_reset_w(uint8_t data) { m_upd7759->reset_w(BIT(data, 7)); } template<int Layer> -WRITE16_MEMBER(aerofgt_state::vram_w) +void aerofgt_state::vram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram[Layer][offset]); m_tilemap[Layer]->mark_tile_dirty(offset); } template<int Layer> -WRITE16_MEMBER(aerofgt_state::scrollx_w) +void aerofgt_state::scrollx_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_scrollx[Layer]); } template<int Layer> -WRITE16_MEMBER(aerofgt_state::scrolly_w) +void aerofgt_state::scrolly_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_scrolly[Layer]); } diff --git a/src/mame/drivers/airbustr.cpp b/src/mame/drivers/airbustr.cpp index 9c757d3f2e5..50d0d447d76 100644 --- a/src/mame/drivers/airbustr.cpp +++ b/src/mame/drivers/airbustr.cpp @@ -229,7 +229,7 @@ Code at 505: waits for bit 1 to go low, writes command, waits for bit /* Read/Write Handlers */ -READ8_MEMBER(airbustr_state::devram_r) +uint8_t airbustr_state::devram_r(address_space &space, offs_t offset) { // There's an MCU here, possibly switch (offset) @@ -262,17 +262,17 @@ READ8_MEMBER(airbustr_state::devram_r) } } -WRITE8_MEMBER(airbustr_state::master_nmi_trigger_w) +void airbustr_state::master_nmi_trigger_w(uint8_t data) { m_slave->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -WRITE8_MEMBER(airbustr_state::master_bankswitch_w) +void airbustr_state::master_bankswitch_w(uint8_t data) { m_masterbank->set_entry(data & 0x07); } -WRITE8_MEMBER(airbustr_state::slave_bankswitch_w) +void airbustr_state::slave_bankswitch_w(uint8_t data) { m_slavebank->set_entry(data & 0x07); @@ -285,12 +285,12 @@ WRITE8_MEMBER(airbustr_state::slave_bankswitch_w) m_pandora->set_clear_bitmap(BIT(data, 5)); } -WRITE8_MEMBER(airbustr_state::sound_bankswitch_w) +void airbustr_state::sound_bankswitch_w(uint8_t data) { m_audiobank->set_entry(data & 0x07); } -READ8_MEMBER(airbustr_state::soundcommand_status_r) +uint8_t airbustr_state::soundcommand_status_r() { // bits: 2 <-> ? 1 <-> soundlatch full 0 <-> soundlatch2 empty return 4 | (m_soundlatch[0]->pending_r() << 1) | !m_soundlatch[1]->pending_r(); @@ -298,20 +298,20 @@ READ8_MEMBER(airbustr_state::soundcommand_status_r) template<int Layer> -WRITE8_MEMBER(airbustr_state::videoram_w) +void airbustr_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[Layer][offset] = data; m_tilemap[Layer]->mark_tile_dirty(offset); } template<int Layer> -WRITE8_MEMBER(airbustr_state::colorram_w) +void airbustr_state::colorram_w(offs_t offset, uint8_t data) { m_colorram[Layer][offset] = data; m_tilemap[Layer]->mark_tile_dirty(offset); } -WRITE8_MEMBER(airbustr_state::coin_counter_w) +void airbustr_state::coin_counter_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, data & 1); machine().bookkeeping().coin_counter_w(1, data & 2); @@ -699,7 +699,7 @@ ROM_END void airbustr_state::init_airbustr() { - m_master->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8_delegate(*this, FUNC(airbustr_state::devram_r))); // protection device lives here + m_master->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8m_delegate(*this, FUNC(airbustr_state::devram_r))); // protection device lives here } diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp index cba3c579e0e..6daf1ff2c29 100644 --- a/src/mame/drivers/ajax.cpp +++ b/src/mame/drivers/ajax.cpp @@ -136,7 +136,7 @@ INPUT_PORTS_END 0 / 2MBANK */ -WRITE8_MEMBER(ajax_state::sound_bank_w) +void ajax_state::sound_bank_w(uint8_t data) { int bank_A, bank_B; @@ -157,7 +157,7 @@ void ajax_state::volume_callback0(uint8_t data) m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11); } -WRITE8_MEMBER(ajax_state::k007232_extvol_w) +void ajax_state::k007232_extvol_w(uint8_t data) { /* channel A volume (mono) */ m_k007232_2->set_volume(0, (data & 0x0f) * 0x11/2, (data & 0x0f) * 0x11/2); diff --git a/src/mame/drivers/aliens.cpp b/src/mame/drivers/aliens.cpp index ddf4af77576..61323201803 100644 --- a/src/mame/drivers/aliens.cpp +++ b/src/mame/drivers/aliens.cpp @@ -20,7 +20,7 @@ Preliminary driver by: #include "speaker.h" -WRITE8_MEMBER(aliens_state::aliens_coin_counter_w) +void aliens_state::aliens_coin_counter_w(uint8_t data) { /* bits 0-1 = coin counters */ machine().bookkeeping().coin_counter_w(0, data & 0x01); @@ -42,7 +42,7 @@ WRITE8_MEMBER(aliens_state::aliens_coin_counter_w) #endif } -WRITE8_MEMBER(aliens_state::aliens_sh_irqtrigger_w) +void aliens_state::aliens_sh_irqtrigger_w(uint8_t data) { m_soundlatch->write(data); m_audiocpu->set_input_line(0, HOLD_LINE); @@ -60,7 +60,7 @@ void aliens_state::aliens_snd_bankswitch_w(uint8_t data) } -READ8_MEMBER(aliens_state::k052109_051960_r) +uint8_t aliens_state::k052109_051960_r(offs_t offset) { if (m_k052109->get_rmrd_line() == CLEAR_LINE) { @@ -75,7 +75,7 @@ READ8_MEMBER(aliens_state::k052109_051960_r) return m_k052109->read(offset); } -WRITE8_MEMBER(aliens_state::k052109_051960_w) +void aliens_state::k052109_051960_w(offs_t offset, uint8_t data) { if (offset >= 0x3800 && offset < 0x3808) m_k051960->k051937_w(offset - 0x3800, data); diff --git a/src/mame/drivers/altos486.cpp b/src/mame/drivers/altos486.cpp index c7c8825e5c6..7a62b912028 100644 --- a/src/mame/drivers/altos486.cpp +++ b/src/mame/drivers/altos486.cpp @@ -134,7 +134,7 @@ void altos486_state::altos486_z80_io(address_map &map) void altos486_state::altos486(machine_config &config) { - I80186(config, m_maincpu, 32_MHz_XTAL / 4); + I80186(config, m_maincpu, 32_MHz_XTAL / 2); // divided by 2 externally and by 2 again internally to operate at 8 MHz m_maincpu->set_addrmap(AS_PROGRAM, &altos486_state::altos486_mem); m_maincpu->set_addrmap(AS_IO, &altos486_state::altos486_io); m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); // yes, really diff --git a/src/mame/drivers/ampoker2.cpp b/src/mame/drivers/ampoker2.cpp index c216303d114..8f660b72250 100644 --- a/src/mame/drivers/ampoker2.cpp +++ b/src/mame/drivers/ampoker2.cpp @@ -482,7 +482,7 @@ void ampoker2_state::machine_start() */ -WRITE8_MEMBER(ampoker2_state::port30_w) +void ampoker2_state::port30_w(uint8_t data) /*------------------------------------------------- PORT_30 C000H ;OUTPUT PORT 30H --------------------------------------------------- @@ -496,7 +496,7 @@ WRITE8_MEMBER(ampoker2_state::port30_w) } -WRITE8_MEMBER(ampoker2_state::port31_w) +void ampoker2_state::port31_w(uint8_t data) /*------------------------------------------------- PORT_31 C001H ;OUTPUT PORT 31H --------------------------------------------------- @@ -514,7 +514,7 @@ WRITE8_MEMBER(ampoker2_state::port31_w) } -WRITE8_MEMBER(ampoker2_state::port32_w) +void ampoker2_state::port32_w(uint8_t data) /*------------------------------------------------- PORT_32 C002H ;OUTPUT PORT 32H --------------------------------------------------- @@ -529,7 +529,7 @@ WRITE8_MEMBER(ampoker2_state::port32_w) } -WRITE8_MEMBER(ampoker2_state::port33_w) +void ampoker2_state::port33_w(uint8_t data) /*------------------------------------------------- PORT_33 C003H ;OUTPUT PORT 33H --------------------------------------------------- @@ -543,7 +543,7 @@ WRITE8_MEMBER(ampoker2_state::port33_w) } -WRITE8_MEMBER(ampoker2_state::port34_w) +void ampoker2_state::port34_w(uint8_t data) /*------------------------------------------------- PORT_34 C004H ;OUTPUT PORT 34H --------------------------------------------------- @@ -558,7 +558,7 @@ WRITE8_MEMBER(ampoker2_state::port34_w) } -WRITE8_MEMBER(ampoker2_state::port35_w) +void ampoker2_state::port35_w(uint8_t data) /*------------------------------------------------- PORT_35 C005H ;OUTPUT PORT 35H --------------------------------------------------- @@ -572,7 +572,7 @@ WRITE8_MEMBER(ampoker2_state::port35_w) } -WRITE8_MEMBER(ampoker2_state::port36_w) +void ampoker2_state::port36_w(uint8_t data) /*------------------------------------------------- PORT_36 C006H ;OUTPUT PORT 36H --------------------------------------------------- @@ -590,7 +590,7 @@ WRITE8_MEMBER(ampoker2_state::port36_w) } -WRITE8_MEMBER(ampoker2_state::watchdog_reset_w) +void ampoker2_state::watchdog_reset_w(uint8_t data) /*------------------------------------------------- PORT_37 C007H ;OUTPUT PORT 37H --------------------------------------------------- diff --git a/src/mame/drivers/amspdwy.cpp b/src/mame/drivers/amspdwy.cpp index c25682bca61..4acfac17ad0 100644 --- a/src/mame/drivers/amspdwy.cpp +++ b/src/mame/drivers/amspdwy.cpp @@ -54,19 +54,19 @@ uint8_t amspdwy_state::amspdwy_wheel_r( int index ) return m_wheel_return[index] | ioport(portnames[index])->read(); } -READ8_MEMBER(amspdwy_state::amspdwy_wheel_0_r) +uint8_t amspdwy_state::amspdwy_wheel_0_r() { // player 1 return amspdwy_wheel_r(0); } -READ8_MEMBER(amspdwy_state::amspdwy_wheel_1_r) +uint8_t amspdwy_state::amspdwy_wheel_1_r() { // player 2 return amspdwy_wheel_r(1); } -READ8_MEMBER(amspdwy_state::amspdwy_sound_r) +uint8_t amspdwy_state::amspdwy_sound_r() { return (m_ym2151->status_r() & ~0x30) | ioport("IN0")->read(); } diff --git a/src/mame/drivers/angelkds.cpp b/src/mame/drivers/angelkds.cpp index 6de1129f59c..15e2457d6bf 100644 --- a/src/mame/drivers/angelkds.cpp +++ b/src/mame/drivers/angelkds.cpp @@ -427,22 +427,22 @@ sound related ? */ -WRITE8_MEMBER(angelkds_state::angelkds_main_sound_w) +void angelkds_state::angelkds_main_sound_w(offs_t offset, uint8_t data) { m_sound[offset] = data; } -READ8_MEMBER(angelkds_state::angelkds_main_sound_r) +uint8_t angelkds_state::angelkds_main_sound_r(offs_t offset) { return m_sound2[offset]; } -WRITE8_MEMBER(angelkds_state::angelkds_sub_sound_w) +void angelkds_state::angelkds_sub_sound_w(offs_t offset, uint8_t data) { m_sound2[offset] = data; } -READ8_MEMBER(angelkds_state::angelkds_sub_sound_r) +uint8_t angelkds_state::angelkds_sub_sound_r(offs_t offset) { return m_sound[offset]; } diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp index 8fb2137437b..a20a69a1fc1 100644 --- a/src/mame/drivers/apollo.cpp +++ b/src/mame/drivers/apollo.cpp @@ -206,7 +206,7 @@ uint8_t apollo_get_ram_config_byte(void) { apollo_instruction_hook must be called by the CPU core before executing each instruction ***************************************************************************/ -READ32_MEMBER(apollo_state::apollo_instruction_hook) +uint32_t apollo_state::apollo_instruction_hook(offs_t offset) { static uint16_t idle_counter = 0; @@ -289,7 +289,7 @@ u16 apollo_state::apollo_irq_acknowledge(offs_t offset) DN3500 Cache Control/Status Register at 0x10200 ***************************************************************************/ -WRITE8_MEMBER(apollo_state::cache_control_register_w){ +void apollo_state::cache_control_register_w(offs_t offset, uint8_t data){ if (apollo_is_dn5500()) { SLOG1(("Error: writing DN5500 Cache Status Register at offset %02x = %02x", offset, data)); @@ -302,7 +302,7 @@ WRITE8_MEMBER(apollo_state::cache_control_register_w){ } } -READ8_MEMBER(apollo_state::cache_status_register_r){ +uint8_t apollo_state::cache_status_register_r(offs_t offset){ uint8_t data = cache_status_register; if (apollo_is_dn5500()) { @@ -328,13 +328,13 @@ void apollo_set_cache_status_register(device_t *device,uint8_t mask, uint8_t dat DN3500 Task Alias Register at 0x10300 ***************************************************************************/ -WRITE8_MEMBER(apollo_state::task_alias_register_w){ +void apollo_state::task_alias_register_w(offs_t offset, uint8_t data){ task_alias_register = data; apollo_set_cache_status_register(this,0x07, data); SLOG(("writing Task Alias Register at offset %02x = %02x",offset, data)); } -READ8_MEMBER(apollo_state::task_alias_register_r){ +uint8_t apollo_state::task_alias_register_r(offs_t offset){ uint8_t data = 0xff; SLOG(("reading Task Alias Register at offset %02x = %02x", offset, data)); return data; @@ -344,12 +344,12 @@ READ8_MEMBER(apollo_state::task_alias_register_r){ DN3000/DN3500 Latch Page on Parity Error Register at 0x9300/0x11300 ***************************************************************************/ -WRITE16_MEMBER(apollo_state::latch_page_on_parity_error_register_w){ +void apollo_state::latch_page_on_parity_error_register_w(offs_t offset, uint16_t data){ latch_page_on_parity_error_register = data; SLOG1(("writing Latch Page on Error Parity Register at offset %02x = %04x", offset*2, data)); } -READ16_MEMBER(apollo_state::latch_page_on_parity_error_register_r){ +uint16_t apollo_state::latch_page_on_parity_error_register_r(offs_t offset){ uint16_t data = latch_page_on_parity_error_register; SLOG2(("reading Latch Page on Error Parity Register at offset %02x = %04x", offset*2, data)); return data; @@ -359,12 +359,12 @@ READ16_MEMBER(apollo_state::latch_page_on_parity_error_register_r){ DN3500 Master REQ Register at 0x11600 ***************************************************************************/ -WRITE8_MEMBER(apollo_state::master_req_register_w){ +void apollo_state::master_req_register_w(offs_t offset, uint8_t data){ master_req_register = data; SLOG2(("writing Master REQ Register at offset %02x = %02x", offset, data)); } -READ8_MEMBER(apollo_state::master_req_register_r){ +uint8_t apollo_state::master_req_register_r(offs_t offset){ uint8_t data = 0xff; SLOG1(("reading Master REQ Register at offset %02x = %02x", offset, data)); return data; @@ -374,7 +374,7 @@ READ8_MEMBER(apollo_state::master_req_register_r){ DN3500 Selective Clear Locations at 0x11600 ***************************************************************************/ -WRITE16_MEMBER(apollo_state::selective_clear_locations_w){ +void apollo_state::selective_clear_locations_w(offs_t offset, uint16_t data){ SLOG2(("writing Selective Clear Locations at offset %02x = %02x", offset*2, data)); switch (offset * 2) { case 0x00: // Clear All @@ -394,7 +394,7 @@ WRITE16_MEMBER(apollo_state::selective_clear_locations_w){ } } -READ16_MEMBER(apollo_state::selective_clear_locations_r){ +uint16_t apollo_state::selective_clear_locations_r(offs_t offset){ uint16_t data = 0xffff; SLOG1(("reading Selective Clear Locations at offset %02x = %02x", offset*2, data)); return data; @@ -404,7 +404,7 @@ READ16_MEMBER(apollo_state::selective_clear_locations_r){ DN3000/DN3500 RAM with parity (and null proc loop delay for DomainOS) ***************************************************************************/ -READ32_MEMBER(apollo_state::ram_with_parity_r){ +uint32_t apollo_state::ram_with_parity_r(offs_t offset, uint32_t mem_mask){ uint32_t data = m_messram_ptr[parity_error_offset+offset]; SLOG2(("memory dword read with parity error at %08x = %08x & %08x parity_byte=%04x", @@ -424,7 +424,7 @@ READ32_MEMBER(apollo_state::ram_with_parity_r){ return data; } -WRITE32_MEMBER(apollo_state::ram_with_parity_w){ +void apollo_state::ram_with_parity_w(offs_t offset, uint32_t data, uint32_t mem_mask){ COMBINE_DATA(m_messram_ptr+offset); if (apollo_csr_get_control_register() & APOLLO_CSR_CR_FORCE_BAD_PARITY) { @@ -444,7 +444,7 @@ WRITE32_MEMBER(apollo_state::ram_with_parity_w){ // no more than 192 read/write handlers may be used // see table_assign_handler in memory.c if (parity_error_handler_install_counter < 40) { - m_maincpu->space(AS_PROGRAM).install_read_handler(ram_base_address+offset*4, ram_base_address+offset*4+3, read32_delegate(*this, FUNC(apollo_state::ram_with_parity_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(ram_base_address+offset*4, ram_base_address+offset*4+3, read32s_delegate(*this, FUNC(apollo_state::ram_with_parity_r))); parity_error_handler_is_installed = 1; parity_error_handler_install_counter++; } @@ -467,7 +467,7 @@ WRITE32_MEMBER(apollo_state::ram_with_parity_w){ DN3000/DN3500 unmapped memory ***************************************************************************/ -READ32_MEMBER(apollo_state::apollo_unmapped_r) +uint32_t apollo_state::apollo_unmapped_r(offs_t offset, uint32_t mem_mask) { offs_t address = offset * 4; @@ -496,7 +496,7 @@ READ32_MEMBER(apollo_state::apollo_unmapped_r) return 0xffffffff; } -WRITE32_MEMBER(apollo_state::apollo_unmapped_w) +void apollo_state::apollo_unmapped_w(offs_t offset, uint32_t data, uint32_t mem_mask) { SLOG(("unmapped memory dword write to %08x = %08x & %08x", offset * 4, data, mem_mask)); @@ -508,7 +508,7 @@ WRITE32_MEMBER(apollo_state::apollo_unmapped_w) DN3000/DN3500 ROM write ***************************************************************************/ -WRITE32_MEMBER(apollo_state::apollo_rom_w) +void apollo_state::apollo_rom_w(offs_t offset, uint32_t data, uint32_t mem_mask) { offs_t address = offset * 4; offs_t pc = m_maincpu->pcbase(); @@ -524,7 +524,7 @@ WRITE32_MEMBER(apollo_state::apollo_rom_w) DN3000/DN3500 AT Bus I/O space ***************************************************************************/ -READ16_MEMBER(apollo_state::apollo_atbus_io_r) +uint16_t apollo_state::apollo_atbus_io_r(offs_t offset, uint16_t mem_mask) { uint32_t isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7); @@ -536,7 +536,7 @@ READ16_MEMBER(apollo_state::apollo_atbus_io_r) return data; } -WRITE16_MEMBER(apollo_state::apollo_atbus_io_w) +void apollo_state::apollo_atbus_io_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint32_t isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7); @@ -550,7 +550,7 @@ WRITE16_MEMBER(apollo_state::apollo_atbus_io_w) DN3000/DN3500 AT Bus memory space ***************************************************************************/ -READ16_MEMBER(apollo_state::apollo_atbus_memory_r) +uint16_t apollo_state::apollo_atbus_memory_r(offs_t offset, uint16_t mem_mask) { uint16_t data; @@ -561,7 +561,7 @@ READ16_MEMBER(apollo_state::apollo_atbus_memory_r) return data; } -WRITE16_MEMBER(apollo_state::apollo_atbus_memory_w) +void apollo_state::apollo_atbus_memory_w(offs_t offset, uint16_t data, uint16_t mem_mask) { SLOG2(("apollo_atbus_memory_w at %08x = %04x & %04x", ATBUS_MEMORY_BASE + offset*2, data, mem_mask)); @@ -573,7 +573,7 @@ WRITE16_MEMBER(apollo_state::apollo_atbus_memory_w) DN3000/DN3500 AT Bus unmapped read/write ***************************************************************************/ -READ16_MEMBER(apollo_state::apollo_atbus_unmap_io_r) +uint16_t apollo_state::apollo_atbus_unmap_io_r(offs_t offset, uint16_t mem_mask) { // ISA bus has 0xff for unmapped addresses uint16_t data = 0xffff; @@ -582,13 +582,13 @@ READ16_MEMBER(apollo_state::apollo_atbus_unmap_io_r) return data; } -WRITE16_MEMBER(apollo_state::apollo_atbus_unmap_io_w) +void apollo_state::apollo_atbus_unmap_io_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint32_t isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7); SLOG1(("apollo_atbus_unmap_io_w at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask)); } -READ8_MEMBER(apollo_state::apollo_atbus_unmap_r) +uint8_t apollo_state::apollo_atbus_unmap_r(offs_t offset, uint8_t mem_mask) { // ISA bus has 0xff for unmapped addresses uint8_t data = 0xff; @@ -596,7 +596,7 @@ READ8_MEMBER(apollo_state::apollo_atbus_unmap_r) return data; } -WRITE8_MEMBER(apollo_state::apollo_atbus_unmap_w) +void apollo_state::apollo_atbus_unmap_w(offs_t offset, uint8_t data, uint8_t mem_mask) { SLOG1(("apollo_atbus_unmap_w at %08x = %02x & %02x", ATBUS_MEMORY_BASE + offset, data, mem_mask)); } @@ -606,11 +606,11 @@ WRITE8_MEMBER(apollo_state::apollo_atbus_unmap_w) Strange: documented but not used ***************************************************************************/ -WRITE8_MEMBER(apollo_state::dn5500_memory_present_register_w){ +void apollo_state::dn5500_memory_present_register_w(offs_t offset, uint8_t data){ SLOG(("Error: writing DN5500 Memory Present Register at offset %02x = %02x", offset, data)); } -READ8_MEMBER(apollo_state::dn5500_memory_present_register_r){ +uint8_t apollo_state::dn5500_memory_present_register_r(offs_t offset){ uint8_t data = DN5500_MEM_PRESENT_BYTE; SLOG(("reading DN5500 Memory Present Register at offset %02x = %02x", offset, data)); return data; @@ -620,11 +620,11 @@ READ8_MEMBER(apollo_state::dn5500_memory_present_register_r){ DN5500 11500 Registers at 0x11500-0x115ff (undocumented, what does it do?) ***************************************************************************/ -WRITE8_MEMBER(apollo_state::dn5500_11500_w){ +void apollo_state::dn5500_11500_w(offs_t offset, uint8_t data){ SLOG1(("writing DN5500 11500 at offset %02x = %02x", offset, data)); } -READ8_MEMBER(apollo_state::dn5500_11500_r){ +uint8_t apollo_state::dn5500_11500_r(offs_t offset){ uint8_t data = 0xff; SLOG1(("reading DN5500 11500 at offset %02x = %02x", offset, data)); return data; @@ -634,12 +634,12 @@ READ8_MEMBER(apollo_state::dn5500_11500_r){ DN5500 I/O Protection Map at 0x7000000-0x700FFFF ***************************************************************************/ -WRITE8_MEMBER(apollo_state::dn5500_io_protection_map_w){ +void apollo_state::dn5500_io_protection_map_w(offs_t offset, uint8_t data){ // TODO SLOG1(("writing DN5500 I/O Protection Map at offset %02x = %02x", offset, data)); } -READ8_MEMBER(apollo_state::dn5500_io_protection_map_r){ +uint8_t apollo_state::dn5500_io_protection_map_r(offs_t offset){ uint8_t data = 0xff; SLOG1(("reading DN5500 I/O Protection Map at offset %02x = %02x", offset, data)); return data; @@ -650,7 +650,7 @@ READ8_MEMBER(apollo_state::dn5500_io_protection_map_r){ DN3000/DN3500 at f8000000 - ffffffff (used by fpa and/or color7?) ***************************************************************************/ -READ32_MEMBER(apollo_state::apollo_f8_r){ +uint32_t apollo_state::apollo_f8_r(offs_t offset, uint32_t mem_mask){ offs_t address = 0xf8000000 + offset * 4; uint32_t data = 0xffffffff; SLOG2(("unexpected memory dword read from %08x = %08x & %08x", @@ -658,7 +658,7 @@ READ32_MEMBER(apollo_state::apollo_f8_r){ return data; } -WRITE32_MEMBER(apollo_state::apollo_f8_w){ +void apollo_state::apollo_f8_w(offs_t offset, uint32_t data, uint32_t mem_mask){ offs_t address = 0xf8000000 +offset * 4; SLOG2(("unexpected memory dword write to %08x = %08x & %08x", @@ -916,7 +916,7 @@ void apollo_state::machine_reset() } #if 0 - m_maincpu->set_instruction_hook(read32_delegate(*this, FUNC(apollo_state::apollo_instruction_hook))); + m_maincpu->set_instruction_hook(read32sm_delegate(*this, FUNC(apollo_state::apollo_instruction_hook))); #endif } @@ -954,8 +954,8 @@ void apollo_state::machine_start(){ MACHINE_START_CALL_MEMBER(apollo); // install nop handlers for unmapped ISA bus addresses - m_isa->install16_device((ATBUS_IO_BASE - 0x40000) >> 7, (ATBUS_IO_END - 0x40000) >> 7, read16_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_r)), write16_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_w))); - m_isa->install_memory(0, ATBUS_MEMORY_END, read8_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_r)), write8_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_w))); + m_isa->install16_device((ATBUS_IO_BASE - 0x40000) >> 7, (ATBUS_IO_END - 0x40000) >> 7, read16s_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_r)), write16s_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_w))); + m_isa->install_memory(0, ATBUS_MEMORY_END, read8s_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_r)), write8s_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_w))); } /*************************************************************************** diff --git a/src/mame/drivers/appoooh.cpp b/src/mame/drivers/appoooh.cpp index 839da3daa58..86e97564fb5 100644 --- a/src/mame/drivers/appoooh.cpp +++ b/src/mame/drivers/appoooh.cpp @@ -199,7 +199,7 @@ WRITE_LINE_MEMBER(appoooh_state::adpcm_int) } /* adpcm address write */ -WRITE8_MEMBER(appoooh_state::adpcm_w) +void appoooh_state::adpcm_w(uint8_t data) { m_adpcm_address = data << 8; m_msm->reset_w(0); diff --git a/src/mame/drivers/aquarius.cpp b/src/mame/drivers/aquarius.cpp index 8ee2e9f7b3c..b1d9abb6d3b 100644 --- a/src/mame/drivers/aquarius.cpp +++ b/src/mame/drivers/aquarius.cpp @@ -67,7 +67,7 @@ X-6026 : Roll of paper for the printer mark cycle. Control must be returned at that time to the cassette routine in order to maintain data integrity. */ -READ8_MEMBER(aquarius_state::cassette_r) +uint8_t aquarius_state::cassette_r() { return ((m_cassette)->input() < +0.0) ? 0 : 1; } @@ -78,7 +78,7 @@ READ8_MEMBER(aquarius_state::cassette_r) will appear on audio output. Sound port is a simple one bit I/O and therefore it must be toggled at a specific rate under software control. */ -WRITE8_MEMBER(aquarius_state::cassette_w) +void aquarius_state::cassette_w(uint8_t data) { m_speaker->level_w(BIT(data, 0)); m_cassette->output(BIT(data, 0) ? +1.0 : -1.0); @@ -97,7 +97,7 @@ WRITE8_MEMBER(aquarius_state::cassette_w) + + + +++++ +++++++++ */ -READ8_MEMBER(aquarius_state::vsync_r) +uint8_t aquarius_state::vsync_r() { return m_screen->vblank() ? 0 : 1; } @@ -108,7 +108,7 @@ READ8_MEMBER(aquarius_state::vsync_r) map with the upper 16K. A 1 in this bit indicates swapping. This bit is reset after power up initialization. */ -WRITE8_MEMBER(aquarius_state::mapper_w) +void aquarius_state::mapper_w(uint8_t data) { } @@ -118,7 +118,7 @@ WRITE8_MEMBER(aquarius_state::mapper_w) to send status from PRNHASK pin at bit D0. A 1 indicates printer is ready, 0 means not ready. */ -READ8_MEMBER(aquarius_state::printer_r) +uint8_t aquarius_state::printer_r() { return 1; /* ready */ } @@ -130,7 +130,7 @@ READ8_MEMBER(aquarius_state::printer_r) baudrate is variable. In BASIC this is a 1200 baud printer port for the 40 column thermal printer. */ -WRITE8_MEMBER(aquarius_state::printer_w) +void aquarius_state::printer_w(uint8_t data) { } @@ -146,7 +146,7 @@ WRITE8_MEMBER(aquarius_state::printer_w) Therefore the keyboard can be scanned by placing a specific scanning pattern in (A) or (B) and reading the result returned on rows. */ -READ8_MEMBER(aquarius_state::keyboard_r) +uint8_t aquarius_state::keyboard_r(offs_t offset) { uint8_t result = 0xff; @@ -181,12 +181,12 @@ READ8_MEMBER(aquarius_state::keyboard_r) routine. For game cartridge the lock pattern is generated from data in the game cartridge itself. */ -WRITE8_MEMBER(aquarius_state::scrambler_w) +void aquarius_state::scrambler_w(uint8_t data) { m_scrambler = data; } -READ8_MEMBER(aquarius_state::cartridge_r) +uint8_t aquarius_state::cartridge_r(offs_t offset) { uint8_t data = 0; if (m_cart->exists()) diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp index 0af2be3c662..a9a9687eb90 100644 --- a/src/mame/drivers/arkanoid.cpp +++ b/src/mame/drivers/arkanoid.cpp @@ -873,13 +873,13 @@ void arkanoid_state::hexa_map(address_map &map) map(0xe000, 0xe7ff).ram().w(FUNC(arkanoid_state::arkanoid_videoram_w)).share("videoram"); } -READ8_MEMBER(arkanoid_state::hexaa_f000_r) +uint8_t arkanoid_state::hexaa_f000_r() { // return m_hexaa_from_sub; return machine().rand(); } -WRITE8_MEMBER(arkanoid_state::hexaa_f000_w) +void arkanoid_state::hexaa_f000_w(uint8_t data) { m_hexaa_from_main = data; } @@ -904,12 +904,12 @@ void arkanoid_state::hexaa_sub_map(address_map &map) } -WRITE8_MEMBER(arkanoid_state::hexaa_sub_80_w) +void arkanoid_state::hexaa_sub_80_w(uint8_t data) { m_hexaa_from_sub = data; } -READ8_MEMBER(arkanoid_state::hexaa_sub_90_r) +uint8_t arkanoid_state::hexaa_sub_90_r() { return m_hexaa_from_main; // return machine().rand(); @@ -2114,10 +2114,10 @@ ROM_END void arkanoid_state::arkanoid_bootleg_init() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0xf000, 0xf000, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f000_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xf002, 0xf002, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f002_r))); - m_maincpu->space(AS_PROGRAM).install_write_handler(0xd018, 0xd018, write8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d018_w))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xd008, 0xd008, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d008_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xf000, 0xf000, read8smo_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f000_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xf002, 0xf002, read8smo_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f002_r))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0xd018, 0xd018, write8smo_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d018_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xd008, 0xd008, read8smo_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d008_r))); } void arkanoid_state::init_arkangc() @@ -2195,12 +2195,12 @@ void arkanoid_state::init_tetrsark() ROM[x] = ROM[x] ^ 0x94; } - m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8smo_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w))); } void arkanoid_state::init_tetrsark2() { - m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8smo_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w))); } diff --git a/src/mame/drivers/artmagic.cpp b/src/mame/drivers/artmagic.cpp index cebde8ce792..4c7f43c87b2 100644 --- a/src/mame/drivers/artmagic.cpp +++ b/src/mame/drivers/artmagic.cpp @@ -98,7 +98,7 @@ void artmagic_state::machine_reset() * *************************************/ -WRITE16_MEMBER(artmagic_state::control_w) +void artmagic_state::control_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_control[offset]); @@ -133,7 +133,7 @@ void artmagic_state::device_timer(emu_timer &timer, device_timer_id id, int para } -READ16_MEMBER(artmagic_state::ultennis_hack_r) +uint16_t artmagic_state::ultennis_hack_r() { /* IRQ5 points to: jsr (a5); rte */ uint32_t pc = m_maincpu->pc(); @@ -377,7 +377,7 @@ READ_LINE_MEMBER(artmagic_state::prot_r) } -WRITE16_MEMBER(artmagic_state::protection_bit_w) +void artmagic_state::protection_bit_w(offs_t offset, uint16_t data) { /* shift in the new bit based on the offset */ m_prot_input[m_prot_input_index] <<= 1; @@ -1157,7 +1157,7 @@ void artmagic_state::init_ultennis() m_protection_handler = &artmagic_state::ultennis_protection; /* additional (protection?) hack */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(*this, FUNC(artmagic_state::ultennis_hack_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16smo_delegate(*this, FUNC(artmagic_state::ultennis_hack_r))); } diff --git a/src/mame/drivers/asterix.cpp b/src/mame/drivers/asterix.cpp index 97cff42f8e8..086d4477dbf 100644 --- a/src/mame/drivers/asterix.cpp +++ b/src/mame/drivers/asterix.cpp @@ -27,13 +27,13 @@ TODO: #if 0 -READ16_MEMBER(asterix_state::control2_r) +uint16_t asterix_state::control2_r() { return m_cur_control2; } #endif -WRITE16_MEMBER(asterix_state::control2_w) +void asterix_state::control2_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) { @@ -77,13 +77,13 @@ void asterix_state::device_timer(emu_timer &timer, device_timer_id id, int param } } -WRITE8_MEMBER(asterix_state::sound_arm_nmi_w) +void asterix_state::sound_arm_nmi_w(uint8_t data) { m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); timer_set(attotime::from_usec(5), TIMER_NMI); } -WRITE16_MEMBER(asterix_state::sound_irq_w) +void asterix_state::sound_irq_w(uint16_t data) { m_audiocpu->set_input_line(0, HOLD_LINE); } @@ -92,7 +92,7 @@ WRITE16_MEMBER(asterix_state::sound_irq_w) // You're not supposed to laugh. // This emulation is grossly overkill but hey, I'm having fun. #if 0 -WRITE16_MEMBER(asterix_state::protection_w) +void asterix_state::protection_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(m_prot + offset); @@ -130,7 +130,7 @@ WRITE16_MEMBER(asterix_state::protection_w) } #endif -WRITE16_MEMBER(asterix_state::protection_w) +void asterix_state::protection_w(address_space &space, offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(m_prot + offset); diff --git a/src/mame/drivers/asteroid.cpp b/src/mame/drivers/asteroid.cpp index d3480749f66..3162a133510 100644 --- a/src/mame/drivers/asteroid.cpp +++ b/src/mame/drivers/asteroid.cpp @@ -291,12 +291,12 @@ WRITE_LINE_MEMBER(asteroid_state::coin_counter_right_w) * *************************************/ -READ8_MEMBER(asteroid_state::earom_read) +uint8_t asteroid_state::earom_read() { return m_earom->data(); } -WRITE8_MEMBER(asteroid_state::earom_write) +void asteroid_state::earom_write(offs_t offset, uint8_t data) { m_earom->set_address(offset & 0x3f); m_earom->set_data(data); @@ -1174,7 +1174,7 @@ void asteroid_state::init_asteroidb() void asteroid_state::init_asterock() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2007, read8_delegate(*this, FUNC(asteroid_state::asterock_IN0_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2007, read8sm_delegate(*this, FUNC(asteroid_state::asterock_IN0_r))); } diff --git a/src/mame/drivers/astrocde.cpp b/src/mame/drivers/astrocde.cpp index f3123075e8a..cb8c2cb98ae 100644 --- a/src/mame/drivers/astrocde.cpp +++ b/src/mame/drivers/astrocde.cpp @@ -141,20 +141,20 @@ * *************************************/ -WRITE8_MEMBER(astrocde_state::protected_ram_enable_w) +void astrocde_state::protected_ram_enable_w(uint8_t data) { m_ram_write_enable = true; } -READ8_MEMBER(astrocde_state::protected_ram_r) +uint8_t astrocde_state::protected_ram_r(offs_t offset) { m_ram_write_enable = false; return m_protected_ram ? m_protected_ram[offset] : m_nvram[offset]; } -WRITE8_MEMBER(astrocde_state::protected_ram_w) +void astrocde_state::protected_ram_w(offs_t offset, uint8_t data) { if (m_ram_write_enable) (m_protected_ram ? m_protected_ram : m_nvram)[offset] = data; @@ -169,7 +169,7 @@ WRITE8_MEMBER(astrocde_state::protected_ram_w) * *************************************/ -WRITE8_MEMBER(seawolf2_state::sound_1_w)// Port 40 +void seawolf2_state::sound_1_w(uint8_t data) // Port 40 { uint8_t rising_bits = data & ~m_port_1_last; m_port_1_last = data; @@ -183,7 +183,7 @@ WRITE8_MEMBER(seawolf2_state::sound_1_w)// Port 40 } -WRITE8_MEMBER(seawolf2_state::sound_2_w)// Port 41 +void seawolf2_state::sound_2_w(uint8_t data) // Port 41 { uint8_t rising_bits = data & ~m_port_2_last; m_port_2_last = data; @@ -253,13 +253,13 @@ CUSTOM_INPUT_MEMBER(ebases_state::trackball_r) } -WRITE8_MEMBER(ebases_state::trackball_select_w) +void ebases_state::trackball_select_w(uint8_t data) { m_input_select = data & 3; } -WRITE8_MEMBER(ebases_state::coin_w) +void ebases_state::coin_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, data & 1); } @@ -286,7 +286,7 @@ WRITE_LINE_MEMBER(astrocde_state::gorf_sound_switch_w) * *************************************/ -WRITE8_MEMBER(astrocde_state::demndrgn_banksw_w) +void astrocde_state::demndrgn_banksw_w(uint8_t data) { int bank = (data >> 5) & 3; m_bank4000->set_bank(bank); @@ -304,7 +304,7 @@ CUSTOM_INPUT_MEMBER(demndrgn_state::joystick_r) } -WRITE8_MEMBER(demndrgn_state::sound_w) +void demndrgn_state::sound_w(uint8_t data) { logerror("Trigger sound sample 0x%02x\n",data); } @@ -318,9 +318,9 @@ WRITE8_MEMBER(demndrgn_state::sound_w) *************************************/ -WRITE8_MEMBER(astrocde_state::profpac_banksw_w) +void astrocde_state::profpac_banksw_w(uint8_t data) { - demndrgn_banksw_w(space, 0, data); + demndrgn_banksw_w(data); if (data & 0x80) { @@ -343,7 +343,7 @@ WRITE8_MEMBER(astrocde_state::profpac_banksw_w) * *************************************/ -WRITE8_MEMBER(tenpindx_state::lamp_w) +void tenpindx_state::lamp_w(offs_t offset, uint8_t data) { /* lamps */ if (offset == 0) @@ -365,14 +365,14 @@ WRITE8_MEMBER(tenpindx_state::lamp_w) } -WRITE8_MEMBER(tenpindx_state::counter_w) +void tenpindx_state::counter_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); if (data & 0xfc) osd_printf_debug("tenpindx_counter_w = %02X\n", data); } -WRITE8_MEMBER(tenpindx_state::lights_w) +void tenpindx_state::lights_w(uint8_t data) { /* "flashlights" */ int which = data >> 4; diff --git a/src/mame/drivers/astrof.cpp b/src/mame/drivers/astrof.cpp index 8862a3ff6d0..0418872e0de 100644 --- a/src/mame/drivers/astrof.cpp +++ b/src/mame/drivers/astrof.cpp @@ -81,7 +81,7 @@ * *************************************/ -READ8_MEMBER(astrof_state::irq_clear_r) +uint8_t astrof_state::irq_clear_r() { m_maincpu->set_input_line(0, CLEAR_LINE); @@ -270,21 +270,21 @@ void astrof_state::tomahawk_get_pens( pen_t *pens ) } -WRITE8_MEMBER(astrof_state::astrof_videoram_w) +void astrof_state::astrof_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_colorram[offset >> 1] = *m_astrof_color & 0x0e; } -WRITE8_MEMBER(astrof_state::tomahawk_videoram_w) +void astrof_state::tomahawk_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_colorram[offset >> 1] = (*m_astrof_color & 0x0e) | ((*m_astrof_color & 0x01) << 4); } -WRITE8_MEMBER(astrof_state::video_control_1_w) +void astrof_state::video_control_1_w(uint8_t data) { m_flipscreen = ((data >> 0) & 0x01) & ioport("CAB")->read(); @@ -312,7 +312,7 @@ void astrof_state::astrof_set_video_control_2( uint8_t data ) /* D4-D7 - not connected */ } -WRITE8_MEMBER(astrof_state::astrof_video_control_2_w) +void astrof_state::astrof_video_control_2_w(uint8_t data) { astrof_set_video_control_2(data); m_screen->update_partial(m_screen->vpos()); @@ -330,7 +330,7 @@ void astrof_state::spfghmk2_set_video_control_2( uint8_t data ) /* D3-D7 - not connected */ } -WRITE8_MEMBER(astrof_state::spfghmk2_video_control_2_w) +void astrof_state::spfghmk2_video_control_2_w(uint8_t data) { spfghmk2_set_video_control_2(data); m_screen->update_partial(m_screen->vpos()); @@ -347,7 +347,7 @@ void astrof_state::tomahawk_set_video_control_2( uint8_t data ) m_red_on = (data & 0x08) ? true : false; } -WRITE8_MEMBER(astrof_state::tomahawk_video_control_2_w) +void astrof_state::tomahawk_video_control_2_w(uint8_t data) { tomahawk_set_video_control_2(data); m_screen->update_partial(m_screen->vpos()); @@ -429,28 +429,28 @@ uint32_t astrof_state::screen_update_tomahawk(screen_device &screen, bitmap_rgb3 * *************************************/ -READ8_MEMBER(astrof_state::shoot_r) +uint8_t astrof_state::shoot_r() { /* not really sure about this */ return machine().rand() & 8; } -READ8_MEMBER(astrof_state::abattle_coin_prot_r) +uint8_t astrof_state::abattle_coin_prot_r() { m_abattle_count = (m_abattle_count + 1) % 0x0101; return m_abattle_count ? 0x07 : 0x00; } -READ8_MEMBER(astrof_state::afire_coin_prot_r) +uint8_t astrof_state::afire_coin_prot_r() { m_abattle_count = m_abattle_count ^ 0x01; return m_abattle_count ? 0x07 : 0x00; } -READ8_MEMBER(astrof_state::tomahawk_protection_r) +uint8_t astrof_state::tomahawk_protection_r() { /* flip the byte */ return bitswap<8>(*m_tomahawk_protection, 0, 1, 2, 3, 4, 5, 6, 7); @@ -1341,8 +1341,8 @@ void astrof_state::init_abattle() rom[i] = prom[rom[i]]; /* set up protection handlers */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8smo_delegate(*this, FUNC(astrof_state::shoot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8smo_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r))); } @@ -1353,8 +1353,8 @@ void astrof_state::init_afire() rom[i] = ~rom[i]; /* set up protection handlers */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::afire_coin_prot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8smo_delegate(*this, FUNC(astrof_state::shoot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8smo_delegate(*this, FUNC(astrof_state::afire_coin_prot_r))); } @@ -1365,15 +1365,15 @@ void astrof_state::init_sstarbtl() rom[i] = ~rom[i]; /* set up protection handlers */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8smo_delegate(*this, FUNC(astrof_state::shoot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8smo_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r))); } void astrof_state::init_acombat3() { /* set up protection handlers */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8smo_delegate(*this, FUNC(astrof_state::shoot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8smo_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r))); } diff --git a/src/mame/drivers/atarig1.cpp b/src/mame/drivers/atarig1.cpp index 78e6253ac26..a7859b9ad14 100644 --- a/src/mame/drivers/atarig1.cpp +++ b/src/mame/drivers/atarig1.cpp @@ -48,7 +48,7 @@ void atarig1_state::video_int_ack_w(uint16_t data) * *************************************/ -WRITE16_MEMBER(atarig1_state::mo_command_w) +void atarig1_state::mo_command_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(m_mo_command); m_rle->command_write((data == 0 && m_is_pitfight) ? ATARIRLE_COMMAND_CHECKSUM : ATARIRLE_COMMAND_DRAW); @@ -62,14 +62,14 @@ WRITE16_MEMBER(atarig1_state::mo_command_w) * *************************************/ -WRITE16_MEMBER(atarig1_state::a2d_select_w) +void atarig1_state::a2d_select_w(offs_t offset, uint16_t data) { if (m_adc.found()) m_adc->address_offset_start_w(offset, 0); } -READ16_MEMBER(atarig1_state::a2d_data_r) +uint16_t atarig1_state::a2d_data_r() { if (m_adc.found()) return m_adc->data_r() << 8; @@ -113,7 +113,7 @@ void atarig1_state::device_post_load() } -READ16_MEMBER(atarig1_state::pitfightb_cheap_slapstic_r) +uint16_t atarig1_state::pitfightb_cheap_slapstic_r(offs_t offset) { int result = m_bslapstic_base[offset & 0xfff]; @@ -143,7 +143,7 @@ READ16_MEMBER(atarig1_state::pitfightb_cheap_slapstic_r) void atarig1_state::pitfightb_cheap_slapstic_init() { /* install a read handler */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16_delegate(*this, FUNC(atarig1_state::pitfightb_cheap_slapstic_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16sm_delegate(*this, FUNC(atarig1_state::pitfightb_cheap_slapstic_r))); m_bslapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0x38000); /* allocate memory for a copy of bank 0 */ diff --git a/src/mame/drivers/atarig42.cpp b/src/mame/drivers/atarig42.cpp index 876501e6ddb..a39b2d36ab7 100644 --- a/src/mame/drivers/atarig42.cpp +++ b/src/mame/drivers/atarig42.cpp @@ -59,14 +59,14 @@ void atarig42_state::machine_start() * *************************************/ -WRITE8_MEMBER(atarig42_state::a2d_select_w) +void atarig42_state::a2d_select_w(offs_t offset, uint8_t data) { if (m_adc.found()) m_adc->address_offset_start_w(offset, 0); } -READ8_MEMBER(atarig42_state::a2d_data_r) +uint8_t atarig42_state::a2d_data_r(offs_t offset) { if (!m_adc.found()) return 0xff; @@ -78,7 +78,7 @@ READ8_MEMBER(atarig42_state::a2d_data_r) } -WRITE16_MEMBER(atarig42_state::io_latch_w) +void atarig42_state::io_latch_w(offs_t offset, uint16_t data, uint16_t mem_mask) { /* upper byte */ if (ACCESSING_BITS_8_15) @@ -105,7 +105,7 @@ WRITE16_MEMBER(atarig42_state::io_latch_w) } -WRITE16_MEMBER(atarig42_state::mo_command_w) +void atarig42_state::mo_command_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(m_mo_command); m_rle->command_write((data == 0) ? ATARIRLE_COMMAND_CHECKSUM : ATARIRLE_COMMAND_DRAW); @@ -231,7 +231,7 @@ void atarig42_0x200_state::roadriot_sloop_tweak(int offset) } -READ16_MEMBER(atarig42_0x200_state::roadriot_sloop_data_r) +uint16_t atarig42_0x200_state::roadriot_sloop_data_r(offs_t offset) { roadriot_sloop_tweak(offset); if (offset < 0x78000/2) @@ -241,7 +241,7 @@ READ16_MEMBER(atarig42_0x200_state::roadriot_sloop_data_r) } -WRITE16_MEMBER(atarig42_0x200_state::roadriot_sloop_data_w) +void atarig42_0x200_state::roadriot_sloop_data_w(offs_t offset, uint16_t data) { roadriot_sloop_tweak(offset); } @@ -288,7 +288,7 @@ void atarig42_0x400_state::guardians_sloop_tweak(int offset) } -READ16_MEMBER(atarig42_0x400_state::guardians_sloop_data_r) +uint16_t atarig42_0x400_state::guardians_sloop_data_r(offs_t offset) { guardians_sloop_tweak(offset); if (offset < 0x78000/2) @@ -298,7 +298,7 @@ READ16_MEMBER(atarig42_0x400_state::guardians_sloop_data_r) } -WRITE16_MEMBER(atarig42_0x400_state::guardians_sloop_data_w) +void atarig42_0x400_state::guardians_sloop_data_w(offs_t offset, uint16_t data) { guardians_sloop_tweak(offset); } @@ -825,7 +825,7 @@ void atarig42_0x200_state::init_roadriot() m_playfield_base = 0x400; address_space &main = m_maincpu->space(AS_PROGRAM); - main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_r)), write16_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_w))); + main.install_readwrite_handler(0x000000, 0x07ffff, read16sm_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_r)), write16sm_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_w))); m_sloop_base = (uint16_t *)memregion("maincpu")->base(); /* @@ -860,7 +860,7 @@ void atarig42_0x400_state::init_guardian() *(uint16_t *)&memregion("maincpu")->base()[0x80000] = 0x4E75; address_space &main = m_maincpu->space(AS_PROGRAM); - main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_r)), write16_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_w))); + main.install_readwrite_handler(0x000000, 0x07ffff, read16sm_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_r)), write16sm_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_w))); m_sloop_base = (uint16_t *)memregion("maincpu")->base(); /* diff --git a/src/mame/drivers/atarigt.cpp b/src/mame/drivers/atarigt.cpp index e17cbfc0c1e..30fdeef7acd 100644 --- a/src/mame/drivers/atarigt.cpp +++ b/src/mame/drivers/atarigt.cpp @@ -137,7 +137,7 @@ void atarigt_state::cage_irq_callback(uint8_t data) * *************************************/ -READ32_MEMBER(atarigt_state::special_port2_r) +uint32_t atarigt_state::special_port2_r() { int temp = m_service_io->read(); temp ^= 0x0001; /* /A2DRDY always high for now */ @@ -145,7 +145,7 @@ READ32_MEMBER(atarigt_state::special_port2_r) } -READ32_MEMBER(atarigt_state::special_port3_r) +uint32_t atarigt_state::special_port3_r() { int temp = m_coin_io->read(); if (m_video_int_state) temp ^= 0x0001; @@ -187,7 +187,7 @@ inline void atarigt_state::compute_fake_pots(int *pots) } -READ8_MEMBER(atarigt_state::analog_port_r) +uint8_t atarigt_state::analog_port_r(offs_t offset) { if (!m_adc.found()) return 0xff; @@ -224,7 +224,7 @@ READ8_MEMBER(atarigt_state::analog_port_r) * *************************************/ -WRITE32_MEMBER(atarigt_state::latch_w) +void atarigt_state::latch_w(offs_t offset, uint32_t data, uint32_t mem_mask) { /* D13 = 68.DISA @@ -253,7 +253,7 @@ WRITE32_MEMBER(atarigt_state::latch_w) } -WRITE32_MEMBER(atarigt_state::mo_command_w) +void atarigt_state::mo_command_w(offs_t offset, uint32_t data, uint32_t mem_mask) { COMBINE_DATA(m_mo_command); if (ACCESSING_BITS_0_15) @@ -261,7 +261,7 @@ WRITE32_MEMBER(atarigt_state::mo_command_w) } -WRITE32_MEMBER(atarigt_state::led_w) +void atarigt_state::led_w(offs_t offset, uint32_t data, uint32_t mem_mask) { // logerror("LED = %08X & %08X\n", data, mem_mask); } @@ -274,7 +274,7 @@ WRITE32_MEMBER(atarigt_state::led_w) * *************************************/ -READ32_MEMBER(atarigt_state::sound_data_r) +uint32_t atarigt_state::sound_data_r(offs_t offset, uint32_t mem_mask) { uint32_t result = 0; @@ -286,7 +286,7 @@ READ32_MEMBER(atarigt_state::sound_data_r) } -WRITE32_MEMBER(atarigt_state::sound_data_w) +void atarigt_state::sound_data_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_0_15) m_cage->control_w(data); @@ -584,7 +584,7 @@ if (LOG_PROTECTION) * *************************************/ -READ32_MEMBER(atarigt_state::colorram_protection_r) +uint32_t atarigt_state::colorram_protection_r(address_space &space, offs_t offset, uint32_t mem_mask) { offs_t address = 0xd80000 + offset * 4; uint32_t result32 = 0; @@ -607,7 +607,7 @@ READ32_MEMBER(atarigt_state::colorram_protection_r) } -WRITE32_MEMBER(atarigt_state::colorram_protection_w) +void atarigt_state::colorram_protection_w(address_space &space, offs_t offset, uint32_t data, uint32_t mem_mask) { offs_t address = 0xd80000 + offset * 4; @@ -1325,7 +1325,7 @@ ROM_END * *************************************/ -WRITE32_MEMBER(atarigt_state::tmek_pf_w) +void atarigt_state::tmek_pf_w(offs_t offset, uint32_t data, uint32_t mem_mask) { offs_t pc = m_maincpu->pc(); @@ -1353,7 +1353,7 @@ void atarigt_state::init_tmek() m_protection_w = &atarigt_state::tmek_protection_w; /* temp hack */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0xd72000, 0xd75fff, write32_delegate(*this, FUNC(atarigt_state::tmek_pf_w))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0xd72000, 0xd75fff, write32s_delegate(*this, FUNC(atarigt_state::tmek_pf_w))); } diff --git a/src/mame/drivers/atarigx2.cpp b/src/mame/drivers/atarigx2.cpp index bce0c440ccf..7703e968d48 100644 --- a/src/mame/drivers/atarigx2.cpp +++ b/src/mame/drivers/atarigx2.cpp @@ -54,14 +54,14 @@ void atarigx2_state::video_int_ack_w(uint32_t data) * *************************************/ -READ32_MEMBER(atarigx2_state::special_port2_r) +uint32_t atarigx2_state::special_port2_r() { int temp = ioport("SERVICE")->read(); return (temp << 16) | temp; } -READ32_MEMBER(atarigx2_state::special_port3_r) +uint32_t atarigx2_state::special_port3_r() { int temp = ioport("SPECIAL")->read(); return (temp << 16) | temp; @@ -69,7 +69,7 @@ READ32_MEMBER(atarigx2_state::special_port3_r) -READ8_MEMBER(atarigx2_state::a2d_data_r) +uint8_t atarigx2_state::a2d_data_r(offs_t offset) { uint8_t result = m_adc->data_r(); if (!machine().side_effects_disabled()) @@ -78,7 +78,7 @@ READ8_MEMBER(atarigx2_state::a2d_data_r) } -WRITE32_MEMBER(atarigx2_state::latch_w) +void atarigx2_state::latch_w(offs_t offset, uint32_t data, uint32_t mem_mask) { /* D13 = 68.DISA @@ -106,7 +106,7 @@ WRITE32_MEMBER(atarigx2_state::latch_w) } -WRITE32_MEMBER(atarigx2_state::mo_command_w) +void atarigx2_state::mo_command_w(offs_t offset, uint32_t data, uint32_t mem_mask) { COMBINE_DATA(m_mo_command); if (ACCESSING_BITS_0_15) @@ -123,7 +123,7 @@ WRITE32_MEMBER(atarigx2_state::mo_command_w) /* Note: Will all eventually be handled in machine/atarixga.cpp */ -WRITE32_MEMBER(atarigx2_state::atarigx2_protection_w) +void atarigx2_state::atarigx2_protection_w(offs_t offset, uint32_t data, uint32_t mem_mask) { { int pc = m_maincpu->pcbase(); @@ -200,7 +200,7 @@ uint32_t ftest4(uint32_t num) *********************/ -READ32_MEMBER(atarigx2_state::atarigx2_protection_r) +uint32_t atarigx2_state::atarigx2_protection_r(offs_t offset, uint32_t mem_mask) { static const uint32_t lookup_table[][2] = { @@ -1168,7 +1168,7 @@ READ32_MEMBER(atarigx2_state::atarigx2_protection_r) } -READ32_MEMBER( atarigx2_state::rrreveng_prot_r ) +uint32_t atarigx2_state::rrreveng_prot_r() { return 0; } @@ -2258,8 +2258,9 @@ void atarigx2_state::init_spclords() { m_playfield_base = 0x000; - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc80f00, 0xc80fff, read32_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_read)), write32_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_write))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*m_xga, FUNC(atari_xga_device::read)), write32_delegate(*m_xga, FUNC(atari_xga_device::write))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xc80f00, 0xc80fff, read32s_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_read))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0xc80f00, 0xc80fff, write32sm_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_write))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32s_delegate(*m_xga, FUNC(atari_xga_device::read)), write32s_delegate(*m_xga, FUNC(atari_xga_device::write))); } @@ -2288,15 +2289,15 @@ XMEM=68.A23*E.A22*!E.A21*68.A20 = 1101 xxxx = d0 +68.A23*E.A22*!E.A21*!68.A20*68.A19 = 1100 1xxx = c80000-cfffff +!68.A23*!E.A22*!E.A21 = 000x xxxx = 000000-1fffff */ - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*m_xga, FUNC(atari_xga_device::read)), write32_delegate(*m_xga, FUNC(atari_xga_device::write))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32s_delegate(*m_xga, FUNC(atari_xga_device::read)), write32s_delegate(*m_xga, FUNC(atari_xga_device::write))); } void atarigx2_state::init_rrreveng() { m_playfield_base = 0x000; - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_r)), write32_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_w))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xca0fc0, 0xca0fc3, read32_delegate(*this, FUNC(atarigx2_state::rrreveng_prot_r))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32s_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_r)), write32s_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xca0fc0, 0xca0fc3, read32smo_delegate(*this, FUNC(atarigx2_state::rrreveng_prot_r))); } diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp index 20525df7dad..0ed90004cfa 100644 --- a/src/mame/drivers/atarist.cpp +++ b/src/mame/drivers/atarist.cpp @@ -242,7 +242,7 @@ void st_state::fdc_dma_transfer() // fdc_data_r - //------------------------------------------------- -READ16_MEMBER( st_state::fdc_data_r ) +uint16_t st_state::fdc_data_r(offs_t offset) { uint8_t data = 0; @@ -274,7 +274,7 @@ READ16_MEMBER( st_state::fdc_data_r ) // fdc_data_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::fdc_data_w ) +void st_state::fdc_data_w(offs_t offset, uint16_t data) { if (m_fdc_mode & DMA_MODE_SECTOR_COUNT) { @@ -316,7 +316,7 @@ WRITE16_MEMBER( st_state::fdc_data_w ) // dma_status_r - //------------------------------------------------- -READ16_MEMBER( st_state::dma_status_r ) +uint16_t st_state::dma_status_r() { uint16_t data = 0; @@ -337,7 +337,7 @@ READ16_MEMBER( st_state::dma_status_r ) // dma_mode_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::dma_mode_w ) +void st_state::dma_mode_w(uint16_t data) { if (LOG) logerror("DMA Mode %04x\n", data); @@ -360,7 +360,7 @@ WRITE16_MEMBER( st_state::dma_mode_w ) // dma_counter_r - //------------------------------------------------- -READ8_MEMBER( st_state::dma_counter_r ) +uint8_t st_state::dma_counter_r(offs_t offset) { uint8_t data = 0; @@ -385,7 +385,7 @@ READ8_MEMBER( st_state::dma_counter_r ) // dma_base_w - //------------------------------------------------- -WRITE8_MEMBER( st_state::dma_base_w ) +void st_state::dma_base_w(offs_t offset, uint8_t data) { switch (offset) { @@ -416,7 +416,7 @@ WRITE8_MEMBER( st_state::dma_base_w ) // mmu_r - //------------------------------------------------- -READ8_MEMBER( st_state::mmu_r ) +uint8_t st_state::mmu_r() { return m_mmu; } @@ -426,7 +426,7 @@ READ8_MEMBER( st_state::mmu_r ) // mmu_w - //------------------------------------------------- -WRITE8_MEMBER( st_state::mmu_w ) +void st_state::mmu_w(uint8_t data) { if (LOG) logerror("Memory Configuration Register: %02x\n", data); @@ -434,13 +434,13 @@ WRITE8_MEMBER( st_state::mmu_w ) } -WRITE16_MEMBER( st_state::berr_w ) +void st_state::berr_w(uint16_t data) { m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE); m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE); } -READ16_MEMBER( st_state::berr_r ) +uint16_t st_state::berr_r() { if (!machine().side_effects_disabled()) { @@ -712,14 +712,14 @@ void st_state::ikbd_port4_w(uint8_t data) // fpu_r - //------------------------------------------------- -READ16_MEMBER( megast_state::fpu_r ) +uint16_t megast_state::fpu_r() { // HACK diagnostic cartridge wants to see this value return 0x0802; } -WRITE16_MEMBER( megast_state::fpu_w ) +void megast_state::fpu_w(uint16_t data) { } @@ -845,7 +845,7 @@ void ste_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo // sound_dma_control_r - //------------------------------------------------- -READ8_MEMBER( ste_state::sound_dma_control_r ) +uint8_t ste_state::sound_dma_control_r() { return m_dmasnd_ctrl; } @@ -855,7 +855,7 @@ READ8_MEMBER( ste_state::sound_dma_control_r ) // sound_dma_base_r - //------------------------------------------------- -READ8_MEMBER( ste_state::sound_dma_base_r ) +uint8_t ste_state::sound_dma_base_r(offs_t offset) { uint8_t data = 0; @@ -882,7 +882,7 @@ READ8_MEMBER( ste_state::sound_dma_base_r ) // sound_dma_counter_r - //------------------------------------------------- -READ8_MEMBER( ste_state::sound_dma_counter_r ) +uint8_t ste_state::sound_dma_counter_r(offs_t offset) { uint8_t data = 0; @@ -909,7 +909,7 @@ READ8_MEMBER( ste_state::sound_dma_counter_r ) // sound_dma_end_r - //------------------------------------------------- -READ8_MEMBER( ste_state::sound_dma_end_r ) +uint8_t ste_state::sound_dma_end_r(offs_t offset) { uint8_t data = 0; @@ -936,7 +936,7 @@ READ8_MEMBER( ste_state::sound_dma_end_r ) // sound_mode_r - //------------------------------------------------- -READ8_MEMBER( ste_state::sound_mode_r ) +uint8_t ste_state::sound_mode_r() { return m_dmasnd_mode; } @@ -946,7 +946,7 @@ READ8_MEMBER( ste_state::sound_mode_r ) // sound_dma_control_w - //------------------------------------------------- -WRITE8_MEMBER( ste_state::sound_dma_control_w ) +void ste_state::sound_dma_control_w(uint8_t data) { m_dmasnd_ctrl = data & 0x03; @@ -970,7 +970,7 @@ WRITE8_MEMBER( ste_state::sound_dma_control_w ) // sound_dma_base_w - //------------------------------------------------- -WRITE8_MEMBER( ste_state::sound_dma_base_w ) +void ste_state::sound_dma_base_w(offs_t offset, uint8_t data) { switch (offset) { @@ -996,7 +996,7 @@ WRITE8_MEMBER( ste_state::sound_dma_base_w ) // sound_dma_end_w - //------------------------------------------------- -WRITE8_MEMBER( ste_state::sound_dma_end_w ) +void ste_state::sound_dma_end_w(offs_t offset, uint8_t data) { switch (offset) { @@ -1022,7 +1022,7 @@ WRITE8_MEMBER( ste_state::sound_dma_end_w ) // sound_mode_w - //------------------------------------------------- -WRITE8_MEMBER( ste_state::sound_mode_w ) +void ste_state::sound_mode_w(uint8_t data) { m_dmasnd_mode = data & 0x83; } @@ -1084,7 +1084,7 @@ void ste_state::microwire_tick() // microwire_data_r - //------------------------------------------------- -READ16_MEMBER( ste_state::microwire_data_r ) +uint16_t ste_state::microwire_data_r() { return m_mw_data; } @@ -1094,7 +1094,7 @@ READ16_MEMBER( ste_state::microwire_data_r ) // microwire_data_w - //------------------------------------------------- -WRITE16_MEMBER( ste_state::microwire_data_w ) +void ste_state::microwire_data_w(uint16_t data) { if (!m_microwire_timer->enabled()) { @@ -1108,7 +1108,7 @@ WRITE16_MEMBER( ste_state::microwire_data_w ) // microwire_mask_r - //------------------------------------------------- -READ16_MEMBER( ste_state::microwire_mask_r ) +uint16_t ste_state::microwire_mask_r() { return m_mw_mask; } @@ -1118,7 +1118,7 @@ READ16_MEMBER( ste_state::microwire_mask_r ) // microwire_mask_w - //------------------------------------------------- -WRITE16_MEMBER( ste_state::microwire_mask_w ) +void ste_state::microwire_mask_w(uint16_t data) { if (!m_microwire_timer->enabled()) { @@ -1136,7 +1136,7 @@ WRITE16_MEMBER( ste_state::microwire_mask_w ) // cache_r - //------------------------------------------------- -READ16_MEMBER( megaste_state::cache_r ) +uint16_t megaste_state::cache_r() { return m_cache; } @@ -1146,7 +1146,7 @@ READ16_MEMBER( megaste_state::cache_r ) // cache_w - //------------------------------------------------- -WRITE16_MEMBER( megaste_state::cache_w ) +void megaste_state::cache_w(uint16_t data) { m_cache = data; @@ -1163,7 +1163,7 @@ WRITE16_MEMBER( megaste_state::cache_w ) // config_r - //------------------------------------------------- -READ16_MEMBER( stbook_state::config_r ) +uint16_t stbook_state::config_r() { /* @@ -1196,7 +1196,7 @@ READ16_MEMBER( stbook_state::config_r ) // lcd_control_w - //------------------------------------------------- -WRITE16_MEMBER( stbook_state::lcd_control_w ) +void stbook_state::lcd_control_w(uint16_t data) { /* diff --git a/src/mame/drivers/atetris.cpp b/src/mame/drivers/atetris.cpp index 42a3ead991f..ab55df326ad 100644 --- a/src/mame/drivers/atetris.cpp +++ b/src/mame/drivers/atetris.cpp @@ -85,7 +85,7 @@ TIMER_CALLBACK_MEMBER(atetris_state::interrupt_gen) } -WRITE8_MEMBER(atetris_state::irq_ack_w) +void atetris_state::irq_ack_w(uint8_t data) { m_maincpu->set_input_line(0, CLEAR_LINE); } @@ -134,7 +134,7 @@ void atetris_state::machine_reset() * *************************************/ -READ8_MEMBER(atetris_state::slapstic_r) +uint8_t atetris_state::slapstic_r(address_space &space, offs_t offset) { int result = m_slapstic_base[0x2000 + offset]; int new_bank = m_slapstic->slapstic_tweak(space, offset) & 1; @@ -156,7 +156,7 @@ READ8_MEMBER(atetris_state::slapstic_r) * *************************************/ -WRITE8_MEMBER(atetris_state::coincount_w) +void atetris_state::coincount_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, (data >> 5) & 1); machine().bookkeeping().coin_counter_w(1, (data >> 4) & 1); diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp index de25077c325..a8256bd35eb 100644 --- a/src/mame/drivers/aussiebyte.cpp +++ b/src/mame/drivers/aussiebyte.cpp @@ -97,7 +97,7 @@ INPUT_PORTS_END I/O Ports ************************************************************/ -WRITE8_MEMBER( aussiebyte_state::port15_w ) +void aussiebyte_state::port15_w(uint8_t data) { membank("bankr0")->set_entry(m_port15); // point at ram m_port15 = true; @@ -115,7 +115,7 @@ WRITE8_MEMBER( aussiebyte_state::port15_w ) 5 Disable 5.25 inch floppy spindle motors. 6 Unused. 7 Enable write precompensation on WD2797 controller. */ -WRITE8_MEMBER( aussiebyte_state::port16_w ) +void aussiebyte_state::port16_w(uint8_t data) { floppy_image_device *m_floppy = nullptr; if ((data & 15) == 0) @@ -142,7 +142,7 @@ WRITE8_MEMBER( aussiebyte_state::port16_w ) 5 - SIO Ch D 6 - Ext ready 1 7 - Ext ready 2 */ -WRITE8_MEMBER( aussiebyte_state::port17_w ) +void aussiebyte_state::port17_w(uint8_t data) { m_port17 = data & 7; m_dma->rdy_w(BIT(m_port17_rdy, data)); @@ -151,19 +151,19 @@ WRITE8_MEMBER( aussiebyte_state::port17_w ) /* FDC params 2 EXC: WD2797 clock frequency. H = 5.25"; L = 8" 3 WIEN: WD2797 Double density select. */ -WRITE8_MEMBER( aussiebyte_state::port18_w ) +void aussiebyte_state::port18_w(uint8_t data) { m_fdc->set_unscaled_clock(BIT(data, 2) ? 1e6 : 2e6); m_fdc->dden_w(BIT(data, 3)); } -READ8_MEMBER( aussiebyte_state::port19_r ) +uint8_t aussiebyte_state::port19_r() { return m_port19; } // Memory banking -WRITE8_MEMBER( aussiebyte_state::port1a_w ) +void aussiebyte_state::port1a_w(uint8_t data) { data &= 7; switch (data) @@ -208,12 +208,12 @@ WRITE8_MEMBER( aussiebyte_state::port1a_w ) } // Winchester control -WRITE8_MEMBER( aussiebyte_state::port1b_w ) +void aussiebyte_state::port1b_w(uint8_t data) { } // GPEHB control -WRITE8_MEMBER( aussiebyte_state::port1c_w ) +void aussiebyte_state::port1c_w(uint8_t data) { } @@ -224,7 +224,7 @@ void aussiebyte_state::port20_w(uint8_t data) m_rtc->hold_w(BIT(data, 0)); } -READ8_MEMBER( aussiebyte_state::port28_r ) +uint8_t aussiebyte_state::port28_r() { return m_port28; } @@ -234,7 +234,7 @@ READ8_MEMBER( aussiebyte_state::port28_r ) RTC ************************************************************/ -READ8_MEMBER( aussiebyte_state::rtc_r ) +uint8_t aussiebyte_state::rtc_r(offs_t offset) { m_rtc->read_w(1); m_rtc->address_w(offset); @@ -243,7 +243,7 @@ READ8_MEMBER( aussiebyte_state::rtc_r ) return data; } -WRITE8_MEMBER( aussiebyte_state::rtc_w ) +void aussiebyte_state::rtc_w(offs_t offset, uint8_t data) { m_rtc->address_w(offset); m_rtc->data_w(data); diff --git a/src/mame/drivers/avalnche.cpp b/src/mame/drivers/avalnche.cpp index 4655321726d..5b3f930a43e 100644 --- a/src/mame/drivers/avalnche.cpp +++ b/src/mame/drivers/avalnche.cpp @@ -89,7 +89,7 @@ WRITE_LINE_MEMBER(avalnche_state::video_invert_w) m_avalance_video_inverted = state; } -WRITE8_MEMBER(avalnche_state::catch_coin_counter_w) +void avalnche_state::catch_coin_counter_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, data & 1); machine().bookkeeping().coin_counter_w(1, data & 2); diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp index 7488b860100..a1b26ee0273 100644 --- a/src/mame/drivers/avigo.cpp +++ b/src/mame/drivers/avigo.cpp @@ -186,7 +186,7 @@ void avigo_state::avigo_mem(address_map &map) } -READ8_MEMBER(avigo_state::key_data_read_r) +uint8_t avigo_state::key_data_read_r() { uint8_t data = 0x0f; @@ -217,7 +217,7 @@ READ8_MEMBER(avigo_state::key_data_read_r) /* set key line(s) to read */ /* bit 0 set for line 0, bit 1 set for line 1, bit 2 set for line 2 */ -WRITE8_MEMBER(avigo_state::set_key_line_w) +void avigo_state::set_key_line_w(uint8_t data) { /* 5, 101, read back 3 */ m_key_line = data; @@ -225,19 +225,19 @@ WRITE8_MEMBER(avigo_state::set_key_line_w) m_warm_start = BIT(data, 3); } -READ8_MEMBER(avigo_state::irq_r) +uint8_t avigo_state::irq_r() { return m_irq; } -WRITE8_MEMBER(avigo_state::irq_w) +void avigo_state::irq_w(uint8_t data) { m_irq &= data; refresh_ints(); } -WRITE8_MEMBER(avigo_state::port2_w) +void avigo_state::port2_w(uint8_t data) { /* bit 4 LCD backlight on/off @@ -250,17 +250,17 @@ WRITE8_MEMBER(avigo_state::port2_w) m_port2 = data; } -READ8_MEMBER(avigo_state::bank1_r) +uint8_t avigo_state::bank1_r(offs_t offset) { return offset ? m_bank1_h: m_bank1_l; } -READ8_MEMBER(avigo_state::bank2_r) +uint8_t avigo_state::bank2_r(offs_t offset) { return offset ? m_bank2_h: m_bank2_l; } -WRITE8_MEMBER(avigo_state::bank1_w) +void avigo_state::bank1_w(offs_t offset, uint8_t data) { if (offset) { @@ -276,7 +276,7 @@ WRITE8_MEMBER(avigo_state::bank1_w) m_bankdev1->set_bank(((m_bank1_h & 0x07) << 8) | m_bank1_l); } -WRITE8_MEMBER(avigo_state::bank2_w) +void avigo_state::bank2_w(offs_t offset, uint8_t data) { if (offset) { @@ -292,14 +292,14 @@ WRITE8_MEMBER(avigo_state::bank2_w) m_bankdev2->set_bank(((m_bank2_h & 0x07) << 8) | m_bank2_l); } -READ8_MEMBER(avigo_state::ad_control_status_r) +uint8_t avigo_state::ad_control_status_r() { LOG(("avigo ad control read %02x\n", (int) m_ad_control_status)); return m_ad_control_status; } -WRITE8_MEMBER(avigo_state::ad_control_status_w) +void avigo_state::ad_control_status_w(uint8_t data) { LOG(("avigo ad control w %02x\n",data)); @@ -375,7 +375,7 @@ WRITE8_MEMBER(avigo_state::ad_control_status_w) m_ad_control_status = data | 1; } -READ8_MEMBER(avigo_state::ad_data_r) +uint8_t avigo_state::ad_data_r() { uint8_t data = 0; @@ -477,7 +477,7 @@ READ8_MEMBER(avigo_state::ad_data_r) } -WRITE8_MEMBER(avigo_state::speaker_w) +void avigo_state::speaker_w(uint8_t data) { /* Speaker output state */ m_speaker->level_w(BIT(data, 3)); @@ -490,7 +490,7 @@ WRITE8_MEMBER(avigo_state::speaker_w) /* port 0x029: port 0x02e */ -READ8_MEMBER(avigo_state::port_04_r) +uint8_t avigo_state::port_04_r() { /* must be both 0 for it to boot! */ return 0x0ff^((1<<7) | (1<<5)); diff --git a/src/mame/drivers/aztarac.cpp b/src/mame/drivers/aztarac.cpp index 43c8dc6fb72..49c038a60f2 100644 --- a/src/mame/drivers/aztarac.cpp +++ b/src/mame/drivers/aztarac.cpp @@ -63,7 +63,7 @@ void aztarac_state::nvram_store_w(uint16_t data) * *************************************/ -READ16_MEMBER(aztarac_state::joystick_r) +uint16_t aztarac_state::joystick_r() { return (((ioport("STICKZ")->read() - 0xf) << 8) | ((ioport("STICKY")->read() - 0xf) & 0xff)); diff --git a/src/mame/drivers/badlands.cpp b/src/mame/drivers/badlands.cpp index 17ee6814ee0..a8968cae49b 100644 --- a/src/mame/drivers/badlands.cpp +++ b/src/mame/drivers/badlands.cpp @@ -226,7 +226,7 @@ INTERRUPT_GEN_MEMBER(badlands_state::vblank_int) m_maincpu->set_input_line(M68K_IRQ_1, ASSERT_LINE); } -WRITE16_MEMBER(badlands_state::video_int_ack_w) +void badlands_state::video_int_ack_w(uint16_t data) { m_maincpu->set_input_line(M68K_IRQ_1, CLEAR_LINE); } diff --git a/src/mame/drivers/badlandsbl.cpp b/src/mame/drivers/badlandsbl.cpp index cfbb3e1de5d..e828b3abf54 100644 --- a/src/mame/drivers/badlandsbl.cpp +++ b/src/mame/drivers/badlandsbl.cpp @@ -76,23 +76,23 @@ uint32_t badlandsbl_state::screen_update_badlandsbl(screen_device &screen, bitma } -READ16_MEMBER(badlandsbl_state::badlandsb_unk_r) +uint16_t badlandsbl_state::badlandsb_unk_r() { return 0xffff; } // TODO: this prolly mimics audio_io_r/_w in original version -READ8_MEMBER(badlandsbl_state::bootleg_shared_r) +uint8_t badlandsbl_state::bootleg_shared_r(offs_t offset) { return m_b_sharedram[offset]; } -WRITE8_MEMBER(badlandsbl_state::bootleg_shared_w) +void badlandsbl_state::bootleg_shared_w(offs_t offset, uint8_t data) { m_b_sharedram[offset] = data; } -READ8_MEMBER(badlandsbl_state::sound_response_r) +uint8_t badlandsbl_state::sound_response_r() { m_maincpu->set_input_line(2, CLEAR_LINE); return m_sound_response; @@ -127,7 +127,7 @@ void badlandsbl_state::bootleg_map(address_map &map) map(0xfff000, 0xffffff).ram(); } -WRITE8_MEMBER(badlandsbl_state::bootleg_main_irq_w) +void badlandsbl_state::bootleg_main_irq_w(uint8_t data) { m_maincpu->set_input_line(2, ASSERT_LINE); m_sound_response = data; diff --git a/src/mame/drivers/bagman.cpp b/src/mame/drivers/bagman.cpp index c54be51c780..61f4db5acd1 100644 --- a/src/mame/drivers/bagman.cpp +++ b/src/mame/drivers/bagman.cpp @@ -89,9 +89,9 @@ void squaitsa_state::machine_start() } -WRITE8_MEMBER(bagman_state::ls259_w) +void bagman_state::ls259_w(offs_t offset, uint8_t data) { - pal16r6_w(space, offset,data); /*this is just a simulation*/ + pal16r6_w(offset, data); /*this is just a simulation*/ if (m_tmslatch.found()) m_tmslatch->write_bit(offset, data & 1); diff --git a/src/mame/drivers/basssta.cpp b/src/mame/drivers/basssta.cpp new file mode 100644 index 00000000000..e2b043b43e2 --- /dev/null +++ b/src/mame/drivers/basssta.cpp @@ -0,0 +1,84 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Novation BassStation synthesizers. + +****************************************************************************/ + +#include "emu.h" +#include "cpu/mn1880/mn1880.h" +//#include "machine/eeprompar.h" + +class basssta_state : public driver_device +{ +public: + basssta_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { + } + + void bassstr(machine_config &config); + void sbasssta(machine_config &config); + +private: + void bassstr_prog(address_map &map); + void sbasssta_prog(address_map &map); + void bassstr_data(address_map &map); + void sbasssta_data(address_map &map); + + required_device<mn1880_device> m_maincpu; +}; + + +void basssta_state::bassstr_prog(address_map &map) +{ + map(0x0000, 0x7fff).rom().region("program", 0); +} + +void basssta_state::sbasssta_prog(address_map &map) +{ + map(0x0000, 0xffff).rom().region("program", 0); +} + +void basssta_state::bassstr_data(address_map &map) +{ +} + +void basssta_state::sbasssta_data(address_map &map) +{ +} + + +static INPUT_PORTS_START(basssta) +INPUT_PORTS_END + +void basssta_state::bassstr(machine_config &config) +{ + MN1880(config, m_maincpu, 8000000); // type and clock unknown (custom silkscreen) + m_maincpu->set_addrmap(AS_PROGRAM, &basssta_state::bassstr_prog); + m_maincpu->set_addrmap(AS_DATA, &basssta_state::bassstr_data); +} + +void basssta_state::sbasssta(machine_config &config) +{ + MN1880(config, m_maincpu, 8000000); // type and clock unknown (custom silkscreen) + m_maincpu->set_addrmap(AS_PROGRAM, &basssta_state::sbasssta_prog); + m_maincpu->set_addrmap(AS_DATA, &basssta_state::sbasssta_data); + + // TODO: Microchip 28C64AF EEPROM +} + +ROM_START(bassstr) + ROM_REGION(0x8000, "program", 0) + ROM_LOAD("v1.5.bin", 0x0000, 0x8000, CRC(a8bc9721) SHA1(2c2dc3bee0fabf1e77d02cdf3e53885f2c5b913e)) // ST M27C256B (DIP28) +ROM_END + +ROM_START(sbasssta) + ROM_REGION(0x10000, "program", 0) + ROM_LOAD("v1.9.bin", 0x00000, 0x10000, CRC(045bf9e3) SHA1(69155026c2497a4731162cadb6b441e00902d3f6)) +ROM_END + +SYST(1995, bassstr, 0, 0, bassstr, basssta, basssta_state, empty_init, "Novation", "BassStation Rack Analogue Synthesizer Module", MACHINE_IS_SKELETON) +SYST(1997, sbasssta, 0, 0, sbasssta, basssta, basssta_state, empty_init, "Novation", "Super Bass Station", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/batman.cpp b/src/mame/drivers/batman.cpp index f95324f26ee..d284fbd1eb5 100644 --- a/src/mame/drivers/batman.cpp +++ b/src/mame/drivers/batman.cpp @@ -49,7 +49,7 @@ void batman_state::machine_start() * *************************************/ -WRITE16_MEMBER(batman_state::latch_w) +void batman_state::latch_w(offs_t offset, uint16_t data, uint16_t mem_mask) { int oldword = m_latch_data; COMBINE_DATA(&m_latch_data); diff --git a/src/mame/drivers/battlane.cpp b/src/mame/drivers/battlane.cpp index 56ba430372c..bf752bdc4a7 100644 --- a/src/mame/drivers/battlane.cpp +++ b/src/mame/drivers/battlane.cpp @@ -27,7 +27,7 @@ * *************************************/ -WRITE8_MEMBER(battlane_state::battlane_cpu_command_w) +void battlane_state::battlane_cpu_command_w(uint8_t data) { m_cpu_control = data; diff --git a/src/mame/drivers/battlnts.cpp b/src/mame/drivers/battlnts.cpp index b076294bb2b..a43185575e1 100644 --- a/src/mame/drivers/battlnts.cpp +++ b/src/mame/drivers/battlnts.cpp @@ -37,12 +37,12 @@ WRITE_LINE_MEMBER(battlnts_state::vblank_irq) m_maincpu->set_input_line(HD6309_IRQ_LINE, HOLD_LINE); } -WRITE8_MEMBER(battlnts_state::battlnts_sh_irqtrigger_w) +void battlnts_state::battlnts_sh_irqtrigger_w(uint8_t data) { m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); // Z80 } -WRITE8_MEMBER(battlnts_state::battlnts_bankswitch_w) +void battlnts_state::battlnts_bankswitch_w(uint8_t data) { /* bits 6 & 7 = bank number */ m_rombank->set_entry((data & 0xc0) >> 6); diff --git a/src/mame/drivers/bbusters.cpp b/src/mame/drivers/bbusters.cpp index 74720a212f0..b1f6b26f756 100644 --- a/src/mame/drivers/bbusters.cpp +++ b/src/mame/drivers/bbusters.cpp @@ -249,32 +249,32 @@ void bbusters_state::machine_start() bbusters_state_base::machine_start(); } -WRITE8_MEMBER(bbusters_state_base::sound_cpu_w) +void bbusters_state_base::sound_cpu_w(uint8_t data) { m_soundlatch[0]->write(data&0xff); m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } /* Eprom is byte wide, top half of word _must_ be 0xff */ -READ16_MEMBER(bbusters_state::eprom_r) +uint16_t bbusters_state::eprom_r(offs_t offset) { return (m_eprom_data[offset]&0xff) | 0xff00; } -WRITE16_MEMBER(bbusters_state::three_gun_output_w) +void bbusters_state::three_gun_output_w(uint16_t data) { for (int i = 0; i < 3; i++) m_gun_recoil[i] = BIT(data, i); } template<int Layer> -WRITE16_MEMBER(bbusters_state_base::pf_w) +void bbusters_state_base::pf_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_pf_data[Layer][offset]); m_pf_tilemap[Layer]->mark_tile_dirty(offset); } -WRITE8_MEMBER(bbusters_state_base::coin_counter_w) +void bbusters_state_base::coin_counter_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); @@ -312,13 +312,13 @@ void bbusters_state::bbusters_map(address_map &map) /*******************************************************************************/ -WRITE16_MEMBER(mechatt_state::two_gun_output_w) +void mechatt_state::two_gun_output_w(uint16_t data) { for (int i = 0; i < 2; i++) m_gun_recoil[i] = BIT(data, i); } -READ16_MEMBER(mechatt_state::mechatt_gun_r) +uint16_t mechatt_state::mechatt_gun_r(offs_t offset) { int x, y; diff --git a/src/mame/drivers/beathead.cpp b/src/mame/drivers/beathead.cpp index bcb16369f56..142766c28d8 100644 --- a/src/mame/drivers/beathead.cpp +++ b/src/mame/drivers/beathead.cpp @@ -187,7 +187,7 @@ void beathead_state::update_interrupts() } -WRITE32_MEMBER( beathead_state::interrupt_control_w ) +void beathead_state::interrupt_control_w(offs_t offset, uint32_t data) { int irq = offset & 3; int control = (offset >> 2) & 1; @@ -205,7 +205,7 @@ WRITE32_MEMBER( beathead_state::interrupt_control_w ) } -READ32_MEMBER( beathead_state::interrupt_control_r ) +uint32_t beathead_state::interrupt_control_r() { /* return the enables as a bitfield */ return (m_irq_enable[0]) | (m_irq_enable[1] << 1) | (m_irq_enable[2] << 2); @@ -219,7 +219,7 @@ READ32_MEMBER( beathead_state::interrupt_control_r ) * *************************************/ -WRITE32_MEMBER( beathead_state::sound_reset_w ) +void beathead_state::sound_reset_w(offs_t offset, uint32_t data) { logerror("Sound reset = %d\n", !offset); m_jsa->soundcpu().set_input_line(INPUT_LINE_RESET, offset ? CLEAR_LINE : ASSERT_LINE); @@ -233,7 +233,7 @@ WRITE32_MEMBER( beathead_state::sound_reset_w ) * *************************************/ -WRITE32_MEMBER( beathead_state::coin_count_w ) +void beathead_state::coin_count_w(offs_t offset, uint32_t data) { machine().bookkeeping().coin_counter_w(0, !offset); } diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp index 24c93e75ef5..ccd3f04adbb 100644 --- a/src/mame/drivers/bebox.cpp +++ b/src/mame/drivers/bebox.cpp @@ -28,8 +28,8 @@ #include "formats/pc_dsk.h" #include "machine/8042kbdc.h" -READ8_MEMBER(bebox_state::at_dma8237_1_r) { return m_dma8237[1]->read(offset / 2); } -WRITE8_MEMBER(bebox_state::at_dma8237_1_w) { m_dma8237[1]->write(offset / 2, data); } +uint8_t bebox_state::at_dma8237_1_r(offs_t offset) { return m_dma8237[1]->read(offset / 2); } +void bebox_state::at_dma8237_1_w(offs_t offset, uint8_t data) { m_dma8237[1]->write(offset / 2, data); } void bebox_state::main_mem(address_map &map) { @@ -71,7 +71,7 @@ void bebox_state::main_mem(address_map &map) // The following is a gross hack to let the BeBox boot ROM identify the processors correctly. // This needs to be done in a better way if someone comes up with one. -READ64_MEMBER(bebox_state::bb_slave_64be_r) +uint64_t bebox_state::bb_slave_64be_r(offs_t offset, uint64_t mem_mask) { // 2e94 is the real address, 2e84 is where the PC appears to be under full DRC if ((m_ppc[1]->pc() == 0xfff02e94) || (m_ppc[1]->pc() == 0xfff02e84)) @@ -79,7 +79,7 @@ READ64_MEMBER(bebox_state::bb_slave_64be_r) return 0x108000ff; // indicate slave CPU } - return m_pcibus->read_64be(space, offset, mem_mask); + return m_pcibus->read_64be(offset, mem_mask); } void bebox_state::slave_mem(address_map &map) diff --git a/src/mame/drivers/beehive.cpp b/src/mame/drivers/beehive.cpp index 4bf8271cdea..d724cfef248 100644 --- a/src/mame/drivers/beehive.cpp +++ b/src/mame/drivers/beehive.cpp @@ -23,9 +23,9 @@ #include "emu.h" #include "cpu/i8085/i8085.h" #include "machine/i8251.h" -#include "machine/clock.h" +#include "machine/i8255.h" +#include "machine/pit8253.h" #include "bus/rs232/rs232.h" -#include "emupal.h" #include "screen.h" @@ -37,10 +37,8 @@ public: , m_maincpu(*this, "maincpu") , m_p_videoram(*this, "videoram") , m_p_chargen(*this, "chargen") - , m_uart1(*this, "uart1") - , m_uart2(*this, "uart2") - , m_rs232a(*this, "rs232a") - , m_rs232b(*this, "rs232b") + , m_usart(*this, "usart%u", 1U) + , m_rs232(*this, "rs232%c", 'a') , m_io_keyboard(*this, "X%u", 0U) { } @@ -53,14 +51,12 @@ private: u8 m_keyline; u8 beehive_60_r(); void beehive_62_w(u8 data); - u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_shared_ptr<u8> m_p_videoram; required_region_ptr<u8> m_p_chargen; - required_device<i8251_device> m_uart1; - required_device<i8251_device> m_uart2; - required_device<rs232_port_device> m_rs232a; - required_device<rs232_port_device> m_rs232b; + required_device_array<i8251_device, 2> m_usart; + required_device_array<rs232_port_device, 2> m_rs232; required_ioport_array<16> m_io_keyboard; }; @@ -88,14 +84,12 @@ void beehive_state::beehive_io(address_map &map) { map.global_mask(0xff); map.unmap_value_high(); - map(0x11, 0x11).portr("DIPS"); - map(0x20, 0x20).rw(m_uart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); - map(0x21, 0x21).rw(m_uart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); - map(0x30, 0x30).rw(m_uart2, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); - map(0x31, 0x31).rw(m_uart2, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); - map(0x60, 0x60).r(FUNC(beehive_state::beehive_60_r)); - map(0x61, 0x61).portr("MODIFIERS"); - map(0x62, 0x62).w(FUNC(beehive_state::beehive_62_w)); + map(0x10, 0x13).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x20, 0x21).rw(m_usart[0], FUNC(i8251_device::read), FUNC(i8251_device::write)); + map(0x30, 0x31).rw(m_usart[1], FUNC(i8251_device::read), FUNC(i8251_device::write)); + map(0x60, 0x63).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0xe0, 0xe3).rw("pit1", FUNC(pit8253_device::read), FUNC(pit8253_device::write)); + map(0xf0, 0xf3).rw("pit2", FUNC(pit8253_device::read), FUNC(pit8253_device::write)); } /* Input ports */ @@ -255,7 +249,7 @@ void beehive_state::machine_start() /* This system appears to have inline attribute bytes of unknown meaning. Currently they are ignored. */ -u32 beehive_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +u32 beehive_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { uint16_t cursor_pos = (m_p_videoram[0xcaf] | (m_p_videoram[0xcb0] << 8)) & 0xfff; uint16_t p_linelist; @@ -271,7 +265,7 @@ u32 beehive_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, co for (ra = 0; ra < 10; ra++) { - uint16_t *p = &bitmap.pix16(sy++); + uint32_t *p = &bitmap.pix32(sy++); u8 chars = 0; for (x = ma; x < ma + line_length; x++) @@ -290,14 +284,14 @@ u32 beehive_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, co chars++; /* Display a scanline of a character */ - *p++ = BIT(gfx, 7); - *p++ = BIT(gfx, 6); - *p++ = BIT(gfx, 5); - *p++ = BIT(gfx, 4); - *p++ = BIT(gfx, 3); - *p++ = BIT(gfx, 2); - *p++ = BIT(gfx, 1); - *p++ = BIT(gfx, 0); + *p++ = BIT(gfx, 7) ? rgb_t::white() : rgb_t::black(); + *p++ = BIT(gfx, 6) ? rgb_t::white() : rgb_t::black(); + *p++ = BIT(gfx, 5) ? rgb_t::white() : rgb_t::black(); + *p++ = BIT(gfx, 4) ? rgb_t::white() : rgb_t::black(); + *p++ = BIT(gfx, 3) ? rgb_t::white() : rgb_t::black(); + *p++ = BIT(gfx, 2) ? rgb_t::white() : rgb_t::black(); + *p++ = BIT(gfx, 1) ? rgb_t::white() : rgb_t::black(); + *p++ = BIT(gfx, 0) ? rgb_t::white() : rgb_t::black(); } } } @@ -319,35 +313,45 @@ void beehive_state::beehive(machine_config &config) screen.set_screen_update(FUNC(beehive_state::screen_update)); screen.set_size(640, 250); screen.set_visarea(0, 639, 0, 249); - screen.set_palette("palette"); - - PALETTE(config, "palette", palette_device::MONOCHROME); - - I8251(config, m_uart1, 0); - m_uart1->txd_handler().set("rs232a", FUNC(rs232_port_device::write_txd)); - m_uart1->dtr_handler().set("rs232a", FUNC(rs232_port_device::write_dtr)); - m_uart1->rts_handler().set("rs232a", FUNC(rs232_port_device::write_rts)); - - RS232_PORT(config, m_rs232a, default_rs232_devices, nullptr); - m_rs232a->rxd_handler().set("uart1", FUNC(i8251_device::write_rxd)); - m_rs232a->dsr_handler().set("uart1", FUNC(i8251_device::write_dsr)); - m_rs232a->cts_handler().set("uart1", FUNC(i8251_device::write_cts)); - - I8251(config, m_uart2, 0); - m_uart2->txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd)); - m_uart2->dtr_handler().set("rs232b", FUNC(rs232_port_device::write_dtr)); - m_uart2->rts_handler().set("rs232b", FUNC(rs232_port_device::write_rts)); - - RS232_PORT(config, m_rs232b, default_rs232_devices, nullptr); - m_rs232b->rxd_handler().set("uart2", FUNC(i8251_device::write_rxd)); - m_rs232b->dsr_handler().set("uart2", FUNC(i8251_device::write_dsr)); - m_rs232b->cts_handler().set("uart2", FUNC(i8251_device::write_cts)); - - clock_device &rs232_clock(CLOCK(config, "rs232_clock", 153'600)); - rs232_clock.signal_handler().set(m_uart1, FUNC(i8251_device::write_rxc)); - rs232_clock.signal_handler().append(m_uart1, FUNC(i8251_device::write_txc)); - rs232_clock.signal_handler().append(m_uart2, FUNC(i8251_device::write_rxc)); - rs232_clock.signal_handler().append(m_uart2, FUNC(i8251_device::write_txc)); + + i8255_device &ppi1(I8255(config, "ppi1")); + ppi1.in_pb_callback().set_ioport("DIPS"); + + i8255_device &ppi2(I8255(config, "ppi2")); + ppi2.in_pa_callback().set(FUNC(beehive_state::beehive_60_r)); + ppi2.in_pb_callback().set_ioport("MODIFIERS"); + ppi2.out_pc_callback().set(FUNC(beehive_state::beehive_62_w)); + + PIT8253(config, "pit1"); + + pit8253_device &pit2(PIT8253(config, "pit2")); + pit2.set_clk<0>(1'536'000); + pit2.set_clk<1>(1'536'000); + pit2.set_clk<2>(1'536'000); + pit2.out_handler<0>().set(m_usart[0], FUNC(i8251_device::write_rxc)); + pit2.out_handler<1>().set(m_usart[0], FUNC(i8251_device::write_txc)); + pit2.out_handler<2>().set(m_usart[1], FUNC(i8251_device::write_rxc)); + pit2.out_handler<2>().append(m_usart[1], FUNC(i8251_device::write_txc)); + + I8251(config, m_usart[0], 0); + m_usart[0]->txd_handler().set(m_rs232[0], FUNC(rs232_port_device::write_txd)); + m_usart[0]->dtr_handler().set(m_rs232[0], FUNC(rs232_port_device::write_dtr)); + m_usart[0]->rts_handler().set(m_rs232[0], FUNC(rs232_port_device::write_rts)); + + RS232_PORT(config, m_rs232[0], default_rs232_devices, nullptr); + m_rs232[0]->rxd_handler().set(m_usart[0], FUNC(i8251_device::write_rxd)); + m_rs232[0]->dsr_handler().set(m_usart[0], FUNC(i8251_device::write_dsr)); + m_rs232[0]->cts_handler().set(m_usart[0], FUNC(i8251_device::write_cts)); + + I8251(config, m_usart[1], 0); + m_usart[1]->txd_handler().set(m_rs232[1], FUNC(rs232_port_device::write_txd)); + m_usart[1]->dtr_handler().set(m_rs232[1], FUNC(rs232_port_device::write_dtr)); + m_usart[1]->rts_handler().set(m_rs232[1], FUNC(rs232_port_device::write_rts)); + + RS232_PORT(config, m_rs232[1], default_rs232_devices, nullptr); + m_rs232[1]->rxd_handler().set(m_usart[1], FUNC(i8251_device::write_rxd)); + m_rs232[1]->dsr_handler().set(m_usart[1], FUNC(i8251_device::write_dsr)); + m_rs232[1]->cts_handler().set(m_usart[1], FUNC(i8251_device::write_cts)); } /* ROM definition */ diff --git a/src/mame/drivers/bfm_sc4.cpp b/src/mame/drivers/bfm_sc4.cpp index fc346f97d84..2b306b9070d 100644 --- a/src/mame/drivers/bfm_sc4.cpp +++ b/src/mame/drivers/bfm_sc4.cpp @@ -271,7 +271,7 @@ uint8_t sc4_state::read_input_matrix(int row) return value; } -READ16_MEMBER(sc4_state::sc4_cs1_r) +uint16_t sc4_state::sc4_cs1_r(offs_t offset, uint16_t mem_mask) { int pc = m_maincpu->pc(); @@ -321,7 +321,7 @@ READ16_MEMBER(sc4_state::sc4_cs1_r) return 0x0000; } -READ16_MEMBER(sc4_state::sc4_mem_r) +uint16_t sc4_state::sc4_mem_r(offs_t offset, uint16_t mem_mask) { int pc = m_maincpu->pc(); int cs = m_maincpu->get_cs(offset * 2); @@ -333,7 +333,7 @@ READ16_MEMBER(sc4_state::sc4_mem_r) switch ( cs ) { case 1: - return sc4_cs1_r(space,offset,mem_mask); + return sc4_cs1_r(offset); case 2: base = 0x800000/2; @@ -452,7 +452,7 @@ void bfm_sc45_state::machine_start() m_digits.resolve(); } -WRITE8_MEMBER(bfm_sc45_state::mux_output_w) +void bfm_sc45_state::mux_output_w(offs_t offset, uint8_t data) { int const off = offset<<3; @@ -460,7 +460,7 @@ WRITE8_MEMBER(bfm_sc45_state::mux_output_w) m_lamps[off+i] = BIT(data, i); } -WRITE8_MEMBER(bfm_sc45_state::mux_output2_w) +void bfm_sc45_state::mux_output2_w(offs_t offset, uint8_t data) { int const off = offset<<3; @@ -495,7 +495,7 @@ WRITE8_MEMBER(bfm_sc45_state::mux_output2_w) } } -WRITE16_MEMBER(sc4_state::sc4_mem_w) +void sc4_state::sc4_mem_w(offs_t offset, uint16_t data, uint16_t mem_mask) { int pc = m_maincpu->pc(); int cs = m_maincpu->get_cs(offset * 2); @@ -536,7 +536,7 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w) if (ACCESSING_BITS_0_7) { // lamps - mux_output_w(space, (addr & 0x01f0)>>4, data); + mux_output_w((addr & 0x01f0)>>4, data); } } @@ -549,7 +549,7 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w) if (ACCESSING_BITS_0_7) { // lamps - mux_output2_w(space, (addr & 0x01f0)>>4, data); + mux_output2_w((addr & 0x01f0)>>4, data); } } else @@ -571,7 +571,7 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w) break; case 0x1330: - bfm_sc4_reel4_w(space,0,data&0xf); + bfm_sc4_reel4_w(data&0xf); //m_meterstatus = (m_meterstatus&0x3f) | ((data & 0x30) << 2); m_sec->data_w(~data&0x10); break; @@ -621,7 +621,7 @@ void sc4_state::sc4_map(address_map &map) -READ32_MEMBER(sc4_adder4_state::adder4_mem_r) +uint32_t sc4_adder4_state::adder4_mem_r(offs_t offset, uint32_t mem_mask) { int pc = m_adder4cpu->pc(); int cs = m_adder4cpu->get_cs(offset * 4); @@ -644,7 +644,7 @@ READ32_MEMBER(sc4_adder4_state::adder4_mem_r) return 0x0000; } -WRITE32_MEMBER(sc4_adder4_state::adder4_mem_w) +void sc4_adder4_state::adder4_mem_w(offs_t offset, uint32_t data, uint32_t mem_mask) { int pc = m_adder4cpu->pc(); int cs = m_adder4cpu->get_cs(offset * 4); @@ -749,7 +749,7 @@ void sc4_state::bfm_sc4_68307_porta_w(address_space &space, bool dedicated, uint } } -WRITE8_MEMBER( sc4_state::bfm_sc4_reel3_w ) +void sc4_state::bfm_sc4_reel3_w(uint8_t data) { m_reel3_latch = data; @@ -760,7 +760,7 @@ WRITE8_MEMBER( sc4_state::bfm_sc4_reel3_w ) } } -WRITE8_MEMBER( sc4_state::bfm_sc4_reel4_w ) +void sc4_state::bfm_sc4_reel4_w(uint8_t data) { m_reel4_latch = data; @@ -781,7 +781,7 @@ void sc4_state::bfm_sc4_68307_portb_w(address_space &space, bool dedicated, uint bfm_sc45_write_serial_vfd((data & 0x4000)?1:0, (data & 0x1000)?1:0, !(data & 0x2000)?1:0); - bfm_sc4_reel3_w(space, 0, (data&0x0f00)>>8, 0xff); + bfm_sc4_reel3_w((data&0x0f00)>>8); } } diff --git a/src/mame/drivers/bfm_sc5.cpp b/src/mame/drivers/bfm_sc5.cpp index b4b64fba746..7aecae41f74 100644 --- a/src/mame/drivers/bfm_sc5.cpp +++ b/src/mame/drivers/bfm_sc5.cpp @@ -147,7 +147,7 @@ PL1 = Compact Flash Slot -WRITE16_MEMBER( bfm_sc5_state::sc5_duart_w ) +void bfm_sc5_state::sc5_duart_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // clearly a duart of some kind, write patterns are the same as SC4 games // logerror("%s: duart_w %1x %04x %04x\n", machine().describe_context(), offset, data, mem_mask); @@ -163,7 +163,7 @@ WRITE16_MEMBER( bfm_sc5_state::sc5_duart_w ) } -READ8_MEMBER( bfm_sc5_state::sc5_mux1_r ) +uint8_t bfm_sc5_state::sc5_mux1_r(offs_t offset) { switch (offset) { @@ -177,11 +177,11 @@ READ8_MEMBER( bfm_sc5_state::sc5_mux1_r ) } -WRITE8_MEMBER( bfm_sc5_state::sc5_mux1_w ) +void bfm_sc5_state::sc5_mux1_w(offs_t offset, uint8_t data) { if ((offset&0xf)==0) { - mux_output_w(space, (offset & 0x01f0)>>4, data); + mux_output_w((offset & 0x01f0)>>4, data); } else { @@ -191,11 +191,11 @@ WRITE8_MEMBER( bfm_sc5_state::sc5_mux1_w ) -WRITE8_MEMBER( bfm_sc5_state::sc5_mux2_w ) +void bfm_sc5_state::sc5_mux2_w(offs_t offset, uint8_t data) { if ((offset&0xf)==0) { - mux_output2_w(space, (offset & 0x01f0)>>4, data); + mux_output2_w((offset & 0x01f0)>>4, data); } else { @@ -281,7 +281,7 @@ void bfm_sc5_state::sc5_map(address_map &map) INPUT_PORTS_START( bfm_sc5 ) INPUT_PORTS_END -READ8_MEMBER( bfm_sc5_state::sc5_10202F0_r ) +uint8_t bfm_sc5_state::sc5_10202F0_r(offs_t offset) { switch (offset) { @@ -296,7 +296,7 @@ READ8_MEMBER( bfm_sc5_state::sc5_10202F0_r ) return 0; } -WRITE8_MEMBER( bfm_sc5_state::sc5_10202F0_w ) +void bfm_sc5_state::sc5_10202F0_w(offs_t offset, uint8_t data) { switch (offset) { diff --git a/src/mame/drivers/bigevglf.cpp b/src/mame/drivers/bigevglf.cpp index ce0aa3614f9..b5892da6ace 100644 --- a/src/mame/drivers/bigevglf.cpp +++ b/src/mame/drivers/bigevglf.cpp @@ -69,7 +69,7 @@ J1100072A #include "speaker.h" -WRITE8_MEMBER(bigevglf_state::beg_banking_w) +void bigevglf_state::beg_banking_w(uint8_t data) { m_beg_bank = data; @@ -79,7 +79,7 @@ WRITE8_MEMBER(bigevglf_state::beg_banking_w) membank("bank1")->set_entry(m_beg_bank & 0xff); /* empty sockets for IC37-IC44 ROMS */ } -READ8_MEMBER(bigevglf_state::soundstate_r) +uint8_t bigevglf_state::soundstate_r() { uint8_t sound_state = m_soundlatch[0]->pending_r() ? 0 : 1; sound_state |= m_soundlatch[1]->pending_r() ? 2 : 0; @@ -94,27 +94,27 @@ TIMER_CALLBACK_MEMBER(bigevglf_state::deferred_ls74_w) } /* do this on a timer to let the CPUs synchronize */ -WRITE8_MEMBER(bigevglf_state::beg13_a_clr_w) +void bigevglf_state::beg13_a_clr_w(uint8_t data) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bigevglf_state::deferred_ls74_w),this), (0 << 8) | 0); } -WRITE8_MEMBER(bigevglf_state::beg13_b_clr_w) +void bigevglf_state::beg13_b_clr_w(uint8_t data) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bigevglf_state::deferred_ls74_w),this), (1 << 8) | 0); } -WRITE8_MEMBER(bigevglf_state::beg13_a_set_w) +void bigevglf_state::beg13_a_set_w(uint8_t data) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bigevglf_state::deferred_ls74_w),this), (0 << 8) | 1); } -WRITE8_MEMBER(bigevglf_state::beg13_b_set_w) +void bigevglf_state::beg13_b_set_w(uint8_t data) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(bigevglf_state::deferred_ls74_w),this), (1 << 8) | 1); } -READ8_MEMBER(bigevglf_state::beg_status_r) +uint8_t bigevglf_state::beg_status_r() { /* d0 = Q of 74ls74 IC13(partA) d1 = Q of 74ls74 IC13(partB) @@ -131,21 +131,21 @@ READ8_MEMBER(bigevglf_state::beg_status_r) } -READ8_MEMBER(bigevglf_state::beg_trackball_x_r) +uint8_t bigevglf_state::beg_trackball_x_r() { static const char *const portx_name[2] = { "P1X", "P2X" }; return ioport(portx_name[m_port_select])->read(); } -READ8_MEMBER(bigevglf_state::beg_trackball_y_r) +uint8_t bigevglf_state::beg_trackball_y_r() { static const char *const porty_name[2] = { "P1Y", "P2Y" }; return ioport(porty_name[m_port_select])->read(); } -WRITE8_MEMBER(bigevglf_state::beg_port08_w) +void bigevglf_state::beg_port08_w(uint8_t data) { m_port_select = (data & 0x04) >> 2; } @@ -269,7 +269,7 @@ void bigevglf_state::sub_map(address_map &map) } -READ8_MEMBER(bigevglf_state::sub_cpu_mcu_coin_port_r) +uint8_t bigevglf_state::sub_cpu_mcu_coin_port_r() { /* bit 0 and bit 1 = coin inputs diff --git a/src/mame/drivers/bishi.cpp b/src/mame/drivers/bishi.cpp index 07d62161665..570d7d89314 100644 --- a/src/mame/drivers/bishi.cpp +++ b/src/mame/drivers/bishi.cpp @@ -93,18 +93,18 @@ Notes: #include "speaker.h" -READ16_MEMBER(bishi_state::control_r) +uint16_t bishi_state::control_r() { return m_cur_control; } -WRITE16_MEMBER(bishi_state::control_w) +void bishi_state::control_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // bit 8 = interrupt gate COMBINE_DATA(&m_cur_control); } -WRITE16_MEMBER(bishi_state::control2_w) +void bishi_state::control2_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // bit 12 = part of the banking calculation for the K056832 ROM readback COMBINE_DATA(&m_cur_control2); @@ -125,12 +125,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(bishi_state::bishi_scanline) } /* compensate for a bug in the ram/rom test */ -READ16_MEMBER(bishi_state::bishi_mirror_r) +uint16_t bishi_state::bishi_mirror_r(offs_t offset) { return m_palette->basemem().read16(offset); } -READ16_MEMBER(bishi_state::bishi_K056832_rom_r) +uint16_t bishi_state::bishi_K056832_rom_r(offs_t offset) { uint16_t ouroffs; diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp index a0fc581bb76..a7552593bba 100644 --- a/src/mame/drivers/bking.cpp +++ b/src/mame/drivers/bking.cpp @@ -29,50 +29,50 @@ DIP Locations verified for: #include "speaker.h" -READ8_MEMBER(bking_state::bking_sndnmi_disable_r) +uint8_t bking_state::bking_sndnmi_disable_r() { m_soundnmi->in_w<1>(0); return 0; } -WRITE8_MEMBER(bking_state::bking_sndnmi_enable_w) +void bking_state::bking_sndnmi_enable_w(uint8_t data) { m_soundnmi->in_w<1>(1); } -WRITE8_MEMBER(bking_state::bking_soundlatch_w) +void bking_state::bking_soundlatch_w(uint8_t data) { m_soundlatch->write(bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7)); } -WRITE8_MEMBER(bking_state::bking3_addr_l_w) +void bking_state::bking3_addr_l_w(uint8_t data) { m_addr_l = data; } -WRITE8_MEMBER(bking_state::bking3_addr_h_w) +void bking_state::bking3_addr_h_w(uint8_t data) { m_addr_h = data; } -READ8_MEMBER(bking_state::bking3_extrarom_r) +uint8_t bking_state::bking3_extrarom_r() { uint8_t *rom = memregion("user2")->base(); return rom[m_addr_h * 256 + m_addr_l]; } -WRITE8_MEMBER(bking_state::unk_w) +void bking_state::unk_w(uint8_t data) { // 0 = finished reading extra rom // 1 = started reading extra rom } -READ8_MEMBER(bking_state::bking3_ext_check_r) +uint8_t bking_state::bking3_ext_check_r() { return 0x31; //no "bad rom.", no "bad ext." } -READ8_MEMBER(bking_state::bking3_mcu_status_r) +uint8_t bking_state::bking3_mcu_status_r() { // bit 0 = when 1, MCU is ready to receive data from main CPU // bit 1 = when 1, MCU has sent data to the main CPU diff --git a/src/mame/drivers/bladestl.cpp b/src/mame/drivers/bladestl.cpp index c3158356de4..225f8c8495f 100644 --- a/src/mame/drivers/bladestl.cpp +++ b/src/mame/drivers/bladestl.cpp @@ -57,7 +57,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(bladestl_state::bladestl_scanline) * *************************************/ -READ8_MEMBER(bladestl_state::trackball_r) +uint8_t bladestl_state::trackball_r(offs_t offset) { int curr = m_trackball[offset]->read(); int delta = (curr - m_last_track[offset]) & 0xff; @@ -66,7 +66,7 @@ READ8_MEMBER(bladestl_state::trackball_r) return (delta & 0x80) | (curr >> 1); } -WRITE8_MEMBER(bladestl_state::bladestl_bankswitch_w) +void bladestl_state::bladestl_bankswitch_w(uint8_t data) { /* bits 0 & 1 = coin counters */ machine().bookkeeping().coin_counter_w(0,data & 0x01); @@ -101,12 +101,12 @@ void bladestl_state::bladestl_port_B_w(uint8_t data) m_filter1->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */ } -READ8_MEMBER(bladestl_state::bladestl_speech_busy_r) +uint8_t bladestl_state::bladestl_speech_busy_r() { return m_upd7759->busy_r() ? 1 : 0; } -WRITE8_MEMBER(bladestl_state::bladestl_speech_ctrl_w) +void bladestl_state::bladestl_speech_ctrl_w(uint8_t data) { m_upd7759->reset_w(data & 1); m_upd7759->start_w(data & 2); diff --git a/src/mame/drivers/blktiger.cpp b/src/mame/drivers/blktiger.cpp index d986e70e341..56996780be5 100644 --- a/src/mame/drivers/blktiger.cpp +++ b/src/mame/drivers/blktiger.cpp @@ -32,12 +32,12 @@ Protection comms between main cpu and i8751 **************************************************/ -READ8_MEMBER(blktiger_state::blktiger_from_mcu_r) +uint8_t blktiger_state::blktiger_from_mcu_r() { return m_i8751_latch; } -WRITE8_MEMBER(blktiger_state::blktiger_to_mcu_w) +void blktiger_state::blktiger_to_mcu_w(uint8_t data) { m_mcu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE); m_z80_latch = data; @@ -58,12 +58,12 @@ void blktiger_state::blktiger_to_main_w(uint8_t data) -WRITE8_MEMBER(blktiger_state::blktiger_bankswitch_w) +void blktiger_state::blktiger_bankswitch_w(uint8_t data) { membank("bank1")->set_entry(data & 0x0f); } -WRITE8_MEMBER(blktiger_state::blktiger_coinlockout_w) +void blktiger_state::blktiger_coinlockout_w(uint8_t data) { if (ioport("COIN_LOCKOUT")->read() & 0x01) { diff --git a/src/mame/drivers/blmbycar.cpp b/src/mame/drivers/blmbycar.cpp index 827c4be384f..f713061b1e0 100644 --- a/src/mame/drivers/blmbycar.cpp +++ b/src/mame/drivers/blmbycar.cpp @@ -46,7 +46,7 @@ Check game speed, it depends on a bit we toggle.. /* The top 64k of samples are banked (16 banks total) */ -WRITE8_MEMBER(blmbycar_state::okibank_w) +void blmbycar_state::okibank_w(uint8_t data) { m_okibank->set_entry(data & 0x0f); } @@ -61,19 +61,19 @@ WRITE8_MEMBER(blmbycar_state::okibank_w) /* Preliminary potentiometric wheel support */ -WRITE8_MEMBER(blmbycar_state::blmbycar_pot_wheel_reset_w) +void blmbycar_state::blmbycar_pot_wheel_reset_w(uint8_t data) { m_pot_wheel = m_pot_wheel_io->read() & 0xff; } -WRITE8_MEMBER(blmbycar_state::blmbycar_pot_wheel_shift_w) +void blmbycar_state::blmbycar_pot_wheel_shift_w(uint8_t data) { if ( ((m_old_val & 0xff) == 0xff) && ((data & 0xff) == 0) ) m_pot_wheel <<= 1; m_old_val = data; } -READ16_MEMBER(blmbycar_state::blmbycar_pot_wheel_r) +uint16_t blmbycar_state::blmbycar_pot_wheel_r() { return ((m_pot_wheel & 0x80) ? 0x04 : 0) | (machine().rand() & 0x08); } @@ -81,7 +81,7 @@ READ16_MEMBER(blmbycar_state::blmbycar_pot_wheel_r) /* Preliminary optical wheel support */ -READ16_MEMBER(blmbycar_state::blmbycar_opt_wheel_r) +uint16_t blmbycar_state::blmbycar_opt_wheel_r() { return ((m_opt_wheel_io->read() & 0xff) << 8) | 0xff; } @@ -96,7 +96,7 @@ READ16_MEMBER(blmbycar_state::blmbycar_opt_wheel_r) ***************************************************************************/ template<int Layer> -WRITE16_MEMBER(blmbycar_state::vram_w) +void blmbycar_state::vram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram[Layer][offset]); m_tilemap[Layer]->mark_tile_dirty(offset / 2); @@ -144,7 +144,7 @@ void blmbycar_state::blmbycar_map(address_map &map) map(0x70007b, 0x70007b).w(FUNC(blmbycar_state::blmbycar_pot_wheel_shift_w)); // } -READ16_MEMBER(blmbycar_state::waterball_unk_r) +uint16_t blmbycar_state::waterball_unk_r() { m_retvalue ^= 0x0008; // must toggle.. but not vblank? return m_retvalue; diff --git a/src/mame/drivers/blockout.cpp b/src/mame/drivers/blockout.cpp index 1820a11a08d..fdc42205044 100644 --- a/src/mame/drivers/blockout.cpp +++ b/src/mame/drivers/blockout.cpp @@ -79,12 +79,12 @@ #define MAIN_CLOCK XTAL(10'000'000) #define AUDIO_CLOCK XTAL(3'579'545) -WRITE16_MEMBER(blockout_state::blockout_irq6_ack_w) +void blockout_state::blockout_irq6_ack_w(uint16_t data) { m_maincpu->set_input_line(6, CLEAR_LINE); } -WRITE16_MEMBER(blockout_state::blockout_irq5_ack_w) +void blockout_state::blockout_irq5_ack_w(uint16_t data) { m_maincpu->set_input_line(5, CLEAR_LINE); } diff --git a/src/mame/drivers/bloodbro.cpp b/src/mame/drivers/bloodbro.cpp index cbef8a0c7d9..b0e516c735a 100644 --- a/src/mame/drivers/bloodbro.cpp +++ b/src/mame/drivers/bloodbro.cpp @@ -515,7 +515,7 @@ void bloodbro_state::layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_m COMBINE_DATA(&m_scrollram[offset]); } -WRITE16_MEMBER( bloodbro_state::weststry_layer_scroll_w ) +void bloodbro_state::weststry_layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_scrollram[offset]); } diff --git a/src/mame/drivers/blueprnt.cpp b/src/mame/drivers/blueprnt.cpp index 7795f327f4e..07343c7bb3a 100644 --- a/src/mame/drivers/blueprnt.cpp +++ b/src/mame/drivers/blueprnt.cpp @@ -70,12 +70,12 @@ void blueprnt_state::dipsw_w(uint8_t data) m_dipsw = data; } -READ8_MEMBER(blueprnt_state::blueprnt_sh_dipsw_r) +uint8_t blueprnt_state::blueprnt_sh_dipsw_r() { return m_dipsw; } -READ8_MEMBER(blueprnt_state::grasspin_sh_dipsw_r) +uint8_t blueprnt_state::grasspin_sh_dipsw_r() { // judging from the disasm, it looks like simple protection was added // d6: small possibility it's for comms? but the fact that there's a Freeze switch on the pcb rules this out @@ -83,13 +83,13 @@ READ8_MEMBER(blueprnt_state::grasspin_sh_dipsw_r) return (m_dipsw & 0x7f) | 0x80; } -WRITE8_MEMBER(blueprnt_state::blueprnt_sound_command_w) +void blueprnt_state::blueprnt_sound_command_w(uint8_t data) { m_soundlatch->write(data); m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -WRITE8_MEMBER(blueprnt_state::blueprnt_coin_counter_w) +void blueprnt_state::blueprnt_coin_counter_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, data & 0x01); machine().bookkeeping().coin_counter_w(1, data & 0x02); diff --git a/src/mame/drivers/bogeyman.cpp b/src/mame/drivers/bogeyman.cpp index a8a83bdc7c0..5c806149779 100644 --- a/src/mame/drivers/bogeyman.cpp +++ b/src/mame/drivers/bogeyman.cpp @@ -25,12 +25,12 @@ // Sound section is copied from Mysterious Stones driver by Nicola, Mike, Brad -WRITE8_MEMBER(bogeyman_state::ay8910_latch_w) +void bogeyman_state::ay8910_latch_w(uint8_t data) { m_psg_latch = data; } -WRITE8_MEMBER(bogeyman_state::ay8910_control_w) +void bogeyman_state::ay8910_control_w(uint8_t data) { // bit 0 is flipscreen flip_screen_set(data & 0x01); diff --git a/src/mame/drivers/bombjack.cpp b/src/mame/drivers/bombjack.cpp index c884dc89d10..d1106f59f12 100644 --- a/src/mame/drivers/bombjack.cpp +++ b/src/mame/drivers/bombjack.cpp @@ -106,7 +106,7 @@ Dip Locations and factory settings verified with manual #include "speaker.h" -READ8_MEMBER(bombjack_state::soundlatch_read_and_clear) +uint8_t bombjack_state::soundlatch_read_and_clear() { // An extra flip-flop is used to clear the LS273 after reading it through a LS245 // (this flip-flop is then cleared in sync with the sound CPU clock) @@ -123,7 +123,7 @@ READ8_MEMBER(bombjack_state::soundlatch_read_and_clear) * *************************************/ -WRITE8_MEMBER(bombjack_state::irq_mask_w) +void bombjack_state::irq_mask_w(uint8_t data) { m_nmi_mask = BIT(data, 0); if (!m_nmi_mask) diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp index 687957c58e5..c94102fd4f2 100644 --- a/src/mame/drivers/boogwing.cpp +++ b/src/mame/drivers/boogwing.cpp @@ -96,7 +96,7 @@ #define MAIN_XTAL XTAL(28'000'000) #define SOUND_XTAL XTAL(32'220'000) -READ16_MEMBER( boogwing_state::boogwing_protection_region_0_104_r ) +uint16_t boogwing_state::boogwing_protection_region_0_104_r(offs_t offset) { int real_address = 0 + (offset *2); int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff; @@ -105,7 +105,7 @@ READ16_MEMBER( boogwing_state::boogwing_protection_region_0_104_r ) return data; } -WRITE16_MEMBER( boogwing_state::boogwing_protection_region_0_104_w ) +void boogwing_state::boogwing_protection_region_0_104_w(offs_t offset, uint16_t data, uint16_t mem_mask) { int real_address = 0 + (offset *2); int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff; @@ -113,7 +113,7 @@ WRITE16_MEMBER( boogwing_state::boogwing_protection_region_0_104_w ) m_deco104->write_data( deco146_addr, data, mem_mask, cs ); } -WRITE16_MEMBER( boogwing_state::priority_w ) +void boogwing_state::priority_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_priority); } diff --git a/src/mame/drivers/bottom9.cpp b/src/mame/drivers/bottom9.cpp index 8276aca6732..ccbfb0fdae6 100644 --- a/src/mame/drivers/bottom9.cpp +++ b/src/mame/drivers/bottom9.cpp @@ -25,7 +25,7 @@ #include "speaker.h" -READ8_MEMBER(bottom9_state::k052109_051960_r) +uint8_t bottom9_state::k052109_051960_r(offs_t offset) { if (m_k052109->get_rmrd_line() == CLEAR_LINE) { @@ -40,7 +40,7 @@ READ8_MEMBER(bottom9_state::k052109_051960_r) return m_k052109->read(offset); } -WRITE8_MEMBER(bottom9_state::k052109_051960_w) +void bottom9_state::k052109_051960_w(offs_t offset, uint8_t data) { if (offset >= 0x3800 && offset < 0x3808) m_k051960->k051937_w(offset - 0x3800, data); @@ -50,10 +50,10 @@ WRITE8_MEMBER(bottom9_state::k052109_051960_w) m_k051960->k051960_w(offset - 0x3c00, data); } -READ8_MEMBER(bottom9_state::bottom9_bankedram1_r) +uint8_t bottom9_state::bottom9_bankedram1_r(offs_t offset) { if (m_k052109_selected) - return k052109_051960_r(space, offset); + return k052109_051960_r(offset); else { if (m_zoomreadroms) @@ -63,31 +63,31 @@ READ8_MEMBER(bottom9_state::bottom9_bankedram1_r) } } -WRITE8_MEMBER(bottom9_state::bottom9_bankedram1_w) +void bottom9_state::bottom9_bankedram1_w(offs_t offset, uint8_t data) { if (m_k052109_selected) - k052109_051960_w(space, offset, data); + k052109_051960_w(offset, data); else m_k051316->write(offset, data); } -READ8_MEMBER(bottom9_state::bottom9_bankedram2_r) +uint8_t bottom9_state::bottom9_bankedram2_r(offs_t offset) { if (m_k052109_selected) - return k052109_051960_r(space, offset + 0x2000); + return k052109_051960_r(offset + 0x2000); else return m_palette->basemem().read8(offset); } -WRITE8_MEMBER(bottom9_state::bottom9_bankedram2_w) +void bottom9_state::bottom9_bankedram2_w(offs_t offset, uint8_t data) { if (m_k052109_selected) - k052109_051960_w(space, offset + 0x2000, data); + k052109_051960_w(offset + 0x2000, data); else m_palette->write8(offset, data); } -WRITE8_MEMBER(bottom9_state::bankswitch_w) +void bottom9_state::bankswitch_w(uint8_t data) { int bank; @@ -104,7 +104,7 @@ WRITE8_MEMBER(bottom9_state::bankswitch_w) membank("bank1")->set_entry(bank); } -WRITE8_MEMBER(bottom9_state::bottom9_1f90_w) +void bottom9_state::bottom9_1f90_w(uint8_t data) { /* bits 0/1 = coin counters */ machine().bookkeeping().coin_counter_w(0, data & 0x01); @@ -123,7 +123,7 @@ WRITE8_MEMBER(bottom9_state::bottom9_1f90_w) m_k052109_selected = data & 0x20; } -WRITE8_MEMBER(bottom9_state::bottom9_sh_irqtrigger_w) +void bottom9_state::bottom9_sh_irqtrigger_w(uint8_t data) { m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); // Z80 } @@ -134,12 +134,12 @@ INTERRUPT_GEN_MEMBER(bottom9_state::bottom9_sound_interrupt) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -WRITE8_MEMBER(bottom9_state::nmi_enable_w) +void bottom9_state::nmi_enable_w(uint8_t data) { m_nmienable = data; } -WRITE8_MEMBER(bottom9_state::sound_bank_w) +void bottom9_state::sound_bank_w(uint8_t data) { int bank_A, bank_B; diff --git a/src/mame/drivers/brkthru.cpp b/src/mame/drivers/brkthru.cpp index 7293fe25c9b..61cb4aa1e5e 100644 --- a/src/mame/drivers/brkthru.cpp +++ b/src/mame/drivers/brkthru.cpp @@ -160,7 +160,7 @@ buttons down after the game has started then pressing F3 to reset the game. * *************************************/ -WRITE8_MEMBER(brkthru_state::brkthru_1803_w) +void brkthru_state::brkthru_1803_w(uint8_t data) { /* bit 0 = NMI enable */ m_nmi_mask = ~data & 1; @@ -171,7 +171,7 @@ WRITE8_MEMBER(brkthru_state::brkthru_1803_w) /* bit 1 = ? maybe IRQ acknowledge */ } -WRITE8_MEMBER(brkthru_state::darwin_0803_w) +void brkthru_state::darwin_0803_w(uint8_t data) { /* bit 0 = NMI enable */ m_nmi_mask = data & 1; diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp index ceda47a9c61..75524d8120a 100644 --- a/src/mame/drivers/btime.cpp +++ b/src/mame/drivers/btime.cpp @@ -167,7 +167,7 @@ enum }; -WRITE8_MEMBER(btime_state::audio_nmi_enable_w) +void btime_state::audio_nmi_enable_w(uint8_t data) { /* for most games, this serves as the NMI enable for the audio CPU; however, lnc and disco use bit 0 of the first AY-8910's port A instead; many other @@ -380,7 +380,7 @@ INPUT_CHANGED_MEMBER(btime_state::coin_inserted_nmi_lo) } -READ8_MEMBER(btime_state::zoar_dsw1_read) +uint8_t btime_state::zoar_dsw1_read() { return (!m_screen->vblank() << 7) | (ioport("DSW1")->read() & 0x7f); } @@ -2090,7 +2090,7 @@ ROM_START( sdtennis ) ROM_LOAD( "ao_04.10f", 0x1000, 0x1000, CRC(921952af) SHA1(4e9248f3493a5f4651278f27c11f507571242317) ) ROM_END -READ8_MEMBER(btime_state::wtennis_reset_hack_r) +uint8_t btime_state::wtennis_reset_hack_r() { uint8_t *RAM = memregion("maincpu")->base(); @@ -2171,7 +2171,7 @@ void btime_state::init_protennb() void btime_state::init_wtennis() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8_delegate(*this, FUNC(btime_state::wtennis_reset_hack_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8smo_delegate(*this, FUNC(btime_state::wtennis_reset_hack_r))); m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0200, 0x0fff, "bank10"); membank("bank10")->set_base(memregion("audiocpu")->base() + 0xe200); diff --git a/src/mame/drivers/btoads.cpp b/src/mame/drivers/btoads.cpp index 5137bde47ed..d6e70fca2d8 100644 --- a/src/mame/drivers/btoads.cpp +++ b/src/mame/drivers/btoads.cpp @@ -59,14 +59,14 @@ void btoads_state::device_timer(emu_timer &timer, device_timer_id id, int param, } -WRITE16_MEMBER( btoads_state::main_sound_w ) +void btoads_state::main_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) synchronize(TIMER_ID_DELAYED_SOUND, data & 0xff); } -READ16_MEMBER( btoads_state::main_sound_r ) +uint16_t btoads_state::main_sound_r() { m_sound_to_main_ready = 0; return m_sound_to_main_data; @@ -92,27 +92,27 @@ READ_LINE_MEMBER( btoads_state::sound_to_main_r ) * *************************************/ -WRITE8_MEMBER( btoads_state::sound_data_w ) +void btoads_state::sound_data_w(uint8_t data) { m_sound_to_main_data = data; m_sound_to_main_ready = 1; } -READ8_MEMBER( btoads_state::sound_data_r ) +uint8_t btoads_state::sound_data_r() { m_main_to_sound_ready = 0; return m_main_to_sound_data; } -READ8_MEMBER( btoads_state::sound_ready_to_send_r ) +uint8_t btoads_state::sound_ready_to_send_r() { return m_sound_to_main_ready ? 0x00 : 0x80; } -READ8_MEMBER( btoads_state::sound_data_ready_r ) +uint8_t btoads_state::sound_data_ready_r() { if (m_audiocpu->pc() == 0xd50 && !m_main_to_sound_ready) m_audiocpu->spin_until_interrupt(); @@ -127,7 +127,7 @@ READ8_MEMBER( btoads_state::sound_data_ready_r ) * *************************************/ -WRITE8_MEMBER( btoads_state::sound_int_state_w ) +void btoads_state::sound_int_state_w(uint8_t data) { /* top bit controls BSMT2000 reset */ if (!(m_sound_int_state & 0x80) && (data & 0x80)) @@ -146,13 +146,13 @@ WRITE8_MEMBER( btoads_state::sound_int_state_w ) * *************************************/ -READ8_MEMBER( btoads_state::bsmt_ready_r ) +uint8_t btoads_state::bsmt_ready_r() { return m_bsmt->read_status() << 7; } -WRITE8_MEMBER( btoads_state::bsmt2000_port_w ) +void btoads_state::bsmt2000_port_w(offs_t offset, uint8_t data) { m_bsmt->write_reg(offset >> 8); m_bsmt->write_data(((offset & 0xff) << 8) | data); diff --git a/src/mame/drivers/buggychl.cpp b/src/mame/drivers/buggychl.cpp index 4095286ebbb..b474c67b9f7 100644 --- a/src/mame/drivers/buggychl.cpp +++ b/src/mame/drivers/buggychl.cpp @@ -103,12 +103,12 @@ Schematics show the jumper set to the 6mhz setting. #include "buggychl.lh" -WRITE8_MEMBER(buggychl_state::bankswitch_w) +void buggychl_state::bankswitch_w(uint8_t data) { membank("bank1")->set_entry(data & 0x07); // shall we check if data&7 < # banks? } -WRITE8_MEMBER(buggychl_state::sound_enable_w) +void buggychl_state::sound_enable_w(uint8_t data) { // does this really only control the sound irq 'timer' enable state, rather than the entire sound system? // this would be more in line with the (admittedly incorrect) schematic... @@ -116,7 +116,7 @@ WRITE8_MEMBER(buggychl_state::sound_enable_w) machine().sound().system_enable(data & 1); } -READ8_MEMBER(buggychl_state::mcu_status_r) +uint8_t buggychl_state::mcu_status_r() { // bit 0 = when 1, MCU is ready to receive data from main CPU // bit 1 = when 1, MCU has sent data to the main CPU @@ -134,12 +134,12 @@ READ8_MEMBER(buggychl_state::mcu_status_r) // a cpu read of soundlatch2 sets ic12.1 so /Q is low, so cpu bit 0 and sound bit 1 read as clear // a sound read of soundlatch clears ic12.2 so /Q is high, so cpu bit 1 and sound bit 0 read as set // ic12.1 is set and ic12.2 is cleared by /SRESET -READ8_MEMBER(buggychl_state::sound_status_main_r) +uint8_t buggychl_state::sound_status_main_r() { return (m_soundlatch2->pending_r() ? 1 : 0) | (m_soundlatch->pending_r() ? 0 : 2); } -READ8_MEMBER(buggychl_state::sound_status_sound_r) +uint8_t buggychl_state::sound_status_sound_r() { return (m_soundlatch2->pending_r() ? 2 : 0) | (m_soundlatch->pending_r() ? 0 : 1); } @@ -458,7 +458,7 @@ static GFXDECODE_START( gfx_buggychl ) GFXDECODE_END -WRITE8_MEMBER(buggychl_state::ta7630_volbal_msm_w) +void buggychl_state::ta7630_volbal_msm_w(uint8_t data) { m_ta7630->set_device_volume(m_msm, data >> 4); } diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp index 471327d69e4..548a9472b46 100644 --- a/src/mame/drivers/bullet.cpp +++ b/src/mame/drivers/bullet.cpp @@ -103,7 +103,7 @@ enum // mreq_r - //------------------------------------------------- -READ8_MEMBER( bullet_state::mreq_r ) +uint8_t bullet_state::mreq_r(offs_t offset) { uint8_t data = 0; @@ -131,7 +131,7 @@ READ8_MEMBER( bullet_state::mreq_r ) // mreq_w - //------------------------------------------------- -WRITE8_MEMBER( bullet_state::mreq_w ) +void bullet_state::mreq_w(offs_t offset, uint8_t data) { if (offset < 0xc000) { @@ -148,7 +148,7 @@ WRITE8_MEMBER( bullet_state::mreq_w ) // win_r - //------------------------------------------------- -READ8_MEMBER( bullet_state::win_r ) +uint8_t bullet_state::win_r() { return 0; } @@ -158,7 +158,7 @@ READ8_MEMBER( bullet_state::win_r ) // wstrobe_w - //------------------------------------------------- -WRITE8_MEMBER( bullet_state::wstrobe_w ) +void bullet_state::wstrobe_w(uint8_t data) { } @@ -167,7 +167,7 @@ WRITE8_MEMBER( bullet_state::wstrobe_w ) // brom_r - //------------------------------------------------- -READ8_MEMBER( bullet_state::brom_r ) +uint8_t bullet_state::brom_r() { m_brom = 1; @@ -179,7 +179,7 @@ READ8_MEMBER( bullet_state::brom_r ) // brom_w - //------------------------------------------------- -WRITE8_MEMBER( bullet_state::brom_w ) +void bullet_state::brom_w(uint8_t data) { m_brom = 1; } @@ -189,7 +189,7 @@ WRITE8_MEMBER( bullet_state::brom_w ) // exdsk_w - //------------------------------------------------- -WRITE8_MEMBER( bullet_state::exdsk_w ) +void bullet_state::exdsk_w(uint8_t data) { /* @@ -248,7 +248,7 @@ WRITE8_MEMBER( bullet_state::exdsk_w ) // exdma_w - //------------------------------------------------- -WRITE8_MEMBER( bullet_state::exdma_w ) +void bullet_state::exdma_w(uint8_t data) { /* @@ -277,7 +277,7 @@ WRITE8_MEMBER( bullet_state::exdma_w ) // hdcon_w - //------------------------------------------------- -WRITE8_MEMBER( bullet_state::hdcon_w ) +void bullet_state::hdcon_w(uint8_t data) { /* @@ -314,7 +314,7 @@ WRITE8_MEMBER( bullet_state::hdcon_w ) // info_r - //------------------------------------------------- -READ8_MEMBER( bullet_state::info_r ) +uint8_t bullet_state::info_r() { /* @@ -350,7 +350,7 @@ READ8_MEMBER( bullet_state::info_r ) // segst_w - //------------------------------------------------- -WRITE8_MEMBER( bullet_state::segst_w ) +void bullet_state::segst_w(uint8_t data) { m_segst = BIT(data, 0); } @@ -360,7 +360,7 @@ WRITE8_MEMBER( bullet_state::segst_w ) // mreq_r - //------------------------------------------------- -READ8_MEMBER( bulletf_state::mreq_r ) +uint8_t bulletf_state::mreq_r(offs_t offset) { uint8_t data = 0; @@ -395,7 +395,7 @@ READ8_MEMBER( bulletf_state::mreq_r ) // mreq_w - //------------------------------------------------- -WRITE8_MEMBER( bulletf_state::mreq_w ) +void bulletf_state::mreq_w(offs_t offset, uint8_t data) { if (offset < 0xc000) { @@ -419,7 +419,7 @@ WRITE8_MEMBER( bulletf_state::mreq_w ) // xdma0_w - //------------------------------------------------- -WRITE8_MEMBER( bulletf_state::xdma0_w ) +void bulletf_state::xdma0_w(uint8_t data) { /* @@ -446,7 +446,7 @@ WRITE8_MEMBER( bulletf_state::xdma0_w ) // xfdc_w - //------------------------------------------------- -WRITE8_MEMBER( bulletf_state::xfdc_w ) +void bulletf_state::xfdc_w(uint8_t data) { /* @@ -506,7 +506,7 @@ WRITE8_MEMBER( bulletf_state::xfdc_w ) // mbank_w - //------------------------------------------------- -WRITE8_MEMBER( bulletf_state::mbank_w ) +void bulletf_state::mbank_w(uint8_t data) { /* @@ -531,7 +531,7 @@ WRITE8_MEMBER( bulletf_state::mbank_w ) // scsi_r - //------------------------------------------------- -READ8_MEMBER( bulletf_state::scsi_r ) +uint8_t bulletf_state::scsi_r() { uint8_t data = m_scsi_data_in->read(); @@ -548,7 +548,7 @@ READ8_MEMBER( bulletf_state::scsi_r ) // scsi_w - //------------------------------------------------- -WRITE8_MEMBER( bulletf_state::scsi_w ) +void bulletf_state::scsi_w(uint8_t data) { m_scsi_data_out->write(data); @@ -562,7 +562,7 @@ WRITE8_MEMBER( bulletf_state::scsi_w ) // hwsts_r - //------------------------------------------------- -READ8_MEMBER( bulletf_state::hwsts_r ) +uint8_t bulletf_state::hwsts_r() { /* diff --git a/src/mame/drivers/busicom.cpp b/src/mame/drivers/busicom.cpp index c12e1a7f9a3..4d008f8c7e7 100644 --- a/src/mame/drivers/busicom.cpp +++ b/src/mame/drivers/busicom.cpp @@ -23,12 +23,12 @@ uint8_t busicom_state::get_bit_selected(uint32_t val,int num) return 0; } -READ8_MEMBER(busicom_state::keyboard_r) +uint8_t busicom_state::keyboard_r() { return m_input_lines[get_bit_selected(m_keyboard_shifter & 0x3ff, 10)]->read(); } -READ8_MEMBER(busicom_state::printer_r) +uint8_t busicom_state::printer_r() { uint8_t retVal = 0; if (m_drum_index==0) retVal |= 1; @@ -37,7 +37,7 @@ READ8_MEMBER(busicom_state::printer_r) } -WRITE8_MEMBER(busicom_state::shifter_w) +void busicom_state::shifter_w(uint8_t data) { // FIXME: detect edges, maybe make 4003 shifter a device if (BIT(data,0)) { @@ -50,7 +50,7 @@ WRITE8_MEMBER(busicom_state::shifter_w) } } -WRITE8_MEMBER(busicom_state::printer_w) +void busicom_state::printer_w(uint8_t data) { int i,j; if (BIT(data,0)) { @@ -85,7 +85,7 @@ WRITE8_MEMBER(busicom_state::printer_w) } } -WRITE8_MEMBER(busicom_state::status_w) +void busicom_state::status_w(uint8_t data) { #if 0 uint8_t mem_lamp = BIT(data,0); @@ -95,7 +95,7 @@ WRITE8_MEMBER(busicom_state::status_w) //logerror("status %c %c %c\n",mem_lamp ? 'M':'x',over_lamp ? 'O':'x',minus_lamp ? '-':'x'); } -WRITE8_MEMBER(busicom_state::printer_ctrl_w) +void busicom_state::printer_ctrl_w(uint8_t data) { } diff --git a/src/mame/drivers/bwidow.cpp b/src/mame/drivers/bwidow.cpp index 77376396b47..c7197bca545 100644 --- a/src/mame/drivers/bwidow.cpp +++ b/src/mame/drivers/bwidow.cpp @@ -258,7 +258,7 @@ Typically, only the high 2 bits are read. */ -READ8_MEMBER(bwidow_state::spacduel_IN3_r) +uint8_t bwidow_state::spacduel_IN3_r(offs_t offset) { int res; int res1; @@ -314,7 +314,7 @@ READ_LINE_MEMBER(bwidow_state::clock_r) return (m_maincpu->total_cycles() & 0x100) ? 1 : 0; } -READ8_MEMBER(bwidow_state::bwidowp_in_r) +uint8_t bwidow_state::bwidowp_in_r() { return (m_in4->read() & 0x0f) | ((m_in3->read() & 0x0f) << 4); } @@ -325,7 +325,7 @@ READ8_MEMBER(bwidow_state::bwidowp_in_r) * *************************************/ -WRITE8_MEMBER(bwidow_state::bwidow_misc_w) +void bwidow_state::bwidow_misc_w(uint8_t data) { /* 0x10 = p1 led @@ -342,7 +342,7 @@ WRITE8_MEMBER(bwidow_state::bwidow_misc_w) m_lastdata = data; } -WRITE8_MEMBER(bwidow_state::spacduel_coin_counter_w) +void bwidow_state::spacduel_coin_counter_w(uint8_t data) { if (data == m_lastdata) return; m_leds[0] = BIT(~data, 5); // start lamp @@ -362,12 +362,12 @@ WRITE8_MEMBER(bwidow_state::spacduel_coin_counter_w) * *************************************/ -READ8_MEMBER(bwidow_state::earom_read) +uint8_t bwidow_state::earom_read() { return m_earom->data(); } -WRITE8_MEMBER(bwidow_state::earom_write) +void bwidow_state::earom_write(offs_t offset, uint8_t data) { m_earom->set_address(offset & 0x3f); m_earom->set_data(data); @@ -392,7 +392,7 @@ void bwidow_state::machine_reset() * *************************************/ -WRITE8_MEMBER(bwidow_state::irq_ack_w) +void bwidow_state::irq_ack_w(uint8_t data) { m_maincpu->set_input_line(0, CLEAR_LINE); } diff --git a/src/mame/drivers/bwing.cpp b/src/mame/drivers/bwing.cpp index 3b1b4570df8..d16ce37a618 100644 --- a/src/mame/drivers/bwing.cpp +++ b/src/mame/drivers/bwing.cpp @@ -48,23 +48,23 @@ INTERRUPT_GEN_MEMBER(bwing_state::bwp3_interrupt) //**************************************************************************** // Memory and I/O Handlers -WRITE8_MEMBER(bwing_state::bwp3_u8F_w) +void bwing_state::bwp3_u8F_w(uint8_t data) { m_bwp3_u8F_d = data; // prepares custom chip for various operations } -WRITE8_MEMBER(bwing_state::bwp3_nmimask_w) +void bwing_state::bwp3_nmimask_w(uint8_t data) { m_bwp3_nmimask = data & 0x80; } -WRITE8_MEMBER(bwing_state::bwp3_nmiack_w) +void bwing_state::bwp3_nmiack_w(uint8_t data) { m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); } -WRITE8_MEMBER(bwing_state::bwp1_ctrl_w) +void bwing_state::bwp1_ctrl_w(offs_t offset, uint8_t data) { switch (offset) { @@ -103,7 +103,7 @@ WRITE8_MEMBER(bwing_state::bwp1_ctrl_w) } -WRITE8_MEMBER(bwing_state::bwp2_ctrl_w) +void bwing_state::bwp2_ctrl_w(offs_t offset, uint8_t data) { switch (offset) { diff --git a/src/mame/drivers/ccs300.cpp b/src/mame/drivers/ccs300.cpp index 3ef315bc5f5..34c5b267cc0 100644 --- a/src/mame/drivers/ccs300.cpp +++ b/src/mame/drivers/ccs300.cpp @@ -175,4 +175,4 @@ ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, ccs300, ccs2810, 0, ccs300, ccs300, ccs300_state, empty_init, "California Computer Systems", "CCS Model 300", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, ccs300, ccs2810, 0, ccs300, ccs300, ccs300_state, empty_init, "California Computer Systems", "CCS Model 300", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/czk80.cpp b/src/mame/drivers/ckz80.cpp index 89593e3e55b..ad95a5ac8c2 100644 --- a/src/mame/drivers/czk80.cpp +++ b/src/mame/drivers/ckz80.cpp @@ -2,7 +2,7 @@ // copyright-holders:Robbbert /*************************************************************************** -CZK-80 +CKZ-80 2010-08-30 Skeleton driver 2010-11-27 Connected to a terminal @@ -49,10 +49,10 @@ I/O ports: These ranges are what is guessed #include "machine/terminal.h" -class czk80_state : public driver_device +class ckz80_state : public driver_device { public: - czk80_state(const machine_config &mconfig, device_type type, const char *tag) + ckz80_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_rom(*this, "maincpu") @@ -61,7 +61,7 @@ public: , m_fdc(*this, "fdc") { } - void czk80(machine_config &config); + void ckz80(machine_config &config); private: virtual void machine_start() override; @@ -73,8 +73,8 @@ private: DECLARE_WRITE_LINE_MEMBER(ctc_z0_w); DECLARE_WRITE_LINE_MEMBER(ctc_z1_w); DECLARE_WRITE_LINE_MEMBER(ctc_z2_w); - void czk80_io(address_map &map); - void czk80_mem(address_map &map); + void io_map(address_map &map); + void mem_map(address_map &map); u8 m_term_data; bool m_rom_in_map; required_device<z80_device> m_maincpu; @@ -86,44 +86,44 @@ private: }; -void czk80_state::port40_w(u8 data) +void ckz80_state::port40_w(u8 data) { m_rom_in_map = !BIT(data, 1); } -u8 czk80_state::port80_r() +u8 ckz80_state::port80_r() { u8 ret = m_term_data; m_term_data = 0; return ret; } -u8 czk80_state::port81_r() +u8 ckz80_state::port81_r() { return (m_term_data) ? 3 : 1; } -void czk80_state::czk80_mem(address_map &map) +void ckz80_state::mem_map(address_map &map) { map(0x0000, 0xffff).ram().share("mainram"); map(0xe000, 0xffff).lr8(NAME([this] (offs_t offset) { if (m_rom_in_map) return m_rom[offset]; else return m_ram[offset+0xe000]; } )); } -void czk80_state::czk80_io(address_map &map) +void ckz80_state::io_map(address_map &map) { map.global_mask(0xff); - map(0x40, 0x40).w(FUNC(czk80_state::port40_w)); + map(0x40, 0x40).w(FUNC(ckz80_state::port40_w)); map(0x4c, 0x4f).rw("pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write)); map(0x50, 0x53).rw("dart", FUNC(z80dart_device::cd_ba_r), FUNC(z80dart_device::cd_ba_w)); map(0x54, 0x57).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write)); // 80, 81 - no setup bytes - map(0x80, 0x80).r(FUNC(czk80_state::port80_r)).w(m_terminal, FUNC(generic_terminal_device::write)); - map(0x81, 0x81).r(FUNC(czk80_state::port81_r)); + map(0x80, 0x80).r(FUNC(ckz80_state::port80_r)).w(m_terminal, FUNC(generic_terminal_device::write)); + map(0x81, 0x81).r(FUNC(ckz80_state::port81_r)); map(0xc0, 0xc1).m(m_fdc, FUNC(upd765a_device::map)); } /* Input ports */ -static INPUT_PORTS_START( czk80 ) +static INPUT_PORTS_START( ckz80 ) INPUT_PORTS_END /* Z80 Daisy Chain */ @@ -138,26 +138,26 @@ static const z80_daisy_config daisy_chain[] = /* Z80-CTC Interface */ -WRITE_LINE_MEMBER( czk80_state::ctc_z0_w ) +WRITE_LINE_MEMBER( ckz80_state::ctc_z0_w ) { // guess this generates clock for z80dart } -WRITE_LINE_MEMBER( czk80_state::ctc_z1_w ) +WRITE_LINE_MEMBER( ckz80_state::ctc_z1_w ) { } -WRITE_LINE_MEMBER( czk80_state::ctc_z2_w ) +WRITE_LINE_MEMBER( ckz80_state::ctc_z2_w ) { } -void czk80_state::machine_start() +void ckz80_state::machine_start() { save_item(NAME(m_term_data)); save_item(NAME(m_rom_in_map)); } -void czk80_state::machine_reset() +void ckz80_state::machine_reset() { address_space &program = m_maincpu->space(AS_PROGRAM); program.install_rom(0x0000, 0x1fff, m_rom); // do it here for F3 @@ -179,34 +179,34 @@ void czk80_state::machine_reset() m_rom_in_map = true; } -static void czk80_floppies(device_slot_interface &device) +static void ckz80_floppies(device_slot_interface &device) { device.option_add("525dd", FLOPPY_525_DD); } -void czk80_state::kbd_put(u8 data) +void ckz80_state::kbd_put(u8 data) { m_term_data = data; } -void czk80_state::czk80(machine_config &config) +void ckz80_state::ckz80(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 16_MHz_XTAL / 4); - m_maincpu->set_addrmap(AS_PROGRAM, &czk80_state::czk80_mem); - m_maincpu->set_addrmap(AS_IO, &czk80_state::czk80_io); + m_maincpu->set_addrmap(AS_PROGRAM, &ckz80_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &ckz80_state::io_map); m_maincpu->set_daisy_config(daisy_chain); GENERIC_TERMINAL(config, m_terminal, 0); - m_terminal->set_keyboard_callback(FUNC(czk80_state::kbd_put)); + m_terminal->set_keyboard_callback(FUNC(ckz80_state::kbd_put)); UPD765A(config, m_fdc, 8_MHz_XTAL, true, true); - FLOPPY_CONNECTOR(config, "fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:0", ckz80_floppies, "525dd", floppy_image_device::default_floppy_formats); z80ctc_device& ctc(Z80CTC(config, "ctc", 16_MHz_XTAL / 4)); ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - ctc.zc_callback<0>().set(FUNC(czk80_state::ctc_z0_w)); - ctc.zc_callback<1>().set(FUNC(czk80_state::ctc_z1_w)); - ctc.zc_callback<2>().set(FUNC(czk80_state::ctc_z2_w)); + ctc.zc_callback<0>().set(FUNC(ckz80_state::ctc_z0_w)); + ctc.zc_callback<1>().set(FUNC(ckz80_state::ctc_z1_w)); + ctc.zc_callback<2>().set(FUNC(ckz80_state::ctc_z2_w)); z80dart_device& dart(Z80DART(config, "dart", 16_MHz_XTAL / 4)); //dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); @@ -220,12 +220,12 @@ void czk80_state::czk80(machine_config &config) /* ROM definition */ -ROM_START( czk80 ) +ROM_START( ckz80 ) ROM_REGION( 0x2000, "maincpu", 0 ) - ROM_LOAD( "czk80.rom", 0x0000, 0x2000, CRC(7081b7c6) SHA1(13f75b14ea73b252bdfa2384e6eead6e720e49e3)) + ROM_LOAD( "ckz80.rom", 0x0000, 0x2000, CRC(7081b7c6) SHA1(13f75b14ea73b252bdfa2384e6eead6e720e49e3)) ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 198?, czk80, 0, 0, czk80, czk80, czk80_state, empty_init, "<unknown>", "CZK-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +COMP( 198?, ckz80, 0, 0, ckz80, ckz80, ckz80_state, empty_init, "<unknown>", "CKZ-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cobra.cpp b/src/mame/drivers/cobra.cpp index 7a281cfcbc1..162bf98d927 100644 --- a/src/mame/drivers/cobra.cpp +++ b/src/mame/drivers/cobra.cpp @@ -740,7 +740,7 @@ public: void main_comram_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); uint64_t main_fifo_r(offs_t offset, uint64_t mem_mask = ~0); void main_fifo_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); - DECLARE_WRITE32_MEMBER(main_cpu_dc_store); + void main_cpu_dc_store(offs_t offset, uint32_t data); uint32_t sub_comram_r(offs_t offset); void sub_comram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); @@ -759,7 +759,7 @@ public: uint32_t sub_psac2_r(); void sub_psac2_w(uint32_t data); void sub_psac_palette_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - DECLARE_WRITE32_MEMBER(sub_sound_dma_w); + void sub_sound_dma_w(offs_t offset, uint32_t data); void gfx_fifo0_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); void gfx_fifo1_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); @@ -769,9 +769,9 @@ public: void gfx_unk1_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); uint64_t gfx_fifo_r(offs_t offset, uint64_t mem_mask = ~0); void gfx_buf_w(uint64_t data); - DECLARE_WRITE32_MEMBER(gfx_cpu_dc_store); + void gfx_cpu_dc_store(offs_t offset, uint32_t data); - DECLARE_WRITE8_MEMBER(sub_jvs_w); + void sub_jvs_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(ide_interrupt); @@ -1678,7 +1678,7 @@ void cobra_state::main_comram_w(offs_t offset, uint64_t data, uint64_t mem_mask) m_comram[page][(offset << 1) + 1] = (w2 & ~m2) | (d2 & m2); } -WRITE32_MEMBER(cobra_state::main_cpu_dc_store) +void cobra_state::main_cpu_dc_store(offs_t offset, uint32_t data) { if ((offset & 0xf0000000) == 0xc0000000) { @@ -1966,7 +1966,7 @@ void cobra_state::sub_psac2_w(uint32_t data) { } -WRITE32_MEMBER(cobra_state::sub_sound_dma_w) +void cobra_state::sub_sound_dma_w(offs_t offset, uint32_t data) { //printf("DMA write to unknown: size %d, data %08X\n", address, data); @@ -1997,7 +1997,7 @@ WRITE32_MEMBER(cobra_state::sub_sound_dma_w) } } -WRITE8_MEMBER(cobra_state::sub_jvs_w) +void cobra_state::sub_jvs_w(uint8_t data) { #if LOG_JVS printf("sub_jvs_w: %02X\n", data); @@ -3074,7 +3074,7 @@ void cobra_state::gfx_buf_w(uint64_t data) } } -WRITE32_MEMBER(cobra_state::gfx_cpu_dc_store) +void cobra_state::gfx_cpu_dc_store(offs_t offset, uint32_t data) { uint32_t addr = offset >> 24; if (addr == 0x10 || addr == 0x18 || addr == 0x1e) @@ -3364,12 +3364,12 @@ void cobra_state::init_cobra() cobra_fifo::event_delegate(&cobra_state::s2mfifo_event_callback, this)) ); - m_maincpu->ppc_set_dcstore_callback(write32_delegate(*this, FUNC(cobra_state::main_cpu_dc_store))); + m_maincpu->ppc_set_dcstore_callback(write32sm_delegate(*this, FUNC(cobra_state::main_cpu_dc_store))); - m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(*this, FUNC(cobra_state::gfx_cpu_dc_store))); + m_gfxcpu->ppc_set_dcstore_callback(write32sm_delegate(*this, FUNC(cobra_state::gfx_cpu_dc_store))); - m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(*this, FUNC(cobra_state::sub_sound_dma_w)), 44100); - m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(cobra_state::sub_jvs_w))); + m_subcpu->ppc4xx_set_dma_write_handler(0, write32sm_delegate(*this, FUNC(cobra_state::sub_sound_dma_w)), 44100); + m_subcpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(cobra_state::sub_jvs_w))); m_comram[0] = std::make_unique<uint32_t[]>(0x40000/4); diff --git a/src/mame/drivers/coleco.cpp b/src/mame/drivers/coleco.cpp index 031ce2dd037..04046b45c24 100644 --- a/src/mame/drivers/coleco.cpp +++ b/src/mame/drivers/coleco.cpp @@ -740,6 +740,3 @@ CONS( 1986, czz50, 0, coleco, czz50, czz50, coleco_state, empty_init CONS( 1988, dina, czz50, 0, dina, czz50, coleco_state, empty_init, "Telegames", "Dina", 0 ) CONS( 1988, prsarcde, czz50, 0, czz50, czz50, coleco_state, empty_init, "Telegames", "Personal Arcade", 0 ) COMP( 1983, bit90, 0, coleco, bit90, bit90, bit90_state, empty_init, "Bit Corporation", "Bit90", 0 ) - - - diff --git a/src/mame/drivers/consola_emt.cpp b/src/mame/drivers/consola_emt.cpp index 06f6d79c9fd..704f27d3546 100644 --- a/src/mame/drivers/consola_emt.cpp +++ b/src/mame/drivers/consola_emt.cpp @@ -52,7 +52,7 @@ protected: virtual void machine_start() override; private: - required_device<cpu_device> m_maincpu; + required_device<i80188_cpu_device> m_maincpu; required_device<mcs51_cpu_device> m_mcu; required_device<hd44780_device> m_lcdc; @@ -76,12 +76,16 @@ void consoemt_state::mem_map(address_map &map) void consoemt_state::io_map(address_map &map) { + map(0x000, 0x003).rw("uart1", FUNC(scc85230_device::ab_dc_r), FUNC(scc85230_device::ab_dc_w)); + map(0x010, 0x013).rw("uart2", FUNC(scc85230_device::ab_dc_r), FUNC(scc85230_device::ab_dc_w)); map(0x180, 0x18f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)); - map(0x200, 0x200).portr("FUNCIONES"); // maybe + map(0x200, 0x200).portr("FUNCIONES"); map(0x210, 0x210).portr("NUMBUS-L"); map(0x220, 0x220).portr("NUMBUS-H"); map(0x230, 0x230).portr("NUMFAB-L"); map(0x240, 0x240).portr("NUMFAB-H"); +// map(0x250, 0x250).r // read on int2 +// map(0x260, 0x260).r // read on int1 map(0x280, 0x281).rw(m_lcdc, FUNC(hd44780_device::read), FUNC(hd44780_device::write)); } @@ -92,9 +96,15 @@ void consoemt_state::io_map(address_map &map) static INPUT_PORTS_START( consoemt ) PORT_START("FUNCIONES") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x00, "FUNCIONES:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x00, "FUNCIONES:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x00, "FUNCIONES:3") + PORT_DIPNAME(0x01, 0x00, "Canceladora 1") PORT_DIPLOCATION("FUNCIONES:1") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x01, DEF_STR( On )) + PORT_DIPNAME(0x02, 0x00, "Canceladora 2") PORT_DIPLOCATION("FUNCIONES:2") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x02, DEF_STR( On )) + PORT_DIPNAME(0x04, 0x00, "Canceladora 3") PORT_DIPLOCATION("FUNCIONES:3") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x04, DEF_STR( On )) PORT_DIPUNKNOWN_DIPLOC(0x08, 0x00, "FUNCIONES:4") PORT_DIPUNKNOWN_DIPLOC(0x10, 0x00, "FUNCIONES:5") PORT_DIPUNKNOWN_DIPLOC(0x20, 0x00, "FUNCIONES:6") @@ -242,7 +252,7 @@ void consoemt_state::machine_start() void consoemt_state::consoemt(machine_config &config) { - I80188(config, m_maincpu, 50_MHz_XTAL / 2); // N80C188XL25 + I80188(config, m_maincpu, 50_MHz_XTAL); // N80C188XL25 m_maincpu->set_addrmap(AS_PROGRAM, &consoemt_state::mem_map); m_maincpu->set_addrmap(AS_IO, &consoemt_state::io_map); @@ -250,9 +260,11 @@ void consoemt_state::consoemt(machine_config &config) MSM6242(config, "rtc", XTAL(32'768)); - SCC85230(config, "uart1", 4.9152_MHz_XTAL); + scc85230_device &uart1(SCC85230(config, "uart1", 4.9152_MHz_XTAL)); + uart1.out_int_callback().set(m_maincpu, FUNC(i80188_cpu_device::int0_w)); - SCC85230(config, "uart2", 4.9152_MHz_XTAL); + scc85230_device &uart2(SCC85230(config, "uart2", 4.9152_MHz_XTAL)); + uart2.out_int_callback().set(m_maincpu, FUNC(i80188_cpu_device::int3_w)); // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp index cb56a3ad89a..7e8e1c24601 100644 --- a/src/mame/drivers/dccons.cpp +++ b/src/mame/drivers/dccons.cpp @@ -881,6 +881,7 @@ Consists of HKS-0300 main unit and HKS-0100 LCD with touch screen HDR-0095 673-01??? Fish Life Episode 1 Basic Edition HDR-0096 673-01??? Fish Life Episode 2 Basic Edition HDR-0097 673-01??? Fish Life Episode 3 Basic Edition + MSD-0001 ???-????? Fish Life Red Sea & Amazon PDP Ver. * denotes these games are archived. Machines high likely based on Fish Life: diff --git a/src/mame/drivers/dcheese.cpp b/src/mame/drivers/dcheese.cpp index 21d57cd27f5..fb829e52071 100644 --- a/src/mame/drivers/dcheese.cpp +++ b/src/mame/drivers/dcheese.cpp @@ -780,9 +780,9 @@ ROM_END GAME( 1993, dcheese, 0, dcheese, dcheese, dcheese_state, empty_init, ROT90, "HAR", "Double Cheese", MACHINE_SUPPORTS_SAVE ) GAME( 1993, lottof2, 0, dcheese, lottof2, dcheese_state, empty_init, ROT0, "HAR", "Lotto Fun 2", MACHINE_SUPPORTS_SAVE ) GAME( 1993, cecmatch, 0, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "ChuckECheese's Match Game", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmem, 0, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (World?, Ticket version, 3/17/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmemus, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (US, High Score version, 3/10/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmemuk, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (UK, 3/17/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmemj, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Japan, High Score version, 3/20/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmemc, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Mandarin Chinese, 3/17/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmesp, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Spanish, 3/17/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmem, 0, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (World?, Ticket version, 3/17/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmemus, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (US, High Score version, 3/10/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmemuk, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (UK, 3/17/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmemj, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (Japan, High Score version, 3/20/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmemc, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (Mandarin Chinese, 3/17/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmesp, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (Spanish, 3/17/95)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dotrikun.cpp b/src/mame/drivers/dotrikun.cpp index d979289c874..9fb00be2adf 100644 --- a/src/mame/drivers/dotrikun.cpp +++ b/src/mame/drivers/dotrikun.cpp @@ -32,8 +32,6 @@ TODO: #include "emupal.h" #include "screen.h" -#include "dotrikun.lh" - #define MASTER_CLOCK XTAL(4'000'000) @@ -211,6 +209,7 @@ void dotrikun_state::dotrikun(machine_config &config) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(MASTER_CLOCK, 128+128, 0, 128, 192+64, 0, 192); + m_screen->set_physical_aspect(1, 1); // large border area m_screen->set_screen_update(FUNC(dotrikun_state::screen_update)); m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); m_screen->set_palette("palette"); @@ -242,6 +241,6 @@ ROM_START( dotriman ) ROM_END -GAMEL( 1990, dotrikun, 0, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "Sega", "Dottori Kun (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun ) -GAMEL( 1990, dotrikun2, dotrikun, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "Sega", "Dottori Kun (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun ) -GAMEL( 2016, dotriman, dotrikun, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "hack (Chris Covell)", "Dottori-Man Jr.", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun ) +GAME( 1990, dotrikun, 0, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "Sega", "Dottori Kun (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +GAME( 1990, dotrikun2, dotrikun, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "Sega", "Dottori Kun (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +GAME( 2016, dotriman, dotrikun, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "hack (Chris Covell)", "Dottori-Man Jr.", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/drumsta.cpp b/src/mame/drivers/drumsta.cpp new file mode 100644 index 00000000000..6906ab24d83 --- /dev/null +++ b/src/mame/drivers/drumsta.cpp @@ -0,0 +1,67 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Novation Drum Station drum machine. + +****************************************************************************/ + +#include "emu.h" +#include "cpu/adsp2100/adsp2100.h" +#include "cpu/mn1880/mn1880.h" +//#include "machine/eeprompar.h" + +class drumsta_state : public driver_device +{ +public: + drumsta_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_dsp(*this, "dsp") + { + } + + void drumsta(machine_config &config); + +private: + void drumsta_prog(address_map &map); + void drumsta_data(address_map &map); + + required_device<mn1880_device> m_maincpu; + required_device<adsp2181_device> m_dsp; +}; + + +void drumsta_state::drumsta_prog(address_map &map) +{ + map(0x0000, 0x7fff).rom().region("program", 0); +} + +void drumsta_state::drumsta_data(address_map &map) +{ +} + + +static INPUT_PORTS_START(drumsta) +INPUT_PORTS_END + +void drumsta_state::drumsta(machine_config &config) +{ + MN1880(config, m_maincpu, 8000000); // type and clock unknown (custom silkscreen) + m_maincpu->set_addrmap(AS_PROGRAM, &drumsta_state::drumsta_prog); + m_maincpu->set_addrmap(AS_DATA, &drumsta_state::drumsta_data); + + ADSP2181(config, m_dsp, 16000000).set_disable(); // clock unknown + + // TODO: Atmel AT28C64 EEPROM +} + +ROM_START(drumsta) + ROM_REGION(0x8000, "program", 0) + ROM_LOAD("v1.2.u15", 0x0000, 0x8000, CRC(ab9a8654) SHA1(1914254c714d35031a456c71b1f9f9191df9126d)) + + ROM_REGION(0x80000, "samples", 0) + ROM_LOAD("v1.2.u28", 0x00000, 0x80000, CRC(dbbc9cfe) SHA1(61474c0bc6cfff3efe95527c57e4891f886b02aa)) +ROM_END + +SYST(1995, drumsta, 0, 0, drumsta, drumsta, drumsta_state, empty_init, "Novation", "Drum Station", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/fidel_msc.cpp b/src/mame/drivers/fidel_msc.cpp index b0a85647473..4b4f4185a23 100644 --- a/src/mame/drivers/fidel_msc.cpp +++ b/src/mame/drivers/fidel_msc.cpp @@ -16,7 +16,7 @@ Hardware notes: released modules, * denotes not dumped yet: - CAC: Challenger Advanced Chess -- *CBO: Challenger Book Openings +- CBO: Challenger Book Openings - *CGG: Challenger Greatest Games As noted in the hash file: The modules have 2 programs in them, one for Z8 diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp index d9c89e8ea23..49301e2df9c 100644 --- a/src/mame/drivers/firebeat.cpp +++ b/src/mame/drivers/firebeat.cpp @@ -261,7 +261,7 @@ private: TIMER_DEVICE_CALLBACK_MEMBER(spu_timer_callback); void set_ibutton(uint8_t *data); int ibutton_w(uint8_t data); - DECLARE_WRITE8_MEMBER(security_w); + void security_w(uint8_t data); void init_lights(write32s_delegate out1, write32s_delegate out2, write32s_delegate out3); void init_firebeat(); void init_keyboard(); @@ -1363,7 +1363,7 @@ int firebeat_state::ibutton_w(uint8_t data) return r; } -WRITE8_MEMBER(firebeat_state::security_w) +void firebeat_state::security_w(uint8_t data) { int r = ibutton_w(data); if (r >= 0) @@ -1395,7 +1395,7 @@ void firebeat_state::init_firebeat() m_cur_cab_data = cab_data; - m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(firebeat_state::security_w))); + m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(firebeat_state::security_w))); set_ibutton(rom); diff --git a/src/mame/drivers/generalplus_gpl16250_nand.cpp b/src/mame/drivers/generalplus_gpl16250_nand.cpp index 0ea2e9ba457..2d77470dde6 100644 --- a/src/mame/drivers/generalplus_gpl16250_nand.cpp +++ b/src/mame/drivers/generalplus_gpl16250_nand.cpp @@ -820,7 +820,7 @@ CONS(2008, jak_hmhsm, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gp CONS(2008, jak_umdf, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / Handheld Games", "Ultimotion - Disney Fairies Sleeping Beauty & TinkerBell (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // Ultimotion Swing Zone is SPG29xx instead -// There were 1 player and 2 player versions for several of the JAKKS guns. The 2nd gun appears to be simply a controller (no AV connectors) but as they were separate products with the 2 player verisons being released up to a year after the original, the code could differ. +// There were 1 player and 2 player versions for several of the JAKKS guns. The 2nd gun appears to be simply a controller (no AV connectors) but as they were separate products with the 2 player versions being released up to a year after the original, the code could differ. // If they differ, it is currently uncertain which versions these ROMs are from CONS(2012, jak_wdzh, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210, "JAKKS Pacific Inc / Merge Interactive", "The Walking Dead: Zombie Hunter (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // gun games all had Atmel 16CM (24C16). CONS(2013, jak_duck, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / Merge Interactive", "Duck Commander (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // no 2 Player version was released diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp index 6ca351f2853..bef93b13626 100644 --- a/src/mame/drivers/gticlub.cpp +++ b/src/mame/drivers/gticlub.cpp @@ -275,9 +275,9 @@ public: m_analog1(*this, "AN1"), m_analog2(*this, "AN2"), m_analog3(*this, "AN3"), - m_ports(*this, "IN%u", 0) - { - } + m_ports(*this, "IN%u", 0), + m_pcb_digit(*this, "pcbdigit%u", 0U) + { } void thunderh(machine_config &config); void hangplt(machine_config &config); @@ -289,6 +289,9 @@ public: void init_hangpltu(); void init_gticlub(); +protected: + virtual void machine_start() override; + private: // TODO: Needs verification on real hardware static const int m_sound_timer_usec = 2400; @@ -312,13 +315,11 @@ private: optional_device<screen_device> m_lscreen; optional_device<screen_device> m_rscreen; optional_device_array<voodoo_device, 2> m_voodoo; - required_shared_ptr<uint32_t> m_work_ram; required_shared_ptr<uint32_t> m_generic_paletteram_32; - optional_ioport m_analog0, m_analog1, m_analog2, m_analog3; - required_ioport_array<4> m_ports; + output_finder<2> m_pcb_digit; void paletteram32_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); uint32_t gticlub_k001604_tile_r(offs_t offset); @@ -339,7 +340,6 @@ private: void soundtimer_en_w(uint16_t data); void soundtimer_count_w(uint16_t data); - DECLARE_MACHINE_START(gticlub); DECLARE_MACHINE_RESET(gticlub); DECLARE_MACHINE_RESET(hangplt); DECLARE_VIDEO_START(gticlub); @@ -360,9 +360,6 @@ private: void sharc_map(address_map &map); void sound_memmap(address_map &map); - void gticlub_led_setreg(int offset, uint8_t data); - - uint8_t m_gticlub_led_reg[2]; emu_timer *m_sound_irq_timer; std::unique_ptr<uint32_t[]> m_sharc_dataram_0; std::unique_ptr<uint32_t[]> m_sharc_dataram_1; @@ -464,7 +461,7 @@ void gticlub_state::sysreg_w(offs_t offset, uint8_t data) { case 0: case 1: - gticlub_led_setreg(offset, data); + m_pcb_digit[offset] = bitswap<8>(~data,7,0,1,2,3,4,5,6) & 0x7f; break; case 3: @@ -485,6 +482,9 @@ void gticlub_state::sysreg_w(offs_t offset, uint8_t data) m_konppc->set_cgboard_id((data >> 4) & 0x3); break; + + default: + break; } } @@ -520,8 +520,10 @@ void gticlub_state::soundtimer_count_w(uint16_t data) /******************************************************************/ -MACHINE_START_MEMBER(gticlub_state,gticlub) +void gticlub_state::machine_start() { + m_pcb_digit.resolve(); + /* set conservative DRC options */ m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); @@ -848,15 +850,9 @@ MACHINE_RESET_MEMBER(gticlub_state,gticlub) m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } -void gticlub_state::gticlub_led_setreg(int offset, uint8_t data) -{ - m_gticlub_led_reg[offset] = data; -} - VIDEO_START_MEMBER(gticlub_state,gticlub) { - m_gticlub_led_reg[0] = m_gticlub_led_reg[1] = 0x7f; /* tick = 0; debug_tex_page = 0; @@ -922,9 +918,6 @@ uint32_t gticlub_state::screen_update_gticlub(screen_device &screen, bitmap_rgb3 } #endif - draw_7segment_led(bitmap, 3, 3, m_gticlub_led_reg[0]); - draw_7segment_led(bitmap, 9, 3, m_gticlub_led_reg[1]); - //m_dsp->set_input_line(SHARC_INPUT_FLAG1, ASSERT_LINE); m_dsp->set_flag_input(1, ASSERT_LINE); return 0; @@ -938,9 +931,6 @@ uint32_t gticlub_state::screen_update_lscreen(screen_device &screen, bitmap_rgb3 m_voodoo[0]->voodoo_update(bitmap, cliprect); m_k001604_1->draw_front_layer(screen, bitmap, cliprect); - draw_7segment_led(bitmap, 3, 3, m_gticlub_led_reg[0]); - draw_7segment_led(bitmap, 9, 3, m_gticlub_led_reg[1]); - return 0; } @@ -952,9 +942,6 @@ uint32_t gticlub_state::screen_update_rscreen(screen_device &screen, bitmap_rgb3 m_voodoo[1]->voodoo_update(bitmap, cliprect); m_k001604_2->draw_front_layer(screen, bitmap, cliprect); - draw_7segment_led(bitmap, 3, 3, m_gticlub_led_reg[0]); - draw_7segment_led(bitmap, 9, 3, m_gticlub_led_reg[1]); - return 0; } @@ -976,7 +963,6 @@ void gticlub_state::gticlub(machine_config &config) EEPROM_93C56_16BIT(config, "eeprom"); - MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub) MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,gticlub) ADC1038(config, m_adc1038, 0); @@ -1037,7 +1023,7 @@ void gticlub_state::thunderh(machine_config &config) // Todo: K056230 from the I m_adc1038->set_gti_club_hack(false); m_k056230->set_thunderh_hack(true); - + M68000(config, m_gn680, XTAL(32'000'000) / 2); // 16MHz m_gn680->set_addrmap(AS_PROGRAM, >iclub_state::gn680_memmap); } @@ -1081,7 +1067,6 @@ void gticlub_state::hangplt(machine_config &config) EEPROM_93C56_16BIT(config, "eeprom"); - MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub) MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,hangplt) ADC1038(config, m_adc1038, 0); diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp index ef8b97282a5..5ad07a0e6ca 100644 --- a/src/mame/drivers/hornet.cpp +++ b/src/mame/drivers/hornet.cpp @@ -6,7 +6,7 @@ Konami 'Hornet' Hardware Konami, 1997-2000 -f + Known games on this hardware include.... Game (C) Year @@ -392,6 +392,7 @@ public: m_eepromout(*this, "EEPROMOUT"), m_analog1(*this, "ANALOG1"), m_analog2(*this, "ANALOG2"), + m_pcb_digit(*this, "pcbdigit%u", 0U), m_user3_ptr(*this, "user3"), m_user5_ptr(*this, "user5"), m_lan_ds2401(*this, "lan_serial_id"), @@ -431,14 +432,13 @@ private: optional_device_array<voodoo_device, 2> m_voodoo; required_ioport m_in0, m_in1, m_in2, m_dsw; optional_ioport m_eepromout, m_analog1, m_analog2; + output_finder<2> m_pcb_digit; optional_region_ptr<uint8_t> m_user3_ptr; optional_region_ptr<uint8_t> m_user5_ptr; optional_device<ds2401_device> m_lan_ds2401; required_device<watchdog_timer_device> m_watchdog; emu_timer *m_sound_irq_timer; - uint8_t m_led_reg0; - uint8_t m_led_reg1; std::unique_ptr<uint8_t[]> m_jvs_sdata; uint32_t m_jvs_sdata_ptr; uint16_t m_gn680_latch; @@ -470,7 +470,7 @@ private: void soundtimer_en_w(uint16_t data); void soundtimer_count_w(uint16_t data); double adc12138_input_callback(uint8_t input); - DECLARE_WRITE8_MEMBER(jamma_jvs_w); + void jamma_jvs_w(uint8_t data); uint8_t comm_eeprom_r(); void comm_eeprom_w(uint8_t data); @@ -549,8 +549,6 @@ uint32_t hornet_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap m_k037122_1->tile_draw(screen, bitmap, cliprect); - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } @@ -560,8 +558,6 @@ uint32_t hornet_state::screen_update_rscreen(screen_device &screen, bitmap_rgb32 m_k037122_2->tile_draw(screen, bitmap, cliprect); - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } @@ -600,6 +596,9 @@ uint8_t hornet_state::sysreg_r(offs_t offset) case 4: /* I/O port 4 - DIP switches */ r = m_dsw->read(); break; + + default: + break; } return r; } @@ -608,12 +607,9 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data) { switch (offset) { - case 0: /* LED Register 0 */ - m_led_reg0 = data; - break; - - case 1: /* LED Register 1 */ - m_led_reg1 = data; + case 0: /* 7seg LEDs on PCB */ + case 1: + m_pcb_digit[offset] = bitswap<8>(~data,7,0,1,2,3,4,5,6) & 0x7f; break; case 2: /* Parallel data register */ @@ -1087,6 +1083,8 @@ INPUT_PORTS_END void hornet_state::machine_start() { + m_pcb_digit.resolve(); + m_jvs_sdata_ptr = 0; m_jvs_sdata = make_unique_clear<uint8_t[]>(1024); @@ -1096,8 +1094,6 @@ void hornet_state::machine_start() /* configure fast RAM regions for DRC */ m_maincpu->ppcdrc_add_fastram(0x00000000, 0x003fffff, false, m_workram); - save_item(NAME(m_led_reg0)); - save_item(NAME(m_led_reg1)); save_pointer(NAME(m_jvs_sdata), 1024); save_item(NAME(m_jvs_sdata_ptr)); @@ -1282,7 +1278,7 @@ void hornet_state::sscope2(machine_config &config) /*****************************************************************************/ -WRITE8_MEMBER(hornet_state::jamma_jvs_w) +void hornet_state::jamma_jvs_w(uint8_t data) { if (m_jvs_sdata_ptr == 0 && data != 0xe0) return; @@ -1423,9 +1419,8 @@ void hornet_state::jamma_jvs_cmd_exec() void hornet_state::init_hornet() { m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base()); - m_led_reg0 = m_led_reg1 = 0x7f; - m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); + m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); } void hornet_state::init_gradius4() @@ -1450,18 +1445,16 @@ void hornet_state::init_sscope() { m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base()); m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base()); - m_led_reg0 = m_led_reg1 = 0x7f; - m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); + m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); } void hornet_state::init_sscope2() //fixme: eventually set sscope2 to load gfx roms from the comm board { m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base()); m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base()); - m_led_reg0 = m_led_reg1 = 0x7f; - m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); + m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); } /*****************************************************************************/ diff --git a/src/mame/drivers/hp_ipc.cpp b/src/mame/drivers/hp_ipc.cpp index 024a0dbc41e..a62a5b06394 100644 --- a/src/mame/drivers/hp_ipc.cpp +++ b/src/mame/drivers/hp_ipc.cpp @@ -8,8 +8,7 @@ Hewlett-Packard, 1985 Driver to-do list ================= -- softlist: merge dumps from coho.org and classiccmp.org -- keyboard: NMI generation, autorepeat +- keyboard: NMI generation - RTC chip: proper month, day (possibly a different chip, 82167) - HP-IL printer - sound (needs dump of COP452) @@ -353,7 +352,7 @@ Software to look for 00095-60006 (original System III-based HP-UX 1.0 ROM) 82995A (same bits as 82991A; the latter is an upgrade kit, former was pre-installed) 82989J Technical Basic ROM (Jan'1986) -82987A Software Engineering ROM (Nov'1986) (possibly can be rebuilt from floppy images on coho?) +82987A Software Engineering ROM (Nov'1986) ******************************************************************************/ diff --git a/src/mame/drivers/leapster.cpp b/src/mame/drivers/leapster.cpp index 1bd115ffa9f..4cf61ca3e01 100644 --- a/src/mame/drivers/leapster.cpp +++ b/src/mame/drivers/leapster.cpp @@ -239,7 +239,7 @@ private: return machine().rand() | (machine().rand()<<16); // there is a loop checking that this is above a certain value } - DECLARE_WRITE32_MEMBER(leapster_aux004b_w) + void leapster_aux004b_w(uint32_t data) { printf("leapster_aux004b_w %04x\n", data); } diff --git a/src/mame/drivers/macpci.cpp b/src/mame/drivers/macpci.cpp index d0fe8601b9d..970f4249a7d 100644 --- a/src/mame/drivers/macpci.cpp +++ b/src/mame/drivers/macpci.cpp @@ -39,6 +39,7 @@ #include "emu.h" #include "includes/macpci.h" #include "cpu/powerpc/ppc.h" +#include "cpu/mn1880/mn1880.h" #include "imagedev/chd_cd.h" #include "sound/cdda.h" #include "emupal.h" @@ -81,6 +82,11 @@ void macpci_state::pippin_mem(address_map &map) map(0xffc00000, 0xffffffff).rom().region("bootrom", 0); } +void macpci_state::cdmcu_mem(address_map &map) +{ + map(0x0000, 0xffff).rom().region("cdrom", 0); +} + /* Input ports */ static INPUT_PORTS_START( pippin ) INPUT_PORTS_END @@ -140,6 +146,9 @@ void macpci_state::pippin(machine_config &config) m_cuda->via_clock_callback().set(m_via1, FUNC(via6522_device::write_cb1)); m_cuda->via_data_callback().set(m_via1, FUNC(via6522_device::write_cb2)); config.set_perfect_quantum(m_maincpu); + + mn1880_device &cdmcu(MN1880(config, "cdmcu", 8388608)); // type and clock unknown + cdmcu.set_addrmap(AS_PROGRAM, &macpci_state::cdmcu_mem); } /* ROM definition */ diff --git a/src/mame/drivers/mephisto_modular.cpp b/src/mame/drivers/mephisto_modular.cpp index 015da5b55b5..f179a6ed8ae 100644 --- a/src/mame/drivers/mephisto_modular.cpp +++ b/src/mame/drivers/mephisto_modular.cpp @@ -479,6 +479,11 @@ void mmodular_state::gen32(machine_config &config) ROM Definitions ******************************************************************************/ +// sinus table lookup ROM for Mephisto Bavaria chessboard (unused on MAME) +#define BAVARIA_BOARD_ROM() \ + ROM_REGION( 0x8000, "bavaria", 0 ) \ + ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + ROM_START( alm32 ) // U012 D21A 2FCE ROM_REGION32_BE( 0x20000, "maincpu", 0 ) ROM_LOAD("alm32.bin", 0x00000, 0x20000, CRC(38f4b305) SHA1(43459a057ff29248c74d656a036ac325202b9c15) ) @@ -490,20 +495,25 @@ ROM_START( alm16 ) // U013 65CE 2FCE ROM_LOAD16_BYTE("almeria_16bit_v013_odd", 0x00001, 0x10000, CRC(d0be4ee4) SHA1(d36c074802d2c9099cd44e75f9de3fc7d1fd9908) ) ROM_END -ROM_START( port32 ) // V103 C734 1CD7 +ROM_START( port32 ) // V104 3F63 1CD7 + ROM_REGION32_BE( 0x20000, "maincpu", 0 ) + ROM_LOAD("portorose_32bit_v104", 0x00000, 0x20000, CRC(66a6c84c) SHA1(b71035f91a452901e1765e351fb36c3f18888e42) ) + + BAVARIA_BOARD_ROM() +ROM_END + +ROM_START( port32a ) // V103 C734 1CD7 ROM_REGION32_BE( 0x20000, "maincpu", 0 ) ROM_LOAD("portorose_32bit_v103", 0x00000, 0x20000, CRC(02c091b3) SHA1(f1d48e73b24093288dbb8a06617bb62420c07508) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD( "sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END -ROM_START( port32a ) // V101 7805 1CD7 +ROM_START( port32b ) // V101 7805 1CD7 ROM_REGION32_BE( 0x20000, "maincpu", 0 ) ROM_LOAD("portorose_32bit_v101", 0x00000, 0x20000, CRC(405bd668) SHA1(8c6eacff7f6784fa1d38344d594c7e52ac828a23) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( port16 ) // V101 630D 1CD7 @@ -511,16 +521,14 @@ ROM_START( port16 ) // V101 630D 1CD7 ROM_LOAD16_BYTE("port16ev.bin", 0x00000, 0x10000, CRC(68e4a37d) SHA1(33e7216db664174a8448e455bba97738a29c0f31) ) ROM_LOAD16_BYTE("port16od.bin", 0x00001, 0x10000, CRC(cae77a05) SHA1(9a0ca8bb37325698f8d208f64a340690b9a933b5) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( lyon32 ) // V207 AE64 5805 ROM_REGION32_BE( 0x20000, "maincpu", 0 ) ROM_LOAD("lyon32.bin", 0x00000, 0x20000, CRC(5c128b06) SHA1(954c8f0d3fae29900cb1e9c14a41a9a07a8e185f) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( lyon16 ) // V207 EC82 5805 @@ -528,16 +536,14 @@ ROM_START( lyon16 ) // V207 EC82 5805 ROM_LOAD16_BYTE("lyon_16bit_even_v207", 0x00000, 0x10000, CRC(497bd41a) SHA1(3ffefeeac694f49997c10d248ec6a7aa932898a4) ) ROM_LOAD16_BYTE("lyon_16bit_odd_v207", 0x00001, 0x10000, CRC(f9de3f54) SHA1(4060e29566d2f40122ccde3c1f84c94a9c1ed54f) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( van32 ) // V309 3FD3 18D3 ROM_REGION32_BE( 0x40000, "maincpu", 0 ) ROM_LOAD("vanc32.bin", 0x00000, 0x40000, CRC(f872beb5) SHA1(9919f207264f74e2b634b723b048ae9ca2cefbc7) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( van16 ) // V309 C8F3 18D3 @@ -545,40 +551,35 @@ ROM_START( van16 ) // V309 C8F3 18D3 ROM_LOAD16_BYTE("vancouver_16_even_v309", 0x00000, 0x20000, CRC(e87602d5) SHA1(90cb2767b4ae9e1b265951eb2569b9956b9f7f44) ) ROM_LOAD16_BYTE("vancouver_16_odd_v309", 0x00001, 0x20000, CRC(585f3bdd) SHA1(90bb94a12d3153a91e3760020e1ea2a9eaa7ec0a) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( gen32 ) // V401 D1BB 5A88 ROM_REGION32_BE( 0x40000, "maincpu", 0 ) ROM_LOAD("genius_68030_version_4.01", 0x00000, 0x40000, CRC(ea9938c0) SHA1(645cf0b5b831b48104ad6cec8d78c63dbb6a588c) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( gen32a ) // V400 3B95 5A88 ROM_REGION32_BE( 0x40000, "maincpu", 0 ) ROM_LOAD("gen32_4.bin", 0x00000, 0x40000, CRC(6cc4da88) SHA1(ea72acf9c67ed17c6ac8de56a165784aa629c4a1) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( gen32l ) // V500 EDC1 B0D1 ROM_REGION32_BE( 0x40000, "maincpu", 0 ) ROM_LOAD("gen32l.bin", 0x00000, 0x40000, CRC(853baa4e) SHA1(946951081d4e91e5bdd9e93d0769568a7fe79bad) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( lond32 ) // V500 DF8B B0D1 ROM_REGION32_BE( 0x40000, "maincpu", 0 ) ROM_LOAD("london_program_68020_module", 0x00000, 0x40000, CRC(3225b8da) SHA1(fd8f6f4e9c03b6cdc86d8405e856c26041bfad12) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END ROM_START( lond16 ) // V500 5ED1 B0D1 @@ -586,8 +587,7 @@ ROM_START( lond16 ) // V500 5ED1 B0D1 ROM_LOAD16_BYTE("london_program_68000_module_even", 0x00000, 0x20000, CRC(68cfc2de) SHA1(93b551180f01f8ed6991c082795cd9ead922179a) ) ROM_LOAD16_BYTE("london_program_68000_module_odd", 0x00001, 0x20000, CRC(2d75e2cf) SHA1(2ec9222c95f4be9667fb3b4be1b6f90fd4ad11c4) ) - ROM_REGION( 0x8000, "bavaria", 0 ) - ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) ) + BAVARIA_BOARD_ROM() ROM_END } // anonymous namespace @@ -602,8 +602,9 @@ ROM_END CONS( 1988, alm32, 0, 0, alm32, alm32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Almeria 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) CONS( 1988, alm16, alm32, 0, alm16, alm16, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Almeria 16 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, port32, 0, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.03)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, port32a, port32, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, port32, 0, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.04)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, port32a, port32, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.03)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, port32b, port32, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) CONS( 1989, port16, port32, 0, port16, port16, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 16 Bit (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) CONS( 1990, lyon32, 0, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Lyon 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephisto_mondial68k.cpp b/src/mame/drivers/mephisto_mondial68k.cpp index 80f02433ba1..ac87ba316db 100644 --- a/src/mame/drivers/mephisto_mondial68k.cpp +++ b/src/mame/drivers/mephisto_mondial68k.cpp @@ -36,7 +36,6 @@ public: mondial68k_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_dac(*this, "dac") , m_board(*this, "board") , m_display(*this, "display") , m_lcd(*this, "lcd") @@ -58,7 +57,6 @@ protected: void update_display(); required_device<cpu_device> m_maincpu; - required_device<dac_1bit_device> m_dac; required_device<sensorboard_device> m_board; required_device<pwm_display_device> m_display; required_device<pcf2112_device> m_lcd; @@ -194,7 +192,7 @@ void mondial68k_state::mondial68k(machine_config &config) outlatch.q_out_cb<1>().set(m_lcd, FUNC(pcf2112_device::data_w)); outlatch.q_out_cb<2>().set(m_lcd, FUNC(pcf2112_device::dlen_w)); outlatch.q_out_cb<6>().set_nop(); // another DAC input? - outlatch.q_out_cb<7>().set(m_dac, FUNC(dac_1bit_device::write)); + outlatch.q_out_cb<7>().set("dac", FUNC(dac_1bit_device::write)); SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess)); @@ -209,7 +207,7 @@ void mondial68k_state::mondial68k(machine_config &config) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + DAC_1BIT(config, "dac").add_route(ALL_OUTPUTS, "speaker", 0.25); VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); } diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp index 258dd8c8fd4..d8d92fd4247 100644 --- a/src/mame/drivers/neogeo.cpp +++ b/src/mame/drivers/neogeo.cpp @@ -587,7 +587,7 @@ protected: virtual void output_strobe(uint8_t bits, uint8_t data) { } virtual void set_outputs() { } - virtual DECLARE_WRITE8_MEMBER(io_control_w) override; + virtual void io_control_w(offs_t offset, uint8_t data) override; private: uint8_t m_output_data; @@ -922,7 +922,7 @@ CUSTOM_INPUT_MEMBER(ngarcade_base_state::startsel_edge_joy_r) return ret; } -WRITE8_MEMBER(neogeo_base_state::io_control_w) +void neogeo_base_state::io_control_w(offs_t offset, uint8_t data) { if ((offset & 0x38) == 0x00) // TODO: the mask is supposedly less restrictive on AES? { @@ -936,12 +936,12 @@ WRITE8_MEMBER(neogeo_base_state::io_control_w) } } -WRITE8_MEMBER(ngarcade_base_state::io_control_w) +void ngarcade_base_state::io_control_w(offs_t offset, uint8_t data) { switch (offset & 0x78) { case 0x00: - neogeo_base_state::io_control_w(space, offset, data, mem_mask); + neogeo_base_state::io_control_w(offset, data); break; case 0x28: @@ -963,7 +963,7 @@ WRITE8_MEMBER(ngarcade_base_state::io_control_w) } } -WRITE8_MEMBER(mvs_state::io_control_w) +void mvs_state::io_control_w(offs_t offset, uint8_t data) { switch (offset & 0x78) { @@ -984,7 +984,7 @@ WRITE8_MEMBER(mvs_state::io_control_w) break; default: - ngarcade_base_state::io_control_w(space, offset, data, mem_mask); + ngarcade_base_state::io_control_w(offset, data); } } @@ -3055,11 +3055,10 @@ ROM_START( nam1975 ) /* MVS AND AES VERSION */ ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) ) /* MB834200 */ - // AES has different label, data is the same: 001-v1.v1 + // AES has different label, data is the same: 001-v11.v1 ROM_REGION( 0x180000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) /* MB834200 */ - // AES has different label, data is the same: 001-v2.v21 + ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) /* MB834200 */ ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) ) /* MB834000 */ ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) ) /* MB834000 */ @@ -3083,7 +3082,8 @@ ROM_END ROM_START( bstars ) /* MVS VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "002-pg.p1", 0x000000, 0x080000, CRC(c100b5f5) SHA1(4cea9f29ad67288c3eccfa4cf961ee9782e49165) ) /* MB834200 */ - + /* also found set with P1 on maskrom with chip label 002-P1 */ + NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) /* MB831000 */ NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) ) /* MB832000 */ @@ -3096,7 +3096,8 @@ ROM_START( bstars ) /* MVS VERSION */ ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) /* MB834000 */ - + /* also found set with different chip labels on V11 and V21 locations; chip labels are : 002-V1 and 002-V2 */ + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) /* Plane 0,1 */ /* MB834200 */ ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) /* Plane 2,3 */ /* MB834200 */ @@ -3400,7 +3401,8 @@ ROM_END ROM_START( ncombat ) /* MVS VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "009-p1.p1", 0x000000, 0x080000, CRC(b45fcfbf) SHA1(3872147dda2d1ba905d35f4571065d87b1958b4a) ) /* TC534200 */ - + /* also found set with P1 on TC534200 with chip label 009-PG1 */ + NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) /* TC531000 */ NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) /* TC531001 */ @@ -3588,7 +3590,8 @@ ROM_START( kotmh ) /* AES VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "016-hp1.p1",0x000000, 0x080000, CRC(b774621e) SHA1(7684b2e07163aec68cd083ef1d8900f855f6cb42) ) /* TC534200 */ ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) /* TC531024 */ - + /* also found sets with P1 on TC534200 and P2 on TC531024 with chip labels 016-P1 and 016-P2 */ + NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) /* TC531000 */ NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) ) /* TC531001 */ @@ -3954,6 +3957,7 @@ ROM_END ROM_START( bjourneyh ) /* AES VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "022-hp1.p1", 0x000000, 0x100000, CRC(62cbe7b2) SHA1(f9a8fd98702c623ae793804ba50d09751e3fee4c) ) /* TC538200 */ + /* also found sets with P1 on TC5358200; chip label is 022-P1 */ NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) ) /* TC531000 */ @@ -4017,7 +4021,7 @@ ROM_END . NGM-024 NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 . NGH-024 - + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 . prototype NEO-MVS PROG-EP / NEO-MVS CHA-EPG ****************************************/ @@ -4241,6 +4245,7 @@ ROM_END ROM_START( socbrawl ) /* MVS VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "031-pg1.p1", 0x000000, 0x080000, CRC(17f034a7) SHA1(2e66c7bd93a08efe63c4894494db50bbf58f60e4) ) /* TC534200 */ + /* also found set with P1 on TC534200 with chip label 031-P1 */ NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) /* TC531000 */ @@ -4280,6 +4285,7 @@ ROM_END ID-0032 . NGM-032 NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1 . NGH-032 NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 ****************************************/ @@ -4287,10 +4293,11 @@ ROM_END ROM_START( roboarmy ) ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "032-p1.p1", 0x000000, 0x080000, CRC(cd11cbd4) SHA1(23163e3da2f07e830a7f4a02aea1cb01a54ccbf3) ) /* TC534200 */ + /* also found sets with P1 on eprom; correct chip label unknown */ NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */ - NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */ + NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC541000 */ ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */ @@ -4311,7 +4318,7 @@ ROM_START( roboarma ) /* MVS AND AES VERSION*/ NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */ - NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */ + NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC541000 */ ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */ @@ -4336,10 +4343,12 @@ ROM_START( fatfury1 ) /* MVS AND AES VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "033-p1.p1", 0x000000, 0x080000, CRC(47ebdc2f) SHA1(d46786502920fb510f1999db00c5e09fb641c0bd) ) /* TC534200 */ ROM_LOAD16_WORD_SWAP( "033-p2.p2", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) ) /* TC531024 */ + /* also found MVS sets with P1 and P2 on eprom; correct chip label unknown */ NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) /* TC531000 */ NEO_BIOS_AUDIO_128K( "033-m1.m1", CRC(5be10ffd) SHA1(90a5e6cbbc58a7883cd2a3a597180d631a466882) ) /* TC531001 */ + /* also found MVS sets with M1 on eprom */ ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) ROM_LOAD( "033-v1.v1", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) ) /* TC538200 */ @@ -4659,7 +4668,9 @@ ROM_START( 3countb ) /* MVS AND AES VERSION */ ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) ROM_LOAD( "043-v1.v1", 0x000000, 0x200000, CRC(63688ce8) SHA1(5c6ac29a0cc0655a87cfe3ada8706838b86b86e4) ) /* TC5316200 */ + // AES has different label: 043-v1.v2; same data ROM_LOAD( "043-v2.v2", 0x200000, 0x200000, CRC(c69a827b) SHA1(f5197ea87bb6573fa6aef3a1713c3679c58c1e74) ) /* TC5316200 */ + // AES has different label: 040-v2.v4; same data ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) ROM_LOAD16_BYTE( "043-c1.c1", 0x000000, 0x100000, CRC(bad2d67f) SHA1(04928e50ca75b7fbc52b64e816ec5701901f5893) ) /* Plane 0,1 */ /* TC5316200 */ @@ -4684,7 +4695,7 @@ ROM_END ROM_START( aof ) /* MVS AND AES VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "044-p1.p1", 0x000000, 0x080000, CRC(ca9f7a6d) SHA1(4d28ef86696f7e832510a66d3e8eb6c93b5b91a1) ) /* TC534200 */ - /* also found sets with ep1 or p1 on eprom. */ + /* also found sets with EP1 or P1 on eprom. */ NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) /* TC531000 */ @@ -4717,7 +4728,7 @@ ROM_START( samsho ) /* MVS VERSION */ ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) ) /* TC538200 */ ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) ) /* TC538200 */ - /* also found set with ep1 / ep2 on eprom and sp2 on maskrom; same rom data as samshoh is used. */ + /* also found set with EP1 / EP2 on eprom and P2 on maskrom; same rom data as samshoh is used. */ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) /* TC531000 */ @@ -4728,10 +4739,10 @@ ROM_START( samsho ) /* MVS VERSION */ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) /* TC5316200 */ ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) ) /* Plane 0,1 */ /* TC538200 */ ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) ) /* Plane 2,3 */ /* TC538200 */ ROM_END @@ -4756,7 +4767,7 @@ ROM_START( samshoh ) /* AES VERSION */ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) /* Plane 0,1 */ /* TC534200 */ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) /* Plane 2,3 */ /* TC534200 */ - /* also found AES set with C6 on TC538200; label is 045-C61.C6 */ + /* also found AES set with C6 on TC538200; label is 045-C61.C6; same rom data as samsho */ ROM_END /**************************************** @@ -4831,11 +4842,12 @@ ROM_END ROM_START( fatfury2 ) /* MVS AND AES VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "047-p1.p1", 0x000000, 0x100000, CRC(ecfdbb69) SHA1(59e2f137c6eaf043df4ddae865a9159a10265c60) ) /* TC538200 */ - /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */ + /* The original P1 is 8mbit; also found sets with P1 / P2 4mbit on eprom. */ NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) /* TC531000 */ NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) /* TC531001 */ + /* also found sets with M1 on eprom */ ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) /* TC5316200 */ @@ -5135,6 +5147,7 @@ ROM_END ROM_START( aof2 ) /* MVS VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) /* TC538200 */ + /* also found set with EP1 / EP2 on eprom; correct chip label unknown */ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) /* TC531000 */ @@ -5336,6 +5349,7 @@ ROM_END ROM_START( fightfev ) /* MVS ONLY RELEASE */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) /* VIC940800 */ + /* also found set with EP1 / EP2 on eprom with sticker; stickers have Viccom logo with '1' for EP1 and '2' for EP2 in the center */ NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) ) /* VIC930100 */ @@ -5387,7 +5401,7 @@ ROM_END ROM_START( ssideki2 ) /* MVS AND AES VERSION */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "061-p1.p1", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) /* mask rom TC538200 */ - /* also found MVS sets with ep1 / ep2 on eprom; correct chip label unknown. */ + /* also found MVS sets with EP1 / EP2 on eprom; correct chip label unknown. */ NEO_SFIX_128K( "061-s1.s1", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) /* mask rom TC531000 */ @@ -5447,7 +5461,7 @@ ROM_START( samsho2 ) /* MVS AND AES VERSION */ ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "063-p1.p1", 0x100000, 0x100000, CRC(22368892) SHA1(0997f8284aa0f57a333be8a0fdea777d0d01afd6) ) /* TC5316200 */ ROM_CONTINUE( 0x000000, 0x100000 ) - /* also found MVS sets with ep1 / ep2 on eprom and p1 / sp2 on maskrom; correct chip label unknown */ + /* also found MVS sets with EP1 / EP2 on M27C4002 eprom and P1 / SP2 on D27C4000 maskrom; correct chip label unknown */ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) /* TC531000 */ @@ -6036,6 +6050,7 @@ ROM_END NEO-MVS PROGTOP / NEO-MVS CHA256B NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 . NGH-082 + NEO-AEG PROGTOP2 / NEO-AEG CHA256 B ****************************************/ ROM_START( doubledr ) @@ -6235,7 +6250,7 @@ ROM_START( samsho3 ) /* MVS VERSION */ ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) ) /* M27C4002 */ /* P's on eprom, correct chip label unknown */ ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) ) /* TC538200 */ - /* also found MVS set with p1 / sp2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */ + /* also found sets with P1 / SP2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */ @@ -6511,6 +6526,7 @@ ROM_END . NGM-094 NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B . NGH-094 + NEO-AEG PROGTOP2Y / NEO-AEG CHA256BY ****************************************/ ROM_START( gowcaizr ) @@ -6686,6 +6702,7 @@ ROM_END . NGM-096 NEO-MVS PROGBK1 / NEO-MVS CHA256 . NGH-096 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY ****************************************/ ROM_START( aof3 ) @@ -6801,6 +6818,7 @@ ROM_END NEO-MVS PROGBK1 / NEO-MVS CHA256B NEO-MVS PROGBK1 / NEO-MVS CHA256 . NGH-200 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY ****************************************/ ROM_START( turfmast ) @@ -6948,6 +6966,7 @@ ROM_END . ??M-206 NEO-MVS PROGBK1 / NEO-MVS CHA256 . ??H-206 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY ****************************************/ ROM_START( marukodq ) @@ -7057,6 +7076,7 @@ ROM_END . ADM-011 NEO-MVS PROGBK1 / NEO-MVS CHA256 . ADH-011 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY ****************************************/ ROM_START( overtop ) @@ -7117,7 +7137,7 @@ ROM_START( kof96 ) /* MVS VERSION */ ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) /* TC538200 */ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ - /* also found sets with ep1 / ep2 / ep3 / ep4 on eprom and 214-P5 on TC5316200; correct chip labels for eproms is unknown */ + /* also found sets with EP1 / EP2 / EP3 / EP4 on eprom and P5 on TC5316200 with chip label 214-P5; correct chip labels for eproms is unknown */ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ @@ -7638,8 +7658,14 @@ ROM_END /**************************************** ID-0228 Ghostlop (prototype) 1996 Data East Corp. + + Ghostlop (location test) 2001 Data East Corp. + NEO-MVS PROGGSC / NEO-MVS CHA256 ****************************************/ +/* The location test version uses socketed EPROMs on the PROG board, flash chips on adapter boards for the C ROMs and EPROMs for M1 and S1 on the CHA. +It has a piece of cardboard between the 2 boards to avoid shorts because the socketed flash adapter boards are a bit too high and could get shorted with traces on the PROG board. */ + ROM_START( ghostlop ) /* Prototype */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "proto_228-p1.p1", 0x000000, 0x100000, CRC(6033172e) SHA1(f57fb706aa8dd9e5f9e992a5d35c1799578b59f8) ) @@ -7729,6 +7755,7 @@ ROM_START( kof97 ) /* MVS VERSION */ ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) /* TC538200 */ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + /* also found sets with P1 on TC538200 and SP2 on TC5332205 with chip labels 232-PG1 and 232-P2 */ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ @@ -7833,8 +7860,8 @@ ROM_START( lastblad ) /* MVS VERSION */ ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "234-p1.p1", 0x000000, 0x100000, CRC(e123a5a3) SHA1(a3ddabc00feeb54272b145246612ad4632b0e413) ) /* TC538200 */ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ - /* also found sets with p1 / sp2 / ep1 / ep2 / m1 on eprom with sticker */ - /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1 */ + /* also found sets with P1 / SP2 / EP1 / EP2 / M1 on eprom with sticker */ + /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1; same data */ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ @@ -8855,7 +8882,7 @@ ROM_START( garouh ) /* Original Version - Encrypted GFX */ /* MVS AND AES VERSIO ROM_LOAD16_WORD_SWAP( "ke.neo-sma", 0x0c0000, 0x040000, CRC(96c72233) SHA1(29e19effd40fdf7e5144332396857f4ad0eff13e) ) /* stored in the custom chip */ ROM_LOAD16_WORD_SWAP( "253-p1.p1", 0x100000, 0x400000, CRC(18ae5d7e) SHA1(bdb58ec9137d8653979b47132f2d10e1cc6aaa24) ) /* mask rom TC5332205 */ ROM_LOAD16_WORD_SWAP( "253-p2.p2", 0x500000, 0x400000, CRC(afffa779) SHA1(ac017986f02277fbcd656b8c02492a3f4216a90e) ) /* mask rom TC5332205 */ - /* also found AES JP set with ep1 / ep2 / ep3 and ep4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */ + /* also found AES JP set with EP1 / EP2 / EP3 and EP4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */ ROM_Y_ZOOM @@ -9162,7 +9189,7 @@ ROM_END Non SMA protected version found on: NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) . NGH-2570 - NEO-AEG PROGLBA (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) + NEO-AEG PROGLBA (1999.7.6) (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) ****************************************/ ROM_START( kof2000 ) /* Original Version, Encrypted Code + Sound + GFX Roms */ /* MVS AND AES VERSION */ @@ -9679,7 +9706,7 @@ ROM_END ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */ ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "pn202.p1", 0x000000, 0x100000, CRC(bf34e71c) SHA1(cfa7a2c7c41601a758414faf34e59583d7537363) ) - + /* P1 on eprom with sticker; chip label is P N 2. 02 */ ROM_Y_ZOOM /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ @@ -9689,8 +9716,9 @@ ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) /* mask rom TC534000 */ - + NEO_BIOS_AUDIO_ENCRYPTED_512K( "m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) /* mask rom TC534000 */ + /* M1 on eprom with sticker; chip label is M1 */ + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) /* Encrypted */ ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) ) /* mask rom TC5332204 */ @@ -9771,7 +9799,7 @@ ROM_START( mslug5h ) /* Encrypted Set */ /* AES release of the game but is also ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) ) ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) ) - /* also found AES set with p1 / p2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */ + /* also found AES set with P1 / P2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */ ROM_Y_ZOOM @@ -10088,7 +10116,7 @@ ROM_START( samsh5sph ) /* Encrypted Set */ /* AES VERSION, 2nd bugfix release */ ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) ROM_LOAD16_WORD_SWAP( "272-p1ca.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) ) ROM_LOAD16_WORD_SWAP( "272-p2ca.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) ) - /* Correct chip labels unknown */ + /* Correct chip labels unknown. Also found AES set on NEO-AEG PROGBK2S with P1 / P2 on eprom with sticker; chip label is 272-P1 and 272-P2 */ ROM_Y_ZOOM diff --git a/src/mame/drivers/nes_clone.cpp b/src/mame/drivers/nes_clone.cpp index d13a9463a8e..555b5456ba1 100644 --- a/src/mame/drivers/nes_clone.cpp +++ b/src/mame/drivers/nes_clone.cpp @@ -34,11 +34,11 @@ protected: virtual void machine_reset() override; virtual void video_start() override; - DECLARE_WRITE8_MEMBER(sprite_dma_w); + void sprite_dma_w(address_space &space, uint8_t data); - virtual DECLARE_READ8_MEMBER(in0_r); - virtual DECLARE_READ8_MEMBER(in1_r); - virtual DECLARE_WRITE8_MEMBER(in0_w); + virtual uint8_t in0_r(); + virtual uint8_t in1_r(); + virtual void in0_w(uint8_t data); void nes_clone_basemap(address_map &map); @@ -70,20 +70,20 @@ private: void nes_clone_dnce2000_map(address_map& map); virtual void machine_start() override; virtual void machine_reset() override; - DECLARE_READ8_MEMBER(rom_r); - DECLARE_WRITE8_MEMBER(bank_w); + uint8_t rom_r(offs_t offset); + void bank_w(uint8_t data); int m_rombase; }; -WRITE8_MEMBER(nes_clone_state::sprite_dma_w) +void nes_clone_state::sprite_dma_w(address_space &space, uint8_t data) { int source = (data & 7); m_ppu->spriteram_dma(space, source); } // Standard NES style inputs (not using bus device as there are no real NES controller ports etc. these are all-in-one units and can be custom -READ8_MEMBER(nes_clone_state::in0_r) +uint8_t nes_clone_state::in0_r() { //logerror("%s: in0_r\n", machine().describe_context()); uint8_t ret = 0x40; @@ -92,7 +92,7 @@ READ8_MEMBER(nes_clone_state::in0_r) return ret; } -READ8_MEMBER(nes_clone_state::in1_r) +uint8_t nes_clone_state::in1_r() { //logerror("%s: in1_r\n", machine().describe_context()); uint8_t ret = 0x40; @@ -101,7 +101,7 @@ READ8_MEMBER(nes_clone_state::in1_r) return ret; } -WRITE8_MEMBER(nes_clone_state::in0_w) +void nes_clone_state::in0_w(uint8_t data) { //logerror("%s: in0_w %02x\n", machine().describe_context(), data); if (data & 0x01) @@ -270,12 +270,12 @@ void nes_clone_dnce2000_state::machine_start() save_item(NAME(m_rombase)); } -READ8_MEMBER(nes_clone_dnce2000_state::rom_r) +uint8_t nes_clone_dnce2000_state::rom_r(offs_t offset) { return m_mainrom[(offset + (m_rombase * 0x8000)) & (m_mainromsize - 1)]; } -WRITE8_MEMBER(nes_clone_dnce2000_state::bank_w) +void nes_clone_dnce2000_state::bank_w(uint8_t data) { m_rombase = data; } diff --git a/src/mame/drivers/nes_sh6578.cpp b/src/mame/drivers/nes_sh6578.cpp index e8fa4fdf646..2c9ffdda35d 100644 --- a/src/mame/drivers/nes_sh6578.cpp +++ b/src/mame/drivers/nes_sh6578.cpp @@ -53,7 +53,7 @@ protected: virtual void machine_reset() override; virtual void video_start() override; - WRITE8_MEMBER(sprite_dma_w); + void sprite_dma_w(address_space &space, uint8_t data); private: required_device<cpu_device> m_maincpu; @@ -64,52 +64,52 @@ private: required_device<nesapu_device> m_apu; required_device<timer_device> m_timer; - DECLARE_READ8_MEMBER(bankswitch_r); - DECLARE_WRITE8_MEMBER(bankswitch_w); + uint8_t bankswitch_r(offs_t offset); + void bankswitch_w(offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER(dma_r); - DECLARE_WRITE8_MEMBER(dma_w); + uint8_t dma_r(offs_t offset); + void dma_w(offs_t offset, uint8_t data); uint8_t bank_r(int bank, uint16_t offset); void bank_w(int bank, uint16_t offset, uint8_t data); - DECLARE_READ8_MEMBER(bank0_r) { return bank_r(0, offset); } - DECLARE_WRITE8_MEMBER(bank0_w) { bank_w(0, offset, data); } - DECLARE_READ8_MEMBER(bank1_r) { return bank_r(1, offset); } - DECLARE_WRITE8_MEMBER(bank1_w) { bank_w(1, offset, data); } - DECLARE_READ8_MEMBER(bank2_r) { return bank_r(2, offset); } - DECLARE_WRITE8_MEMBER(bank2_w) { bank_w(2, offset, data); } - DECLARE_READ8_MEMBER(bank3_r) { return bank_r(3, offset); } - DECLARE_WRITE8_MEMBER(bank3_w) { bank_w(3, offset, data); } - DECLARE_READ8_MEMBER(bank4_r) { return bank_r(4, offset); } - DECLARE_WRITE8_MEMBER(bank4_w) { bank_w(4, offset, data); } - DECLARE_READ8_MEMBER(bank5_r) { return bank_r(5, offset); } - DECLARE_WRITE8_MEMBER(bank5_w) { bank_w(5, offset, data); } - DECLARE_READ8_MEMBER(bank6_r) { return bank_r(6, offset); } - DECLARE_WRITE8_MEMBER(bank6_w) { bank_w(6, offset, data); } - DECLARE_READ8_MEMBER(bank7_r) { return bank_r(7, offset); } - DECLARE_WRITE8_MEMBER(bank7_w) { bank_w(7, offset, data); } - - DECLARE_WRITE8_MEMBER(timing_setting_control_w); - DECLARE_WRITE8_MEMBER(initial_startup_w); - DECLARE_READ8_MEMBER(irq_status_r); - DECLARE_WRITE8_MEMBER(irq_mask_w); - DECLARE_WRITE8_MEMBER(timer_config_w); - DECLARE_WRITE8_MEMBER(timer_value_w); - - DECLARE_READ8_MEMBER(io0_r); - DECLARE_READ8_MEMBER(io1_r); - DECLARE_WRITE8_MEMBER(io_w); - - DECLARE_READ8_MEMBER(psg1_4014_r); - DECLARE_READ8_MEMBER(psg1_4015_r); - DECLARE_WRITE8_MEMBER(psg1_4015_w); - DECLARE_WRITE8_MEMBER(psg1_4017_w); + uint8_t bank0_r(offs_t offset) { return bank_r(0, offset); } + void bank0_w(offs_t offset, uint8_t data) { bank_w(0, offset, data); } + uint8_t bank1_r(offs_t offset) { return bank_r(1, offset); } + void bank1_w(offs_t offset, uint8_t data) { bank_w(1, offset, data); } + uint8_t bank2_r(offs_t offset) { return bank_r(2, offset); } + void bank2_w(offs_t offset, uint8_t data) { bank_w(2, offset, data); } + uint8_t bank3_r(offs_t offset) { return bank_r(3, offset); } + void bank3_w(offs_t offset, uint8_t data) { bank_w(3, offset, data); } + uint8_t bank4_r(offs_t offset) { return bank_r(4, offset); } + void bank4_w(offs_t offset, uint8_t data) { bank_w(4, offset, data); } + uint8_t bank5_r(offs_t offset) { return bank_r(5, offset); } + void bank5_w(offs_t offset, uint8_t data) { bank_w(5, offset, data); } + uint8_t bank6_r(offs_t offset) { return bank_r(6, offset); } + void bank6_w(offs_t offset, uint8_t data) { bank_w(6, offset, data); } + uint8_t bank7_r(offs_t offset) { return bank_r(7, offset); } + void bank7_w(offs_t offset, uint8_t data) { bank_w(7, offset, data); } + + void timing_setting_control_w(uint8_t data); + void initial_startup_w(uint8_t data); + uint8_t irq_status_r(); + void irq_mask_w(uint8_t data); + void timer_config_w(uint8_t data); + void timer_value_w(uint8_t data); + + uint8_t io0_r(); + uint8_t io1_r(); + void io_w(uint8_t data); + + uint8_t psg1_4014_r(); + uint8_t psg1_4015_r(); + void psg1_4015_w(uint8_t data); + void psg1_4017_w(uint8_t data); uint8_t apu_read_mem(offs_t offset); DECLARE_WRITE_LINE_MEMBER(apu_irq); - int m_iniital_startup_state; + int m_initial_startup_state; uint8_t m_bankswitch[8]; @@ -158,22 +158,22 @@ void nes_sh6578_state::bank_w(int bank, uint16_t offset, uint8_t data) m_fullrom->write8(address, data); } -WRITE8_MEMBER(nes_sh6578_state::sprite_dma_w) +void nes_sh6578_state::sprite_dma_w(address_space &space, uint8_t data) { m_ppu->spriteram_dma(space, data); } -READ8_MEMBER(nes_sh6578_state::bankswitch_r) +uint8_t nes_sh6578_state::bankswitch_r(offs_t offset) { return m_bankswitch[offset]; } -WRITE8_MEMBER(nes_sh6578_state::bankswitch_w) +void nes_sh6578_state::bankswitch_w(offs_t offset, uint8_t data) { m_bankswitch[offset] = data; } -READ8_MEMBER(nes_sh6578_state::dma_r) +uint8_t nes_sh6578_state::dma_r(offs_t offset) { switch (offset) { @@ -240,7 +240,7 @@ void nes_sh6578_state::do_dma() //m_dma_length[1] = 0; } -WRITE8_MEMBER(nes_sh6578_state::dma_w) +void nes_sh6578_state::dma_w(offs_t offset, uint8_t data) { switch (offset) { @@ -288,53 +288,53 @@ WRITE8_MEMBER(nes_sh6578_state::dma_w) } -WRITE8_MEMBER(nes_sh6578_state::initial_startup_w) +void nes_sh6578_state::initial_startup_w(uint8_t data) { // there is also a timeframe in which this must happen // if the writes are not correct the system does not operate - if (m_iniital_startup_state == 0) + if (m_initial_startup_state == 0) { if (data == 0x65) { logerror("initial_startup_w VALID first write (0x65)\n"); - m_iniital_startup_state = 1; + m_initial_startup_state = 1; } else { logerror("initial_startup_w invalid first write (not 0x65)\n"); - m_iniital_startup_state = -1; + m_initial_startup_state = -1; } } - else if (m_iniital_startup_state == 1) + else if (m_initial_startup_state == 1) { if (data == 0x76) { logerror("initial_startup_w VALID second write (0x76)\n"); - m_iniital_startup_state = 2; + m_initial_startup_state = 2; } else { logerror("initial_startup_w invalid second write (not 0x76)\n"); - m_iniital_startup_state = -1; + m_initial_startup_state = -1; } } - else if (m_iniital_startup_state == 2) + else if (m_initial_startup_state == 2) { logerror("initial_startup_w invalid write (already passed) (%02x)\n", data); } - else if (m_iniital_startup_state == -1) + else if (m_initial_startup_state == -1) { logerror("initial_startup_w invalid write (already failed) (%02x)\n", data); } } -READ8_MEMBER(nes_sh6578_state::irq_status_r) +uint8_t nes_sh6578_state::irq_status_r() { logerror("%s: nes_sh6578_state::irq_status_r\n", machine().describe_context()); return machine().rand(); } -WRITE8_MEMBER(nes_sh6578_state::irq_mask_w) +void nes_sh6578_state::irq_mask_w(uint8_t data) { m_irqmask = data; @@ -342,7 +342,7 @@ WRITE8_MEMBER(nes_sh6578_state::irq_mask_w) m_maincpu->set_input_line(0, CLEAR_LINE); } -WRITE8_MEMBER(nes_sh6578_state::timer_config_w) +void nes_sh6578_state::timer_config_w(uint8_t data) { logerror("%s: nes_sh6578_state::timer_config_w : %02x (at pos y: %d x: %d )\n", machine().describe_context(), data, m_screen->vpos(), m_screen->hpos() ); @@ -356,34 +356,34 @@ WRITE8_MEMBER(nes_sh6578_state::timer_config_w) } } -WRITE8_MEMBER(nes_sh6578_state::timer_value_w) +void nes_sh6578_state::timer_value_w(uint8_t data) { logerror("%s: nes_sh6578_state::timer_value_w : %02x\n", machine().describe_context(), data); m_timerval = data; } -WRITE8_MEMBER(nes_sh6578_state::timing_setting_control_w) +void nes_sh6578_state::timing_setting_control_w(uint8_t data) { logerror("%s: nes_sh6578_state::timing_setting_control_w : %02x\n", machine().describe_context(), data); } -READ8_MEMBER(nes_sh6578_state::io0_r) +uint8_t nes_sh6578_state::io0_r() { uint8_t ret = m_iolatch[0] & 0x01; m_iolatch[0] >>= 1; return ret; } -READ8_MEMBER(nes_sh6578_state::io1_r) +uint8_t nes_sh6578_state::io1_r() { uint8_t ret = m_iolatch[1] & 0x01; m_iolatch[1] >>= 1; return ret; } -WRITE8_MEMBER(nes_sh6578_state::io_w) +void nes_sh6578_state::io_w(uint8_t data) { if ((data != 0x00) && (data != 0x01) && (data != 0x02) && (data != 0x03)) logerror("%s: io_w : unexpected value : %02x\n", machine().describe_context(), data); @@ -407,22 +407,22 @@ WRITE8_MEMBER(nes_sh6578_state::io_w) } -READ8_MEMBER(nes_sh6578_state::psg1_4014_r) +uint8_t nes_sh6578_state::psg1_4014_r() { return m_apu->read(0x14); } -READ8_MEMBER(nes_sh6578_state::psg1_4015_r) +uint8_t nes_sh6578_state::psg1_4015_r() { return m_apu->read(0x15); } -WRITE8_MEMBER(nes_sh6578_state::psg1_4015_w) +void nes_sh6578_state::psg1_4015_w(uint8_t data) { m_apu->write(0x15, data); } -WRITE8_MEMBER(nes_sh6578_state::psg1_4017_w) +void nes_sh6578_state::psg1_4017_w(uint8_t data) { m_apu->write(0x17, data); } @@ -503,7 +503,7 @@ void nes_sh6578_state::machine_reset() for (int i = 0; i < 8; i++) m_bankswitch[i] = i; - m_iniital_startup_state = 0; + m_initial_startup_state = 0; m_bank->set_entry(0); m_irqmask = 0xff; diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp index ea7ac7398c6..82502629b32 100644 --- a/src/mame/drivers/nes_vt.cpp +++ b/src/mame/drivers/nes_vt.cpp @@ -67,8 +67,8 @@ protected: required_region_ptr<uint8_t> m_prgrom; - DECLARE_READ8_MEMBER(vt_rom_r); - DECLARE_WRITE8_MEMBER(vtspace_w); + uint8_t vt_rom_r(offs_t offset); + void vtspace_w(offs_t offset, uint8_t data); void configure_soc(nes_vt_soc_device* soc); @@ -123,7 +123,7 @@ public: protected: required_device<nes_vt_soc_device> m_soc; - DECLARE_WRITE8_MEMBER(vt03_8000_mapper_w) { m_soc->vt03_8000_mapper_w(space, offset, data); } + void vt03_8000_mapper_w(offs_t offset, uint8_t data) { m_soc->vt03_8000_mapper_w(offset, data); } }; @@ -242,7 +242,7 @@ private: void bittboy_412c_w(uint8_t data); - DECLARE_READ8_MEMBER(vt_rom_banked_r); + uint8_t vt_rom_banked_r(offs_t offset); }; class nes_vt_cy_lexibook_state : public nes_vt_cy_state @@ -284,7 +284,7 @@ public: protected: private: - READ8_MEMBER(vt_rom_banked_r); + uint8_t vt_rom_banked_r(offs_t offset); void vt_external_space_map_fapocket_4x16mbyte(address_map& map); void nes_vt_dg_map(address_map& map); @@ -338,7 +338,7 @@ public: void nes_vt_fp_pal_32mb(machine_config& config); private: - DECLARE_READ8_MEMBER(vt_rom_banked_r); + uint8_t vt_rom_banked_r(offs_t offset); void vt_external_space_map_fp_2x32mbyte(address_map& map); void nes_vt_fp_map(address_map& map); @@ -400,12 +400,12 @@ public: void nes_vt_vg_1mb_majgnc(machine_config& config); }; -READ8_MEMBER(nes_vt_base_state::vt_rom_r) +uint8_t nes_vt_base_state::vt_rom_r(offs_t offset) { return m_prgrom[offset]; } -WRITE8_MEMBER(nes_vt_base_state::vtspace_w) +void nes_vt_base_state::vtspace_w(offs_t offset, uint8_t data) { logerror("%s: vtspace_w %08x : %02x", machine().describe_context(), offset, data); } @@ -455,7 +455,7 @@ void nes_vt_swap_op_d5_d6_state::vt_external_space_map_senwld_512kbyte(address_m } // bitboy is 2 16Mbyte banks -READ8_MEMBER(nes_vt_cy_state::vt_rom_banked_r) +uint8_t nes_vt_cy_state::vt_rom_banked_r(offs_t offset) { return m_prgrom[m_ahigh | offset]; } @@ -466,7 +466,7 @@ void nes_vt_cy_state::vt_external_space_map_bitboy_2x16mbyte(address_map &map) } // fapocket is 4 16Mbyte banks -READ8_MEMBER(nes_vt_dg_state::vt_rom_banked_r) +uint8_t nes_vt_dg_state::vt_rom_banked_r(offs_t offset) { return m_prgrom[m_ahigh | offset]; } @@ -476,7 +476,7 @@ void nes_vt_dg_state::vt_external_space_map_fapocket_4x16mbyte(address_map &map) map(0x0000000, 0x0ffffff).mirror(0x1000000).rw(FUNC(nes_vt_dg_state::vt_rom_banked_r), FUNC(nes_vt_dg_state::vt03_8000_mapper_w)); } -READ8_MEMBER(nes_vt_hh_state::vt_rom_banked_r) +uint8_t nes_vt_hh_state::vt_rom_banked_r(offs_t offset) { return m_prgrom[m_ahigh | offset]; } diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp index 9b4eec02b5f..1510e577a6e 100644 --- a/src/mame/drivers/ngen.cpp +++ b/src/mame/drivers/ngen.cpp @@ -929,7 +929,7 @@ static void ngen_floppies(device_slot_interface &device) void ngen_state::ngen(machine_config &config) { // basic machine hardware - I80186(config, m_maincpu, 16_MHz_XTAL / 2); + I80186(config, m_maincpu, 16_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &ngen_state::ngen_mem); m_maincpu->set_addrmap(AS_IO, &ngen_state::ngen_io); m_maincpu->chip_select_callback().set(FUNC(ngen_state::cpu_peripheral_cb)); diff --git a/src/mame/drivers/novag_sexpert.cpp b/src/mame/drivers/novag_sexpert.cpp index 29965252515..e35e3b9c54e 100644 --- a/src/mame/drivers/novag_sexpert.cpp +++ b/src/mame/drivers/novag_sexpert.cpp @@ -492,16 +492,16 @@ ROM_END ROM_START( sexperta1 ) // from model 878 ROM_REGION( 0x18000, "maincpu", 0 ) - ROM_LOAD("se_lo_b15.u3", 0x0000, 0x8000, CRC(6cc9527c) SHA1(29bab809399f2863a88a9c41535ecec0a4fd65ea) ) - ROM_LOAD("se_hi1_b15.u1", 0x8000, 0x8000, CRC(6e57f0c0) SHA1(ea44769a6f54721fd4543366bda932e86e497d43) ) - ROM_LOAD("se_sf_hi0_a23.u2", 0x10000, 0x8000, CRC(7d4e1528) SHA1(53c7d458a5571afae402f00ae3d0f5066634b068) ) + ROM_LOAD("se_202_l.u3", 0x0000, 0x8000, CRC(d51fed16) SHA1(01aaddab36a721a4b9efde94979256d397cd1953) ) // NEC D27C256AD-12 + ROM_LOAD("se_202_h1.u1", 0x8000, 0x8000, CRC(933eafa8) SHA1(293f63a5bc7d760ad675522c98f9f0a49e61aef5) ) // " + ROM_LOAD("se_c22_h0.u2", 0x10000, 0x8000, CRC(3e42cf7c) SHA1(b2faa36a127e08e5755167a25ed4a07f12d62957) ) // " ROM_END ROM_START( sexperta2 ) // from model 878 ROM_REGION( 0x18000, "maincpu", 0 ) - ROM_LOAD("se_202_l.u3", 0x0000, 0x8000, CRC(d51fed16) SHA1(01aaddab36a721a4b9efde94979256d397cd1953) ) // NEC D27C256AD-12 - ROM_LOAD("se_202_h1.u1", 0x8000, 0x8000, CRC(933eafa8) SHA1(293f63a5bc7d760ad675522c98f9f0a49e61aef5) ) // " - ROM_LOAD("se_c22_h0.u2", 0x10000, 0x8000, CRC(3e42cf7c) SHA1(b2faa36a127e08e5755167a25ed4a07f12d62957) ) // " + ROM_LOAD("se_lo_b15.u3", 0x0000, 0x8000, CRC(6cc9527c) SHA1(29bab809399f2863a88a9c41535ecec0a4fd65ea) ) + ROM_LOAD("se_hi1_b15.u1", 0x8000, 0x8000, CRC(6e57f0c0) SHA1(ea44769a6f54721fd4543366bda932e86e497d43) ) + ROM_LOAD("se_sf_hi0_a23.u2", 0x10000, 0x8000, CRC(7d4e1528) SHA1(53c7d458a5571afae402f00ae3d0f5066634b068) ) ROM_END ROM_START( sexpertb ) // from model 887 diff --git a/src/mame/drivers/nwk-tr.cpp b/src/mame/drivers/nwk-tr.cpp index a13b9e17899..9270faf21a9 100644 --- a/src/mame/drivers/nwk-tr.cpp +++ b/src/mame/drivers/nwk-tr.cpp @@ -307,8 +307,10 @@ public: m_analog3(*this, "ANALOG3"), m_analog4(*this, "ANALOG4"), m_analog5(*this, "ANALOG5"), + m_pcb_digit(*this, "pcbdigit%u", 0U), m_palette(*this, "palette"), - m_generic_paletteram_32(*this, "paletteram") { } + m_generic_paletteram_32(*this, "paletteram") + { } void thrilld(machine_config &config); void nwktr(machine_config &config); @@ -319,8 +321,6 @@ private: // TODO: Needs verification on real hardware static const int m_sound_timer_usec = 2400; - uint8_t m_led_reg0; - uint8_t m_led_reg1; required_shared_ptr<uint32_t> m_work_ram; required_device<ppc_device> m_maincpu; required_device<cpu_device> m_audiocpu; @@ -332,8 +332,10 @@ private: required_device<adc12138_device> m_adc12138; required_device_array<voodoo_device, 2> m_voodoo; required_ioport m_in0, m_in1, m_in2, m_dsw, m_analog1, m_analog2, m_analog3, m_analog4, m_analog5; + output_finder<2> m_pcb_digit; required_device<palette_device> m_palette; required_shared_ptr<uint32_t> m_generic_paletteram_32; + emu_timer *m_sound_irq_timer; int m_fpga_uploaded; int m_lanc2_ram_r; @@ -343,8 +345,8 @@ private: std::unique_ptr<uint32_t[]> m_sharc0_dataram; std::unique_ptr<uint32_t[]> m_sharc1_dataram; void paletteram32_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - uint32_t sysreg_r(offs_t offset, uint32_t mem_mask = ~0); - void sysreg_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint8_t sysreg_r(offs_t offset); + void sysreg_w(offs_t offset, uint8_t data); uint32_t lanc1_r(offs_t offset); void lanc1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); uint32_t lanc2_r(offs_t offset, uint32_t mem_mask = ~0); @@ -403,8 +405,6 @@ uint32_t nwktr_state::screen_update_lscreen(screen_device &screen, bitmap_rgb32 m_k001604->draw_front_layer(screen, bitmap, tilemap_rect); - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } @@ -419,83 +419,73 @@ uint32_t nwktr_state::screen_update_rscreen(screen_device &screen, bitmap_rgb32 m_k001604->draw_front_layer(screen, bitmap, tilemap_rect); - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } /*****************************************************************************/ -uint32_t nwktr_state::sysreg_r(offs_t offset, uint32_t mem_mask) +uint8_t nwktr_state::sysreg_r(offs_t offset) { - uint32_t r = 0; - if (offset == 0) - { - if (ACCESSING_BITS_24_31) - { - r |= m_in0->read() << 24; - } - if (ACCESSING_BITS_16_23) - { - r |= m_in1->read() << 16; - } - if (ACCESSING_BITS_8_15) - { - r |= m_in2->read() << 8; - } - if (ACCESSING_BITS_0_7) - { - r |= m_adc12138->do_r() | (m_adc12138->eoc_r() << 2); - } - } - else if (offset == 1) + uint8_t r = 0; + + switch (offset) { - if (ACCESSING_BITS_24_31) - { - r |= m_dsw->read() << 24; - } + case 0: + r = m_in0->read(); + break; + case 1: + r = m_in1->read(); + break; + case 2: + r = m_in2->read(); + break; + case 3: + r = m_adc12138->do_r() | (m_adc12138->eoc_r() << 2); + break; + case 4: + r = m_dsw->read(); + break; + default: + break; } + return r; } -void nwktr_state::sysreg_w(offs_t offset, uint32_t data, uint32_t mem_mask) +void nwktr_state::sysreg_w(offs_t offset, uint8_t data) { - if( offset == 0 ) - { - if (ACCESSING_BITS_24_31) - { - m_led_reg0 = (data >> 24) & 0xff; - } - if (ACCESSING_BITS_16_23) - { - m_led_reg1 = (data >> 16) & 0xff; - } - return; - } - if( offset == 1 ) + switch (offset) { - if (ACCESSING_BITS_24_31) + case 0: + case 1: + m_pcb_digit[offset] = bitswap<8>(~data,7,0,1,2,3,4,5,6) & 0x7f; + break; + + case 4: { - int cs = (data >> 27) & 0x1; - int conv = (data >> 26) & 0x1; - int di = (data >> 25) & 0x1; - int sclk = (data >> 24) & 0x1; + int cs = (data >> 3) & 0x1; + int conv = (data >> 2) & 0x1; + int di = (data >> 1) & 0x1; + int sclk = data & 0x1; m_adc12138->cs_w(cs); m_adc12138->conv_w(conv); m_adc12138->di_w(di); m_adc12138->sclk_w(sclk); + break; } - if (ACCESSING_BITS_0_7) - { - if (data & 0x80) // CG Board 1 IRQ Ack + + case 7: + if (data & 0x80) // CG Board 1 IRQ Ack m_maincpu->set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE); - if (data & 0x40) // CG Board 0 IRQ Ack + if (data & 0x40) // CG Board 0 IRQ Ack m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); m_konppc->set_cgboard_id((data >> 4) & 1); - } - return; + break; + + default: + break; } } @@ -675,6 +665,8 @@ void nwktr_state::soundtimer_count_w(uint16_t data) void nwktr_state::machine_start() { + m_pcb_digit.resolve(); + /* set conservative DRC options */ m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); @@ -942,7 +934,6 @@ void nwktr_state::init_nwktr() m_sharc0_dataram = std::make_unique<uint32_t[]>(0x100000 / 4); m_sharc1_dataram = std::make_unique<uint32_t[]>(0x100000 / 4); - m_led_reg0 = m_led_reg1 = 0x7f; lanc2_init(); } diff --git a/src/mame/drivers/pencil2.cpp b/src/mame/drivers/pencil2.cpp index 66cceb37105..95ab2dfe571 100644 --- a/src/mame/drivers/pencil2.cpp +++ b/src/mame/drivers/pencil2.cpp @@ -305,6 +305,11 @@ INPUT_PORTS_END void pencil2_state::machine_start() { + + save_item(NAME(m_centronics_busy)); + save_item(NAME(m_centronics_ack)); + save_item(NAME(m_cass_state)); + if (m_cart->exists()) m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom))); } @@ -349,11 +354,11 @@ void pencil2_state::pencil2(machine_config &config) /* ROM definition */ ROM_START( pencil2 ) - ROM_REGION(0x10000, "maincpu", 0) + ROM_REGION(0x2000, "maincpu", 0) ROM_LOAD( "mt.u4", 0x0000, 0x2000, CRC(338d7b59) SHA1(2f89985ac06971e00210ff992bf1e30a296d10e7) ) ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1983, pencil2, 0, 0, pencil2, pencil2, pencil2_state, empty_init, "Hanimex", "Pencil II", 0 ) +COMP( 1983, pencil2, 0, 0, pencil2, pencil2, pencil2_state, empty_init, "Hanimex", "Pencil II", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pipbug.cpp b/src/mame/drivers/pipbug.cpp index 2fe0274194d..863620d4232 100644 --- a/src/mame/drivers/pipbug.cpp +++ b/src/mame/drivers/pipbug.cpp @@ -66,6 +66,7 @@ public: void pipbug(machine_config &config); private: + virtual void machine_start() override; void pipbug_ctrl_w(u8 data); DECLARE_READ_LINE_MEMBER(serial_r); TIMER_DEVICE_CALLBACK_MEMBER(kansas_r); @@ -73,8 +74,8 @@ private: required_device<s2650_device> m_maincpu; required_device<cassette_image_device> m_cass; DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb); - void pipbug_data(address_map &map); - void pipbug_mem(address_map &map); + void data_map(address_map &map); + void mem_map(address_map &map); u8 m_cass_data[4]; bool m_cassold, m_cassinbit; }; @@ -113,14 +114,21 @@ READ_LINE_MEMBER( pipbug_state::serial_r ) return m_rs232->rxd_r() & m_cassinbit; } -void pipbug_state::pipbug_mem(address_map &map) +void pipbug_state::machine_start() +{ + save_pointer(NAME(m_cass_data), 4); + save_item(NAME(m_cassold)); + save_item(NAME(m_cassinbit)); +} + +void pipbug_state::mem_map(address_map &map) { map.unmap_value_high(); map(0x0000, 0x03ff).rom(); map(0x0400, 0x7fff).ram(); } -void pipbug_state::pipbug_data(address_map &map) +void pipbug_state::data_map(address_map &map) { // map.unmap_value_high(); map(S2650_CTRL_PORT, S2650_CTRL_PORT).w(FUNC(pipbug_state::pipbug_ctrl_w)); @@ -146,7 +154,7 @@ QUICKLOAD_LOAD_MEMBER(pipbug_state::quickload_cb) int quick_addr = 0x440; int exec_addr; int quick_length; - std::vector<uint8_t> quick_data; + std::vector<u8> quick_data; int read_; image_init_result result = image_init_result::FAIL; @@ -207,8 +215,8 @@ void pipbug_state::pipbug(machine_config &config) { /* basic machine hardware */ S2650(config, m_maincpu, XTAL(1'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &pipbug_state::pipbug_mem); - m_maincpu->set_addrmap(AS_DATA, &pipbug_state::pipbug_data); + m_maincpu->set_addrmap(AS_PROGRAM, &pipbug_state::mem_map); + m_maincpu->set_addrmap(AS_DATA, &pipbug_state::data_map); m_maincpu->flag_handler().set("rs232", FUNC(rs232_port_device::write_txd)); m_maincpu->sense_handler().set(FUNC(pipbug_state::serial_r)); @@ -231,11 +239,11 @@ void pipbug_state::pipbug(machine_config &config) /* ROM definition */ ROM_START( pipbug ) - ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x0400, "maincpu", 0 ) ROM_LOAD( "pipbug.rom", 0x0000, 0x0400, CRC(f242b93e) SHA1(f82857cc882e6b5fc9f00b20b375988024f413ff)) ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1979, pipbug, 0, 0, pipbug, pipbug, pipbug_state, empty_init, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW ) +COMP( 1979, pipbug, 0, 0, pipbug, pipbug, pipbug_state, empty_init, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/plan80.cpp b/src/mame/drivers/plan80.cpp index ee94ae185d6..534a1cb9cfb 100644 --- a/src/mame/drivers/plan80.cpp +++ b/src/mame/drivers/plan80.cpp @@ -2,24 +2,24 @@ // copyright-holders:Miodrag Milanovic, Robbbert /*************************************************************************** - Plan-80 +Plan-80 - 06/12/2009 Skeleton driver. +2009-12-06 Skeleton driver. - Summary of Monitor commands: +Summary of Monitor commands: - D - dump memory - F - fill memory - G - go (execute program at address) - I - in from a port and display - M - move? - O - out to a port - S - edit memory +D - dump memory +F - fill memory +G - go (execute program at address) +I - in from a port and display +M - move? +O - out to a port +S - edit memory - ToDo: - - fix autorepeat on the keyboard - - Add missing devices - - Picture of unit shows graphics, possibly a PCG +ToDo: +- fix autorepeat on the keyboard +- Add missing devices +- Picture of unit shows graphics, possibly a PCG ****************************************************************************/ @@ -37,42 +37,38 @@ public: plan80_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_p_videoram(*this, "videoram") + , m_rom(*this, "maincpu") + , m_ram(*this, "mainram") + , m_vram(*this, "videoram") , m_p_chargen(*this, "chargen") , m_speaker(*this, "speaker") { } void plan80(machine_config &config); - void init_plan80(); - private: - enum - { - TIMER_BOOT - }; - - uint8_t port04_r(); - void port09_w(uint8_t data); - void port10_w(uint8_t data); - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - void plan80_io(address_map &map); - void plan80_mem(address_map &map); - - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - uint8_t m_kbd_row; + u8 port04_r(); + void port09_w(u8 data); + void port10_w(u8 data); + u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void io_map(address_map &map); + void mem_map(address_map &map); + u8 m_kbd_row; bool m_spk_pol; virtual void machine_reset() override; + virtual void machine_start() override; + memory_passthrough_handler *m_rom_shadow_tap; required_device<cpu_device> m_maincpu; - required_shared_ptr<uint8_t> m_p_videoram; + required_region_ptr<u8> m_rom; + required_shared_ptr<u8> m_ram; + required_shared_ptr<u8> m_vram; required_region_ptr<u8> m_p_chargen; required_device<speaker_sound_device> m_speaker; }; -uint8_t plan80_state::port04_r() +u8 plan80_state::port04_r() { - uint8_t data = 0xff; + u8 data = 0xff; if (m_kbd_row == 0xfe) data = ioport("LINE0")->read(); @@ -92,28 +88,27 @@ uint8_t plan80_state::port04_r() return data; } -void plan80_state::port09_w(uint8_t data) +void plan80_state::port09_w(u8 data) { m_kbd_row = data; } -void plan80_state::port10_w(uint8_t data) +void plan80_state::port10_w(u8 data) { m_spk_pol ^= 1; m_speaker->level_w(m_spk_pol); } -void plan80_state::plan80_mem(address_map &map) +void plan80_state::mem_map(address_map &map) { map.unmap_value_high(); - map(0x0000, 0x07ff).bankrw("boot"); - map(0x0800, 0xefff).ram(); + map(0x0000, 0xefff).ram().share("mainram"); map(0xf000, 0xf7ff).ram().share("videoram"); - map(0xf800, 0xffff).rom(); + map(0xf800, 0xffff).rom().region("maincpu", 0); } -void plan80_state::plan80_io(address_map &map) +void plan80_state::io_map(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); @@ -172,45 +167,46 @@ static INPUT_PORTS_START( plan80 ) // Keyboard was worked out by trial & error;' INPUT_PORTS_END -void plan80_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void plan80_state::machine_reset() { - switch (id) + address_space &program = m_maincpu->space(AS_PROGRAM); + program.install_rom(0x0000, 0x07ff, m_rom); // do it here for F3 + m_rom_shadow_tap = program.install_read_tap(0xf800, 0xffff, "rom_shadow_r",[this](offs_t offset, u8 &data, u8 mem_mask) { - case TIMER_BOOT: - /* after the first 4 bytes have been read from ROM, switch the ram back in */ - membank("boot")->set_entry(0); - break; - default: - throw emu_fatalerror("Unknown id in plan80_state::device_timer"); - } -} + if (!machine().side_effects_disabled()) + { + // delete this tap + m_rom_shadow_tap->remove(); -void plan80_state::machine_reset() -{ - membank("boot")->set_entry(1); - timer_set(attotime::from_usec(10), TIMER_BOOT); + // reinstall ram over the rom shadow + m_maincpu->space(AS_PROGRAM).install_ram(0x0000, 0x07ff, m_ram); + } + + // return the original data + return data; + }); } -void plan80_state::init_plan80() +void plan80_state::machine_start() { - uint8_t *RAM = memregion("maincpu")->base(); - membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0xf800); + save_item(NAME(m_kbd_row)); + save_item(NAME(m_spk_pol)); } -uint32_t plan80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +u32 plan80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t y,ra,chr,gfx; - uint16_t sy=0,ma=0,x; + u8 y,ra,chr,gfx; + u16 sy=0,ma=0,x; for (y = 0; y < 32; y++) { for (ra = 0; ra < 8; ra++) { - uint16_t *p = &bitmap.pix16(sy++); + u16 *p = &bitmap.pix16(sy++); for (x = ma; x < ma+48; x++) { - chr = m_p_videoram[x]; + chr = m_vram[x]; gfx = m_p_chargen[(chr << 3) | ra] ^ (BIT(chr, 7) ? 0xff : 0); /* Display a scanline of a character */ @@ -228,7 +224,7 @@ uint32_t plan80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap } /* F4 Character Displayer */ -static const gfx_layout plan80_charlayout = +static const gfx_layout charlayout = { 8, 8, /* 8 x 8 characters */ 256, /* 256 characters */ @@ -242,7 +238,7 @@ static const gfx_layout plan80_charlayout = }; static GFXDECODE_START( gfx_plan80 ) - GFXDECODE_ENTRY( "chargen", 0x0000, plan80_charlayout, 0, 1 ) + GFXDECODE_ENTRY( "chargen", 0x0000, charlayout, 0, 1 ) GFXDECODE_END @@ -250,8 +246,8 @@ void plan80_state::plan80(machine_config &config) { /* basic machine hardware */ I8080(config, m_maincpu, 2048000); - m_maincpu->set_addrmap(AS_PROGRAM, &plan80_state::plan80_mem); - m_maincpu->set_addrmap(AS_IO, &plan80_state::plan80_io); + m_maincpu->set_addrmap(AS_PROGRAM, &plan80_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &plan80_state::io_map); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER, rgb_t::green())); @@ -272,17 +268,18 @@ void plan80_state::plan80(machine_config &config) /* ROM definition */ ROM_START( plan80 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "pl80mon.bin", 0xf800, 0x0800, CRC(433fb685) SHA1(43d53c35544d3a197ab71b6089328d104535cfa5)) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "pl80mon.bin", 0x0000, 0x0800, CRC(433fb685) SHA1(43d53c35544d3a197ab71b6089328d104535cfa5) ) - ROM_REGION( 0x10000, "spare", 0 ) - ROM_LOAD_OPTIONAL( "pl80mod.bin", 0xf000, 0x0800, CRC(6bdd7136) SHA1(721eab193c33c9330e0817616d3d2b601285fe50)) + // This rom 2nd half is missing, so useless. It uses the videoram address range, so it might have been for some other system + //ROM_REGION( 0x10000, "spare", 0 ) + //ROM_LOAD_OPTIONAL( "pl80mod.bin", 0xf000, 0x0800, CRC(6bdd7136) SHA1(721eab193c33c9330e0817616d3d2b601285fe50)) ROM_REGION( 0x0800, "chargen", 0 ) - ROM_LOAD( "pl80gzn.bin", 0x0000, 0x0800, CRC(b4ddbdb6) SHA1(31bf9cf0f2ed53f48dda29ea830f74cea7b9b9b2)) + ROM_LOAD( "pl80gzn.bin", 0x0000, 0x0800, CRC(b4ddbdb6) SHA1(31bf9cf0f2ed53f48dda29ea830f74cea7b9b9b2) ) ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1988, plan80, 0, 0, plan80, plan80, plan80_state, init_plan80, "Tesla Eltos", "Plan-80", MACHINE_NOT_WORKING ) +COMP( 1988, plan80, 0, 0, plan80, plan80, plan80_state, empty_init, "Tesla Eltos", "Plan-80", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pro80.cpp b/src/mame/drivers/pro80.cpp index af705a28c6e..000d0413d60 100644 --- a/src/mame/drivers/pro80.cpp +++ b/src/mame/drivers/pro80.cpp @@ -47,18 +47,19 @@ public: void pro80(machine_config &config); private: - void digit_w(uint8_t data); - void segment_w(uint8_t data); - uint8_t kp_r(); + void digit_w(u8 data); + void segment_w(u8 data); + u8 kp_r(); TIMER_DEVICE_CALLBACK_MEMBER(kansas_r); - void pro80_io(address_map &map); - void pro80_mem(address_map &map); + void io_map(address_map &map); + void mem_map(address_map &map); - uint8_t m_digit_sel; - uint8_t m_cass_in; - uint16_t m_cass_data[4]; - void machine_reset() override; + u8 m_digit_sel; + u8 m_cass_in; + u16 m_cass_data[4]; + virtual void machine_reset() override; + virtual void machine_start() override; required_device<cpu_device> m_maincpu; required_device<cassette_image_device> m_cass; required_ioport_array<6> m_io_keyboard; @@ -68,7 +69,7 @@ private: TIMER_DEVICE_CALLBACK_MEMBER( pro80_state::kansas_r ) { m_cass_data[1]++; - uint8_t cass_ws = (m_cass->input() > +0.03) ? 1 : 0; + u8 cass_ws = (m_cass->input() > +0.03) ? 1 : 0; if (cass_ws != m_cass_data[0]) { @@ -79,7 +80,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( pro80_state::kansas_r ) } } -void pro80_state::digit_w(uint8_t data) +void pro80_state::digit_w(u8 data) { // --xx xxxx digit select // -x-- ---- cassette out @@ -88,7 +89,7 @@ void pro80_state::digit_w(uint8_t data) m_cass->output( BIT(data, 6) ? -1.0 : +1.0); } -void pro80_state::segment_w(uint8_t data) +void pro80_state::segment_w(u8 data) { if (m_digit_sel) { @@ -100,9 +101,9 @@ void pro80_state::segment_w(uint8_t data) } } -uint8_t pro80_state::kp_r() +u8 pro80_state::kp_r() { - uint8_t data = 0x0f; + u8 data = 0x0f; for (u8 i = 0; i < 6; i++) if (!BIT(m_digit_sel, i)) @@ -114,7 +115,7 @@ uint8_t pro80_state::kp_r() return data; } -void pro80_state::pro80_mem(address_map &map) +void pro80_state::mem_map(address_map &map) { map.unmap_value_high(); map(0x0000, 0x03ff).rom(); @@ -122,7 +123,7 @@ void pro80_state::pro80_mem(address_map &map) map(0x1400, 0x17ff).ram(); // 2nd RAM is optional } -void pro80_state::pro80_io(address_map &map) +void pro80_state::io_map(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); @@ -172,12 +173,19 @@ void pro80_state::machine_reset() m_cass_in = 0; } +void pro80_state::machine_start() +{ + save_item(NAME(m_digit_sel)); + save_item(NAME(m_cass_in)); + save_pointer(NAME(m_cass_data) ,4); +} + void pro80_state::pro80(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(4'000'000) / 2); - m_maincpu->set_addrmap(AS_PROGRAM, &pro80_state::pro80_mem); - m_maincpu->set_addrmap(AS_IO, &pro80_state::pro80_io); + m_maincpu->set_addrmap(AS_PROGRAM, &pro80_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &pro80_state::io_map); /* video hardware */ config.set_default_layout(layout_pro80); @@ -205,4 +213,4 @@ ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1981, pro80, 0, 0, pro80, pro80, pro80_state, empty_init, "Protec", "Pro-80", MACHINE_NOT_WORKING ) +COMP( 1981, pro80, 0, 0, pro80, pro80, pro80_state, empty_init, "Protec", "Pro-80", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pyl601.cpp b/src/mame/drivers/pyl601.cpp index de0c1b06f1c..e20146877e1 100644 --- a/src/mame/drivers/pyl601.cpp +++ b/src/mame/drivers/pyl601.cpp @@ -90,10 +90,10 @@ private: uint8_t selectedline(uint16_t data); virtual void machine_reset() override; - virtual void video_start() override; + virtual void machine_start() override; INTERRUPT_GEN_MEMBER(pyl601_interrupt); DECLARE_FLOPPY_FORMATS( floppy_formats ); - void pyl601_mem(address_map &map); + void mem_map(address_map &map); uint8_t m_rom_page; uint32_t m_vdisk_addr; @@ -264,7 +264,7 @@ uint8_t pyl601_state::floppy_r() return m_floppy_ctrl; } -void pyl601_state::pyl601_mem(address_map &map) +void pyl601_state::mem_map(address_map &map) { map.unmap_value_high(); map(0x0000, 0xbfff).bankrw("bank1"); @@ -395,14 +395,21 @@ void pyl601_state::machine_reset() membank("bank2")->set_base(ram + 0xc000); membank("bank3")->set_base(ram + 0xe000); membank("bank4")->set_base(ram + 0xe700); - membank("bank5")->set_base(memregion("maincpu")->base() + 0xf000); + membank("bank5")->set_base(memregion("maincpu")->base()); membank("bank6")->set_base(ram + 0xf000); m_maincpu->reset(); } -void pyl601_state::video_start() +void pyl601_state::machine_start() { + save_item(NAME(m_rom_page)); + save_item(NAME(m_vdisk_addr)); + save_item(NAME(m_key_code)); + save_item(NAME(m_keyboard_clk)); + save_item(NAME(m_video_mode)); + save_item(NAME(m_tick50_mark)); + save_item(NAME(m_floppy_ctrl)); } MC6845_UPDATE_ROW( pyl601_state::pyl601_update_row ) @@ -548,7 +555,7 @@ void pyl601_state::pyl601(machine_config &config) { /* basic machine hardware */ M6800(config, m_maincpu, 1_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &pyl601_state::pyl601_mem); + m_maincpu->set_addrmap(AS_PROGRAM, &pyl601_state::mem_map); m_maincpu->set_vblank_int("screen", FUNC(pyl601_state::pyl601_interrupt)); /* video hardware */ @@ -594,42 +601,42 @@ void pyl601_state::pyl601a(machine_config &config) /* ROM definition */ ROM_START( pyl601 ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "bios.rom", 0xf000, 0x1000, CRC(41fe4c4b) SHA1(d8ca92aea0eb283e8d7779cb976bcdfa03e81aea)) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "bios.rom", 0x0000, 0x1000, CRC(41fe4c4b) SHA1(d8ca92aea0eb283e8d7779cb976bcdfa03e81aea)) ROM_REGION(0x0800, "chargen", 0) ROM_LOAD( "video.rom", 0x0000, 0x0800, CRC(1c23ba43) SHA1(eb1cfc139858abd0aedbbf3d523f8ba55d27a11d)) - ROM_REGION(0x50000, "romdisk", ROMREGION_ERASEFF) + ROM_REGION(0x50000, "romdisk", 0 ) ROM_LOAD( "rom0.rom", 0x00000, 0x10000, CRC(60103920) SHA1(ee5b4ee5b513c4a0204da751e53d63b8c6c0aab9)) ROM_LOAD( "rom1.rom", 0x10000, 0x10000, CRC(cb4a9b22) SHA1(dd09e4ba35b8d1a6f60e6e262aaf2f156367e385)) ROM_LOAD( "rom2.rom", 0x20000, 0x08000, CRC(0b7684bf) SHA1(c02ad1f2a6f484cd9d178d8b060c21c0d4e53442)) - ROM_COPY("romdisk", 0x20000, 0x28000, 0x08000) + ROM_COPY( "romdisk", 0x20000, 0x28000, 0x08000) ROM_LOAD( "rom3.rom", 0x30000, 0x08000, CRC(e4a86dfa) SHA1(96e6bb9ffd66f81fca63bf7491fbba81c4ff1fd2)) - ROM_COPY("romdisk", 0x30000, 0x38000, 0x08000) + ROM_COPY( "romdisk", 0x30000, 0x38000, 0x08000) ROM_LOAD( "rom4.rom", 0x40000, 0x08000, CRC(d88ac21d) SHA1(022db11fdcf8db81ce9efd9cd9fa50ebca88e79e)) - ROM_COPY("romdisk", 0x40000, 0x48000, 0x08000) + ROM_COPY( "romdisk", 0x40000, 0x48000, 0x08000) ROM_REGION(0x0800, "keyboard", 0) ROM_LOAD( "keyboard.rom", 0x0000, 0x0800, CRC(41fbe5ca) SHA1(875adaef53bc37e92ad0b6b6ee3d8fd28344d358)) ROM_END ROM_START( pyl601a ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) - ROM_LOAD( "bios_a.rom", 0xf000, 0x1000, CRC(e018b11e) SHA1(884d59abd5fa5af1295d1b5a53693facc7945b63)) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "bios_a.rom", 0x0000, 0x1000, CRC(e018b11e) SHA1(884d59abd5fa5af1295d1b5a53693facc7945b63)) ROM_REGION(0x1000, "chargen", 0) ROM_LOAD( "video_a.rom", 0x0000,0x1000, CRC(00fa4077) SHA1(d39d15969a08bdb768d08bea4ec9a9cb498232fd)) - ROM_REGION(0x50000, "romdisk", ROMREGION_ERASEFF) + ROM_REGION(0x50000, "romdisk", 0 ) ROM_LOAD( "rom0.rom", 0x00000, 0x10000, CRC(60103920) SHA1(ee5b4ee5b513c4a0204da751e53d63b8c6c0aab9)) ROM_LOAD( "rom1.rom", 0x10000, 0x10000, CRC(cb4a9b22) SHA1(dd09e4ba35b8d1a6f60e6e262aaf2f156367e385)) ROM_LOAD( "rom2.rom", 0x20000, 0x08000, CRC(0b7684bf) SHA1(c02ad1f2a6f484cd9d178d8b060c21c0d4e53442)) - ROM_COPY("romdisk", 0x20000, 0x28000, 0x08000) + ROM_COPY( "romdisk", 0x20000, 0x28000, 0x08000) ROM_LOAD( "rom3.rom", 0x30000, 0x08000, CRC(e4a86dfa) SHA1(96e6bb9ffd66f81fca63bf7491fbba81c4ff1fd2)) - ROM_COPY("romdisk", 0x30000, 0x38000, 0x08000) + ROM_COPY( "romdisk", 0x30000, 0x38000, 0x08000) ROM_LOAD( "rom4.rom", 0x40000, 0x08000, CRC(d88ac21d) SHA1(022db11fdcf8db81ce9efd9cd9fa50ebca88e79e)) - ROM_COPY("romdisk", 0x40000, 0x48000, 0x08000) + ROM_COPY( "romdisk", 0x40000, 0x48000, 0x08000) ROM_REGION(0x0800, "keyboard", 0) ROM_LOAD( "keyboard.rom", 0x0000, 0x0800, CRC(41fbe5ca) SHA1(875adaef53bc37e92ad0b6b6ee3d8fd28344d358)) @@ -637,5 +644,5 @@ ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, pyl601, 0, 0, pyl601, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601", 0 ) -COMP( 1989, pyl601a, pyl601, 0, pyl601a, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601A", 0 ) +COMP( 1989, pyl601, 0, 0, pyl601, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601", MACHINE_SUPPORTS_SAVE ) +COMP( 1989, pyl601a, pyl601, 0, pyl601a, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601A", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index a390aa4999b..a0c7f3e1359 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -589,8 +589,8 @@ protected: DECLARE_FLOPPY_FORMATS(floppy_formats); UPD7220_DISPLAY_PIXELS_MEMBER( hgdc_display_pixels ); - DECLARE_READ16_MEMBER(vram_r); - DECLARE_WRITE16_MEMBER(vram_w); + uint16_t vram_r(offs_t offset); + void vram_w(offs_t offset, uint16_t data); DECLARE_WRITE_LINE_MEMBER(GDC_vblank_irq); void rainbowz80_io(address_map &map); @@ -2839,7 +2839,7 @@ WRITE_LINE_MEMBER(rainbow_modelb_state::irq_hi_w) // NOTE: "More than one plane at a time can be enabled for a write operation; however, // only one plane can be enabled for a read operation at anyone time." -READ16_MEMBER(rainbow_base_state::vram_r) +uint16_t rainbow_base_state::vram_r(offs_t offset) { if ((!(m_gdc_mode_register & GDC_MODE_VECTOR)) || machine().side_effects_disabled()) // (NOT VECTOR MODE) { @@ -2860,7 +2860,7 @@ READ16_MEMBER(rainbow_base_state::vram_r) } // NOTE: Rainbow has separate registers for fore and background. -WRITE16_MEMBER(rainbow_base_state::vram_w) +void rainbow_base_state::vram_w(offs_t offset, uint16_t data) { if (m_gdc_mode_register & GDC_MODE_HIGHRES) offset = (m_gdc_scroll_buffer[(offset & 0x3FC0) >> 6] << 6) | (offset & 0x3F); diff --git a/src/mame/drivers/ravens.cpp b/src/mame/drivers/ravens.cpp index 61cc38b911f..91f123cefbf 100644 --- a/src/mame/drivers/ravens.cpp +++ b/src/mame/drivers/ravens.cpp @@ -14,7 +14,7 @@ https://web.archive.org/web/20160321001634/http://petersieg.bplaced.com/?2650_Co No instructions, no schematics - it's all guesswork. -The cassette saves a noise but it returns a bad load. +The cassette saves a noise but it returns a bad load. This is why MNW is set. Version 0.9 @@ -57,12 +57,12 @@ Commands (must be in uppercase): A Examine memory; press C to alter memory B Set breakpoint? C View breakpoint? -D Dump to screen and tape (at the same time) +D Dump to screen and tape (at the same time) D 00 04 dumps pages 0 to 4 E Execute -I ? +I Registers? (Esc to quit) L Load -R ? -V Verify? +R ? (Esc to quit) +V Verify ToDo: - Cassette @@ -80,62 +80,82 @@ ToDo: #include "ravens.lh" -class ravens_state : public driver_device +class ravens_base : public driver_device { public: - ravens_state(const machine_config &mconfig, device_type type, const char *tag) + ravens_base(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_terminal(*this, "terminal") , m_cass(*this, "cassette") - , m_digits(*this, "digit%u", 0U) { } - void ravens(machine_config &config); - void ravens2(machine_config &config); - -private: - uint8_t port07_r(); - uint8_t port17_r(); - void port1b_w(uint8_t data); - void port1c_w(uint8_t data); - void display_w(offs_t offset, uint8_t data); - void leds_w(uint8_t data); - void kbd_put(u8 data); - DECLARE_MACHINE_RESET(ravens2); +protected: DECLARE_READ_LINE_MEMBER(cass_r); DECLARE_WRITE_LINE_MEMBER(cass_w); DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb); + void mem_map(address_map &map); + required_device<s2650_device> m_maincpu; + required_device<cassette_image_device> m_cass; +}; + +class ravens_state : public ravens_base +{ +public: + ravens_state(const machine_config &mconfig, device_type type, const char *tag) + : ravens_base(mconfig, type, tag) + , m_digits(*this, "digit%u", 0U) + { } - void ravens2_io(address_map &map); - void ravens_io(address_map &map); - void ravens_mem(address_map &map); + void ravens(machine_config &config); - uint8_t m_term_char; - uint8_t m_term_data; +private: virtual void machine_start() override { m_digits.resolve(); } - required_device<s2650_device> m_maincpu; - optional_device<generic_terminal_device> m_terminal; - required_device<cassette_image_device> m_cass; + void io_map(address_map &map); + u8 port17_r(); + void display_w(offs_t offset, u8 data); + void leds_w(u8 data); output_finder<7> m_digits; }; -WRITE_LINE_MEMBER( ravens_state::cass_w ) +class ravens2_state : public ravens_base +{ +public: + ravens2_state(const machine_config &mconfig, device_type type, const char *tag) + : ravens_base(mconfig, type, tag) + , m_terminal(*this, "terminal") + { } + + void ravens2(machine_config &config); + +private: + virtual void machine_reset() override; + virtual void machine_start() override; + void io_map(address_map &map); + void kbd_put(u8 data); + u8 port07_r(); + void port1b_w(u8 data); + void port1c_w(u8 data); + u8 m_term_out; + u8 m_term_in; + required_device<generic_terminal_device> m_terminal; +}; + +WRITE_LINE_MEMBER( ravens_base::cass_w ) { m_cass->output(state ? -1.0 : +1.0); } -READ_LINE_MEMBER( ravens_state::cass_r ) +READ_LINE_MEMBER( ravens_base::cass_r ) { return (m_cass->input() > 0.03) ? 1 : 0; } -void ravens_state::display_w(offs_t offset, uint8_t data) +void ravens_state::display_w(offs_t offset, u8 data) { m_digits[offset] = data; } -void ravens_state::leds_w(uint8_t data) +void ravens_state::leds_w(u8 data) { char ledname[8]; for (int i = 0; i < 8; i++) @@ -145,16 +165,16 @@ void ravens_state::leds_w(uint8_t data) } } -uint8_t ravens_state::port07_r() +u8 ravens2_state::port07_r() { - uint8_t ret = m_term_data; - m_term_data = 0x80; + u8 ret = m_term_in; + m_term_in = 0x80; return ret; } -uint8_t ravens_state::port17_r() +u8 ravens_state::port17_r() { - uint8_t keyin, i; + u8 keyin, i; keyin = ioport("X0")->read(); if (keyin != 0xff) @@ -179,38 +199,44 @@ uint8_t ravens_state::port17_r() return 0; } -void ravens_state::port1b_w(uint8_t data) +void ravens2_state::port1b_w(u8 data) { if (BIT(data, 7)) return; + if (data == 1) // don't send PSU register to terminal + return; else - if ((data == 0x08 && m_term_char == 0x20)) + if ((data == 0x08 && m_term_out == 0x20)) data = 0x0c; // FormFeed else - if ((data == 0x0a && m_term_char == 0x20)) + if ((data == 0x0a && m_term_out == 0x20)) data = 0x0a; // LineFeed else - if ((data == 0x01 && m_term_char == 0xc2)) + if ((data == 0x01 && m_term_out == 0xc2)) data = 0x0d; // CarriageReturn else - data = m_term_char; + data = m_term_out; m_terminal->write(data); } -void ravens_state::port1c_w(uint8_t data) +void ravens2_state::port1c_w(u8 data) { - m_term_char = data; + m_term_out = data; } -MACHINE_RESET_MEMBER( ravens_state, ravens2 ) +void ravens2_state::machine_reset() { - m_term_data = 0x80; - m_digits[6] = 0; + m_term_in = 0x80; } +void ravens2_state::machine_start() +{ + save_item(NAME(m_term_out)); + save_item(NAME(m_term_in)); +} -void ravens_state::ravens_mem(address_map &map) +void ravens_base::mem_map(address_map &map) { map.unmap_value_high(); map(0x0000, 0x07ff).rom(); @@ -218,7 +244,7 @@ void ravens_state::ravens_mem(address_map &map) map(0x2000, 0x7FFF).ram(); // for quickload, optional } -void ravens_state::ravens_io(address_map &map) +void ravens_state::io_map(address_map &map) { map.unmap_value_high(); map(0x09, 0x09).w(FUNC(ravens_state::leds_w)); // LED output port @@ -226,12 +252,12 @@ void ravens_state::ravens_io(address_map &map) map(0x17, 0x17).r(FUNC(ravens_state::port17_r)); // pushbuttons } -void ravens_state::ravens2_io(address_map &map) +void ravens2_state::io_map(address_map &map) { map.unmap_value_high(); - map(0x07, 0x07).r(FUNC(ravens_state::port07_r)); - map(0x1b, 0x1b).w(FUNC(ravens_state::port1b_w)); - map(0x1c, 0x1c).w(FUNC(ravens_state::port1c_w)); + map(0x07, 0x07).r(FUNC(ravens2_state::port07_r)); + map(0x1b, 0x1b).w(FUNC(ravens2_state::port1b_w)); + map(0x1c, 0x1c).w(FUNC(ravens2_state::port1c_w)); } /* Input ports */ @@ -267,20 +293,20 @@ static INPUT_PORTS_START( ravens ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("???") PORT_CODE(KEYCODE_O) PORT_CHAR('O') INPUT_PORTS_END -void ravens_state::kbd_put(u8 data) +void ravens2_state::kbd_put(u8 data) { if (data > 0x60) data -= 0x20; // fold to uppercase - m_term_data = data; + m_term_in = data; } -QUICKLOAD_LOAD_MEMBER(ravens_state::quickload_cb) +QUICKLOAD_LOAD_MEMBER(ravens_base::quickload_cb) { address_space &space = m_maincpu->space(AS_PROGRAM); int i; int quick_addr = 0x900; int exec_addr; int quick_length; - std::vector<uint8_t> quick_data; + std::vector<u8> quick_data; int read_; image_init_result result = image_init_result::FAIL; @@ -341,8 +367,8 @@ void ravens_state::ravens(machine_config &config) { /* basic machine hardware */ S2650(config, m_maincpu, XTAL(1'000'000)); // frequency is unknown - m_maincpu->set_addrmap(AS_PROGRAM, &ravens_state::ravens_mem); - m_maincpu->set_addrmap(AS_IO, &ravens_state::ravens_io); + m_maincpu->set_addrmap(AS_PROGRAM, &ravens_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &ravens_state::io_map); m_maincpu->sense_handler().set(FUNC(ravens_state::cass_r)); m_maincpu->flag_handler().set(FUNC(ravens_state::cass_w)); @@ -359,23 +385,21 @@ void ravens_state::ravens(machine_config &config) m_cass->add_route(ALL_OUTPUTS, "mono", 0.05); } -void ravens_state::ravens2(machine_config &config) +void ravens2_state::ravens2(machine_config &config) { /* basic machine hardware */ S2650(config, m_maincpu, XTAL(1'000'000)); // frequency is unknown - m_maincpu->set_addrmap(AS_PROGRAM, &ravens_state::ravens_mem); - m_maincpu->set_addrmap(AS_IO, &ravens_state::ravens2_io); - m_maincpu->sense_handler().set(FUNC(ravens_state::cass_r)); - m_maincpu->flag_handler().set(FUNC(ravens_state::cass_w)); - - MCFG_MACHINE_RESET_OVERRIDE(ravens_state, ravens2) + m_maincpu->set_addrmap(AS_PROGRAM, &ravens2_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &ravens2_state::io_map); + m_maincpu->sense_handler().set(FUNC(ravens2_state::cass_r)); + m_maincpu->flag_handler().set(FUNC(ravens2_state::cass_w)); /* video hardware */ GENERIC_TERMINAL(config, m_terminal, 0); - m_terminal->set_keyboard_callback(FUNC(ravens_state::kbd_put)); + m_terminal->set_keyboard_callback(FUNC(ravens2_state::kbd_put)); /* quickload */ - QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb)); + QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens2_state::quickload_cb)); SPEAKER(config, "mono").front_center(); @@ -386,7 +410,7 @@ void ravens_state::ravens2(machine_config &config) /* ROM definition */ ROM_START( ravens ) - ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_REGION( 0x0800, "maincpu", 0 ) ROM_SYSTEM_BIOS( 0, "v1.0", "V1.0" ) ROMX_LOAD( "mon_v1.0.bin", 0x0000, 0x0800, CRC(785eb1ad) SHA1(c316b8ac32ab6aa37746af37b9f81a23367fedd8), ROM_BIOS(0)) ROM_SYSTEM_BIOS( 1, "v0.9", "V0.9" ) @@ -394,12 +418,12 @@ ROM_START( ravens ) ROM_END ROM_START( ravens2 ) - ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_REGION( 0x0800, "maincpu", 0 ) ROM_LOAD( "mon_v2.0.bin", 0x0000, 0x0800, CRC(bcd47c58) SHA1(f261a3f128fbedbf59a8b5480758fff4d7f76de1)) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, ravens, 0, 0, ravens, ravens, ravens_state, empty_init, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V0.9", MACHINE_NO_SOUND_HW ) -COMP( 1985, ravens2, ravens, 0, ravens2, ravens, ravens_state, empty_init, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V2.0", MACHINE_NO_SOUND_HW ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, ravens, 0, 0, ravens, ravens, ravens_state, empty_init, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V0.9", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +COMP( 1985, ravens2, ravens, 0, ravens2, ravens, ravens2_state, empty_init, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V2.0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp index 31a9d673a29..708b108a555 100644 --- a/src/mame/drivers/rx78.cpp +++ b/src/mame/drivers/rx78.cpp @@ -88,29 +88,31 @@ public: void rx78(machine_config &config); private: - uint8_t key_r(); - uint8_t cass_r(); - uint8_t vram_r(offs_t offset); - void cass_w(uint8_t data); - void vram_w(offs_t offset, uint8_t data); - void vram_read_bank_w(uint8_t data); - void vram_write_bank_w(uint8_t data); - void key_w(uint8_t data); - void vdp_reg_w(offs_t offset, uint8_t data); - void vdp_bg_reg_w(uint8_t data); - void vdp_pri_mask_w(uint8_t data); + u8 key_r(); + u8 cass_r(); + u8 vram_r(offs_t offset); + void cass_w(u8 data); + void vram_w(offs_t offset, u8 data); + void vram_read_bank_w(u8 data); + void vram_write_bank_w(u8 data); + void key_w(u8 data); + void vdp_reg_w(offs_t offset, u8 data); + void vdp_bg_reg_w(u8 data); + void vdp_pri_mask_w(u8 data); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( cart_load ); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); virtual void machine_reset() override; + virtual void machine_start() override; void rx78_io(address_map &map); void rx78_mem(address_map &map); - uint8_t m_vram_read_bank; - uint8_t m_vram_write_bank; - uint8_t m_pal_reg[7]; - uint8_t m_pri_mask; - uint8_t m_key_mux; + u8 m_vram_read_bank; + u8 m_vram_write_bank; + u8 m_pal_reg[7]; + u8 m_pri_mask; + u8 m_key_mux; + std::unique_ptr<u8[]> m_vram; required_device<cpu_device> m_maincpu; required_device<cassette_image_device> m_cass; required_device<generic_slot_device> m_cart; @@ -122,12 +124,12 @@ private: #define MASTER_CLOCK XTAL(28'636'363) -void rx78_state::cass_w(uint8_t data) +void rx78_state::cass_w(u8 data) { m_cass->output(BIT(data, 0) ? -1.0 : +1.0); } -uint8_t rx78_state::cass_r() +u8 rx78_state::cass_r() { return (m_cass->input() > 0.03); } @@ -135,7 +137,6 @@ uint8_t rx78_state::cass_r() uint32_t rx78_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t *vram = memregion("vram")->base(); int color,pen[3]; const int borderx = 32, bordery = 20; @@ -150,9 +151,9 @@ uint32_t rx78_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, for (u8 i = 0; i < 8; i++) { /* bg color */ - pen[0] = (m_pri_mask & 0x08) ? (vram[count + 0x6000] >> (i)) : 0x00; - pen[1] = (m_pri_mask & 0x10) ? (vram[count + 0x8000] >> (i)) : 0x00; - pen[2] = (m_pri_mask & 0x20) ? (vram[count + 0xa000] >> (i)) : 0x00; + pen[0] = (m_pri_mask & 0x08) ? (m_vram[count + 0x6000] >> (i)) : 0x00; + pen[1] = (m_pri_mask & 0x10) ? (m_vram[count + 0x8000] >> (i)) : 0x00; + pen[2] = (m_pri_mask & 0x20) ? (m_vram[count + 0xa000] >> (i)) : 0x00; color = ((pen[0] & 1) << 0); color |= ((pen[1] & 1) << 1); @@ -162,9 +163,9 @@ uint32_t rx78_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, bitmap.pix16(y+bordery, x+i+borderx) = color | 8; /* fg color */ - pen[0] = (m_pri_mask & 0x01) ? (vram[count + 0x0000] >> (i)) : 0x00; - pen[1] = (m_pri_mask & 0x02) ? (vram[count + 0x2000] >> (i)) : 0x00; - pen[2] = (m_pri_mask & 0x04) ? (vram[count + 0x4000] >> (i)) : 0x00; + pen[0] = (m_pri_mask & 0x01) ? (m_vram[count + 0x0000] >> (i)) : 0x00; + pen[1] = (m_pri_mask & 0x02) ? (m_vram[count + 0x2000] >> (i)) : 0x00; + pen[2] = (m_pri_mask & 0x04) ? (m_vram[count + 0x4000] >> (i)) : 0x00; color = ((pen[0] & 1) << 0); color |= ((pen[1] & 1) << 1); @@ -181,7 +182,7 @@ uint32_t rx78_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, } -uint8_t rx78_state::key_r() +u8 rx78_state::key_r() { static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6", "KEY7", @@ -203,43 +204,39 @@ uint8_t rx78_state::key_r() return 0; } -void rx78_state::key_w(uint8_t data) +void rx78_state::key_w(u8 data) { m_key_mux = data; } -uint8_t rx78_state::vram_r(offs_t offset) +u8 rx78_state::vram_r(offs_t offset) { - uint8_t *vram = memregion("vram")->base(); - if(m_vram_read_bank == 0 || m_vram_read_bank > 6) return 0xff; - return vram[offset + ((m_vram_read_bank - 1) * 0x2000)]; + return m_vram[offset + ((m_vram_read_bank - 1) * 0x2000)]; } -void rx78_state::vram_w(offs_t offset, uint8_t data) +void rx78_state::vram_w(offs_t offset, u8 data) { - uint8_t *vram = memregion("vram")->base(); - for (u8 i = 0; i < 6; i++) if (BIT(m_vram_write_bank, i)) - vram[offset + i * 0x2000] = data; + m_vram[offset + i * 0x2000] = data; } -void rx78_state::vram_read_bank_w(uint8_t data) +void rx78_state::vram_read_bank_w(u8 data) { m_vram_read_bank = data; } -void rx78_state::vram_write_bank_w(uint8_t data) +void rx78_state::vram_write_bank_w(u8 data) { m_vram_write_bank = data; } -void rx78_state::vdp_reg_w(offs_t offset, uint8_t data) +void rx78_state::vdp_reg_w(offs_t offset, u8 data) { - uint8_t r,g,b,res,i; + u8 r,g,b,res,i; m_pal_reg[offset] = data; @@ -257,7 +254,7 @@ void rx78_state::vdp_reg_w(offs_t offset, uint8_t data) } } -void rx78_state::vdp_bg_reg_w(uint8_t data) +void rx78_state::vdp_bg_reg_w(u8 data) { int r,g,b; @@ -268,7 +265,7 @@ void rx78_state::vdp_bg_reg_w(uint8_t data) m_palette->set_pen_color(0x10, rgb_t(r,g,b)); } -void rx78_state::vdp_pri_mask_w(uint8_t data) +void rx78_state::vdp_pri_mask_w(u8 data) { m_pri_mask = data; } @@ -434,9 +431,20 @@ void rx78_state::machine_reset() prg.install_read_handler(0x2000, 0x5fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom))); } +void rx78_state::machine_start() +{ + m_vram = make_unique_clear<u8[]>(0xc000); + save_pointer(NAME(m_vram), 0xc000); + save_item(NAME(m_vram_read_bank)); + save_item(NAME(m_vram_write_bank)); + save_pointer(NAME(m_pal_reg), 7); + save_item(NAME(m_pri_mask)); + save_item(NAME(m_key_mux)); +} + DEVICE_IMAGE_LOAD_MEMBER( rx78_state::cart_load ) { - uint32_t size = m_cart->common_get_size("rom"); + u32 size = m_cart->common_get_size("rom"); if (size != 0x2000 && size != 0x4000) { @@ -509,13 +517,11 @@ void rx78_state::rx78(machine_config &config) ROM_START( rx78 ) ROM_REGION( 0x2000, "roms", 0 ) ROM_LOAD( "ipl.rom", 0x0000, 0x2000, CRC(a194ea53) SHA1(ba39e73e6eb7cbb8906fff1f81a98964cd62af0d)) - - ROM_REGION( 6 * 0x2000, "vram", ROMREGION_ERASE00 ) ROM_END void rx78_state::init_rx78() { - uint32_t ram_size = m_ram->size(); + u32 ram_size = m_ram->size(); address_space &prg = m_maincpu->space(AS_PROGRAM); if (ram_size == 0x4000) @@ -525,4 +531,4 @@ void rx78_state::init_rx78() /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, rx78, 0, 0, rx78, rx78, rx78_state, init_rx78, "Bandai", "Gundam RX-78", MACHINE_NOT_WORKING ) +COMP( 1983, rx78, 0, 0, rx78, rx78, rx78_state, init_rx78, "Bandai", "Gundam RX-78", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sacstate.cpp b/src/mame/drivers/sacstate.cpp index 18b2b57a634..753d4b6e2cf 100644 --- a/src/mame/drivers/sacstate.cpp +++ b/src/mame/drivers/sacstate.cpp @@ -51,43 +51,44 @@ public: void sacstate(machine_config &config); private: - uint8_t port00_r(); - uint8_t port01_r(); - uint8_t port04_r(); - void port08_w(uint8_t data); + virtual void machine_start() override; + virtual void machine_reset() override; + u8 port00_r(); + u8 port01_r(); + u8 port04_r(); + void port08_w(u8 data); void kbd_put(u8 data); void sacstate_io(address_map &map); void sacstate_mem(address_map &map); - uint8_t m_term_data; - uint8_t m_val; - virtual void machine_reset() override; + u8 m_term_data; + u8 m_val; required_device<cpu_device> m_maincpu; required_device<generic_terminal_device> m_terminal; }; -uint8_t sacstate_state::port01_r() +u8 sacstate_state::port01_r() { - uint8_t ret = m_val; + u8 ret = m_val; if (m_term_data) ret |= 0x04; // data in return ret; } -uint8_t sacstate_state::port00_r() +u8 sacstate_state::port00_r() { - uint8_t ret = m_term_data; + u8 ret = m_term_data; m_term_data = 0; return ret; } -uint8_t sacstate_state::port04_r() +u8 sacstate_state::port04_r() { logerror("unknown_r\n"); return 0; } -void sacstate_state::port08_w(uint8_t data) +void sacstate_state::port08_w(u8 data) { if (data == 0x40) m_val = 0x40; @@ -133,6 +134,12 @@ void sacstate_state::machine_reset() m_val = ioport("CONFIG")->read(); } +void sacstate_state::machine_start() +{ + save_item(NAME(m_term_data)); + save_item(NAME(m_val)); +} + void sacstate_state::sacstate(machine_config &config) { /* basic machine hardware */ @@ -161,4 +168,4 @@ ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1973, sacstate, 0, 0, sacstate, sacstate, sacstate_state, empty_init, "SacState", "SacState 8008", MACHINE_NO_SOUND_HW ) +COMP( 1973, sacstate, 0, 0, sacstate, sacstate, sacstate_state, empty_init, "SacState", "SacState 8008", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/slc1.cpp b/src/mame/drivers/slc1.cpp index b7aec26ed68..ea349baddfc 100644 --- a/src/mame/drivers/slc1.cpp +++ b/src/mame/drivers/slc1.cpp @@ -73,8 +73,8 @@ public: void slc1(machine_config &config); private: - uint8_t io_r(offs_t offset); - void io_w(offs_t offset, uint8_t data); + u8 io_r(offs_t offset); + void io_w(offs_t offset, u8 data); virtual void machine_start() override; virtual void machine_reset() override; @@ -82,7 +82,7 @@ private: void mem_map(address_map &map); void io_map(address_map &map); - uint8_t m_digit = 0; + u8 m_digit = 0; bool m_kbd_type = false; required_device<cpu_device> m_maincpu; @@ -99,7 +99,7 @@ private: ***************************************************************************/ -void slc1_state::io_w(offs_t offset, uint8_t data) +void slc1_state::io_w(offs_t offset, u8 data) { bool const segonoff = BIT(data, 7); bool const busyled = BIT(data, 4); @@ -115,9 +115,9 @@ void slc1_state::io_w(offs_t offset, uint8_t data) else if (offset == 0x2f07) return; - uint8_t segdata = m_display[m_digit]; - uint8_t const segnum = offset & 7; - uint8_t const segmask = 1 << segnum; + u8 segdata = m_display[m_digit]; + u8 const segnum = offset & 7; + u8 const segmask = 1 << segnum; if (segonoff) segdata |= segmask; @@ -139,9 +139,9 @@ void slc1_state::io_w(offs_t offset, uint8_t data) ***************************************************************************/ -uint8_t slc1_state::io_r(offs_t offset) +u8 slc1_state::io_r(offs_t offset) { - uint8_t data = 0xff, upper = (offset >> 8) & 7; + u8 data = 0xff, upper = (offset >> 8) & 7; if (m_kbd_type) { // Trainer @@ -294,7 +294,7 @@ void slc1_state::slc1(machine_config &config) ***************************************************************************/ ROM_START(slc1) - ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) + ROM_REGION(0x1000, "maincpu", 0 ) ROM_SYSTEM_BIOS(0, "bios0", "SLC-1") ROMX_LOAD("slc1_0000.bin", 0x0000, 0x1000, CRC(06d32967) SHA1(f25eac66a4fca9383964d509c671a7ad2e020e7e), ROM_BIOS(0)) ROM_SYSTEM_BIOS(1, "bios1", "SC-1 v2") @@ -305,4 +305,4 @@ ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1989, slc1, 0, 0, slc1, slc1, slc1_state, empty_init, "Dieter Scheuschner", "Schach- und Lerncomputer SLC 1", 0 ) +COMP( 1989, slc1, 0, 0, slc1, slc1, slc1_state, empty_init, "Dieter Scheuschner", "Schach- und Lerncomputer SLC 1", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/slicer.cpp b/src/mame/drivers/slicer.cpp index d95430082c9..46feecb0cd0 100644 --- a/src/mame/drivers/slicer.cpp +++ b/src/mame/drivers/slicer.cpp @@ -100,7 +100,7 @@ static void slicer_floppies(device_slot_interface &device) void slicer_state::slicer(machine_config &config) { - i80186_cpu_device &maincpu(I80186(config, "maincpu", 16_MHz_XTAL / 2)); + i80186_cpu_device &maincpu(I80186(config, "maincpu", 16_MHz_XTAL)); // 8 MHz clock output maincpu.set_addrmap(AS_PROGRAM, &slicer_state::slicer_map); maincpu.set_addrmap(AS_IO, &slicer_state::slicer_io); diff --git a/src/mame/drivers/snes.cpp b/src/mame/drivers/snes.cpp index 851a73bc3e4..c079dcfbb61 100644 --- a/src/mame/drivers/snes.cpp +++ b/src/mame/drivers/snes.cpp @@ -53,42 +53,42 @@ public: void snes(machine_config &config); private: - DECLARE_READ8_MEMBER( snes20_hi_r ); - DECLARE_WRITE8_MEMBER( snes20_hi_w ); - DECLARE_READ8_MEMBER( snes20_lo_r ); - DECLARE_WRITE8_MEMBER( snes20_lo_w ); - DECLARE_READ8_MEMBER( snes21_lo_r ); - DECLARE_WRITE8_MEMBER( snes21_lo_w ); - DECLARE_READ8_MEMBER( snes21_hi_r ); - DECLARE_WRITE8_MEMBER( snes21_hi_w ); - DECLARE_READ8_MEMBER( snessfx_hi_r ); - DECLARE_READ8_MEMBER( snessfx_lo_r ); - DECLARE_WRITE8_MEMBER( snessfx_hi_w ); - DECLARE_WRITE8_MEMBER( snessfx_lo_w ); - DECLARE_READ8_MEMBER( snessa1_hi_r ); - DECLARE_READ8_MEMBER( snessa1_lo_r ); - DECLARE_WRITE8_MEMBER( snessa1_hi_w ); - DECLARE_WRITE8_MEMBER( snessa1_lo_w ); - DECLARE_READ8_MEMBER( snes7110_hi_r ); - DECLARE_READ8_MEMBER( snes7110_lo_r ); - DECLARE_WRITE8_MEMBER( snes7110_hi_w ); - DECLARE_WRITE8_MEMBER( snes7110_lo_w ); - DECLARE_READ8_MEMBER( snessdd1_lo_r ); - DECLARE_WRITE8_MEMBER( snessdd1_lo_w ); - DECLARE_READ8_MEMBER( snessdd1_hi_r ); - DECLARE_WRITE8_MEMBER( snessdd1_hi_w ); - DECLARE_READ8_MEMBER( snesbsx_hi_r ); - DECLARE_WRITE8_MEMBER( snesbsx_hi_w ); - DECLARE_READ8_MEMBER( snesbsx_lo_r ); - DECLARE_WRITE8_MEMBER( snesbsx_lo_w ); - DECLARE_READ8_MEMBER( snessgb_hi_r ); - DECLARE_READ8_MEMBER( snessgb_lo_r ); - DECLARE_WRITE8_MEMBER( snessgb_hi_w ); - DECLARE_WRITE8_MEMBER( snessgb_lo_w ); - DECLARE_READ8_MEMBER( pfest94_hi_r ); - DECLARE_WRITE8_MEMBER( pfest94_hi_w ); - DECLARE_READ8_MEMBER( pfest94_lo_r ); - DECLARE_WRITE8_MEMBER( pfest94_lo_w ); + uint8_t snes20_hi_r(address_space &space, offs_t offset); + void snes20_hi_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snes20_lo_r(address_space &space, offs_t offset); + void snes20_lo_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snes21_lo_r(address_space &space, offs_t offset); + void snes21_lo_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snes21_hi_r(address_space &space, offs_t offset); + void snes21_hi_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snessfx_hi_r(address_space &space, offs_t offset); + uint8_t snessfx_lo_r(address_space &space, offs_t offset); + void snessfx_hi_w(address_space &space, offs_t offset, uint8_t data); + void snessfx_lo_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snessa1_hi_r(address_space &space, offs_t offset); + uint8_t snessa1_lo_r(address_space &space, offs_t offset); + void snessa1_hi_w(address_space &space, offs_t offset, uint8_t data); + void snessa1_lo_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snes7110_hi_r(address_space &space, offs_t offset); + uint8_t snes7110_lo_r(address_space &space, offs_t offset); + void snes7110_hi_w(address_space &space, offs_t offset, uint8_t data); + void snes7110_lo_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snessdd1_lo_r(address_space &space, offs_t offset); + void snessdd1_lo_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snessdd1_hi_r(address_space &space, offs_t offset); + void snessdd1_hi_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snesbsx_hi_r(address_space &space, offs_t offset); + void snesbsx_hi_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snesbsx_lo_r(address_space &space, offs_t offset); + void snesbsx_lo_w(address_space &space, offs_t offset, uint8_t data); + uint8_t snessgb_hi_r(address_space &space, offs_t offset); + uint8_t snessgb_lo_r(address_space &space, offs_t offset); + void snessgb_hi_w(address_space &space, offs_t offset, uint8_t data); + void snessgb_lo_w(address_space &space, offs_t offset, uint8_t data); + uint8_t pfest94_hi_r(address_space &space, offs_t offset); + void pfest94_hi_w(address_space &space, offs_t offset, uint8_t data); + uint8_t pfest94_lo_r(address_space &space, offs_t offset); + void pfest94_lo_w(address_space &space, offs_t offset, uint8_t data); // input related SNESCTRL_ONSCREEN_CB(onscreen_cb); @@ -130,7 +130,7 @@ private: // Also we have here LoROM + CX4, until the Hitachi CPU is emulated, // and the LoROM + Seta DSP, because their chip_read/chip_write need global offset -READ8_MEMBER( snes_console_state::snes20_hi_r ) +uint8_t snes_console_state::snes20_hi_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -150,7 +150,7 @@ READ8_MEMBER( snes_console_state::snes20_hi_r ) if (address < 0x2000) return m_wram[address]; else if (address < 0x6000) - return snes_r_io(space, address); + return snes_r_io(address); else if (address < 0x8000) return snes_open_bus_r(); else @@ -187,7 +187,7 @@ READ8_MEMBER( snes_console_state::snes20_hi_r ) } } -WRITE8_MEMBER( snes_console_state::snes20_hi_w ) +void snes_console_state::snes20_hi_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; @@ -225,7 +225,7 @@ WRITE8_MEMBER( snes_console_state::snes20_hi_w ) } } -READ8_MEMBER( snes_console_state::snes20_lo_r ) +uint8_t snes_console_state::snes20_lo_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -245,7 +245,7 @@ READ8_MEMBER( snes_console_state::snes20_lo_r ) if (address < 0x2000) return m_wram[address]; else if (address < 0x6000) - return snes_r_io(space, address); + return snes_r_io(address); else if (address < 0x8000) return snes_open_bus_r(); else @@ -282,14 +282,14 @@ READ8_MEMBER( snes_console_state::snes20_lo_r ) } } -WRITE8_MEMBER( snes_console_state::snes20_lo_w ) +void snes_console_state::snes20_lo_w(address_space &space, offs_t offset, uint8_t data) { if (m_type == SNES_SUFAMITURBO && (offset & 0xffff) >= 0x8000 && ((offset >= 0x600000 && offset < 0x640000) || (offset >= 0x700000 && offset < 0x740000))) { m_cartslot->write_l(offset, data); return; } // other add-on writes matches the hi handler - snes20_hi_w(space, offset, data, 0xff); + snes20_hi_w(space, offset, data); } @@ -297,7 +297,7 @@ WRITE8_MEMBER( snes_console_state::snes20_lo_w ) // HiROM & HiROM + BSX slot //--------------------------------------------------------------------------------- -READ8_MEMBER( snes_console_state::snes21_lo_r ) +uint8_t snes_console_state::snes21_lo_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -306,7 +306,7 @@ READ8_MEMBER( snes_console_state::snes21_lo_r ) if (address < 0x2000) return m_wram[address]; else if (address < 0x6000) - return snes_r_io(space, address); + return snes_r_io(address); else { if (m_type == SNES_BSXHI && m_cartslot->m_cart->get_nvram_size() && offset >= 0x200000) @@ -331,7 +331,7 @@ READ8_MEMBER( snes_console_state::snes21_lo_r ) return m_cartslot->read_l(offset); } -WRITE8_MEMBER( snes_console_state::snes21_lo_w ) +void snes_console_state::snes21_lo_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000 && address < 0x8000) @@ -359,7 +359,7 @@ WRITE8_MEMBER( snes_console_state::snes21_lo_w ) } } -READ8_MEMBER( snes_console_state::snes21_hi_r ) +uint8_t snes_console_state::snes21_hi_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -368,7 +368,7 @@ READ8_MEMBER( snes_console_state::snes21_hi_r ) if (address < 0x2000) return m_wram[address]; else if (address < 0x6000) - return snes_r_io(space, address); + return snes_r_io(address); else { if (m_type == SNES_BSXHI && m_cartslot->m_cart->get_nvram_size() && offset >= 0x200000) @@ -393,7 +393,7 @@ READ8_MEMBER( snes_console_state::snes21_hi_r ) return m_cartslot->read_h(offset); } -WRITE8_MEMBER( snes_console_state::snes21_hi_w ) +void snes_console_state::snes21_hi_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000 && address < 0x8000) @@ -425,7 +425,7 @@ WRITE8_MEMBER( snes_console_state::snes21_hi_w ) // LoROM + SuperFX / GSU //--------------------------------------------------------------------------------- -READ8_MEMBER( snes_console_state::snessfx_hi_r ) +uint8_t snes_console_state::snessfx_hi_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -438,7 +438,7 @@ READ8_MEMBER( snes_console_state::snessfx_hi_r ) if (address >= 0x3000 && address < 0x3300) return m_cartslot->chip_read(offset); else - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) return m_cartslot->read_ram(offset & 0x1fff); @@ -451,7 +451,7 @@ READ8_MEMBER( snes_console_state::snessfx_hi_r ) return m_cartslot->read_ram(offset); } -READ8_MEMBER( snes_console_state::snessfx_lo_r ) +uint8_t snes_console_state::snessfx_lo_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -464,7 +464,7 @@ READ8_MEMBER( snes_console_state::snessfx_lo_r ) if (address >= 0x3000 && address < 0x3300) return m_cartslot->chip_read(offset); else - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) return m_cartslot->read_ram(offset & 0x1fff); @@ -477,7 +477,7 @@ READ8_MEMBER( snes_console_state::snessfx_lo_r ) return m_cartslot->read_ram(offset); } -WRITE8_MEMBER( snes_console_state::snessfx_hi_w ) +void snes_console_state::snessfx_hi_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000) @@ -498,16 +498,16 @@ WRITE8_MEMBER( snes_console_state::snessfx_hi_w ) m_cartslot->write_ram(offset, data); } -WRITE8_MEMBER( snes_console_state::snessfx_lo_w ) +void snes_console_state::snessfx_lo_w(address_space &space, offs_t offset, uint8_t data) { - snessfx_hi_w(space, offset, data, 0xff); + snessfx_hi_w(space, offset, data); } //--------------------------------------------------------------------------------- // LoROM + SA-1 //--------------------------------------------------------------------------------- -READ8_MEMBER( snes_console_state::snessa1_hi_r ) +uint8_t snes_console_state::snessa1_hi_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -522,7 +522,7 @@ READ8_MEMBER( snes_console_state::snessa1_hi_r ) else if (address >= 0x3000 && address < 0x3800) return m_cartslot->chip_read(offset); // Internal SA-1 RAM (2K) else - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) return m_cartslot->chip_read(offset); // SA-1 BWRAM @@ -533,7 +533,7 @@ READ8_MEMBER( snes_console_state::snessa1_hi_r ) return m_cartslot->read_h(offset); } -READ8_MEMBER( snes_console_state::snessa1_lo_r ) +uint8_t snes_console_state::snessa1_lo_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -548,7 +548,7 @@ READ8_MEMBER( snes_console_state::snessa1_lo_r ) else if (address >= 0x3000 && address < 0x3800) return m_cartslot->chip_read(offset); // Internal SA-1 RAM (2K) else - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) return m_cartslot->chip_read(offset); // SA-1 BWRAM @@ -558,10 +558,10 @@ READ8_MEMBER( snes_console_state::snessa1_lo_r ) else if (offset < 0x500000) return m_cartslot->chip_read(offset); // SA-1 BWRAM (not mirrored above!) else - return snes_r_io(space, address); // nothing mapped here! + return snes_r_io(address); // nothing mapped here! } -WRITE8_MEMBER( snes_console_state::snessa1_hi_w ) +void snes_console_state::snessa1_hi_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000) @@ -582,19 +582,19 @@ WRITE8_MEMBER( snes_console_state::snessa1_hi_w ) } } -WRITE8_MEMBER( snes_console_state::snessa1_lo_w ) +void snes_console_state::snessa1_lo_w(address_space &space, offs_t offset, uint8_t data) { if (offset >= 0x400000 && offset < 0x500000) m_cartslot->chip_write(offset, data); // SA-1 BWRAM (not mirrored above!) else - snessa1_hi_w(space, offset, data, 0xff); + snessa1_hi_w(space, offset, data); } //--------------------------------------------------------------------------------- // HiROM + SPC-7110 //--------------------------------------------------------------------------------- -READ8_MEMBER( snes_console_state::snes7110_hi_r ) +uint8_t snes_console_state::snes7110_hi_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -608,7 +608,7 @@ READ8_MEMBER( snes_console_state::snes7110_hi_r ) if (address >= 0x4800 && address < limit) return m_cartslot->chip_read(address); - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) { @@ -623,7 +623,7 @@ READ8_MEMBER( snes_console_state::snes7110_hi_r ) return m_cartslot->read_h(offset); } -READ8_MEMBER( snes_console_state::snes7110_lo_r ) +uint8_t snes_console_state::snes7110_lo_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -637,7 +637,7 @@ READ8_MEMBER( snes_console_state::snes7110_lo_r ) if (address >= 0x4800 && address < limit) return m_cartslot->chip_read(address); - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) { @@ -655,12 +655,12 @@ READ8_MEMBER( snes_console_state::snes7110_lo_r ) return snes_open_bus_r(); } -WRITE8_MEMBER( snes_console_state::snes7110_hi_w ) +void snes_console_state::snes7110_hi_w(address_space &space, offs_t offset, uint8_t data) { - snes7110_lo_w(space, offset, data, 0xff); + snes7110_lo_w(space, offset, data); } -WRITE8_MEMBER( snes_console_state::snes7110_lo_w ) +void snes_console_state::snes7110_lo_w (address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000) @@ -692,7 +692,7 @@ WRITE8_MEMBER( snes_console_state::snes7110_lo_w ) // LoROM + S-DD1 //--------------------------------------------------------------------------------- -READ8_MEMBER( snes_console_state::snessdd1_lo_r ) +uint8_t snes_console_state::snessdd1_lo_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -705,7 +705,7 @@ READ8_MEMBER( snes_console_state::snessdd1_lo_r ) if (address >= 0x4800 && address < 0x4808) return m_cartslot->chip_read(address); - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) return snes_open_bus_r(); @@ -718,20 +718,20 @@ READ8_MEMBER( snes_console_state::snessdd1_lo_r ) return m_cartslot->read_l(offset); } -READ8_MEMBER( snes_console_state::snessdd1_hi_r ) +uint8_t snes_console_state::snessdd1_hi_r(address_space &space, offs_t offset) { if (offset >= 0x400000) return m_cartslot->read_h(offset); else - return snessdd1_lo_r(space, offset, 0xff); + return snessdd1_lo_r(space, offset); } -WRITE8_MEMBER( snes_console_state::snessdd1_lo_w ) +void snes_console_state::snessdd1_lo_w(address_space &space, offs_t offset, uint8_t data) { - snessdd1_hi_w(space, offset, data, 0xff); + snessdd1_hi_w(space, offset, data); } -WRITE8_MEMBER( snes_console_state::snessdd1_hi_w ) +void snes_console_state::snessdd1_hi_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000) @@ -762,7 +762,7 @@ WRITE8_MEMBER( snes_console_state::snessdd1_hi_w ) // LoROM + BS-X (Base unit) //--------------------------------------------------------------------------------- -READ8_MEMBER( snes_console_state::snesbsx_hi_r ) +uint8_t snes_console_state::snesbsx_hi_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -776,7 +776,7 @@ READ8_MEMBER( snes_console_state::snesbsx_hi_r ) return m_cartslot->chip_read(offset); if (address >= 0x5000) return m_cartslot->chip_read(offset); - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) { @@ -791,7 +791,7 @@ READ8_MEMBER( snes_console_state::snesbsx_hi_r ) return m_cartslot->read_h(offset); } -WRITE8_MEMBER( snes_console_state::snesbsx_hi_w ) +void snes_console_state::snesbsx_hi_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000) @@ -823,7 +823,7 @@ WRITE8_MEMBER( snes_console_state::snesbsx_hi_w ) return m_cartslot->write_l(offset, data); } -READ8_MEMBER( snes_console_state::snesbsx_lo_r ) +uint8_t snes_console_state::snesbsx_lo_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -837,7 +837,7 @@ READ8_MEMBER( snes_console_state::snesbsx_lo_r ) return m_cartslot->chip_read(offset); if (address >= 0x5000) return m_cartslot->chip_read(offset); - return snes_r_io(space, address); + return snes_r_io(address); } else if (address < 0x8000) { @@ -852,9 +852,9 @@ READ8_MEMBER( snes_console_state::snesbsx_lo_r ) return m_cartslot->read_l(offset); } -WRITE8_MEMBER( snes_console_state::snesbsx_lo_w ) +void snes_console_state::snesbsx_lo_w(address_space &space, offs_t offset, uint8_t data) { - snesbsx_hi_w(space, offset, data, 0xff); + snesbsx_hi_w(space, offset, data); } @@ -862,7 +862,7 @@ WRITE8_MEMBER( snes_console_state::snesbsx_lo_w ) // LoROM + SuperGB //--------------------------------------------------------------------------------- -READ8_MEMBER( snes_console_state::snessgb_hi_r ) +uint8_t snes_console_state::snessgb_hi_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -871,7 +871,7 @@ READ8_MEMBER( snes_console_state::snessgb_hi_r ) if (address < 0x2000) return m_wram[address]; else if (address < 0x6000) - return snes_r_io(space, address); + return snes_r_io(address); else if (address < 0x8000) return m_cartslot->chip_read(offset); else @@ -883,12 +883,12 @@ READ8_MEMBER( snes_console_state::snessgb_hi_r ) return snes_open_bus_r(); } -READ8_MEMBER( snes_console_state::snessgb_lo_r ) +uint8_t snes_console_state::snessgb_lo_r(address_space &space, offs_t offset) { - return snessgb_hi_r(space, offset, 0xff); + return snessgb_hi_r(space, offset); } -WRITE8_MEMBER( snes_console_state::snessgb_hi_w ) +void snes_console_state::snessgb_hi_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000) @@ -902,16 +902,16 @@ WRITE8_MEMBER( snes_console_state::snessgb_hi_w ) } } -WRITE8_MEMBER( snes_console_state::snessgb_lo_w ) +void snes_console_state::snessgb_lo_w(address_space &space, offs_t offset, uint8_t data) { - snessgb_hi_w(space, offset, data, 0xff); + snessgb_hi_w(space, offset, data); } //--------------------------------------------------------------------------------- // Powerfest '94 event cart //--------------------------------------------------------------------------------- -READ8_MEMBER( snes_console_state::pfest94_hi_r ) +uint8_t snes_console_state::pfest94_hi_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -920,7 +920,7 @@ READ8_MEMBER( snes_console_state::pfest94_hi_r ) if (address < 0x2000) return m_wram[address]; else if (address < 0x6000) - return snes_r_io(space, address); + return snes_r_io(address); else if (address < 0x8000) { if (offset < 0x100000) // DSP access @@ -938,7 +938,7 @@ READ8_MEMBER( snes_console_state::pfest94_hi_r ) return m_cartslot->read_h(offset); } -WRITE8_MEMBER( snes_console_state::pfest94_hi_w ) +void snes_console_state::pfest94_hi_w(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; if (offset < 0x400000) @@ -959,7 +959,7 @@ WRITE8_MEMBER( snes_console_state::pfest94_hi_w ) } } -READ8_MEMBER( snes_console_state::pfest94_lo_r ) +uint8_t snes_console_state::pfest94_lo_r(address_space &space, offs_t offset) { uint16_t address = offset & 0xffff; @@ -968,7 +968,7 @@ READ8_MEMBER( snes_console_state::pfest94_lo_r ) if (address < 0x2000) return m_wram[address]; else if (address < 0x6000) - return snes_r_io(space, address); + return snes_r_io(address); else if (address < 0x8000) { if (offset < 0x100000) // DSP access @@ -986,9 +986,9 @@ READ8_MEMBER( snes_console_state::pfest94_lo_r ) return 0xff; // or open_bus? } -WRITE8_MEMBER( snes_console_state::pfest94_lo_w ) +void snes_console_state::pfest94_lo_w(address_space &space, offs_t offset, uint8_t data) { - pfest94_hi_w(space, offset, data, 0xff); + pfest94_hi_w(space, offset, data); } @@ -1185,8 +1185,8 @@ void snes_console_state::machine_start() if (m_cartslot && m_cartslot->exists()) { - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes20_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes20_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes20_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes20_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes20_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes20_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes20_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snes20_hi_w))); m_maincpu->set_5a22_map(); m_type = m_cartslot->get_type(); @@ -1203,13 +1203,13 @@ void snes_console_state::machine_start() case SNES_ST018: // still unemulated break; case SNES_Z80GB: // skeleton support - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessgb_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessgb_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessgb_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessgb_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snessgb_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snessgb_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snessgb_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snessgb_hi_w))); m_maincpu->set_5a22_map(); break; case SNES_SA1: // skeleton support - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessa1_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessa1_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessa1_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessa1_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snessa1_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snessa1_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snessa1_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snessa1_hi_w))); m_maincpu->set_5a22_map(); break; case SNES_DSP: @@ -1230,50 +1230,50 @@ void snes_console_state::machine_start() break; case SNES_GSU1: case SNES_GSU2: - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessfx_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessfx_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessfx_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessfx_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snessfx_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snessfx_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snessfx_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snessfx_hi_w))); m_maincpu->set_5a22_map(); break; case SNES_SDD1: - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessdd1_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessdd1_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessdd1_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessdd1_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snessdd1_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snessdd1_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snessdd1_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snessdd1_hi_w))); m_maincpu->set_5a22_map(); break; case SNES_BSX: - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snesbsx_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snesbsx_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snesbsx_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snesbsx_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snesbsx_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snesbsx_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snesbsx_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snesbsx_hi_w))); m_maincpu->set_5a22_map(); break; // HiROM & HiROM + addons case SNES_MODE21: case SNES_BSXHI: - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_hi_w))); m_maincpu->set_5a22_map(); break; case SNES_DSP_MODE21: - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_hi_w))); m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read))); m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write))); m_maincpu->set_5a22_map(); break; case SNES_SRTC: - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_hi_w))); m_maincpu->space(AS_PROGRAM).install_read_handler(0x002800, 0x002800, 0, 0xbf0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read))); m_maincpu->space(AS_PROGRAM).install_write_handler(0x002801, 0x002801, 0, 0xbf0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write))); m_maincpu->set_5a22_map(); break; case SNES_SPC7110: case SNES_SPC7110_RTC: - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes7110_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes7110_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes7110_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes7110_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes7110_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes7110_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes7110_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snes7110_hi_w))); m_maincpu->set_5a22_map(); break; case SNES_PFEST94: - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::pfest94_lo_r)), write8_delegate(*this, FUNC(snes_console_state::pfest94_lo_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::pfest94_hi_r)), write8_delegate(*this, FUNC(snes_console_state::pfest94_hi_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::pfest94_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::pfest94_lo_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::pfest94_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::pfest94_hi_w))); m_maincpu->set_5a22_map(); break; // pirate 'mappers' diff --git a/src/mame/drivers/spec128.cpp b/src/mame/drivers/spec128.cpp index fd9fd5012ae..8cbc4c3726a 100644 --- a/src/mame/drivers/spec128.cpp +++ b/src/mame/drivers/spec128.cpp @@ -167,25 +167,19 @@ resulting mess can be seen in the F4 viewer display. READ8_MEMBER(spectrum_state::spectrum_128_pre_opcode_fetch_r) { - /* this allows expansion devices to act upon opcode fetches from MEM addresses */ - if (BIT(m_port_7ffd_data, 4)) - { - /* this allows expansion devices to act upon opcode fetches from MEM addresses - for example, interface1 detection fetches requires fetches at 0008 / 0708 to - enable paged ROM and then fetches at 0700 to disable it - */ - m_exp->pre_opcode_fetch(offset); - uint8_t retval = m_maincpu->space(AS_PROGRAM).read_byte(offset); - m_exp->post_opcode_fetch(offset); - return retval; - } - - return m_maincpu->space(AS_PROGRAM).read_byte(offset); + /* this allows expansion devices to act upon opcode fetches from MEM addresses + for example, interface1 detection fetches requires fetches at 0008 / 0708 to + enable paged ROM and then fetches at 0700 to disable it + */ + m_exp->pre_opcode_fetch(offset); + uint8_t retval = m_maincpu->space(AS_PROGRAM).read_byte(offset); + m_exp->post_opcode_fetch(offset); + return retval; } WRITE8_MEMBER( spectrum_state::spectrum_128_bank1_w ) { - if (m_exp->romcs() && BIT(m_port_7ffd_data, 4)) + if (m_exp->romcs()) m_exp->mreq_w(offset, data); } @@ -193,7 +187,7 @@ READ8_MEMBER( spectrum_state::spectrum_128_bank1_r ) { uint8_t data; - if (m_exp->romcs() && BIT(m_port_7ffd_data, 4)) + if (m_exp->romcs()) { data = m_exp->mreq_r(offset); } diff --git a/src/mame/drivers/taito.cpp b/src/mame/drivers/taito.cpp index 2a0f76ab20b..5b0d4264e84 100644 --- a/src/mame/drivers/taito.cpp +++ b/src/mame/drivers/taito.cpp @@ -80,8 +80,8 @@ public: void init_taito(); private: - DECLARE_READ8_MEMBER(io_r); - DECLARE_WRITE8_MEMBER(io_w); + uint8_t io_r(offs_t offset); + void io_w(offs_t offset, uint8_t data); uint8_t pia_pb_r(); void pia_pb_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(pia_cb2_w); @@ -287,12 +287,12 @@ static INPUT_PORTS_START( taito ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) INPUT_PORTS_END -READ8_MEMBER( taito_state::io_r ) +uint8_t taito_state::io_r(offs_t offset) { return m_io[offset]; } -WRITE8_MEMBER( taito_state::io_w ) +void taito_state::io_w(offs_t offset, uint8_t data) { m_io[offset] = data; diff --git a/src/mame/drivers/taitogn.cpp b/src/mame/drivers/taitogn.cpp index 99e14c48e4c..8f39e83094f 100644 --- a/src/mame/drivers/taitogn.cpp +++ b/src/mame/drivers/taitogn.cpp @@ -368,17 +368,17 @@ public: void coh3002t_t1(machine_config &config); private: - DECLARE_READ8_MEMBER(control_r); - DECLARE_WRITE8_MEMBER(control_w); - DECLARE_WRITE16_MEMBER(control2_w); - DECLARE_READ8_MEMBER(control3_r); - DECLARE_WRITE8_MEMBER(control3_w); - DECLARE_READ16_MEMBER(gn_1fb70000_r); - DECLARE_WRITE16_MEMBER(gn_1fb70000_w); - DECLARE_READ16_MEMBER(hack1_r); - DECLARE_WRITE8_MEMBER(coin_w); - DECLARE_READ8_MEMBER(coin_r); - DECLARE_READ8_MEMBER(gnet_mahjong_panel_r); + uint8_t control_r(); + void control_w(uint8_t data); + void control2_w(uint16_t data); + uint8_t control3_r(); + void control3_w(uint8_t data); + uint16_t gn_1fb70000_r(); + void gn_1fb70000_w(uint16_t data); + uint16_t hack1_r(offs_t offset); + void coin_w(uint8_t data); + uint8_t coin_r(); + uint8_t gnet_mahjong_panel_r(); uint32_t zsg2_ext_r(offs_t offset); void flashbank_map(address_map &map); @@ -408,12 +408,12 @@ private: // Misc. controls -READ8_MEMBER(taitogn_state::control_r) +uint8_t taitogn_state::control_r() { return m_control; } -WRITE8_MEMBER(taitogn_state::control_w) +void taitogn_state::control_w(uint8_t data) { // 20 = watchdog m_mb3773->write_line_ck((data & 0x20) >> 5); @@ -445,22 +445,22 @@ WRITE8_MEMBER(taitogn_state::control_w) m_control = data; } -WRITE16_MEMBER(taitogn_state::control2_w) +void taitogn_state::control2_w(uint16_t data) { m_control2 = data; } -READ8_MEMBER(taitogn_state::control3_r) +uint8_t taitogn_state::control3_r() { return m_control3; } -WRITE8_MEMBER(taitogn_state::control3_w) +void taitogn_state::control3_w(uint8_t data) { m_control3 = data; } -READ16_MEMBER(taitogn_state::gn_1fb70000_r) +uint16_t taitogn_state::gn_1fb70000_r() { // (1328) 1348 tests mask 0002, 8 times. // Called by 1434, exit at 143c @@ -472,13 +472,13 @@ READ16_MEMBER(taitogn_state::gn_1fb70000_r) return 2; } -WRITE16_MEMBER(taitogn_state::gn_1fb70000_w) +void taitogn_state::gn_1fb70000_w(uint16_t data) { - // Writes 0 or 1 all the time, it *may* have somthing to do with + // Writes 0 or 1 all the time, it *may* have something to do with // i/o port width, but then maybe not } -READ16_MEMBER(taitogn_state::hack1_r) +uint16_t taitogn_state::hack1_r(offs_t offset) { switch (offset) { @@ -497,7 +497,7 @@ READ16_MEMBER(taitogn_state::hack1_r) -WRITE8_MEMBER(taitogn_state::coin_w) +void taitogn_state::coin_w(uint8_t data) { /* 0x01=counter 0x02=coin lock 1 @@ -511,13 +511,13 @@ WRITE8_MEMBER(taitogn_state::coin_w) m_coin_info = data; } -READ8_MEMBER(taitogn_state::coin_r) +uint8_t taitogn_state::coin_r() { return m_coin_info; } /* mahjong panel handler (for Usagi & Mahjong Oh) */ -READ8_MEMBER(taitogn_state::gnet_mahjong_panel_r) +uint8_t taitogn_state::gnet_mahjong_panel_r() { switch (m_coin_info & 0xcc) { diff --git a/src/mame/drivers/taitopjc.cpp b/src/mame/drivers/taitopjc.cpp index c1d5586d5b9..8044e565339 100644 --- a/src/mame/drivers/taitopjc.cpp +++ b/src/mame/drivers/taitopjc.cpp @@ -126,22 +126,22 @@ private: required_memory_region m_polyrom; required_device<gfxdecode_device> m_gfxdecode; - DECLARE_READ64_MEMBER(video_r); - DECLARE_WRITE64_MEMBER(video_w); - DECLARE_READ64_MEMBER(ppc_common_r); - DECLARE_WRITE64_MEMBER(ppc_common_w); - DECLARE_READ64_MEMBER(dsp_r); - DECLARE_WRITE64_MEMBER(dsp_w); - DECLARE_READ8_MEMBER(tlcs_common_r); - DECLARE_WRITE8_MEMBER(tlcs_common_w); - DECLARE_READ8_MEMBER(tlcs_sound_r); - DECLARE_WRITE8_MEMBER(tlcs_sound_w); - DECLARE_WRITE16_MEMBER(tlcs_unk_w); - DECLARE_READ16_MEMBER(tms_dspshare_r); - DECLARE_WRITE16_MEMBER(tms_dspshare_w); - DECLARE_READ16_MEMBER(dsp_rom_r); - DECLARE_WRITE16_MEMBER(dsp_roml_w); - DECLARE_WRITE16_MEMBER(dsp_romh_w); + uint64_t video_r(offs_t offset, uint64_t mem_mask = ~0); + void video_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t ppc_common_r(offs_t offset, uint64_t mem_mask = ~0); + void ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t dsp_r(offs_t offset, uint64_t mem_mask = ~0); + void dsp_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint8_t tlcs_common_r(offs_t offset); + void tlcs_common_w(offs_t offset, uint8_t data); + uint8_t tlcs_sound_r(offs_t offset); + void tlcs_sound_w(offs_t offset, uint8_t data); + void tlcs_unk_w(offs_t offset, uint16_t data); + uint16_t tms_dspshare_r(offs_t offset); + void tms_dspshare_w(offs_t offset, uint16_t data); + uint16_t dsp_rom_r(); + void dsp_roml_w(uint16_t data); + void dsp_romh_w(uint16_t data); virtual void machine_reset() override; virtual void video_start() override; uint32_t screen_update_taitopjc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -310,7 +310,7 @@ void taitopjc_state::videochip_w(offs_t address, uint32_t data) } } -READ64_MEMBER(taitopjc_state::video_r) +uint64_t taitopjc_state::video_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; @@ -325,7 +325,7 @@ READ64_MEMBER(taitopjc_state::video_r) return r; } -WRITE64_MEMBER(taitopjc_state::video_w) +void taitopjc_state::video_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (offset == 0) { @@ -344,7 +344,7 @@ WRITE64_MEMBER(taitopjc_state::video_w) } } -READ64_MEMBER(taitopjc_state::ppc_common_r) +uint64_t taitopjc_state::ppc_common_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; uint32_t address; @@ -365,7 +365,7 @@ READ64_MEMBER(taitopjc_state::ppc_common_r) return r; } -WRITE64_MEMBER(taitopjc_state::ppc_common_w) +void taitopjc_state::ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask) { uint32_t address = offset * 2; @@ -394,7 +394,7 @@ WRITE64_MEMBER(taitopjc_state::ppc_common_w) } } -READ64_MEMBER(taitopjc_state::dsp_r) +uint64_t taitopjc_state::dsp_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; @@ -485,7 +485,7 @@ void taitopjc_state::print_display_list() } } -WRITE64_MEMBER(taitopjc_state::dsp_w) +void taitopjc_state::dsp_w(offs_t offset, uint64_t data, uint64_t mem_mask) { //logerror("dsp_w: %08X, %08X%08X, %08X%08X at %08X\n", offset, (uint32_t)(data >> 32), (uint32_t)(data), (uint32_t)(mem_mask >> 32), (uint32_t)(mem_mask), m_maincpu->pc()); @@ -544,7 +544,7 @@ void taitopjc_state::ppc603e_mem(address_map &map) -READ8_MEMBER(taitopjc_state::tlcs_common_r) +uint8_t taitopjc_state::tlcs_common_r(offs_t offset) { if (offset & 1) { @@ -556,7 +556,7 @@ READ8_MEMBER(taitopjc_state::tlcs_common_r) } } -WRITE8_MEMBER(taitopjc_state::tlcs_common_w) +void taitopjc_state::tlcs_common_w(offs_t offset, uint8_t data) { if (offset & 1) { @@ -590,7 +590,7 @@ WRITE8_MEMBER(taitopjc_state::tlcs_common_w) } } -READ8_MEMBER(taitopjc_state::tlcs_sound_r) +uint8_t taitopjc_state::tlcs_sound_r(offs_t offset) { if (offset == 0x17) { @@ -600,12 +600,12 @@ READ8_MEMBER(taitopjc_state::tlcs_sound_r) return 0; } -WRITE8_MEMBER(taitopjc_state::tlcs_sound_w) +void taitopjc_state::tlcs_sound_w(offs_t offset, uint8_t data) { // printf("tlcs_sound_w: %08X, %02X\n", offset, data); } -WRITE16_MEMBER(taitopjc_state::tlcs_unk_w) +void taitopjc_state::tlcs_unk_w(offs_t offset, uint16_t data) { if (offset == 0xc/2) { @@ -648,12 +648,12 @@ void taitopjc_state::mn10200_map(address_map &map) -READ16_MEMBER(taitopjc_state::tms_dspshare_r) +uint16_t taitopjc_state::tms_dspshare_r(offs_t offset) { return m_dsp_ram[offset]; } -WRITE16_MEMBER(taitopjc_state::tms_dspshare_w) +void taitopjc_state::tms_dspshare_w(offs_t offset, uint16_t data) { if (offset == 0xffc) { @@ -662,7 +662,7 @@ WRITE16_MEMBER(taitopjc_state::tms_dspshare_w) m_dsp_ram[offset] = data; } -READ16_MEMBER(taitopjc_state::dsp_rom_r) +uint16_t taitopjc_state::dsp_rom_r() { assert(m_dsp_rom_address < 0x800000); @@ -671,13 +671,13 @@ READ16_MEMBER(taitopjc_state::dsp_rom_r) return data; } -WRITE16_MEMBER(taitopjc_state::dsp_roml_w) +void taitopjc_state::dsp_roml_w(uint16_t data) { m_dsp_rom_address &= 0xffff0000; m_dsp_rom_address |= data; } -WRITE16_MEMBER(taitopjc_state::dsp_romh_w) +void taitopjc_state::dsp_romh_w(uint16_t data) { m_dsp_rom_address &= 0xffff; m_dsp_rom_address |= (uint32_t)(data) << 16; diff --git a/src/mame/drivers/taitotz.cpp b/src/mame/drivers/taitotz.cpp index 1cb8b3a9d85..1ebcf69aea0 100644 --- a/src/mame/drivers/taitotz.cpp +++ b/src/mame/drivers/taitotz.cpp @@ -572,14 +572,14 @@ private: required_shared_ptr<uint16_t> m_mbox_ram; required_device<ata_interface_device> m_ata; - DECLARE_READ64_MEMBER(ppc_common_r); - DECLARE_WRITE64_MEMBER(ppc_common_w); - DECLARE_READ64_MEMBER(ieee1394_r); - DECLARE_WRITE64_MEMBER(ieee1394_w); - DECLARE_READ64_MEMBER(video_chip_r); - DECLARE_WRITE64_MEMBER(video_chip_w); - DECLARE_READ64_MEMBER(video_fifo_r); - DECLARE_WRITE64_MEMBER(video_fifo_w); + uint64_t ppc_common_r(offs_t offset, uint64_t mem_mask = ~0); + void ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t ieee1394_r(offs_t offset, uint64_t mem_mask = ~0); + void ieee1394_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t video_chip_r(offs_t offset, uint64_t mem_mask = ~0); + void video_chip_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t video_fifo_r(offs_t offset, uint64_t mem_mask = ~0); + void video_fifo_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); std::unique_ptr<uint32_t[]> m_screen_ram; std::unique_ptr<uint32_t[]> m_frame_ram; @@ -597,10 +597,10 @@ private: const char *m_hdd_serial_number; - DECLARE_READ8_MEMBER(tlcs_common_r); - DECLARE_WRITE8_MEMBER(tlcs_common_w); - DECLARE_READ8_MEMBER(tlcs_rtc_r); - DECLARE_WRITE8_MEMBER(tlcs_rtc_w); + uint8_t tlcs_common_r(offs_t offset); + void tlcs_common_w(offs_t offset, uint8_t data); + uint8_t tlcs_rtc_r(offs_t offset); + void tlcs_rtc_w(offs_t offset, uint8_t data); uint8_t m_rtcdata[8]; @@ -614,8 +614,8 @@ private: virtual void video_start() override; uint32_t screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(taitotz_vbi); - DECLARE_READ16_MEMBER(tlcs_ide0_r); - DECLARE_READ16_MEMBER(tlcs_ide1_r); + uint16_t tlcs_ide0_r(offs_t offset, uint16_t mem_mask = ~0); + uint16_t tlcs_ide1_r(offs_t offset, uint16_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(ide_interrupt); void draw_tile(uint32_t pos, uint32_t tile); uint32_t video_mem_r(uint32_t address); @@ -1649,7 +1649,7 @@ void taitotz_state::video_reg_w(uint32_t reg, uint32_t data) } } -READ64_MEMBER(taitotz_state::video_chip_r) +uint64_t taitotz_state::video_chip_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; uint32_t reg = offset * 8; @@ -1698,7 +1698,7 @@ READ64_MEMBER(taitotz_state::video_chip_r) return r; } -WRITE64_MEMBER(taitotz_state::video_chip_w) +void taitotz_state::video_chip_w(offs_t offset, uint64_t data, uint64_t mem_mask) { uint32_t reg = offset * 8; uint32_t regdata; @@ -1773,7 +1773,7 @@ WRITE64_MEMBER(taitotz_state::video_chip_w) } } -READ64_MEMBER(taitotz_state::video_fifo_r) +uint64_t taitotz_state::video_fifo_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; if (ACCESSING_BITS_32_63) @@ -1790,7 +1790,7 @@ READ64_MEMBER(taitotz_state::video_fifo_r) return r; } -WRITE64_MEMBER(taitotz_state::video_fifo_w) +void taitotz_state::video_fifo_w(offs_t offset, uint64_t data, uint64_t mem_mask) { int command = (m_video_reg >> 28) & 0xf; if (command == 0xb) @@ -1883,7 +1883,7 @@ WRITE64_MEMBER(taitotz_state::video_fifo_w) //COMBINE_DATA(m_video_fifo_mem + offset); } -READ64_MEMBER(taitotz_state::ieee1394_r) +uint64_t taitotz_state::ieee1394_r(offs_t offset, uint64_t mem_mask) { if (offset == 4) { @@ -1894,7 +1894,7 @@ READ64_MEMBER(taitotz_state::ieee1394_r) return 0; } -WRITE64_MEMBER(taitotz_state::ieee1394_w) +void taitotz_state::ieee1394_w(offs_t offset, uint64_t data, uint64_t mem_mask) { //logerror("ieee1394_w: %08X, %08X%08X, %08X%08X\n", offset, (uint32_t)(data >> 32), (uint32_t)(data), (uint32_t)(mem_mask >> 32), (uint32_t)(mem_mask)); if (ACCESSING_BITS_32_63) @@ -1905,7 +1905,7 @@ WRITE64_MEMBER(taitotz_state::ieee1394_w) } } -READ64_MEMBER(taitotz_state::ppc_common_r) +uint64_t taitotz_state::ppc_common_r(offs_t offset, uint64_t mem_mask) { uint64_t res = 0; @@ -1921,7 +1921,7 @@ READ64_MEMBER(taitotz_state::ppc_common_r) return res; } -WRITE64_MEMBER(taitotz_state::ppc_common_w) +void taitotz_state::ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_0_15) { @@ -2081,7 +2081,7 @@ void taitotz_state::ppc603e_mem(address_map &map) -READ8_MEMBER(taitotz_state::tlcs_common_r) +uint8_t taitotz_state::tlcs_common_r(offs_t offset) { if (offset & 1) { @@ -2093,7 +2093,7 @@ READ8_MEMBER(taitotz_state::tlcs_common_r) } } -WRITE8_MEMBER(taitotz_state::tlcs_common_w) +void taitotz_state::tlcs_common_w(offs_t offset, uint8_t data) { if (offset & 1) { @@ -2140,8 +2140,8 @@ WRITE8_MEMBER(taitotz_state::tlcs_common_w) } } -// RTC could be Epson RTC-64613, same as taitopjc.c -READ8_MEMBER(taitotz_state::tlcs_rtc_r) +// RTC could be Epson RTC-64613, same as taitopjc.cpp +uint8_t taitotz_state::tlcs_rtc_r(offs_t offset) { switch (offset) { @@ -2165,7 +2165,7 @@ READ8_MEMBER(taitotz_state::tlcs_rtc_r) return 0; } -WRITE8_MEMBER(taitotz_state::tlcs_rtc_w) +void taitotz_state::tlcs_rtc_w(offs_t offset, uint8_t data) { switch (offset) { @@ -2186,7 +2186,7 @@ WRITE8_MEMBER(taitotz_state::tlcs_rtc_w) } } -READ16_MEMBER(taitotz_state::tlcs_ide0_r) +uint16_t taitotz_state::tlcs_ide0_r(offs_t offset, uint16_t mem_mask) { uint16_t d = m_ata->cs0_r(offset, mem_mask); if (offset == 7) @@ -2195,7 +2195,7 @@ READ16_MEMBER(taitotz_state::tlcs_ide0_r) return d; } -READ16_MEMBER(taitotz_state::tlcs_ide1_r) +uint16_t taitotz_state::tlcs_ide1_r(offs_t offset, uint16_t mem_mask) { uint16_t d = m_ata->cs1_r(offset, mem_mask); if (offset == 6) diff --git a/src/mame/drivers/taitowlf.cpp b/src/mame/drivers/taitowlf.cpp index 7ba54ff0775..e98ab104e1a 100644 --- a/src/mame/drivers/taitowlf.cpp +++ b/src/mame/drivers/taitowlf.cpp @@ -2,29 +2,49 @@ // copyright-holders:Ville Linde /* Taito Wolf System - Driver by Ville Linde - -AMD M4-128N/64 stamped 'E58-01' -AMD MACH231 stamped 'E58-02' -AMD MACH211 stamped 'E58-03' -Zoom ZFX2 -Zoom ZSG-2 -Taito TC0510NIO -Panasonic MN1020019 -1x RAM NEC 42S4260 -1x RAM GM71C4400 -12x RAM Alliance AS4C256K16E0-35 (256k x 16) -Mitsubishi M66220 -Fujitsu MB87078 -Atmel 93C66 EEPROM (4kb probably for high scores, test mode settings etc) -ICS GENDAC ICS5342-3 -3DFX 500-0003-03 F805281.1 FBI -3DFX 500-0004-02 F804701.1 TMU -some logic -clocks 50MHz (near 3DFX) and 14.31818MHz (near RAMDAC) +Driver by Ville Linde + +Three board system consisting of a P5TX-LA PC motherboard, a Taito main board and a rom board. + +Hardware configuration: + +P5TX-LA Motherboard: +-CPU: Intel SL27J Pentium MMX @ 200 MHz +-Onboard sound: Crystal CS4237B ISA Audio +-Onboard VGA: ATI Rage II 3D Graph (removed from motherboard) + +Chipsets (430TX PCIset): +-82439TX Northbridge +-82371EB PIIX4 PCI-ISA Southbridge + +Taito W Main Board: +-AMD M4-128N/64 CPLD stamped 'E58-01' +-AMD MACH231 CPLD stamped 'E58-02' +-AMD MACH211 CPLD stamped 'E58-03' +-Panasonic MN1020019 (MN10200 based) Sound CPU +-Zoom ZFX-2 DSP (TMS57002 DSP) +-Zoom ZSG-2 Sound PCM chip +-Taito TC0510NIO I/O chip +-1x RAM NEC 42S4260 +-1x RAM GM71C4400 +-12x RAM Alliance AS4C256K16E0-35 (256k x 16) +-Mitsubishi M66220 256 x 8-bit CMOS memory +-Fujitsu MB87078 6-bit, 4-channel Electronic Volume Controller +-Atmel 93C66 EEPROM (4kb probably for high scores, test mode settings etc) +-ICS5342-3 GENDAC 16-Bit Integrated Clock-LUT-DAC +-3DFX 500-0003-03 F805281.1 FBI +-3DFX 500-0004-02 F804701.1 TMU +-Rom: E58-04 (bootscreen) +-XTALs 50MHz (near 3DFX) and 14.31818MHz (near RAMDAC) + +Taito W Rom Board: +-AMD M4-128N/64 CPLD stamped 'E58-05' +-Program, Sound roms TODO: -- program ROM is read via parallel port (for offset write, encrypted) and game port!? +- program ROM is read via parallel port (for offset write, encrypted) and game port!? +- Emulation of the entire Taito Wolf main board which plugs into the PC motherboard's only PCI slot. +- PCI comms between both boards have yet to be understood. */ @@ -64,9 +84,9 @@ private: required_region_ptr<uint8_t> m_bootscreen_rom; required_memory_bank m_bank1; optional_device<palette_device> m_palette; - DECLARE_WRITE32_MEMBER(pnp_config_w); - DECLARE_WRITE32_MEMBER(pnp_data_w); - DECLARE_WRITE32_MEMBER(bios_ram_w); + void pnp_config_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void pnp_data_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); #if !TAITOWLF_ENABLE_VGA void taitowlf_palette(palette_device &palette) const; @@ -242,7 +262,7 @@ void taitowlf_state::intel82371ab_pci_w(int function, int reg, uint32_t data, ui } // ISA Plug-n-Play -WRITE32_MEMBER(taitowlf_state::pnp_config_w) +void taitowlf_state::pnp_config_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_8_15) { @@ -250,7 +270,7 @@ WRITE32_MEMBER(taitowlf_state::pnp_config_w) } } -WRITE32_MEMBER(taitowlf_state::pnp_data_w) +void taitowlf_state::pnp_data_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_8_15) { @@ -260,7 +280,7 @@ WRITE32_MEMBER(taitowlf_state::pnp_data_w) -WRITE32_MEMBER(taitowlf_state::bios_ram_w) +void taitowlf_state::bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (m_mtxc_config_reg[0x59] & 0x20) // write to RAM if this region is write-enabled { @@ -388,7 +408,6 @@ void taitowlf_state::taitowlf(machine_config &config) #if TAITOWLF_ENABLE_VGA pcvideo_vga(config); #else - /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); @@ -420,11 +439,11 @@ ROM_START(pf2012) ROM_CONTINUE( 0x0001, 0x4000 ) #endif - ROM_REGION(0x400000, "user3", 0) // Program ROM disk + ROM_REGION(0x400000, "user3", 0) // Program ROM ROM_LOAD("u1.bin", 0x000000, 0x200000, CRC(8f4c09cb) SHA1(0969a92fec819868881683c580f9e01cbedf4ad2)) ROM_LOAD("u2.bin", 0x200000, 0x200000, CRC(59881781) SHA1(85ff074ab2a922eac37cf96f0bf153a2dac55aa4)) - ROM_REGION(0x4000000, "user4", 0) // Data ROM disk + ROM_REGION(0x4000000, "user4", 0) // Data ROM ROM_LOAD("e59-01.u20", 0x0000000, 0x800000, CRC(701d3a9a) SHA1(34c9f34f4da34bb8eed85a4efd1d9eea47a21d77) ) ROM_LOAD("e59-02.u23", 0x0800000, 0x800000, CRC(626df682) SHA1(35bb4f91201734ce7ccdc640a75030aaca3d1151) ) ROM_LOAD("e59-03.u26", 0x1000000, 0x800000, CRC(74e4efde) SHA1(630235c2e4a11f615b5f3b8c93e1e645da09eefe) ) @@ -434,18 +453,18 @@ ROM_START(pf2012) ROM_LOAD("e59-07.u22", 0x3000000, 0x800000, CRC(1f0ddcdc) SHA1(72ffe08f5effab093bdfe9863f8a11f80e914272) ) ROM_LOAD("e59-08.u25", 0x3800000, 0x800000, CRC(8db38ffd) SHA1(4b71ea86fb774ba6a8ac45abf4191af64af007e7) ) - ROM_REGION(0x1400000, "samples", 0) // ZOOM sample data + ROM_REGION(0x1400000, "samples", 0) // ZOOM sample data ROM_LOAD("e59-09.u29", 0x0000000, 0x800000, CRC(d0da5c50) SHA1(56fb3c38f35244720d32a44fed28e6b58c7851f7) ) ROM_LOAD("e59-10.u32", 0x0800000, 0x800000, CRC(4c0e0a5c) SHA1(6454befa3a1dd532eb2a760129dcd7e611508730) ) ROM_LOAD("e59-11.u33", 0x1000000, 0x400000, CRC(c90a896d) SHA1(2b62992f20e4ca9634e7953fe2c553906de44f04) ) - ROM_REGION(0x180000, "cpu1", 0) // MN10200 program + ROM_REGION(0x180000, "cpu1", 0) // MN10200 program ROM_LOAD("e59-12.u13", 0x000000, 0x80000, CRC(9a473a7e) SHA1(b0ec7b0ae2b33a32da98899aa79d44e8e318ceb7) ) ROM_LOAD("e59-13.u15", 0x080000, 0x80000, CRC(77719880) SHA1(8382dd2dfb0dae60a3831ed6d3ff08539e2d94eb) ) ROM_LOAD("e59-14.u14", 0x100000, 0x40000, CRC(d440887c) SHA1(d965871860d757bc9111e9adb2303a633c662d6b) ) ROM_LOAD("e59-15.u16", 0x140000, 0x40000, CRC(eae8e523) SHA1(8a054d3ded7248a7906c4f0bec755ddce53e2023) ) - ROM_REGION(0x20000, "bootscreen", 0) // bootscreen + ROM_REGION(0x20000, "bootscreen", 0) // bootscreen ROM_LOAD("e58-04.u71", 0x000000, 0x20000, CRC(500e6113) SHA1(93226706517c02e336f96bdf9443785158e7becf) ) ROM_END diff --git a/src/mame/drivers/talkingbb.cpp b/src/mame/drivers/talkingbb.cpp index 8f8a8a62209..ad30b938380 100644 --- a/src/mame/drivers/talkingbb.cpp +++ b/src/mame/drivers/talkingbb.cpp @@ -147,9 +147,9 @@ private: // I/O handlers void bank_w(u8 data); - DECLARE_READ8_MEMBER(bank_r); - DECLARE_WRITE8_MEMBER(input_w); - DECLARE_READ8_MEMBER(input_r); + u8 bank_r(offs_t offset); + void input_w(u8 data); + u8 input_r(); u8 switch_r(); }; @@ -178,7 +178,7 @@ void talkingbb_state::bank_w(u8 data) m_bank = data; } -READ8_MEMBER(talkingbb_state::bank_r) +u8 talkingbb_state::bank_r(offs_t offset) { u32 hi = (~m_bank & 3) << 15; u8 data = (m_bank & 4) ? 0xff : m_rom[offset | hi]; @@ -188,7 +188,7 @@ READ8_MEMBER(talkingbb_state::bank_r) return data; } -WRITE8_MEMBER(talkingbb_state::input_w) +void talkingbb_state::input_w(u8 data) { // no effect if P30 is low (never happens though) if (~m_bank & 1) @@ -200,7 +200,7 @@ WRITE8_MEMBER(talkingbb_state::input_w) m_display->matrix(m_inp_mux, ~data & 7); } -READ8_MEMBER(talkingbb_state::input_r) +u8 talkingbb_state::input_r() { // open bus if P30 is low (never happens though) if (~m_bank & 1) diff --git a/src/mame/drivers/talkingfb.cpp b/src/mame/drivers/talkingfb.cpp index 98335b3f60e..38ed67a317b 100644 --- a/src/mame/drivers/talkingfb.cpp +++ b/src/mame/drivers/talkingfb.cpp @@ -65,9 +65,9 @@ private: // I/O handlers void bank_w(u8 data); - template<int Psen> DECLARE_READ8_MEMBER(bank_r); - DECLARE_WRITE8_MEMBER(input_w); - DECLARE_READ8_MEMBER(input_r); + template<int Psen> u8 bank_r(offs_t offset); + void input_w(u8 data); + u8 input_r(); }; void talkingfb_state::machine_start() @@ -96,7 +96,7 @@ void talkingfb_state::bank_w(u8 data) } template<int Psen> -READ8_MEMBER(talkingfb_state::bank_r) +u8 talkingfb_state::bank_r(offs_t offset) { u32 hi = (m_bank & 7) << 15; u8 data = (m_bank & 0x20) ? 0xff : m_rom[offset | hi]; @@ -107,13 +107,13 @@ READ8_MEMBER(talkingfb_state::bank_r) return data; } -WRITE8_MEMBER(talkingfb_state::input_w) +void talkingfb_state::input_w(u8 data) { // d3-d7: input mux m_inp_mux = data >> 3; } -READ8_MEMBER(talkingfb_state::input_r) +u8 talkingfb_state::input_r() { u8 data = 0; diff --git a/src/mame/drivers/tamag1.cpp b/src/mame/drivers/tamag1.cpp index 10afb70906b..84dc32cc379 100644 --- a/src/mame/drivers/tamag1.cpp +++ b/src/mame/drivers/tamag1.cpp @@ -24,7 +24,6 @@ public: tamag1_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_speaker(*this, "speaker"), m_out_x(*this, "%u.%u", 0U, 0U) { } @@ -33,14 +32,12 @@ public: DECLARE_INPUT_CHANGED_MEMBER(input_changed); private: - void speaker_w(uint8_t data); void tama_palette(palette_device &palette) const; E0C6S46_PIXEL_UPDATE(pixel_update); virtual void machine_start() override; required_device<e0c6s46_device> m_maincpu; - required_device<speaker_sound_device> m_speaker; output_finder<16, 40> m_out_x; }; @@ -92,20 +89,6 @@ void tamag1_state::tama_palette(palette_device &palette) const /*************************************************************************** - I/O - -***************************************************************************/ - -void tamag1_state::speaker_w(uint8_t data) -{ - // R43: speaker out - m_speaker->level_w(data >> 3 & 1); -} - - - -/*************************************************************************** - Inputs ***************************************************************************/ @@ -140,7 +123,7 @@ void tamag1_state::tama(machine_config &config) /* basic machine hardware */ E0C6S46(config, m_maincpu, 32.768_kHz_XTAL); m_maincpu->set_pixel_update_cb(FUNC(tamag1_state::pixel_update)); - m_maincpu->write_r<4>().set(FUNC(tamag1_state::speaker_w)); + m_maincpu->write_r<4>().set("speaker", FUNC(speaker_sound_device::level_w)).bit(3); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); @@ -156,7 +139,7 @@ void tamag1_state::tama(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); + SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.25); } diff --git a/src/mame/drivers/tandy1t.cpp b/src/mame/drivers/tandy1t.cpp index a443e38a893..45a4da80bcf 100644 --- a/src/mame/drivers/tandy1t.cpp +++ b/src/mame/drivers/tandy1t.cpp @@ -107,19 +107,19 @@ private: required_device<pcvideo_t1000_device> m_video; required_device<ram_device> m_ram; - DECLARE_WRITE8_MEMBER ( pc_t1t_p37x_w ); - DECLARE_READ8_MEMBER ( pc_t1t_p37x_r ); - - DECLARE_WRITE8_MEMBER ( tandy1000_pio_w ); - DECLARE_READ8_MEMBER(tandy1000_pio_r); - DECLARE_READ8_MEMBER( tandy1000_bank_r ); - DECLARE_WRITE8_MEMBER( tandy1000_bank_w ); - DECLARE_WRITE8_MEMBER( nmi_vram_bank_w ); - DECLARE_WRITE8_MEMBER( vram_bank_w ); - DECLARE_READ8_MEMBER( vram_r ); - DECLARE_WRITE8_MEMBER( vram_w ); - DECLARE_WRITE8_MEMBER( devctrl_w ); - DECLARE_READ8_MEMBER( unk_r ); + void pc_t1t_p37x_w(offs_t offset, uint8_t data); + uint8_t pc_t1t_p37x_r(offs_t offset); + + void tandy1000_pio_w(offs_t offset, uint8_t data); + uint8_t tandy1000_pio_r(offs_t offset); + uint8_t tandy1000_bank_r(offs_t offset); + void tandy1000_bank_w(offs_t offset, uint8_t data); + void nmi_vram_bank_w(uint8_t data); + void vram_bank_w(uint8_t data); + uint8_t vram_r(offs_t offset); + void vram_w(offs_t offset, uint8_t data); + void devctrl_w(uint8_t data); + uint8_t unk_r(); int tandy1000_read_eeprom(); void tandy1000_write_eeprom(uint8_t data); @@ -279,7 +279,7 @@ void tandy1000_state::tandy1000_write_eeprom(uint8_t data) m_eeprom_clock=data&4; } -WRITE8_MEMBER( tandy1000_state::pc_t1t_p37x_w ) +void tandy1000_state::pc_t1t_p37x_w(offs_t offset, uint8_t data) { // DBG_LOG(2,"T1T_p37x_w",("%.5x #%d $%02x\n", m_maincpu->pc( ),offset, data)); if (offset!=4) @@ -293,7 +293,7 @@ WRITE8_MEMBER( tandy1000_state::pc_t1t_p37x_w ) } } -READ8_MEMBER( tandy1000_state::pc_t1t_p37x_r ) +uint8_t tandy1000_state::pc_t1t_p37x_r(offs_t offset) { int data = m_tandy_data[offset]; // DBG_LOG(1,"T1T_p37x_r",("%.5x #%d $%02x\n", m_maincpu->pc( ), offset, data)); @@ -309,7 +309,7 @@ READ8_MEMBER( tandy1000_state::pc_t1t_p37x_r ) bit 3 output turbo mode */ -WRITE8_MEMBER( tandy1000_state::tandy1000_pio_w ) +void tandy1000_state::tandy1000_pio_w(offs_t offset, uint8_t data) { switch (offset) { @@ -335,7 +335,7 @@ WRITE8_MEMBER( tandy1000_state::tandy1000_pio_w ) } } -READ8_MEMBER(tandy1000_state::tandy1000_pio_r) +uint8_t tandy1000_state::tandy1000_pio_r(offs_t offset) { int data=0xff; switch (offset) @@ -361,29 +361,29 @@ READ8_MEMBER(tandy1000_state::tandy1000_pio_r) return data; } -WRITE8_MEMBER( tandy1000_state::nmi_vram_bank_w ) +void tandy1000_state::nmi_vram_bank_w(uint8_t data) { m_mb->nmi_enable_w(data & 0x80); - vram_bank_w(space, 0, data & 0x1e); + vram_bank_w(data & 0x1e); m_video->disable_w((data & 1) ? ASSERT_LINE : CLEAR_LINE); } -WRITE8_MEMBER( tandy1000_state::vram_bank_w ) +void tandy1000_state::vram_bank_w(uint8_t data) { m_vram_bank = (data >> 1) & 7; } -WRITE8_MEMBER( tandy1000_state::devctrl_w ) +void tandy1000_state::devctrl_w(uint8_t data) { m_video->disable_w((data & 4) ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER( tandy1000_state::unk_r ) +uint8_t tandy1000_state::unk_r() { return 0; // status port? } -READ8_MEMBER( tandy1000_state::vram_r ) +uint8_t tandy1000_state::vram_r(offs_t offset) { uint8_t vram_base = (m_ram->size() >> 17) - 1; if((m_vram_bank - vram_base) == (offset >> 17)) @@ -391,7 +391,7 @@ READ8_MEMBER( tandy1000_state::vram_r ) return 0xff; } -WRITE8_MEMBER( tandy1000_state::vram_w ) +void tandy1000_state::vram_w(offs_t offset, uint8_t data) { uint8_t vram_base = (m_ram->size() >> 17) - 1; if((m_vram_bank - vram_base) == (offset >> 17)) @@ -432,14 +432,14 @@ void tandy1000_state::machine_start() m_maincpu->space(AS_PROGRAM).install_ram(0, m_ram->size() - (128*1024) - 1, &m_ram->pointer()[128*1024]); if(m_maincpu->space(AS_PROGRAM).data_width() == 8) m_maincpu->space(AS_PROGRAM).install_readwrite_handler(m_ram->size() - (128*1024), 640*1024 - 1, - read8_delegate(*this, FUNC(tandy1000_state::vram_r)), write8_delegate(*this, FUNC(tandy1000_state::vram_w))); + read8sm_delegate(*this, FUNC(tandy1000_state::vram_r)), write8sm_delegate(*this, FUNC(tandy1000_state::vram_w))); else m_maincpu->space(AS_PROGRAM).install_readwrite_handler(m_ram->size() - (128*1024), 640*1024 - 1, - read8_delegate(*this, FUNC(tandy1000_state::vram_r)), write8_delegate(*this, FUNC(tandy1000_state::vram_w)), 0xffff); + read8sm_delegate(*this, FUNC(tandy1000_state::vram_r)), write8sm_delegate(*this, FUNC(tandy1000_state::vram_w)), 0xffff); subdevice<nvram_device>("nvram")->set_base(m_eeprom_ee, sizeof(m_eeprom_ee)); } -READ8_MEMBER( tandy1000_state::tandy1000_bank_r ) +uint8_t tandy1000_state::tandy1000_bank_r(offs_t offset) { uint8_t data = 0xFF; @@ -456,7 +456,7 @@ READ8_MEMBER( tandy1000_state::tandy1000_bank_r ) } -WRITE8_MEMBER( tandy1000_state::tandy1000_bank_w ) +void tandy1000_state::tandy1000_bank_w(offs_t offset, uint8_t data) { logerror( "%s: tandy1000_bank_w: offset = %x, data = %02x\n", machine().describe_context(), offset, data ); diff --git a/src/mame/drivers/tapatune.cpp b/src/mame/drivers/tapatune.cpp index 97af2505ce2..e98f02f8b83 100644 --- a/src/mame/drivers/tapatune.cpp +++ b/src/mame/drivers/tapatune.cpp @@ -94,23 +94,23 @@ private: DECLARE_WRITE_LINE_MEMBER(crtc_vsync); - DECLARE_WRITE16_MEMBER(palette_w); - DECLARE_READ16_MEMBER(read_from_z80); - DECLARE_WRITE16_MEMBER(write_to_z80); - - DECLARE_READ8_MEMBER(sound_irq_clear); - DECLARE_WRITE8_MEMBER(controls_mux); - DECLARE_READ8_MEMBER(controls_r); - DECLARE_WRITE8_MEMBER(write_index_to_68k); - DECLARE_WRITE8_MEMBER(write_data_to_68k); - DECLARE_READ8_MEMBER(read_index_from_68k); - DECLARE_READ8_MEMBER(read_data_from_68k); - DECLARE_WRITE8_MEMBER(lamps_w); - DECLARE_READ8_MEMBER(status_r); - DECLARE_WRITE8_MEMBER(bsmt_data_lo_w); - DECLARE_WRITE8_MEMBER(bsmt_data_hi_w); - DECLARE_WRITE8_MEMBER(bsmt_reg_w); - DECLARE_READ8_MEMBER(special_r); + void palette_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t read_from_z80(); + void write_to_z80(uint16_t data); + + uint8_t sound_irq_clear(); + void controls_mux(uint8_t data); + uint8_t controls_r(); + void write_index_to_68k(uint8_t data); + void write_data_to_68k(uint8_t data); + uint8_t read_index_from_68k(); + uint8_t read_data_from_68k(); + void lamps_w(uint8_t data); + uint8_t status_r(); + void bsmt_data_lo_w(uint8_t data); + void bsmt_data_hi_w(uint8_t data); + void bsmt_reg_w(uint8_t data); + uint8_t special_r(); MC6845_BEGIN_UPDATE(crtc_begin_update); MC6845_UPDATE_ROW(crtc_update_row); @@ -194,7 +194,7 @@ MC6845_UPDATE_ROW( tapatune_state::crtc_update_row ) } -WRITE16_MEMBER(tapatune_state::palette_w) +void tapatune_state::palette_w(offs_t offset, uint16_t data, uint16_t mem_mask) { //logerror("Palette write: offset = %02x, data = %04x, mask = %04x\n", offset, data, mem_mask ); switch(offset) @@ -223,14 +223,14 @@ WRITE_LINE_MEMBER(tapatune_state::crtc_vsync) * *************************************/ -READ16_MEMBER(tapatune_state::read_from_z80) +uint16_t tapatune_state::read_from_z80() { m_z80_data_available = 0; return ((uint16_t)m_z80_to_68k_data << 8) | (m_z80_to_68k_index); } -WRITE16_MEMBER(tapatune_state::write_to_z80) +void tapatune_state::write_to_z80(uint16_t data) { m_68k_to_z80_index = data & 0xff; m_68k_to_z80_data = (data >> 8) & 0xff; @@ -249,13 +249,13 @@ WRITE16_MEMBER(tapatune_state::write_to_z80) * *************************************/ -WRITE8_MEMBER(tapatune_state::write_index_to_68k) +void tapatune_state::write_index_to_68k(uint8_t data) { m_z80_to_68k_index = data; } -WRITE8_MEMBER(tapatune_state::write_data_to_68k) +void tapatune_state::write_data_to_68k(uint8_t data) { // todo, use callback as this will hook up elsewhere on non-video games if (m_videocpu) @@ -267,13 +267,13 @@ WRITE8_MEMBER(tapatune_state::write_data_to_68k) } -READ8_MEMBER(tapatune_state::read_index_from_68k) +uint8_t tapatune_state::read_index_from_68k() { return m_68k_to_z80_index; } -READ8_MEMBER(tapatune_state::read_data_from_68k) +uint8_t tapatune_state::read_data_from_68k() { m_68k_data_available = 0; @@ -333,14 +333,14 @@ void tapatune_state::maincpu_io_map(address_map &map) * *************************************/ -READ8_MEMBER(tapatune_state::sound_irq_clear) +uint8_t tapatune_state::sound_irq_clear() { m_maincpu->set_input_line(0, CLEAR_LINE); return 0; } -WRITE8_MEMBER(tapatune_state::controls_mux) +void tapatune_state::controls_mux(uint8_t data) { /* Input multiplexer select and outputs: @@ -360,7 +360,7 @@ WRITE8_MEMBER(tapatune_state::controls_mux) } -READ8_MEMBER(tapatune_state::controls_r) +uint8_t tapatune_state::controls_r() { switch (m_controls_mux & 0xf) { @@ -373,7 +373,7 @@ READ8_MEMBER(tapatune_state::controls_r) } -READ8_MEMBER(tapatune_state::special_r) +uint8_t tapatune_state::special_r() { // Not sure if this is actually correct if (m_z80_data_available) @@ -383,7 +383,7 @@ READ8_MEMBER(tapatune_state::special_r) } -WRITE8_MEMBER(tapatune_state::lamps_w) +void tapatune_state::lamps_w(uint8_t data) { /* Button Lamps: @@ -407,19 +407,19 @@ WRITE8_MEMBER(tapatune_state::lamps_w) * *************************************/ -READ8_MEMBER(tapatune_state::status_r) +uint8_t tapatune_state::status_r() { return !m_bsmt->read_status() << 7; } -WRITE8_MEMBER(tapatune_state::bsmt_data_lo_w) +void tapatune_state::bsmt_data_lo_w(uint8_t data) { m_bsmt_data_l = data; } -WRITE8_MEMBER(tapatune_state::bsmt_data_hi_w) +void tapatune_state::bsmt_data_hi_w(uint8_t data) { m_bsmt_data_h = data; @@ -431,7 +431,7 @@ WRITE8_MEMBER(tapatune_state::bsmt_data_hi_w) } -WRITE8_MEMBER(tapatune_state::bsmt_reg_w) +void tapatune_state::bsmt_reg_w(uint8_t data) { m_bsmt->write_reg(data); m_bsmt->write_data((m_bsmt_data_h << 8) | m_bsmt_data_l); diff --git a/src/mame/drivers/tasc.cpp b/src/mame/drivers/tasc.cpp index 5a10cc99e5d..e3b59c87f24 100644 --- a/src/mame/drivers/tasc.cpp +++ b/src/mame/drivers/tasc.cpp @@ -96,9 +96,9 @@ private: TIMER_DEVICE_CALLBACK_MEMBER(disable_bootrom) { m_bootrom_enabled = false; } // I/O handlers - DECLARE_READ32_MEMBER(bootrom_r); - DECLARE_READ32_MEMBER(p1000_r); - DECLARE_WRITE32_MEMBER(p1000_w); + uint32_t bootrom_r(offs_t offset); + uint32_t p1000_r(); + void p1000_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); }; void tasc_state::machine_start() @@ -120,12 +120,12 @@ void tasc_state::machine_reset() I/O ******************************************************************************/ -READ32_MEMBER(tasc_state::bootrom_r) +uint32_t tasc_state::bootrom_r(offs_t offset) { return (m_bootrom_enabled) ? m_rom[offset] : m_mainram[offset]; } -READ32_MEMBER(tasc_state::p1000_r) +uint32_t tasc_state::p1000_r() { // disconnect bootrom from the bus after next opcode if (m_bootrom_enabled && !m_disable_bootrom->enabled() && !machine().side_effects_disabled()) @@ -142,7 +142,7 @@ READ32_MEMBER(tasc_state::p1000_r) return data; } -WRITE32_MEMBER(tasc_state::p1000_w) +void tasc_state::p1000_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_24_31) { diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp index f4c8466dc08..9b0632b6e3a 100644 --- a/src/mame/drivers/tasman.cpp +++ b/src/mame/drivers/tasman.cpp @@ -70,11 +70,11 @@ private: required_device<palette_device> m_palette; optional_shared_ptr<uint32_t> m_vram; - DECLARE_READ32_MEMBER(eeprom_r); - DECLARE_WRITE8_MEMBER(eeprom_w); - DECLARE_WRITE8_MEMBER(kongambl_ff_w); - DECLARE_READ32_MEMBER(test_r); - // DECLARE_READ32_MEMBER(rng_r); + uint32_t eeprom_r(offs_t offset, uint32_t mem_mask = ~0); + void eeprom_w(offs_t offset, uint8_t data); + void kongambl_ff_w(uint8_t data); + uint32_t test_r(); + // uint32_t rng_r(); DECLARE_VIDEO_START(kongambl); uint8_t m_irq_mask; @@ -154,7 +154,7 @@ uint32_t kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_in return 0; } -READ32_MEMBER(kongambl_state::eeprom_r) +uint32_t kongambl_state::eeprom_r(offs_t offset, uint32_t mem_mask) { //return machine().rand(); uint32_t retval = 0; @@ -176,7 +176,7 @@ READ32_MEMBER(kongambl_state::eeprom_r) return retval; } -WRITE8_MEMBER(kongambl_state::eeprom_w) +void kongambl_state::eeprom_w(offs_t offset, uint8_t data) { // offset == 3 seems mux writes (active low) @@ -193,19 +193,19 @@ WRITE8_MEMBER(kongambl_state::eeprom_w) m_irq_mask = data; } -READ32_MEMBER(kongambl_state::test_r) +uint32_t kongambl_state::test_r() { return -1;//machine().rand(); } /* - READ32_MEMBER(kongambl_state::rng_r) + uint32_t kongambl_state::rng_r() { return machine().rand(); } */ -WRITE8_MEMBER(kongambl_state::kongambl_ff_w) +void kongambl_state::kongambl_ff_w(uint8_t data) { /* enables thru 0->1 */ /* ---- x--- (related to OBJ ROM) */ diff --git a/src/mame/drivers/tattack.cpp b/src/mame/drivers/tattack.cpp index 19ef5a6ba35..5d1b56b7910 100644 --- a/src/mame/drivers/tattack.cpp +++ b/src/mame/drivers/tattack.cpp @@ -78,10 +78,10 @@ protected: virtual void video_start() override; private: - DECLARE_WRITE8_MEMBER(paddle_w); - DECLARE_WRITE8_MEMBER(ball_w); - DECLARE_WRITE8_MEMBER(brick_dma_w); - DECLARE_WRITE8_MEMBER(sound_w); + void paddle_w(uint8_t data); + void ball_w(offs_t offset, uint8_t data); + void brick_dma_w(uint8_t data); + void sound_w(uint8_t data); TILE_GET_INFO_MEMBER(get_tile_info); void tattack_palette(palette_device &palette) const; @@ -233,17 +233,17 @@ void tattack_state::video_start() m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tattack_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32); } -WRITE8_MEMBER(tattack_state::paddle_w) +void tattack_state::paddle_w(uint8_t data) { m_paddle_reg = data; } -WRITE8_MEMBER(tattack_state::ball_w) +void tattack_state::ball_w(offs_t offset, uint8_t data) { m_ball_regs[offset] = data; } -WRITE8_MEMBER(tattack_state::brick_dma_w) +void tattack_state::brick_dma_w(uint8_t data) { // bit 7: 0->1 transfers from RAM to internal video buffer // bit 6: bricks color bank @@ -257,7 +257,7 @@ WRITE8_MEMBER(tattack_state::brick_dma_w) // popmessage("%02x",data&0x7f); } -WRITE8_MEMBER(tattack_state::sound_w) +void tattack_state::sound_w(uint8_t data) { // bit 4 enabled on coin insertion (coin counter?) // bit 3-0 samples enable, @see tattack_sample_names diff --git a/src/mame/drivers/tec1.cpp b/src/mame/drivers/tec1.cpp index 067f6841418..f27b8fc26e0 100644 --- a/src/mame/drivers/tec1.cpp +++ b/src/mame/drivers/tec1.cpp @@ -60,10 +60,6 @@ The jmon includes a cassette interface, a serial input connection, and an optional LCD, but the games of the tec1 have been removed. -ToDo: -- Save state support - - JMON ToDo: - Add LCD display (2 rows by 16 characters) @@ -88,11 +84,11 @@ class tec1_state : public driver_device public: tec1_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) + , m_key_pressed(0) , m_maincpu(*this, "maincpu") , m_speaker(*this, "speaker") , m_cass(*this, "cassette") , m_kb(*this, "keyboard") - , m_key_pressed(0) , m_io_shift(*this, "SHIFT") , m_display(*this, "display") { } @@ -103,27 +99,26 @@ public: DECLARE_INPUT_CHANGED_MEMBER(reset_button); private: + virtual void machine_start() override; + u8 kbd_r(); + u8 latch_r(); + void tec1_digit_w(u8 data); + void tecjmon_digit_w(u8 data); + void segment_w(u8 data); + DECLARE_WRITE_LINE_MEMBER(da_w); + bool m_key_pressed; + u8 m_seg; + u8 m_digit; + void tec1_io(address_map &map); + void tec1_map(address_map &map); + void tecjmon_io(address_map &map); + void tecjmon_map(address_map &map); required_device<cpu_device> m_maincpu; required_device<speaker_sound_device> m_speaker; optional_device<cassette_image_device> m_cass; required_device<mm74c923_device> m_kb; - bool m_key_pressed; required_ioport m_io_shift; required_device<pwm_display_device> m_display; - - DECLARE_READ8_MEMBER(kbd_r); - DECLARE_READ8_MEMBER(latch_r); - DECLARE_WRITE8_MEMBER(tec1_digit_w); - DECLARE_WRITE8_MEMBER(tecjmon_digit_w); - DECLARE_WRITE8_MEMBER(segment_w); - DECLARE_WRITE_LINE_MEMBER(da_w); - uint8_t m_seg; - uint8_t m_digit; - - void tec1_io(address_map &map); - void tec1_map(address_map &map); - void tecjmon_io(address_map &map); - void tecjmon_map(address_map &map); }; @@ -135,7 +130,7 @@ private: ***************************************************************************/ -WRITE8_MEMBER( tec1_state::segment_w ) +void tec1_state::segment_w(u8 data) { /* d7 segment d d6 segment e @@ -150,7 +145,7 @@ WRITE8_MEMBER( tec1_state::segment_w ) m_display->matrix(m_digit, m_seg); } -WRITE8_MEMBER( tec1_state::tec1_digit_w ) +void tec1_state::tec1_digit_w(u8 data) { /* d7 speaker d6 not used @@ -167,7 +162,7 @@ WRITE8_MEMBER( tec1_state::tec1_digit_w ) m_display->matrix(m_digit, m_seg); } -WRITE8_MEMBER( tec1_state::tecjmon_digit_w ) +void tec1_state::tecjmon_digit_w(u8 data) { /* d7 speaker & cassout d6 not used @@ -191,10 +186,10 @@ WRITE8_MEMBER( tec1_state::tecjmon_digit_w ) ***************************************************************************/ -READ8_MEMBER( tec1_state::latch_r ) +u8 tec1_state::latch_r() { // bit 7 - cass in ; bit 6 low = key pressed - uint8_t data = (m_key_pressed) ? 0 : 0x40; + u8 data = (m_key_pressed) ? 0 : 0x40; if (m_cass->input() > 0.03) data |= 0x80; @@ -203,7 +198,7 @@ READ8_MEMBER( tec1_state::latch_r ) } -READ8_MEMBER( tec1_state::kbd_r ) +u8 tec1_state::kbd_r() { return m_kb->read() | m_io_shift->read(); } @@ -221,7 +216,12 @@ WRITE_LINE_MEMBER( tec1_state::da_w ) ***************************************************************************/ - +void tec1_state::machine_start() +{ + save_item(NAME(m_key_pressed)); + save_item(NAME(m_seg)); + save_item(NAME(m_digit)); +} /*************************************************************************** @@ -251,7 +251,7 @@ void tec1_state::tecjmon_map(address_map &map) map.global_mask(0x3fff); map(0x0000, 0x07ff).rom(); map(0x0800, 0x37ff).ram(); - map(0x3800, 0x3fff).rom(); + map(0x3800, 0x3fff).rom().region("maincpu", 0x0800); } void tec1_state::tecjmon_io(address_map &map) @@ -386,7 +386,7 @@ void tec1_state::tecjmon(machine_config &config) ***************************************************************************/ ROM_START(tec1) - ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) + ROM_REGION(0x0800, "maincpu", 0 ) ROM_SYSTEM_BIOS(0, "mon1", "MON1") ROMX_LOAD( "mon1.rom", 0x0000, 0x0800, CRC(5d379e6c) SHA1(5c810885a3f0d03c54aea74aaaa8fae8a2fd9ad4), ROM_BIOS(0) ) ROM_SYSTEM_BIOS(1, "mon1a", "MON1A") @@ -399,11 +399,11 @@ ROM_START(tec1) ROM_END ROM_START(tecjmon) - ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) + ROM_REGION(0x1000, "maincpu", 0 ) ROM_LOAD("jmon.rom", 0x0000, 0x0800, CRC(202c47a2) SHA1(701588ec5640d633d90d94b2ccd6f65422e19a70) ) - ROM_LOAD("util.rom", 0x3800, 0x0800, CRC(7c19700d) SHA1(dc5b3ade66bb11c54430056966ed99cdd299d82b) ) + ROM_LOAD("util.rom", 0x0800, 0x0800, CRC(7c19700d) SHA1(dc5b3ade66bb11c54430056966ed99cdd299d82b) ) ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1984, tec1, 0, 0, tec1, tec1, tec1_state, empty_init, "Talking Electronics magazine", "TEC-1", 0 ) -COMP( 1984, tecjmon, tec1, 0, tecjmon, tec1, tec1_state, empty_init, "Talking Electronics magazine", "TEC-1A with JMON", 0 ) +COMP( 1984, tec1, 0, 0, tec1, tec1, tec1_state, empty_init, "Talking Electronics magazine", "TEC-1", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, tecjmon, tec1, 0, tecjmon, tec1, tec1_state, empty_init, "Talking Electronics magazine", "TEC-1A with JMON", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/techno.cpp b/src/mame/drivers/techno.cpp index 13cb69af6ec..252a30c25d6 100644 --- a/src/mame/drivers/techno.cpp +++ b/src/mame/drivers/techno.cpp @@ -39,20 +39,20 @@ private: IRQ_ADVANCE_TIMER }; - DECLARE_READ16_MEMBER(key_r); - DECLARE_READ16_MEMBER(rtrg_r); - DECLARE_READ16_MEMBER(sound_r); - DECLARE_WRITE16_MEMBER(disp1_w); - DECLARE_WRITE16_MEMBER(disp2_w); - DECLARE_WRITE16_MEMBER(lamp1_w); - DECLARE_WRITE16_MEMBER(lamp2_w); - DECLARE_WRITE16_MEMBER(setout_w); - DECLARE_WRITE16_MEMBER(sol1_w); - DECLARE_WRITE16_MEMBER(sol2_w); - DECLARE_WRITE16_MEMBER(sound_w); - - DECLARE_READ8_MEMBER(rd_r) { return 0; } - DECLARE_WRITE8_MEMBER(wr_w) {} + uint16_t key_r(); + uint16_t rtrg_r(); + uint16_t sound_r(); + void disp1_w(uint16_t data); + void disp2_w(uint16_t data); + void lamp1_w(uint16_t data); + void lamp2_w(uint16_t data); + void setout_w(uint16_t data); + void sol1_w(uint16_t data); + void sol2_w(uint16_t data); + void sound_w(uint16_t data); + + uint8_t rd_r() { return 0; } + void wr_w(uint8_t data) {} void techno_map(address_map &map); void techno_sub_map(address_map &map); @@ -100,17 +100,17 @@ void techno_state::techno_sub_map(address_map &map) map(0xc000, 0xffff).rom(); // another 16k ROM } -WRITE16_MEMBER( techno_state::disp1_w ) +void techno_state::disp1_w(uint16_t data) { m_digits[m_digit] = bitswap<16>(data, 12, 10, 8, 14, 13, 9, 11, 15, 7, 6, 5, 4, 3, 2, 1, 0); } -WRITE16_MEMBER( techno_state::disp2_w ) +void techno_state::disp2_w(uint16_t data) { m_digits[m_digit+30] = bitswap<16>(data, 12, 10, 8, 14, 13, 9, 11, 15, 7, 6, 5, 4, 3, 2, 1, 0); } -WRITE16_MEMBER( techno_state::sound_w ) +void techno_state::sound_w(uint16_t data) { /* d0..d7 : to sound board @@ -132,7 +132,7 @@ d11-d15: AUX outputs } // lamps & keymatrix -WRITE16_MEMBER( techno_state::lamp1_w ) +void techno_state::lamp1_w(uint16_t data) { // Work out key row for (int i = 8; i < 16; i++) @@ -141,39 +141,39 @@ WRITE16_MEMBER( techno_state::lamp1_w ) } // more lamps -WRITE16_MEMBER( techno_state::lamp2_w ) +void techno_state::lamp2_w(uint16_t data) { } // solenoids -WRITE16_MEMBER( techno_state::sol1_w ) +void techno_state::sol1_w(uint16_t data) { } // more solenoids -WRITE16_MEMBER( techno_state::sol2_w ) +void techno_state::sol2_w(uint16_t data) { } // unknown -WRITE16_MEMBER( techno_state::setout_w ) +void techno_state::setout_w(uint16_t data) { } // inputs -READ16_MEMBER( techno_state::key_r ) +uint16_t techno_state::key_r() { return m_switch[m_keyrow]->read(); } // unknown -READ16_MEMBER( techno_state::rtrg_r ) +uint16_t techno_state::rtrg_r() { return 0xffff; } // feedback from sound board, and some AUX inputs -READ16_MEMBER( techno_state::sound_r ) +uint16_t techno_state::sound_r() { return 0; } diff --git a/src/mame/drivers/tecnbras.cpp b/src/mame/drivers/tecnbras.cpp index a7c1dbb964b..a20fa5332a3 100644 --- a/src/mame/drivers/tecnbras.cpp +++ b/src/mame/drivers/tecnbras.cpp @@ -42,11 +42,11 @@ private: virtual void machine_start() override; virtual void machine_reset() override; - DECLARE_WRITE8_MEMBER(set_x_position_w); - DECLARE_WRITE8_MEMBER(print_column_w); + void set_x_position_w(offs_t offset, uint8_t data); + void print_column_w(offs_t offset, uint8_t data); - //DECLARE_WRITE8_MEMBER(tecnbras_io_w); - //DECLARE_READ8_MEMBER(tecnbras_io_r); + //void tecnbras_io_w(uint8_t data); + //uint8_t tecnbras_io_r(); void i80c31_io(address_map &map); void i80c31_prg(address_map &map); @@ -70,12 +70,12 @@ void tecnbras_state::i80c31_io(address_map &map) map(0x06B8, 0x06BC).w(FUNC(tecnbras_state::print_column_w)); } -WRITE8_MEMBER(tecnbras_state::set_x_position_w) +void tecnbras_state::set_x_position_w(offs_t offset, uint8_t data) { m_xcoord = offset; } -WRITE8_MEMBER(tecnbras_state::print_column_w) +void tecnbras_state::print_column_w(offs_t offset, uint8_t data) { int const x = m_xcoord + offset; int const ch = x / 5; diff --git a/src/mame/drivers/tempest.cpp b/src/mame/drivers/tempest.cpp index b44f2e12f1c..52e999c1798 100644 --- a/src/mame/drivers/tempest.cpp +++ b/src/mame/drivers/tempest.cpp @@ -323,17 +323,17 @@ public: DECLARE_READ_LINE_MEMBER(clock_r); protected: - DECLARE_WRITE8_MEMBER(wdclr_w); - DECLARE_WRITE8_MEMBER(tempest_led_w); - DECLARE_WRITE8_MEMBER(tempest_coin_w); + void wdclr_w(uint8_t data); + void tempest_led_w(uint8_t data); + void tempest_coin_w(uint8_t data); uint8_t input_port_1_bit_r(offs_t offset); uint8_t input_port_2_bit_r(offs_t offset); - DECLARE_READ8_MEMBER(earom_read); - DECLARE_WRITE8_MEMBER(earom_write); - DECLARE_WRITE8_MEMBER(earom_control_w); + uint8_t earom_read(); + void earom_write(offs_t offset, uint8_t data); + void earom_control_w(uint8_t data); - DECLARE_READ8_MEMBER(rom_ae1f_r); + uint8_t rom_ae1f_r(); virtual void machine_start() override; void main_map(address_map &map); @@ -369,7 +369,7 @@ void tempest_state::machine_start() * *************************************/ -WRITE8_MEMBER(tempest_state::wdclr_w) +void tempest_state::wdclr_w(uint8_t data) { m_maincpu->set_input_line(0, CLEAR_LINE); m_watchdog->watchdog_reset(); @@ -418,7 +418,7 @@ uint8_t tempest_state::input_port_2_bit_r(offs_t offset) * *************************************/ -WRITE8_MEMBER(tempest_state::tempest_led_w) +void tempest_state::tempest_led_w(uint8_t data) { m_leds[0] = BIT(~data, 1); m_leds[1] = BIT(~data, 0); @@ -427,7 +427,7 @@ WRITE8_MEMBER(tempest_state::tempest_led_w) } -WRITE8_MEMBER(tempest_state::tempest_coin_w) +void tempest_state::tempest_coin_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, (data & 0x01)); machine().bookkeeping().coin_counter_w(1, (data & 0x02)); @@ -444,18 +444,18 @@ WRITE8_MEMBER(tempest_state::tempest_coin_w) * *************************************/ -READ8_MEMBER(tempest_state::earom_read) +uint8_t tempest_state::earom_read() { return m_earom->data(); } -WRITE8_MEMBER(tempest_state::earom_write) +void tempest_state::earom_write(offs_t offset, uint8_t data) { m_earom->set_address(offset & 0x3f); m_earom->set_data(data); } -WRITE8_MEMBER(tempest_state::earom_control_w) +void tempest_state::earom_control_w(uint8_t data) { // CK = EDB0, C1 = /EDB2, C2 = EDB1, CS1 = EDB3, /CS2 = GND m_earom->set_control(BIT(data, 3), 1, !BIT(data, 2), BIT(data, 1)); @@ -470,7 +470,7 @@ WRITE8_MEMBER(tempest_state::earom_control_w) * *************************************/ -READ8_MEMBER(tempest_state::rom_ae1f_r) +uint8_t tempest_state::rom_ae1f_r() { // This is needed to ensure that the routine starting at ae1c passes checks and does not corrupt data; // config.m_perfect_cpu_quantum = subtag("maincpu"); would be very taxing on this driver. diff --git a/src/mame/drivers/terak.cpp b/src/mame/drivers/terak.cpp index 032ed1a0443..d2b7d53141c 100644 --- a/src/mame/drivers/terak.cpp +++ b/src/mame/drivers/terak.cpp @@ -28,10 +28,10 @@ public: void terak(machine_config &config); private: - DECLARE_READ16_MEMBER(terak_fdc_status_r); - DECLARE_WRITE16_MEMBER(terak_fdc_command_w); - DECLARE_READ16_MEMBER(terak_fdc_data_r); - DECLARE_WRITE16_MEMBER(terak_fdc_data_w); + uint16_t terak_fdc_status_r(); + void terak_fdc_command_w(uint16_t data); + uint16_t terak_fdc_data_r(); + void terak_fdc_data_w(uint16_t data); uint32_t screen_update_terak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void mem_map(address_map &map); @@ -43,7 +43,7 @@ private: required_device<t11_device> m_maincpu; }; -READ16_MEMBER( terak_state::terak_fdc_status_r ) +uint16_t terak_state::terak_fdc_status_r() { logerror("terak_fdc_status_r\n"); if (m_cmd==3) @@ -54,20 +54,20 @@ READ16_MEMBER( terak_state::terak_fdc_status_r ) return 0; } -WRITE16_MEMBER( terak_state::terak_fdc_command_w ) +void terak_state::terak_fdc_command_w(uint16_t data) { m_unit = (data >> 8) & 0x03; m_cmd = (data >> 1) & 0x07; logerror("terak_fdc_command_w %04x [%d %d]\n",data,m_unit,m_cmd); } -READ16_MEMBER( terak_state::terak_fdc_data_r ) +uint16_t terak_state::terak_fdc_data_r() { logerror("terak_fdc_data_r\n"); return 0; } -WRITE16_MEMBER( terak_state::terak_fdc_data_w ) +void terak_state::terak_fdc_data_w(uint16_t data) { logerror("terak_fdc_data_w %04x\n",data); } diff --git a/src/mame/drivers/tgtpanic.cpp b/src/mame/drivers/tgtpanic.cpp index faeffcb562e..1077dbb4251 100644 --- a/src/mame/drivers/tgtpanic.cpp +++ b/src/mame/drivers/tgtpanic.cpp @@ -35,7 +35,7 @@ private: uint8_t m_color; - DECLARE_WRITE8_MEMBER(color_w); + void color_w(uint8_t data); virtual void machine_start() override; @@ -91,7 +91,7 @@ uint32_t tgtpanic_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm return 0; } -WRITE8_MEMBER(tgtpanic_state::color_w) +void tgtpanic_state::color_w(uint8_t data) { m_screen->update_partial(m_screen->vpos()); m_color = data; diff --git a/src/mame/drivers/thayers.cpp b/src/mame/drivers/thayers.cpp index 1b780bd057e..77ba8526a6d 100644 --- a/src/mame/drivers/thayers.cpp +++ b/src/mame/drivers/thayers.cpp @@ -80,29 +80,29 @@ private: int m_cart_present; int m_pr7820_enter; struct ssi263_t m_ssi263; - DECLARE_WRITE8_MEMBER(intrq_w); - DECLARE_READ8_MEMBER(irqstate_r); - DECLARE_WRITE8_MEMBER(timer_int_ack_w); - DECLARE_WRITE8_MEMBER(data_rdy_int_ack_w); + void intrq_w(uint8_t data); + uint8_t irqstate_r(); + void timer_int_ack_w(uint8_t data); + void data_rdy_int_ack_w(uint8_t data); void cop_d_w(uint8_t data); - DECLARE_READ8_MEMBER(cop_data_r); - DECLARE_WRITE8_MEMBER(cop_data_w); + uint8_t cop_data_r(); + void cop_data_w(uint8_t data); uint8_t cop_l_r(); void cop_l_w(uint8_t data); uint8_t cop_g_r(); - DECLARE_WRITE8_MEMBER(control_w); + void control_w(uint8_t data); void cop_g_w(uint8_t data); DECLARE_READ_LINE_MEMBER(kbdata_r); DECLARE_WRITE_LINE_MEMBER(kbclk_w); - DECLARE_WRITE8_MEMBER(control2_w); - DECLARE_READ8_MEMBER(dsw_b_r); - DECLARE_READ8_MEMBER(laserdsc_data_r); - DECLARE_WRITE8_MEMBER(laserdsc_data_w); - DECLARE_WRITE8_MEMBER(laserdsc_control_w); - DECLARE_WRITE8_MEMBER(den1_w); - DECLARE_WRITE8_MEMBER(den2_w); - DECLARE_WRITE8_MEMBER(ssi263_register_w); - DECLARE_READ8_MEMBER(ssi263_register_r); + void control2_w(uint8_t data); + uint8_t dsw_b_r(); + uint8_t laserdsc_data_r(); + void laserdsc_data_w(uint8_t data); + void laserdsc_control_w(uint8_t data); + void den1_w(uint8_t data); + void den2_w(uint8_t data); + void ssi263_register_w(offs_t offset, uint8_t data); + uint8_t ssi263_register_r(); virtual void machine_start() override; virtual void machine_reset() override; @@ -149,7 +149,7 @@ void thayers_state::check_interrupt() } } -WRITE8_MEMBER(thayers_state::intrq_w) +void thayers_state::intrq_w(uint8_t data) { // T = 1.1 * R30 * C53 = 1.1 * 750K * 0.01uF = 8.25 ms @@ -158,7 +158,7 @@ WRITE8_MEMBER(thayers_state::intrq_w) timer_set(attotime::from_usec(8250), TIMER_INTRQ_TICK); } -READ8_MEMBER(thayers_state::irqstate_r) +uint8_t thayers_state::irqstate_r() { /* @@ -178,7 +178,7 @@ READ8_MEMBER(thayers_state::irqstate_r) return m_cart_present << 6 | (m_data_rdy_int << 5) | (m_timer_int << 4) | 0x08 | (m_ssi_data_request << 2); } -WRITE8_MEMBER(thayers_state::timer_int_ack_w) +void thayers_state::timer_int_ack_w(uint8_t data) { if (LOG) logerror("%s %s TIMER INT ACK\n", machine().time().as_string(), machine().describe_context()); @@ -187,7 +187,7 @@ WRITE8_MEMBER(thayers_state::timer_int_ack_w) check_interrupt(); } -WRITE8_MEMBER(thayers_state::data_rdy_int_ack_w) +void thayers_state::data_rdy_int_ack_w(uint8_t data) { if (LOG) logerror("%s %s DATA RDY INT ACK\n", machine().time().as_string(), machine().describe_context()); @@ -226,7 +226,7 @@ void thayers_state::cop_d_w(uint8_t data) /* COP Communication */ -READ8_MEMBER(thayers_state::cop_data_r) +uint8_t thayers_state::cop_data_r() { if (!m_cop_data_latch_enable) { @@ -238,7 +238,7 @@ READ8_MEMBER(thayers_state::cop_data_r) } } -WRITE8_MEMBER(thayers_state::cop_data_w) +void thayers_state::cop_data_w(uint8_t data) { m_cop_data_latch = data; if (LOG) logerror("COP DATA %02x\n", m_cop_data_latch); @@ -278,7 +278,7 @@ uint8_t thayers_state::cop_g_r() return m_cop_cmd_latch; } -WRITE8_MEMBER(thayers_state::control_w) +void thayers_state::control_w(uint8_t data) { /* @@ -377,7 +377,7 @@ WRITE_LINE_MEMBER(thayers_state::kbclk_w) /* I/O Board */ -WRITE8_MEMBER(thayers_state::control2_w) +void thayers_state::control2_w(uint8_t data) { /* @@ -400,24 +400,24 @@ WRITE8_MEMBER(thayers_state::control2_w) } } -READ8_MEMBER(thayers_state::dsw_b_r) +uint8_t thayers_state::dsw_b_r() { return (ioport("COIN")->read() & 0xf0) | (ioport("DSWB")->read() & 0x0f); } -READ8_MEMBER(thayers_state::laserdsc_data_r) +uint8_t thayers_state::laserdsc_data_r() { if (m_ldv1000 != nullptr) return m_ldv1000->status_r(); if (m_pr7820 != nullptr) return m_pr7820->data_r(); return 0; } -WRITE8_MEMBER(thayers_state::laserdsc_data_w) +void thayers_state::laserdsc_data_w(uint8_t data) { m_laserdisc_data = data; } -WRITE8_MEMBER(thayers_state::laserdsc_control_w) +void thayers_state::laserdsc_control_w(uint8_t data) { /* @@ -453,7 +453,7 @@ WRITE8_MEMBER(thayers_state::laserdsc_control_w) } } -WRITE8_MEMBER(thayers_state::den1_w) +void thayers_state::den1_w(uint8_t data) { /* @@ -473,7 +473,7 @@ WRITE8_MEMBER(thayers_state::den1_w) m_digits[data >> 4] = led_map[data & 0x0f]; } -WRITE8_MEMBER(thayers_state::den2_w) +void thayers_state::den2_w(uint8_t data) { /* @@ -511,7 +511,7 @@ static const char SSI263_PHONEMES[0x40][5] = "L", "L1", "LF", "W", "B", "D", "KV", "P", "T", "K", "HV", "HVC", "HF", "HFC", "HN", "Z", "S", "J", "SCH", "V", "F", "THV", "TH", "M", "N", "NG", ":A", ":OH", ":U", ":UH", "E2", "LB" }; -WRITE8_MEMBER(thayers_state::ssi263_register_w) +void thayers_state::ssi263_register_w(offs_t offset, uint8_t data) { struct ssi263_t &ssi263 = m_ssi263; switch (offset) @@ -614,7 +614,7 @@ WRITE8_MEMBER(thayers_state::ssi263_register_w) } } -READ8_MEMBER(thayers_state::ssi263_register_r) +uint8_t thayers_state::ssi263_register_r() { // D7 becomes an output, as the inverted state of A/_R. The register address bits are ignored. diff --git a/src/mame/drivers/thedealr.cpp b/src/mame/drivers/thedealr.cpp index 2519435c9fd..f84827ab4de 100644 --- a/src/mame/drivers/thedealr.cpp +++ b/src/mame/drivers/thedealr.cpp @@ -57,15 +57,15 @@ public: private: // IOX - DECLARE_READ8_MEMBER(iox_r); - DECLARE_WRITE8_MEMBER(iox_w); - DECLARE_READ8_MEMBER(iox_status_r); + uint8_t iox_r(); + void iox_w(uint8_t data); + uint8_t iox_status_r(); uint8_t m_iox_cmd, m_iox_ret, m_iox_status, m_iox_leds, m_iox_coins; void iox_reset(); // memory map - DECLARE_READ8_MEMBER(irq_ack_r); - DECLARE_WRITE8_MEMBER(unk_w); + uint8_t irq_ack_r(); + void unk_w(uint8_t data); // machine TIMER_DEVICE_CALLBACK_MEMBER(thedealr_interrupt); @@ -150,7 +150,7 @@ void thedealr_state::machine_reset() } // 3400 -READ8_MEMBER(thedealr_state::iox_r) +uint8_t thedealr_state::iox_r() { uint8_t ret = m_iox_ret; m_iox_status &= ~IOX_OUT_FULL; @@ -158,7 +158,7 @@ READ8_MEMBER(thedealr_state::iox_r) logerror("%s: IOX read %02X\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(thedealr_state::iox_w) +void thedealr_state::iox_w(uint8_t data) { if (m_iox_status & IOX_WAITDATA) { @@ -253,7 +253,7 @@ WRITE8_MEMBER(thedealr_state::iox_w) } // 3401 -READ8_MEMBER(thedealr_state::iox_status_r) +uint8_t thedealr_state::iox_status_r() { // bit 0 - Out buff full? // bit 1 - In buff full? @@ -267,13 +267,13 @@ READ8_MEMBER(thedealr_state::iox_status_r) ***************************************************************************/ -READ8_MEMBER(thedealr_state::irq_ack_r) +uint8_t thedealr_state::irq_ack_r() { m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); return 0; } -WRITE8_MEMBER(thedealr_state::unk_w) +void thedealr_state::unk_w(uint8_t data) { // bit 1 - ? 1 during game // bit 2 - ? 0 during game diff --git a/src/mame/drivers/ti990_4.cpp b/src/mame/drivers/ti990_4.cpp index b51fe1edf50..ffa4c58fe4b 100644 --- a/src/mame/drivers/ti990_4.cpp +++ b/src/mame/drivers/ti990_4.cpp @@ -62,8 +62,8 @@ public: void init_ti990_4v(); private: - DECLARE_READ8_MEMBER( panel_read ); - DECLARE_WRITE8_MEMBER( panel_write ); + uint8_t panel_read(offs_t offset); + void panel_write(offs_t offset, uint8_t data); void external_operation(offs_t offset, uint8_t data); uint8_t interrupt_level(); DECLARE_WRITE_LINE_MEMBER( fd_interrupt ); @@ -113,7 +113,7 @@ void ti990_4_state::device_timer(emu_timer &timer, device_timer_id id, int param logerror("ti990_4: Released LOAD interrupt\n"); } -READ8_MEMBER( ti990_4_state::panel_read ) +uint8_t ti990_4_state::panel_read(offs_t offset) { if (offset == 11 || offset == 14) return 1; @@ -121,7 +121,7 @@ READ8_MEMBER( ti990_4_state::panel_read ) return 0; } -WRITE8_MEMBER( ti990_4_state::panel_write ) +void ti990_4_state::panel_write(offs_t offset, uint8_t data) { logerror("ti990_4: writing to panel @CRU %04x: %02x\n", offset<<1, data); } diff --git a/src/mame/drivers/ti99_2.cpp b/src/mame/drivers/ti99_2.cpp index 3fcd0dc9e38..ebbefc6d042 100644 --- a/src/mame/drivers/ti99_2.cpp +++ b/src/mame/drivers/ti99_2.cpp @@ -209,7 +209,7 @@ public: void driver_reset() override; private: - DECLARE_WRITE8_MEMBER(intflag_write); + void intflag_write(offs_t offset, uint8_t data); uint8_t mem_read(offs_t offset); void mem_write(offs_t offset, uint8_t data); @@ -288,7 +288,7 @@ void ti99_2_state::crumap(address_map &map) These CRU addresses are actually inside the 9995 CPU, but they are propagated to the outside world, so we can watch the changes. */ -WRITE8_MEMBER(ti99_2_state::intflag_write) +void ti99_2_state::intflag_write(offs_t offset, uint8_t data) { int addr = 0x1ee0 | (offset<<1); switch (addr) diff --git a/src/mame/drivers/tickee.cpp b/src/mame/drivers/tickee.cpp index 94a9543181b..076043c17f6 100644 --- a/src/mame/drivers/tickee.cpp +++ b/src/mame/drivers/tickee.cpp @@ -75,16 +75,16 @@ private: uint8_t m_gunx[2]; void get_crosshair_xy(int player, int &x, int &y); - DECLARE_WRITE16_MEMBER(rapidfir_transparent_w); - DECLARE_READ16_MEMBER(rapidfir_transparent_r); - DECLARE_WRITE16_MEMBER(tickee_control_w); - DECLARE_READ16_MEMBER(ffff_r); - DECLARE_READ16_MEMBER(rapidfir_gun1_r); - DECLARE_READ16_MEMBER(rapidfir_gun2_r); - DECLARE_READ16_MEMBER(ff7f_r); - DECLARE_WRITE16_MEMBER(ff7f_w); - DECLARE_WRITE16_MEMBER(rapidfir_control_w); - DECLARE_WRITE16_MEMBER(sound_bank_w); + void rapidfir_transparent_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t rapidfir_transparent_r(offs_t offset); + void tickee_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t ffff_r(); + uint16_t rapidfir_gun1_r(); + uint16_t rapidfir_gun2_r(); + uint16_t ff7f_r(); + void ff7f_w(uint16_t data); + void rapidfir_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void sound_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); DECLARE_MACHINE_RESET(tickee); DECLARE_VIDEO_START(tickee); DECLARE_MACHINE_RESET(rapidfir); @@ -298,7 +298,7 @@ MACHINE_RESET_MEMBER(tickee_state,rapidfir) * *************************************/ -WRITE16_MEMBER(tickee_state::rapidfir_transparent_w) +void tickee_state::rapidfir_transparent_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (!(data & 0xff00)) mem_mask &= 0x00ff; if (!(data & 0x00ff)) mem_mask &= 0xff00; @@ -306,7 +306,7 @@ WRITE16_MEMBER(tickee_state::rapidfir_transparent_w) } -READ16_MEMBER(tickee_state::rapidfir_transparent_r) +uint16_t tickee_state::rapidfir_transparent_r(offs_t offset) { return m_vram[offset]; } @@ -333,7 +333,7 @@ TMS340X0_FROM_SHIFTREG_CB_MEMBER(tickee_state::rapidfir_from_shiftreg) * *************************************/ -WRITE16_MEMBER(tickee_state::tickee_control_w) +void tickee_state::tickee_control_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint16_t olddata = m_control[offset]; @@ -364,36 +364,36 @@ WRITE16_MEMBER(tickee_state::tickee_control_w) * *************************************/ -READ16_MEMBER(tickee_state::ffff_r) +uint16_t tickee_state::ffff_r() { return 0xffff; } -READ16_MEMBER(tickee_state::rapidfir_gun1_r) +uint16_t tickee_state::rapidfir_gun1_r() { return m_gunx[0]; } -READ16_MEMBER(tickee_state::rapidfir_gun2_r) +uint16_t tickee_state::rapidfir_gun2_r() { return m_gunx[1]; } -READ16_MEMBER(tickee_state::ff7f_r) +uint16_t tickee_state::ff7f_r() { /* Ticket dispenser status? */ return 0xff7f; } -WRITE16_MEMBER(tickee_state::ff7f_w) +void tickee_state::ff7f_w(uint16_t data) { /* Ticket dispenser output? */ } -WRITE16_MEMBER(tickee_state::rapidfir_control_w) +void tickee_state::rapidfir_control_w(offs_t offset, uint16_t data, uint16_t mem_mask) { /* other bits like control on tickee? */ if (ACCESSING_BITS_0_7) @@ -408,7 +408,7 @@ WRITE16_MEMBER(tickee_state::rapidfir_control_w) * *************************************/ -WRITE16_MEMBER(tickee_state::sound_bank_w) +void tickee_state::sound_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask) { switch (data & 0xff) { diff --git a/src/mame/drivers/tim011.cpp b/src/mame/drivers/tim011.cpp index d24b12c2b40..3f44222ce2c 100644 --- a/src/mame/drivers/tim011.cpp +++ b/src/mame/drivers/tim011.cpp @@ -36,11 +36,11 @@ private: virtual void machine_reset() override; virtual void video_start() override; uint32_t screen_update_tim011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_WRITE8_MEMBER(print_w); - DECLARE_WRITE8_MEMBER(scroll_w); - DECLARE_WRITE8_MEMBER(fdc_dma_w); - DECLARE_READ8_MEMBER(print_r); - DECLARE_READ8_MEMBER(scroll_r); + void print_w(uint8_t data); + void scroll_w(uint8_t data); + void fdc_dma_w(uint8_t data); + uint8_t print_r(); + uint8_t scroll_r(); uint8_t m_scroll; required_device<cpu_device> m_maincpu; @@ -94,28 +94,28 @@ uint32_t tim011_state::screen_update_tim011(screen_device &screen, bitmap_ind16 return 0; } -WRITE8_MEMBER(tim011_state::fdc_dma_w) +void tim011_state::fdc_dma_w(uint8_t data) { printf("fdc_dma_w :%02x\n",data); } -WRITE8_MEMBER(tim011_state::print_w) +void tim011_state::print_w(uint8_t data) { //printf("print_w :%02x\n",data); } -READ8_MEMBER(tim011_state::print_r) +uint8_t tim011_state::print_r() { //printf("print_r\n"); return 0; } -WRITE8_MEMBER(tim011_state::scroll_w) +void tim011_state::scroll_w(uint8_t data) { m_scroll = data; } -READ8_MEMBER(tim011_state::scroll_r) +uint8_t tim011_state::scroll_r() { return m_scroll; } diff --git a/src/mame/drivers/tk80.cpp b/src/mame/drivers/tk80.cpp index 28dd24614e4..41afcce9597 100644 --- a/src/mame/drivers/tk80.cpp +++ b/src/mame/drivers/tk80.cpp @@ -78,8 +78,8 @@ private: uint8_t serial_r(); void serial_w(uint8_t data); void mikrolab_serial_w(uint8_t data); - DECLARE_READ8_MEMBER(display_r); - DECLARE_WRITE8_MEMBER(display_w); + uint8_t display_r(offs_t offset); + void display_w(offs_t offset, uint8_t data); void ics8080_mem(address_map &map); void mikrolab_io(address_map &map); @@ -111,12 +111,12 @@ void tk80_state::machine_start() save_item(NAME(m_ppi_portc)); } -READ8_MEMBER( tk80_state::display_r ) +uint8_t tk80_state::display_r(offs_t offset) { return m_digit[offset & 0x7]; } -WRITE8_MEMBER( tk80_state::display_w ) +void tk80_state::display_w(offs_t offset, uint8_t data) { m_digit[offset & 0x7] = data; } diff --git a/src/mame/drivers/tm990189.cpp b/src/mame/drivers/tm990189.cpp index 7303370e7b4..c5d4b5e01a3 100644 --- a/src/mame/drivers/tm990189.cpp +++ b/src/mame/drivers/tm990189.cpp @@ -101,10 +101,10 @@ public: DECLARE_INPUT_CHANGED_MEMBER( load_interrupt ); private: - DECLARE_READ8_MEMBER(video_vdp_r); - DECLARE_WRITE8_MEMBER(video_vdp_w); - DECLARE_READ8_MEMBER(video_joy_r); - DECLARE_WRITE8_MEMBER(video_joy_w); + uint8_t video_vdp_r(offs_t offset); + void video_vdp_w(offs_t offset, uint8_t data); + uint8_t video_joy_r(); + void video_joy_w(uint8_t data); void external_operation(offs_t offset, uint8_t data); @@ -587,7 +587,7 @@ void tm990189_state::external_operation(offs_t offset, uint8_t data) Video Board handling */ -READ8_MEMBER( tm990189_state::video_vdp_r ) +uint8_t tm990189_state::video_vdp_r(offs_t offset) { int reply = 0; @@ -618,7 +618,7 @@ READ8_MEMBER( tm990189_state::video_vdp_r ) return reply; } -WRITE8_MEMBER( tm990189_state::video_vdp_w ) +void tm990189_state::video_vdp_w(offs_t offset, uint8_t data) { if (offset & 1) { @@ -629,7 +629,7 @@ WRITE8_MEMBER( tm990189_state::video_vdp_w ) } } -READ8_MEMBER( tm990189_state::video_joy_r ) +uint8_t tm990189_state::video_joy_r() { uint8_t data = ioport("BUTTONS")->read(); @@ -648,7 +648,7 @@ READ8_MEMBER( tm990189_state::video_joy_r ) return data; } -WRITE8_MEMBER( tm990189_state::video_joy_w ) +void tm990189_state::video_joy_w(uint8_t data) { m_joy1x_timer->reset(attotime::from_usec(ioport("JOY1_X")->read()*28+28)); m_joy1y_timer->reset(attotime::from_usec(ioport("JOY1_Y")->read()*28+28)); diff --git a/src/mame/drivers/tmaster.cpp b/src/mame/drivers/tmaster.cpp index 0c84029c299..7e4445a9e98 100644 --- a/src/mame/drivers/tmaster.cpp +++ b/src/mame/drivers/tmaster.cpp @@ -140,8 +140,8 @@ private: DECLARE_WRITE_LINE_MEMBER(duart_irq_handler); - DECLARE_READ16_MEMBER(rtc_r); - DECLARE_WRITE16_MEMBER(rtc_w); + uint16_t rtc_r(offs_t offset); + void rtc_w(offs_t offset, uint16_t data); void tmaster_map(address_map &map); void cpu_space_map(address_map &map); @@ -232,7 +232,7 @@ uint8_t binary_to_bcd(uint8_t data) return ((data / 10) << 4) | (data % 10); } -READ16_MEMBER(tmaster_state::rtc_r) +uint16_t tmaster_state::rtc_r(offs_t offset) { system_time systime; @@ -248,7 +248,7 @@ READ16_MEMBER(tmaster_state::rtc_r) return m_rtc_ram[offset]; } -WRITE16_MEMBER(tmaster_state::rtc_w) +void tmaster_state::rtc_w(offs_t offset, uint16_t data) { if ( offset == 0 ) { diff --git a/src/mame/drivers/tmmjprd.cpp b/src/mame/drivers/tmmjprd.cpp index 16a39d24ac1..4315b0c991c 100644 --- a/src/mame/drivers/tmmjprd.cpp +++ b/src/mame/drivers/tmmjprd.cpp @@ -95,15 +95,15 @@ private: emu_timer *m_blit_done_timer; #endif - template<uint8_t Tilemap> DECLARE_WRITE32_MEMBER(tilemap_w); - template<uint8_t Tilemap> DECLARE_READ32_MEMBER(tilemap_r); - DECLARE_READ32_MEMBER(randomtmmjprds); - DECLARE_READ32_MEMBER(mux_r); - template<uint8_t Number> DECLARE_WRITE32_MEMBER(brt_w); - DECLARE_WRITE32_MEMBER(eeprom_write); + template<uint8_t Tilemap> void tilemap_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + template<uint8_t Tilemap> uint32_t tilemap_r(offs_t offset); + uint32_t randomtmmjprds(); + uint32_t mux_r(); + template<uint8_t Number> void brt_w(uint32_t data); + void eeprom_write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); #if EMULATE_BLITTER - DECLARE_WRITE32_MEMBER(blitter_w); + void blitter_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); void do_blit(); #endif @@ -124,7 +124,7 @@ private: }; template<uint8_t Tilemap> -WRITE32_MEMBER(tmmjprd_state::tilemap_w) +void tmmjprd_state::tilemap_w(offs_t offset, uint32_t data, uint32_t mem_mask) { COMBINE_DATA(&m_tilemap_ram[Tilemap][offset]); } @@ -382,12 +382,12 @@ void tmmjprd_state::video_start() } template<uint8_t Tilemap> -READ32_MEMBER(tmmjprd_state::tilemap_r) +uint32_t tmmjprd_state::tilemap_r(offs_t offset) { return m_tilemap_ram[Tilemap][offset]; } -READ32_MEMBER(tmmjprd_state::randomtmmjprds) +uint32_t tmmjprd_state::randomtmmjprds() { return 0x0000;//machine().rand(); } @@ -497,7 +497,7 @@ void tmmjprd_state::do_blit() -WRITE32_MEMBER(tmmjprd_state::blitter_w) +void tmmjprd_state::blitter_w(offs_t offset, uint32_t data, uint32_t mem_mask) { COMBINE_DATA(&m_blitterregs[offset]); @@ -518,7 +518,7 @@ void tmmjprd_state::machine_start() save_item(NAME(m_system_in)); } -WRITE32_MEMBER(tmmjprd_state::eeprom_write) +void tmmjprd_state::eeprom_write(offs_t offset, uint32_t data, uint32_t mem_mask) { // don't disturb the EEPROM if we're not actually writing to it // (in particular, data & 0x100 here with mask = ffff00ff looks to be the watchdog) @@ -538,7 +538,7 @@ WRITE32_MEMBER(tmmjprd_state::eeprom_write) } } -READ32_MEMBER(tmmjprd_state::mux_r) +uint32_t tmmjprd_state::mux_r() { m_system_in = m_system->read(); @@ -646,7 +646,7 @@ INPUT_PORTS_END /* notice that data & 0x4 is always cleared on brt_1 and set on brt_2. * * My wild guess is that bits 0,1 and 2 controls what palette entries to dim. */ template<uint8_t Number> -WRITE32_MEMBER(tmmjprd_state::brt_w) +void tmmjprd_state::brt_w(uint32_t data) { data>>=24; double brt = ((data & 0x78)>>3) / 15.0; diff --git a/src/mame/drivers/tmspoker.cpp b/src/mame/drivers/tmspoker.cpp index 861b5d2fdba..a6f2efe0fb6 100644 --- a/src/mame/drivers/tmspoker.cpp +++ b/src/mame/drivers/tmspoker.cpp @@ -247,8 +247,8 @@ private: required_device_array<ls259_device, 4> m_outlatch; required_ioport_array<3> m_inputs; - DECLARE_WRITE8_MEMBER(tmspoker_videoram_w); - //DECLARE_WRITE8_MEMBER(debug_w); + void tmspoker_videoram_w(offs_t offset, uint8_t data); + //void debug_w(uint8_t data); uint8_t inputs_r(offs_t offset); TILE_GET_INFO_MEMBER(get_bg_tile_info); void tmspoker_palette(palette_device &palette) const; @@ -264,7 +264,7 @@ private: * Video Hardware * *************************/ -WRITE8_MEMBER(tmspoker_state::tmspoker_videoram_w) +void tmspoker_state::tmspoker_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); @@ -304,7 +304,7 @@ void tmspoker_state::tmspoker_palette(palette_device &palette) const * Read / Write Handlers * **************************/ -//WRITE8_MEMBER(tmspoker_state::debug_w) +//void tmspoker_state::debug_w(uint8_t data) //{ // popmessage("written : %02X", data); //} diff --git a/src/mame/drivers/toki_ms.cpp b/src/mame/drivers/toki_ms.cpp index 947f69fc1c5..1794603f2b7 100644 --- a/src/mame/drivers/toki_ms.cpp +++ b/src/mame/drivers/toki_ms.cpp @@ -313,15 +313,15 @@ private: TILE_GET_INFO_MEMBER(get_bk2_info); TILE_GET_INFO_MEMBER(get_tile_info); void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); - DECLARE_WRITE16_MEMBER(bk1vram_w); - DECLARE_WRITE16_MEMBER(bk2vram_w); - DECLARE_WRITE16_MEMBER(vram_w); + void bk1vram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void bk2vram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void vram_w(offs_t offset, u16 data, u16 mem_mask = ~0); tilemap_t *m_bk1_tilemap; tilemap_t *m_bk2_tilemap; tilemap_t *m_tx_tilemap; - DECLARE_READ8_MEMBER(palette_r); - DECLARE_WRITE8_MEMBER(palette_w); + u8 palette_r(offs_t offset); + void palette_w(offs_t offset, u8 data); std::unique_ptr<u8 []> m_paletteram; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -329,9 +329,9 @@ private: void tokims_map(address_map &map); void audio_map(address_map &map); - DECLARE_READ8_MEMBER(sound_status_r); - DECLARE_WRITE8_MEMBER(sound_command_w); - DECLARE_WRITE8_MEMBER(adpcm_w); + u8 sound_status_r(); + void sound_command_w(u8 data); + void adpcm_w(u8 data); DECLARE_WRITE_LINE_MEMBER(adpcm_int); u8 m_adpcm_data; }; @@ -457,30 +457,30 @@ uint32_t toki_ms_state::screen_update(screen_device &screen, bitmap_ind16 &bitma return 0; } -WRITE16_MEMBER(toki_ms_state::bk1vram_w) +void toki_ms_state::bk1vram_w(offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_bk1vram[offset]); m_bk1_tilemap->mark_tile_dirty(offset); } -WRITE16_MEMBER(toki_ms_state::bk2vram_w) +void toki_ms_state::bk2vram_w(offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_bk2vram[offset]); m_bk2_tilemap->mark_tile_dirty(offset); } -WRITE16_MEMBER(toki_ms_state::vram_w) +void toki_ms_state::vram_w(offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_vram[offset]); m_tx_tilemap->mark_tile_dirty(offset); } -READ8_MEMBER(toki_ms_state::palette_r) +u8 toki_ms_state::palette_r(offs_t offset) { return m_paletteram[offset]; } -WRITE8_MEMBER(toki_ms_state::palette_w) +void toki_ms_state::palette_w(offs_t offset, u8 data) { m_paletteram[offset] = data; // xBGR444 over an 8-bit bus @@ -493,7 +493,7 @@ WRITE8_MEMBER(toki_ms_state::palette_w) m_palette->set_pen_color(pal_entry, pal4bit(r),pal4bit(g),pal4bit(b)); } -READ8_MEMBER(toki_ms_state::sound_status_r) +u8 toki_ms_state::sound_status_r() { // if non-zero skips new command, either soundlatch readback or audiocpu handshake return 0; @@ -501,7 +501,7 @@ READ8_MEMBER(toki_ms_state::sound_status_r) // TODO: remove this trampoline after confirming it just writes to the sound latch // (definitely it isn't tied to irq 0) -WRITE8_MEMBER(toki_ms_state::sound_command_w) +void toki_ms_state::sound_command_w(u8 data) { m_soundlatch->write(data & 0xff); } @@ -524,7 +524,7 @@ void toki_ms_state::tokims_map(address_map &map) map(0x0c000e, 0x0c000f).rw(FUNC(toki_ms_state::sound_status_r), FUNC(toki_ms_state::sound_command_w)).umask16(0x00ff); } -WRITE8_MEMBER(toki_ms_state::adpcm_w) +void toki_ms_state::adpcm_w(u8 data) { // membank("sound_bank")->set_entry(((data & 0x10) >> 4) ^ 1); m_msm->reset_w(BIT(data, 4)); @@ -811,13 +811,13 @@ ROM_END void toki_ms_state::init_tokims() { // copied verbatim from toki.cpp - uint8_t temp[0x20000]; + u8 temp[0x20000]; int len = memregion("gfx3")->bytes(); - uint8_t *rom = memregion("gfx3")->base(); + u8 *rom = memregion("gfx3")->base(); for (int offs = 0; offs < len; offs += 0x20000) { - uint8_t *base = &rom[offs]; + u8 *base = &rom[offs]; memcpy (&temp[0], base, 65536 * 2); for (int i = 0; i < 16; i++) { @@ -832,7 +832,7 @@ void toki_ms_state::init_tokims() rom = memregion("gfx4")->base(); for (int offs = 0; offs < len; offs += 0x20000) { - uint8_t *base = &rom[offs]; + u8 *base = &rom[offs]; memcpy (&temp[0], base, 65536 * 2); for (int i = 0; i < 16; i++) { diff --git a/src/mame/drivers/tomcat.cpp b/src/mame/drivers/tomcat.cpp index c8b1e3503d5..169698b6da5 100644 --- a/src/mame/drivers/tomcat.cpp +++ b/src/mame/drivers/tomcat.cpp @@ -60,22 +60,22 @@ public: void tomcat(machine_config &config); private: - DECLARE_WRITE8_MEMBER(adcon_w); - DECLARE_READ16_MEMBER(tomcat_inputs_r); - DECLARE_WRITE16_MEMBER(main_latch_w); + void adcon_w(uint8_t data); + uint16_t tomcat_inputs_r(offs_t offset, uint16_t mem_mask = ~0); + void main_latch_w(offs_t offset, uint16_t data); DECLARE_WRITE_LINE_MEMBER(lnkmode_w); DECLARE_WRITE_LINE_MEMBER(err_w); DECLARE_WRITE_LINE_MEMBER(ack_w); DECLARE_WRITE_LINE_MEMBER(txbuff_w); DECLARE_WRITE_LINE_MEMBER(sndres_w); DECLARE_WRITE_LINE_MEMBER(mres_w); - DECLARE_WRITE16_MEMBER(tomcat_irqclr_w); - DECLARE_READ16_MEMBER(tomcat_inputs2_r); - DECLARE_READ16_MEMBER(tomcat_320bio_r); - DECLARE_READ8_MEMBER(tomcat_nvram_r); - DECLARE_WRITE8_MEMBER(tomcat_nvram_w); + void tomcat_irqclr_w(uint16_t data); + uint16_t tomcat_inputs2_r(); + uint16_t tomcat_320bio_r(); + uint8_t tomcat_nvram_r(offs_t offset); + void tomcat_nvram_w(offs_t offset, uint8_t data); DECLARE_READ_LINE_MEMBER(dsp_bio_r); - DECLARE_WRITE8_MEMBER(soundlatches_w); + void soundlatches_w(offs_t offset, uint8_t data); virtual void machine_start() override; void dsp_map(address_map &map); void sound_map(address_map &map); @@ -95,13 +95,13 @@ private: -WRITE8_MEMBER(tomcat_state::adcon_w) +void tomcat_state::adcon_w(uint8_t data) { m_adc->address_w(data & 7); m_adc->start_w(BIT(data, 3)); } -READ16_MEMBER(tomcat_state::tomcat_inputs_r) +uint16_t tomcat_state::tomcat_inputs_r(offs_t offset, uint16_t mem_mask) { uint16_t result = 0; if (ACCESSING_BITS_8_15) @@ -110,7 +110,7 @@ READ16_MEMBER(tomcat_state::tomcat_inputs_r) return result; } -WRITE16_MEMBER(tomcat_state::main_latch_w) +void tomcat_state::main_latch_w(offs_t offset, uint16_t data) { // A1-A3 = address, A4 = data m_mainlatch->write_bit(offset & 7, BIT(offset, 3)); @@ -155,13 +155,13 @@ WRITE_LINE_MEMBER(tomcat_state::mres_w) m_dsp->set_input_line(INPUT_LINE_RESET, state ? CLEAR_LINE : ASSERT_LINE); } -WRITE16_MEMBER(tomcat_state::tomcat_irqclr_w) +void tomcat_state::tomcat_irqclr_w(uint16_t data) { // Clear IRQ Latch (Address Strobe) m_maincpu->set_input_line(1, CLEAR_LINE); } -READ16_MEMBER(tomcat_state::tomcat_inputs2_r) +uint16_t tomcat_state::tomcat_inputs2_r() { /* * D15 LNKFLAG (Game Link) @@ -176,7 +176,7 @@ READ16_MEMBER(tomcat_state::tomcat_inputs2_r) return m_dsp_idle ? 0 : (1 << 9); } -READ16_MEMBER(tomcat_state::tomcat_320bio_r) +uint16_t tomcat_state::tomcat_320bio_r() { m_dsp_bio = 1; m_maincpu->suspend(SUSPEND_REASON_SPIN, 1); @@ -215,12 +215,12 @@ READ_LINE_MEMBER(tomcat_state::dsp_bio_r) } } -READ8_MEMBER(tomcat_state::tomcat_nvram_r) +uint8_t tomcat_state::tomcat_nvram_r(offs_t offset) { return m_nvram[offset]; } -WRITE8_MEMBER(tomcat_state::tomcat_nvram_w) +void tomcat_state::tomcat_nvram_w(offs_t offset, uint8_t data) { m_nvram[offset] = data; } @@ -247,7 +247,7 @@ void tomcat_state::dsp_map(address_map &map) } -WRITE8_MEMBER(tomcat_state::soundlatches_w) +void tomcat_state::soundlatches_w(offs_t offset, uint8_t data) { switch(offset) { diff --git a/src/mame/drivers/toratora.cpp b/src/mame/drivers/toratora.cpp index 639f8ad548e..805860a038f 100644 --- a/src/mame/drivers/toratora.cpp +++ b/src/mame/drivers/toratora.cpp @@ -80,9 +80,9 @@ private: required_device<pia6821_device> m_pia_u1; required_device<pia6821_device> m_pia_u2; required_device<pia6821_device> m_pia_u3; - DECLARE_WRITE8_MEMBER(clear_tv_w); - DECLARE_READ8_MEMBER(timer_r); - DECLARE_WRITE8_MEMBER(clear_timer_w); + void clear_tv_w(uint8_t data); + uint8_t timer_r(); + void clear_timer_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(cb2_u2_w); void port_b_u1_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(main_cpu_irq); @@ -151,7 +151,7 @@ uint32_t toratora_state::screen_update_toratora(screen_device &screen, bitmap_rg } -WRITE8_MEMBER(toratora_state::clear_tv_w) +void toratora_state::clear_tv_w(uint8_t data) { m_clear_tv = 1; } @@ -206,12 +206,12 @@ INTERRUPT_GEN_MEMBER(toratora_state::toratora_timer) m_pia_u1->ca2_w(ioport("INPUT")->read() & 0x20); } -READ8_MEMBER(toratora_state::timer_r) +uint8_t toratora_state::timer_r() { return m_timer; } -WRITE8_MEMBER(toratora_state::clear_timer_w) +void toratora_state::clear_timer_w(uint8_t data) { m_timer = 0; m_maincpu->set_input_line(0, CLEAR_LINE); diff --git a/src/mame/drivers/tosh1000.cpp b/src/mame/drivers/tosh1000.cpp index 5b8c4ff2d35..692f2b979f2 100644 --- a/src/mame/drivers/tosh1000.cpp +++ b/src/mame/drivers/tosh1000.cpp @@ -78,11 +78,10 @@ public: private: DECLARE_MACHINE_RESET(tosh1000); - DECLARE_WRITE8_MEMBER(romdos_bank_w); - DECLARE_READ8_MEMBER(romdos_bank_r); + void romdos_bank_w(uint8_t data); - DECLARE_WRITE8_MEMBER(bram_w); - DECLARE_READ8_MEMBER(bram_r); + void bram_w(offs_t offset, uint8_t data); + uint8_t bram_r(offs_t offset); static void cfg_fdc_35(device_t *device); void tosh1000_io(address_map &map); @@ -116,7 +115,7 @@ MACHINE_RESET_MEMBER(tosh1000_state, tosh1000) } -WRITE8_MEMBER(tosh1000_state::romdos_bank_w) +void tosh1000_state::romdos_bank_w(uint8_t data) { LOGDBG("ROM-DOS <- %02x (%s, accessing bank %d)\n", data, BIT(data, 7)?"enable":"disable", data&7); @@ -130,7 +129,7 @@ WRITE8_MEMBER(tosh1000_state::romdos_bank_w) } } -WRITE8_MEMBER(tosh1000_state::bram_w) +void tosh1000_state::bram_w(offs_t offset, uint8_t data) { LOGDBG("BRAM %02x <- %02x\n", 0xc0 + offset, data); @@ -177,7 +176,7 @@ WRITE8_MEMBER(tosh1000_state::bram_w) } } -READ8_MEMBER(tosh1000_state::bram_r) +uint8_t tosh1000_state::bram_r(offs_t offset) { uint8_t data = 0; diff --git a/src/mame/drivers/toypop.cpp b/src/mame/drivers/toypop.cpp index 88a0e828317..b257d003dd1 100644 --- a/src/mame/drivers/toypop.cpp +++ b/src/mame/drivers/toypop.cpp @@ -88,25 +88,25 @@ private: TIMER_DEVICE_CALLBACK_MEMBER(master_scanline); DECLARE_WRITE_LINE_MEMBER(slave_vblank_irq); - DECLARE_READ8_MEMBER(irq_enable_r); - DECLARE_WRITE8_MEMBER(irq_disable_w); - DECLARE_WRITE8_MEMBER(irq_ctrl_w); + uint8_t irq_enable_r(); + void irq_disable_w(uint8_t data); + void irq_ctrl_w(offs_t offset, uint8_t data); void toypop_palette(palette_device &palette) const; uint8_t dipA_l(); uint8_t dipA_h(); uint8_t dipB_l(); uint8_t dipB_h(); - //DECLARE_WRITE8_MEMBER(out_coin0); - //DECLARE_WRITE8_MEMBER(out_coin1); - DECLARE_WRITE8_MEMBER(pal_bank_w); + //void out_coin0(uint8_t data); + //void out_coin1(uint8_t data); + void pal_bank_w(offs_t offset, uint8_t data); void flip(uint8_t data); - DECLARE_WRITE8_MEMBER(slave_halt_ctrl_w); - DECLARE_READ8_MEMBER(slave_shared_r); - DECLARE_WRITE8_MEMBER(slave_shared_w); - DECLARE_WRITE16_MEMBER(slave_irq_enable_w); - DECLARE_WRITE8_MEMBER(sound_halt_ctrl_w); - DECLARE_READ8_MEMBER(bg_rmw_r); - DECLARE_WRITE8_MEMBER(bg_rmw_w); + void slave_halt_ctrl_w(offs_t offset, uint8_t data); + uint8_t slave_shared_r(offs_t offset); + void slave_shared_w(offs_t offset, uint8_t data); + void slave_irq_enable_w(offs_t offset, uint16_t data); + void sound_halt_ctrl_w(offs_t offset, uint8_t data); + uint8_t bg_rmw_r(offs_t offset); + void bg_rmw_w(offs_t offset, uint8_t data); void master_liblrabl_map(address_map &map); void master_toypop_map(address_map &map); @@ -311,49 +311,49 @@ uint32_t namcos16_state::screen_update( screen_device &screen, bitmap_ind16 &bit return 0; } -READ8_MEMBER(namcos16_state::irq_enable_r) +uint8_t namcos16_state::irq_enable_r() { m_master_irq_enable = true; return 0; } -WRITE8_MEMBER(namcos16_state::irq_disable_w) +void namcos16_state::irq_disable_w(uint8_t data) { m_master_irq_enable = false; } -WRITE8_MEMBER(namcos16_state::irq_ctrl_w) +void namcos16_state::irq_ctrl_w(offs_t offset, uint8_t data) { m_master_irq_enable = (offset & 0x0800) ? false : true; } -WRITE8_MEMBER(namcos16_state::slave_halt_ctrl_w) +void namcos16_state::slave_halt_ctrl_w(offs_t offset, uint8_t data) { m_slave_cpu->set_input_line(INPUT_LINE_RESET,offset & 0x800 ? ASSERT_LINE : CLEAR_LINE); } -WRITE8_MEMBER(namcos16_state::sound_halt_ctrl_w) +void namcos16_state::sound_halt_ctrl_w(offs_t offset, uint8_t data) { m_sound_cpu->set_input_line(INPUT_LINE_RESET,offset & 0x800 ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER(namcos16_state::slave_shared_r) +uint8_t namcos16_state::slave_shared_r(offs_t offset) { return m_slave_sharedram[offset]; } -WRITE8_MEMBER(namcos16_state::slave_shared_w) +void namcos16_state::slave_shared_w(offs_t offset, uint8_t data) { m_slave_sharedram[offset] = data; } -WRITE16_MEMBER(namcos16_state::slave_irq_enable_w) +void namcos16_state::slave_irq_enable_w(offs_t offset, uint16_t data) { m_slave_irq_enable = (offset & 0x40000) ? false : true; } -READ8_MEMBER(namcos16_state::bg_rmw_r) +uint8_t namcos16_state::bg_rmw_r(offs_t offset) { uint8_t res; @@ -364,7 +364,7 @@ READ8_MEMBER(namcos16_state::bg_rmw_r) return res; } -WRITE8_MEMBER(namcos16_state::bg_rmw_w) +void namcos16_state::bg_rmw_w(offs_t offset, uint8_t data) { // note: following offset is written as offset * 2 m_bgvram[offset] = (data & 0xf) | ((data & 0xf0) << 4); @@ -380,7 +380,7 @@ void namcos16_state::flip(uint8_t data) flip_screen_set(data & 1); } -WRITE8_MEMBER(namcos16_state::pal_bank_w) +void namcos16_state::pal_bank_w(offs_t offset, uint8_t data) { m_pal_bank = offset & 1; } diff --git a/src/mame/drivers/tr175.cpp b/src/mame/drivers/tr175.cpp index 0a9084740db..ad5865652c1 100644 --- a/src/mame/drivers/tr175.cpp +++ b/src/mame/drivers/tr175.cpp @@ -24,9 +24,9 @@ public: void tr175(machine_config &config); private: - DECLARE_WRITE8_MEMBER(ffec01_w); - DECLARE_WRITE8_MEMBER(fff000_w); - DECLARE_READ8_MEMBER(fff400_r); + void ffec01_w(uint8_t data); + void fff000_w(uint8_t data); + uint8_t fff400_r(); SCN2674_DRAW_CHARACTER_MEMBER(draw_character); void mem_map(address_map &map); @@ -36,17 +36,17 @@ private: required_device<cpu_device> m_maincpu; }; -WRITE8_MEMBER(tr175_state::ffec01_w) +void tr175_state::ffec01_w(uint8_t data) { logerror("%s: Writing %02X to FFEC01\n", machine().describe_context(), data); } -WRITE8_MEMBER(tr175_state::fff000_w) +void tr175_state::fff000_w(uint8_t data) { logerror("%s: Writing %02X to FFF000\n", machine().describe_context(), data); } -READ8_MEMBER(tr175_state::fff400_r) +uint8_t tr175_state::fff400_r() { return 0; } diff --git a/src/mame/drivers/triforce.cpp b/src/mame/drivers/triforce.cpp index e945f2efda6..cfc1f76b91b 100644 --- a/src/mame/drivers/triforce.cpp +++ b/src/mame/drivers/triforce.cpp @@ -473,10 +473,10 @@ public: void triforce_base(machine_config &config); private: - DECLARE_READ64_MEMBER(gc_pi_r); - DECLARE_WRITE64_MEMBER(gc_pi_w); - DECLARE_READ64_MEMBER(gc_exi_r); - DECLARE_WRITE64_MEMBER(gc_exi_w); + uint64_t gc_pi_r(); + void gc_pi_w(uint64_t data); + uint64_t gc_exi_r(); + void gc_exi_w(uint64_t data); virtual void machine_start() override; virtual void video_start() override; uint32_t screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -484,21 +484,21 @@ private: void gc_map(address_map &map); }; -READ64_MEMBER(triforce_state::gc_pi_r) +uint64_t triforce_state::gc_pi_r() { return 0; } -WRITE64_MEMBER(triforce_state::gc_pi_w) +void triforce_state::gc_pi_w(uint64_t data) { } -READ64_MEMBER(triforce_state::gc_exi_r) +uint64_t triforce_state::gc_exi_r() { return 0; } -WRITE64_MEMBER(triforce_state::gc_exi_w) +void triforce_state::gc_exi_w(uint64_t data) { } diff --git a/src/mame/drivers/trivrus.cpp b/src/mame/drivers/trivrus.cpp index 3fba94cdb98..8bfc64685dc 100644 --- a/src/mame/drivers/trivrus.cpp +++ b/src/mame/drivers/trivrus.cpp @@ -60,50 +60,50 @@ private: uint32_t m_Bank; uint32_t m_maxbank; - DECLARE_READ32_MEMBER(FlashCmd_r); - DECLARE_WRITE32_MEMBER(FlashCmd_w); - DECLARE_WRITE32_MEMBER(Banksw_w); + uint32_t FlashCmd_r(); + void FlashCmd_w(uint32_t data); + void Banksw_w(uint32_t data); virtual void machine_start() override; virtual void machine_reset() override; void trivrus_mem(address_map &map); // PIO - DECLARE_READ32_MEMBER(PIOldat_r); + uint32_t PIOldat_r(); uint32_t m_PIO; - DECLARE_WRITE32_MEMBER(PIOldat_w); - DECLARE_READ32_MEMBER(PIOedat_r); + void PIOldat_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint32_t PIOedat_r(); - DECLARE_READ8_MEMBER(trivrus_input_r); - DECLARE_WRITE8_MEMBER(trivrus_input_w); + uint8_t trivrus_input_r(); + void trivrus_input_w(uint8_t data); uint8_t m_trivrus_input; }; -WRITE32_MEMBER(trivrus_state::FlashCmd_w) +void trivrus_state::FlashCmd_w(uint32_t data) { m_FlashCmd = data; } -READ32_MEMBER(trivrus_state::PIOedat_r) +uint32_t trivrus_state::PIOedat_r() { return 0; } -READ32_MEMBER(trivrus_state::PIOldat_r) +uint32_t trivrus_state::PIOldat_r() { // ... return m_PIO; } // PIO Latched output DATa Register -WRITE32_MEMBER(trivrus_state::PIOldat_w) +void trivrus_state::PIOldat_w(offs_t offset, uint32_t data, uint32_t mem_mask) { // ... COMBINE_DATA(&m_PIO); } -READ8_MEMBER(trivrus_state::trivrus_input_r) +uint8_t trivrus_state::trivrus_input_r() { switch (m_trivrus_input) { @@ -118,12 +118,12 @@ READ8_MEMBER(trivrus_state::trivrus_input_r) return 0xff; } -WRITE8_MEMBER(trivrus_state::trivrus_input_w) +void trivrus_state::trivrus_input_w(uint8_t data) { m_trivrus_input = data & 0xff; } -READ32_MEMBER(trivrus_state::FlashCmd_r) +uint32_t trivrus_state::FlashCmd_r() { if ((m_FlashCmd & 0xff) == 0xff) { @@ -146,7 +146,7 @@ READ32_MEMBER(trivrus_state::FlashCmd_r) } -WRITE32_MEMBER(trivrus_state::Banksw_w) +void trivrus_state::Banksw_w(uint32_t data) { m_Bank = (data >> 1) & 7; m_mainbank->set_entry(m_Bank); diff --git a/src/mame/drivers/trkfldch.cpp b/src/mame/drivers/trkfldch.cpp index f5b771af04e..47a93279f04 100644 --- a/src/mame/drivers/trkfldch.cpp +++ b/src/mame/drivers/trkfldch.cpp @@ -82,7 +82,7 @@ private: uint32_t screen_update_trkfldch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void trkfldch_map(address_map &map); - DECLARE_READ8_MEMBER(read_vector); + uint8_t read_vector(offs_t offset); TIMER_DEVICE_CALLBACK_MEMBER(scanline); @@ -90,38 +90,38 @@ private: uint8_t tilemap_scroll_window_r(int which, uint8_t reg, uint16_t real_base); - DECLARE_READ8_MEMBER(tmap0_scroll_window_r); - DECLARE_READ8_MEMBER(tmap1_scroll_window_r); + uint8_t tmap0_scroll_window_r(offs_t offset); + uint8_t tmap1_scroll_window_r(offs_t offset); void tilemap_scroll_window_w(int which, uint8_t reg, uint8_t data, uint16_t real_base); - DECLARE_WRITE8_MEMBER(tmap0_scroll_window_w); - DECLARE_WRITE8_MEMBER(tmap1_scroll_window_w); + void tmap0_scroll_window_w(offs_t offset, uint8_t data); + void tmap1_scroll_window_w(offs_t offset, uint8_t data); uint8_t m_dmaregs[0xe]; - DECLARE_READ8_MEMBER(dmaregs_r); - DECLARE_WRITE8_MEMBER(dmaregs_w); + uint8_t dmaregs_r(offs_t offset); + void dmaregs_w(offs_t offset, uint8_t data); uint8_t m_modebank[0xb]; - DECLARE_READ8_MEMBER(modebankregs_r); - DECLARE_WRITE8_MEMBER(modebankregs_w); + uint8_t modebankregs_r(offs_t offset); + void modebankregs_w(offs_t offset, uint8_t data); uint8_t m_tilemapbase[0x3]; - DECLARE_READ8_MEMBER(tilemapbase_r); - DECLARE_WRITE8_MEMBER(tilemapbase_w); + uint8_t tilemapbase_r(offs_t offset); + void tilemapbase_w(offs_t offset, uint8_t data); uint8_t m_sysregs[0x10]; - DECLARE_READ8_MEMBER(sysregs_r); - DECLARE_WRITE8_MEMBER(sysregs_w); + uint8_t sysregs_r(offs_t offset); + void sysregs_w(offs_t offset, uint8_t data); uint8_t m_unkregs[0x90]; - DECLARE_READ8_MEMBER(unkregs_r); - DECLARE_WRITE8_MEMBER(unkregs_w); + uint8_t unkregs_r(offs_t offset); + void unkregs_w(offs_t offset, uint8_t data); uint8_t m_tmapscroll_window[2][0x12]; @@ -426,13 +426,13 @@ uint8_t trkfldch_state::tilemap_scroll_window_r(int which, uint8_t reg, uint16_t return ret; } -READ8_MEMBER(trkfldch_state::tmap0_scroll_window_r) +uint8_t trkfldch_state::tmap0_scroll_window_r(offs_t offset) { uint8_t ret = tilemap_scroll_window_r(0, offset, 0x7820); return ret; } -READ8_MEMBER(trkfldch_state::tmap1_scroll_window_r) +uint8_t trkfldch_state::tmap1_scroll_window_r(offs_t offset) { uint8_t ret = tilemap_scroll_window_r(1, offset, 0x7832); return ret; @@ -522,12 +522,12 @@ void trkfldch_state::tilemap_scroll_window_w(int which, uint8_t reg, uint8_t dat } } -WRITE8_MEMBER(trkfldch_state::tmap0_scroll_window_w) +void trkfldch_state::tmap0_scroll_window_w(offs_t offset, uint8_t data) { tilemap_scroll_window_w(0, offset, data, 0x7820); } -WRITE8_MEMBER(trkfldch_state::tmap1_scroll_window_w) +void trkfldch_state::tmap1_scroll_window_w(offs_t offset, uint8_t data) { tilemap_scroll_window_w(1, offset, data, 0x7832); } @@ -535,7 +535,7 @@ WRITE8_MEMBER(trkfldch_state::tmap1_scroll_window_w) -READ8_MEMBER(trkfldch_state::dmaregs_r) +uint8_t trkfldch_state::dmaregs_r(offs_t offset) { uint8_t ret = m_dmaregs[offset]; @@ -554,7 +554,7 @@ READ8_MEMBER(trkfldch_state::dmaregs_r) return ret; } -WRITE8_MEMBER(trkfldch_state::dmaregs_w) +void trkfldch_state::dmaregs_w(offs_t offset, uint8_t data) { m_dmaregs[offset] = data; @@ -669,14 +669,14 @@ WRITE8_MEMBER(trkfldch_state::dmaregs_w) } -READ8_MEMBER(trkfldch_state::modebankregs_r) +uint8_t trkfldch_state::modebankregs_r(offs_t offset) { uint8_t ret = m_modebank[offset]; logerror("%s: modebankregs_r %04x (returning %02x)\n", machine().describe_context(), offset, ret); return ret; } -WRITE8_MEMBER(trkfldch_state::modebankregs_w) +void trkfldch_state::modebankregs_w(offs_t offset, uint8_t data) { m_modebank[offset] = data; @@ -729,14 +729,14 @@ WRITE8_MEMBER(trkfldch_state::modebankregs_w) } -READ8_MEMBER(trkfldch_state::tilemapbase_r) +uint8_t trkfldch_state::tilemapbase_r(offs_t offset) { uint8_t ret = m_tilemapbase[offset]; logerror("%s: tilemapbase_r %04x (returning %02x)\n", machine().describe_context(), offset, ret); return ret; } -WRITE8_MEMBER(trkfldch_state::tilemapbase_w) +void trkfldch_state::tilemapbase_w(offs_t offset, uint8_t data) { m_tilemapbase[offset] = data; logerror("%s: tilemapbase_w %04x %02x (tilebase %d)\n", machine().describe_context(), offset, data, offset); @@ -775,11 +775,11 @@ void trkfldch_state::vectors_map(address_map &map) map(0x00, 0x1f).r(FUNC(trkfldch_state::read_vector)); } -READ8_MEMBER(trkfldch_state::read_vector) +uint8_t trkfldch_state::read_vector(offs_t offset) { uint8_t *rom = memregion("maincpu")->base(); - /* what appears to be a table of vectors apepars at the START of ROM, maybe this gets copied to RAM, maybe used directly? + /* what appears to be a table of vectors appears at the START of ROM, maybe this gets copied to RAM, maybe used directly? 00 : (invalid) 02 : (invalid) 04 : 0xA2C6 (dummy) @@ -1108,7 +1108,7 @@ GFXDECODE_END */ -READ8_MEMBER(trkfldch_state::sysregs_r) +uint8_t trkfldch_state::sysregs_r(offs_t offset) { uint8_t ret = m_sysregs[offset]; @@ -1152,7 +1152,7 @@ READ8_MEMBER(trkfldch_state::sysregs_r) } -WRITE8_MEMBER(trkfldch_state::sysregs_w) +void trkfldch_state::sysregs_w(offs_t offset, uint8_t data) { m_sysregs[offset] = data; @@ -1191,7 +1191,7 @@ WRITE8_MEMBER(trkfldch_state::sysregs_w) -READ8_MEMBER(trkfldch_state::unkregs_r) +uint8_t trkfldch_state::unkregs_r(offs_t offset) { uint8_t ret = m_unkregs[offset]; @@ -1266,7 +1266,7 @@ READ8_MEMBER(trkfldch_state::unkregs_r) -WRITE8_MEMBER(trkfldch_state::unkregs_w) +void trkfldch_state::unkregs_w(offs_t offset, uint8_t data) { m_unkregs[offset] = data; diff --git a/src/mame/drivers/ts802.cpp b/src/mame/drivers/ts802.cpp index 8fd8e941ee1..83d71e22838 100644 --- a/src/mame/drivers/ts802.cpp +++ b/src/mame/drivers/ts802.cpp @@ -48,14 +48,14 @@ protected: virtual void machine_reset() override; private: - DECLARE_READ8_MEMBER(port00_r) { return 0x80; }; - DECLARE_READ8_MEMBER(port0c_r) { return 1; }; - DECLARE_READ8_MEMBER(port0e_r) { return 0; }; - DECLARE_READ8_MEMBER(port0f_r) { return (m_term_data) ? 5 : 4; }; - DECLARE_READ8_MEMBER(port0d_r); - DECLARE_WRITE8_MEMBER(port04_w); - DECLARE_WRITE8_MEMBER(port18_w); - DECLARE_WRITE8_MEMBER(port80_w); + uint8_t port00_r() { return 0x80; }; + uint8_t port0c_r() { return 1; }; + uint8_t port0e_r() { return 0; }; + uint8_t port0f_r() { return (m_term_data) ? 5 : 4; }; + uint8_t port0d_r(); + void port04_w(uint8_t data); + void port18_w(uint8_t data); + void port80_w(uint8_t data); uint8_t memory_read_byte(offs_t offset); void memory_write_byte(offs_t offset, uint8_t data); uint8_t io_read_byte(offs_t offset); @@ -111,16 +111,16 @@ void ts802_state::ts802_io(address_map &map) static INPUT_PORTS_START( ts802 ) INPUT_PORTS_END -WRITE8_MEMBER( ts802_state::port04_w ) +void ts802_state::port04_w(uint8_t data) { membank("bankr0")->set_entry(1); } -WRITE8_MEMBER( ts802_state::port18_w ) +void ts802_state::port18_w(uint8_t data) { } -WRITE8_MEMBER( ts802_state::port80_w ) +void ts802_state::port80_w(uint8_t data) { } @@ -155,7 +155,7 @@ void ts802_state::machine_reset() membank("bankw0")->set_entry(0); // always write to ram } -READ8_MEMBER( ts802_state::port0d_r ) +uint8_t ts802_state::port0d_r() { uint8_t ret = m_term_data; m_term_data = 0; diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp index 40689e4d067..3559ba27028 100644 --- a/src/mame/drivers/ts803.cpp +++ b/src/mame/drivers/ts803.cpp @@ -79,15 +79,15 @@ public: void init_ts803(); private: - DECLARE_READ8_MEMBER(port10_r); - DECLARE_WRITE8_MEMBER(port10_w); - DECLARE_READ8_MEMBER(porta0_r); - DECLARE_WRITE8_MEMBER(porta0_w); - DECLARE_WRITE8_MEMBER(disk_0_control_w); - DECLARE_READ8_MEMBER(disk_0_control_r); + uint8_t port10_r(offs_t offset); + void port10_w(offs_t offset, uint8_t data); + uint8_t porta0_r(offs_t offset); + void porta0_w(offs_t offset, uint8_t data); + void disk_0_control_w(uint8_t data); + uint8_t disk_0_control_r(); MC6845_UPDATE_ROW(crtc_update_row); MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr); - DECLARE_WRITE8_MEMBER( crtc_controlreg_w ); + void crtc_controlreg_w(uint8_t data); uint32_t screen_update_ts803(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void ts803_io(address_map &map); @@ -193,7 +193,7 @@ static void ts803_floppies(device_slot_interface &device) device.option_add("525dd", FLOPPY_525_DD); } -WRITE8_MEMBER( ts803_state::disk_0_control_w ) +void ts803_state::disk_0_control_w(uint8_t data) { /* d0 ready @@ -223,13 +223,13 @@ d7 Drive select 3 (active low) m_fdc->dden_w(BIT(data, 3)); } -READ8_MEMBER( ts803_state::disk_0_control_r ) +uint8_t ts803_state::disk_0_control_r() { printf("Disk0 control register read\n"); return 0xff; } -READ8_MEMBER( ts803_state::porta0_r) +uint8_t ts803_state::porta0_r(offs_t offset) { offset += 0xa0; switch(offset) @@ -259,7 +259,7 @@ READ8_MEMBER( ts803_state::porta0_r) return 0x00; } -WRITE8_MEMBER( ts803_state::porta0_w ) +void ts803_state::porta0_w(offs_t offset, uint8_t data) { offset += 0xa0; switch (offset) @@ -273,7 +273,7 @@ WRITE8_MEMBER( ts803_state::porta0_w ) } } -READ8_MEMBER( ts803_state::port10_r ) +uint8_t ts803_state::port10_r(offs_t offset) { offset += 0x10; printf("Port read [%x]\n",offset); @@ -281,7 +281,7 @@ READ8_MEMBER( ts803_state::port10_r ) return 0xff; } -WRITE8_MEMBER( ts803_state::port10_w ) +void ts803_state::port10_w(offs_t offset, uint8_t data) { offset += 0x10; switch (offset) @@ -360,7 +360,7 @@ MC6845_UPDATE_ROW( ts803_state::crtc_update_row ) } } -WRITE8_MEMBER( ts803_state::crtc_controlreg_w ) +void ts803_state::crtc_controlreg_w(uint8_t data) { /* Bit 0 = 0 alpha mode diff --git a/src/mame/drivers/ts816.cpp b/src/mame/drivers/ts816.cpp index 4af788de994..ff2ac8ee0b5 100644 --- a/src/mame/drivers/ts816.cpp +++ b/src/mame/drivers/ts816.cpp @@ -41,12 +41,12 @@ public: private: void kbd_put(u8 data); - DECLARE_READ8_MEMBER(keyin_r); - DECLARE_READ8_MEMBER(status_r); - DECLARE_WRITE8_MEMBER(port68_w); - DECLARE_WRITE8_MEMBER(port78_w); - DECLARE_WRITE8_MEMBER(porte0_w); - DECLARE_WRITE8_MEMBER(portf0_w); + uint8_t keyin_r(); + uint8_t status_r(); + void port68_w(uint8_t data); + void port78_w(uint8_t data); + void porte0_w(uint8_t data); + void portf0_w(uint8_t data); void ts816_io(address_map &map); void ts816_mem(address_map &map); @@ -124,14 +124,14 @@ static INPUT_PORTS_START( ts816 ) INPUT_PORTS_END -READ8_MEMBER( ts816_state::keyin_r ) +uint8_t ts816_state::keyin_r() { uint8_t ret = m_term_data; m_term_data = 0; return ret; } -READ8_MEMBER( ts816_state::status_r ) +uint8_t ts816_state::status_r() { if (m_status) { @@ -142,25 +142,25 @@ READ8_MEMBER( ts816_state::status_r ) return 4; } -WRITE8_MEMBER( ts816_state::port68_w ) +void ts816_state::port68_w(uint8_t data) { m_2ndbank = 1; set_banks(); } -WRITE8_MEMBER( ts816_state::port78_w ) +void ts816_state::port78_w(uint8_t data) { m_2ndbank = 0; set_banks(); } -WRITE8_MEMBER( ts816_state::porte0_w ) +void ts816_state::porte0_w(uint8_t data) { m_endram = 1; set_banks(); } -WRITE8_MEMBER( ts816_state::portf0_w ) +void ts816_state::portf0_w(uint8_t data) { m_endram = 0; set_banks(); diff --git a/src/mame/drivers/ttchamp.cpp b/src/mame/drivers/ttchamp.cpp index 270f1984a0e..41a8430f9ac 100644 --- a/src/mame/drivers/ttchamp.cpp +++ b/src/mame/drivers/ttchamp.cpp @@ -121,23 +121,23 @@ private: uint16_t* m_rom16; uint8_t* m_rom8; - DECLARE_WRITE16_MEMBER(paloff_w); - DECLARE_WRITE16_MEMBER(paldat_w); + void paloff_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void paldat_w(uint16_t data); - DECLARE_WRITE16_MEMBER(port10_w); + void port10_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - DECLARE_WRITE16_MEMBER(port20_w); - DECLARE_WRITE16_MEMBER(port62_w); + void port20_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void port62_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - DECLARE_READ16_MEMBER(port1e_r); + uint16_t port1e_r(); - DECLARE_READ16_MEMBER(pic_r); - DECLARE_WRITE16_MEMBER(pic_w); + uint16_t pic_r(offs_t offset, uint16_t mem_mask = ~0); + void pic_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - DECLARE_READ16_MEMBER(blit_start_r); + uint16_t blit_start_r(); - DECLARE_READ16_MEMBER(mem_r); - DECLARE_WRITE16_MEMBER(mem_w); + uint16_t mem_r(offs_t offset); + void mem_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); virtual void machine_start() override; virtual void video_start() override; @@ -271,19 +271,19 @@ uint32_t ttchamp_state::screen_update(screen_device &screen, bitmap_ind16 &bitma } -WRITE16_MEMBER(ttchamp_state::paloff_w) +void ttchamp_state::paloff_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_paloff); } -WRITE16_MEMBER(ttchamp_state::paldat_w) +void ttchamp_state::paldat_w(uint16_t data) { // 0x8000 of offset is sometimes set m_palette->set_pen_color(m_paloff & 0x3ff,pal5bit(data>>0),pal5bit(data>>5),pal5bit(data>>10)); } -READ16_MEMBER(ttchamp_state::pic_r) +uint16_t ttchamp_state::pic_r(offs_t offset, uint16_t mem_mask) { // printf("%06x: read from PIC (%04x)\n", m_maincpu->pc(),mem_mask); if (m_picmodex == picmode::SET_READLATCH) @@ -298,7 +298,7 @@ READ16_MEMBER(ttchamp_state::pic_r) } -WRITE16_MEMBER(ttchamp_state::pic_w) +void ttchamp_state::pic_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // printf("%06x: write to PIC %04x (%04x) (%d)\n", m_maincpu->pc(),data,mem_mask, m_picmodex); if (m_picmodex == picmode::IDLE) @@ -357,7 +357,7 @@ WRITE16_MEMBER(ttchamp_state::pic_w) } -READ16_MEMBER(ttchamp_state::mem_r) +uint16_t ttchamp_state::mem_r(offs_t offset) { // bits 0xf0 are used too, so this is likely wrong. @@ -389,7 +389,7 @@ READ16_MEMBER(ttchamp_state::mem_r) } } -WRITE16_MEMBER(ttchamp_state::mem_w) +void ttchamp_state::mem_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // this is very strange, we use the offset (address bits) not data bits to set values.. // I get the impression this might actually overlay the entire address range, including RAM and regular VRAM? @@ -511,20 +511,20 @@ void ttchamp_state::ttchamp_map(address_map &map) } /* Re-use same parameters as before (one-shot) */ -READ16_MEMBER(ttchamp_state::port1e_r) +uint16_t ttchamp_state::port1e_r() { m_spritesinit = 3; return 0xff; } -READ16_MEMBER(ttchamp_state::blit_start_r) +uint16_t ttchamp_state::blit_start_r() { m_spritesinit = 1; return 0xff; } /* blitter mode select */ -WRITE16_MEMBER(ttchamp_state::port10_w) +void ttchamp_state::port10_w(offs_t offset, uint16_t data, uint16_t mem_mask) { /* --xx ---- fill enable @@ -535,14 +535,14 @@ WRITE16_MEMBER(ttchamp_state::port10_w) } /* selects upper bank for the blitter */ -WRITE16_MEMBER(ttchamp_state::port20_w) +void ttchamp_state::port20_w(offs_t offset, uint16_t data, uint16_t mem_mask) { //printf("%06x: port20_w %04x %04x\n", m_maincpu->pc(), data, mem_mask); m_rombank = 1; } /* selects lower bank for the blitter */ -WRITE16_MEMBER(ttchamp_state::port62_w) +void ttchamp_state::port62_w(offs_t offset, uint16_t data, uint16_t mem_mask) { //printf("%06x: port62_w %04x %04x\n", m_maincpu->pc(), data, mem_mask); m_rombank = 0; diff --git a/src/mame/drivers/tugboat.cpp b/src/mame/drivers/tugboat.cpp index f92a10796be..2ecdc48590f 100644 --- a/src/mame/drivers/tugboat.cpp +++ b/src/mame/drivers/tugboat.cpp @@ -75,9 +75,9 @@ private: int m_ctrl; emu_timer *m_interrupt_timer; - DECLARE_WRITE8_MEMBER(hd46505_0_w); - DECLARE_WRITE8_MEMBER(hd46505_1_w); - DECLARE_WRITE8_MEMBER(score_w); + void hd46505_0_w(offs_t offset, uint8_t data); + void hd46505_1_w(offs_t offset, uint8_t data); + void score_w(offs_t offset, uint8_t data); uint8_t input_r(); void ctrl_w(uint8_t data); @@ -125,21 +125,21 @@ void tugboat_state::tugboat_palette(palette_device &palette) const -/* see mc6845.c. That file is only a placeholder, I process the writes here +/* see mc6845.cpp. That file is only a placeholder, I process the writes here because I need the start_addr register to handle scrolling */ -WRITE8_MEMBER(tugboat_state::hd46505_0_w) +void tugboat_state::hd46505_0_w(offs_t offset, uint8_t data) { if (offset == 0) m_reg0 = data & 0x0f; else if (m_reg0 < 18) m_hd46505_0_reg[m_reg0] = data; } -WRITE8_MEMBER(tugboat_state::hd46505_1_w) +void tugboat_state::hd46505_1_w(offs_t offset, uint8_t data) { if (offset == 0) m_reg1 = data & 0x0f; else if (m_reg1 < 18) m_hd46505_1_reg[m_reg1] = data; } -WRITE8_MEMBER(tugboat_state::score_w) +void tugboat_state::score_w(offs_t offset, uint8_t data) { if (offset>=0x8) m_ram[0x291d + 32*offset + 32*(1-8)] = data ^ 0x0f; if (offset<0x8 ) m_ram[0x291d + 32*offset + 32*9] = data ^ 0x0f; diff --git a/src/mame/drivers/tutor.cpp b/src/mame/drivers/tutor.cpp index 6f0b572e615..5ffa51a24d3 100644 --- a/src/mame/drivers/tutor.cpp +++ b/src/mame/drivers/tutor.cpp @@ -213,15 +213,15 @@ private: memory_region *m_cart_rom; int m_bank1_switching; - DECLARE_READ8_MEMBER(key_r); - DECLARE_READ8_MEMBER(tutor_mapper_r); - DECLARE_WRITE8_MEMBER(tutor_mapper_w); - DECLARE_READ8_MEMBER(tutor_cassette_r); - DECLARE_WRITE8_MEMBER(tutor_cassette_w); - DECLARE_READ8_MEMBER(tutor_printer_r); - DECLARE_WRITE8_MEMBER(tutor_printer_w); - - DECLARE_READ8_MEMBER(tutor_highmem_r); + uint8_t key_r(offs_t offset); + uint8_t tutor_mapper_r(offs_t offset); + void tutor_mapper_w(offs_t offset, uint8_t data); + uint8_t tutor_cassette_r(); + void tutor_cassette_w(offs_t offset, uint8_t data); + uint8_t tutor_printer_r(offs_t offset); + void tutor_printer_w(offs_t offset, uint8_t data); + + uint8_t tutor_highmem_r(offs_t offset); int m_tape_interrupt_enable; emu_timer *m_tape_interrupt_timer; virtual void machine_start() override; @@ -291,7 +291,7 @@ void tutor_state::machine_reset() mapped to both a keyboard key and a joystick switch. */ -READ8_MEMBER( tutor_state::key_r ) +uint8_t tutor_state::key_r(offs_t offset) { char port[12]; uint8_t value; @@ -324,7 +324,7 @@ READ8_MEMBER( tutor_state::key_r ) Cartridge may also define a boot ROM at base >0000 (see below). */ -READ8_MEMBER( tutor_state::tutor_mapper_r ) +uint8_t tutor_state::tutor_mapper_r(offs_t offset) { int reply; @@ -344,7 +344,7 @@ READ8_MEMBER( tutor_state::tutor_mapper_r ) return reply; } -WRITE8_MEMBER( tutor_state::tutor_mapper_w ) +void tutor_state::tutor_mapper_w(offs_t offset, uint8_t data) { switch (offset) { @@ -379,7 +379,7 @@ WRITE8_MEMBER( tutor_state::tutor_mapper_w ) This is only called from the debugger; the on-chip memory is handled within the CPU itself. */ -READ8_MEMBER( tutor_state::tutor_highmem_r ) +uint8_t tutor_state::tutor_highmem_r(offs_t offset) { if (m_maincpu->is_onchip(offset | 0xf000)) return m_maincpu->debug_read_onchip_memory(offset&0xff); return 0; @@ -411,13 +411,13 @@ TIMER_CALLBACK_MEMBER(tutor_state::tape_interrupt_handler) } /* CRU handler */ -READ8_MEMBER( tutor_state::tutor_cassette_r ) +uint8_t tutor_state::tutor_cassette_r() { return (m_cass->input() > 0.0) ? 1 : 0; } /* memory handler */ -WRITE8_MEMBER( tutor_state::tutor_cassette_w ) +void tutor_state::tutor_cassette_w(offs_t offset, uint8_t data) { if (offset & /*0x1f*/0x1e) logerror("unknown port in %s %d\n", __FILE__, __LINE__); @@ -465,7 +465,7 @@ WRITE_LINE_MEMBER( tutor_state::write_centronics_busy ) } /* memory handlers */ -READ8_MEMBER( tutor_state::tutor_printer_r ) +uint8_t tutor_state::tutor_printer_r(offs_t offset) { int reply; @@ -486,7 +486,7 @@ READ8_MEMBER( tutor_state::tutor_printer_r ) return reply; } -WRITE8_MEMBER( tutor_state::tutor_printer_w ) +void tutor_state::tutor_printer_w(offs_t offset, uint8_t data) { switch (offset) { @@ -541,7 +541,7 @@ WRITE8_MEMBER( tutor_state::tutor_printer_w ) */ #ifdef UNUSED_FUNCTION -WRITE8_MEMBER( tutor_state::test_w ) +void tutor_state::test_w(offs_t offset, uint8_t data) { switch (offset) { diff --git a/src/mame/drivers/tv912.cpp b/src/mame/drivers/tv912.cpp index 22684b39810..ee6de0a9b73 100644 --- a/src/mame/drivers/tv912.cpp +++ b/src/mame/drivers/tv912.cpp @@ -104,11 +104,11 @@ private: void p1_w(u8 data); u8 p2_r(); void p2_w(u8 data); - DECLARE_READ8_MEMBER(crtc_r); - DECLARE_WRITE8_MEMBER(crtc_w); - DECLARE_READ8_MEMBER(uart_status_r); - DECLARE_READ8_MEMBER(keyboard_r); - DECLARE_WRITE8_MEMBER(output_40c); + u8 crtc_r(offs_t offset); + void crtc_w(offs_t offset, u8 data); + u8 uart_status_r(offs_t offset); + u8 keyboard_r(offs_t offset); + void output_40c(u8 data); u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -188,17 +188,17 @@ void tv912_state::p2_w(u8 data) m_4hz_flasher = BIT(data, 4); } -READ8_MEMBER(tv912_state::crtc_r) +u8 tv912_state::crtc_r(offs_t offset) { return m_crtc->read(bitswap<4>(offset, 5, 4, 1, 0)); } -WRITE8_MEMBER(tv912_state::crtc_w) +void tv912_state::crtc_w(offs_t offset, u8 data) { m_crtc->write(bitswap<4>(offset, 5, 4, 1, 0), data); } -READ8_MEMBER(tv912_state::keyboard_r) +u8 tv912_state::keyboard_r(offs_t offset) { u8 result = m_modifiers->read(); @@ -209,7 +209,7 @@ READ8_MEMBER(tv912_state::keyboard_r) return result; } -READ8_MEMBER(tv912_state::uart_status_r) +u8 tv912_state::uart_status_r(offs_t offset) { m_uart->write_swe(0); u8 status = m_uart->dav_r() << 0; @@ -222,7 +222,7 @@ READ8_MEMBER(tv912_state::uart_status_r) return status; } -WRITE8_MEMBER(tv912_state::output_40c) +void tv912_state::output_40c(u8 data) { // DB6: -PRTOL diff --git a/src/mame/drivers/tv950.cpp b/src/mame/drivers/tv950.cpp index d1497e3c044..4b46e96315b 100644 --- a/src/mame/drivers/tv950.cpp +++ b/src/mame/drivers/tv950.cpp @@ -77,7 +77,7 @@ private: MC6845_UPDATE_ROW(crtc_update_row); MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr); - DECLARE_WRITE8_MEMBER(row_addr_w); + void row_addr_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(via_crtc_reset_w); void tv950_mem(address_map &map); @@ -222,7 +222,7 @@ WRITE_LINE_MEMBER(tv950_state::via_crtc_reset_w) } } -WRITE8_MEMBER(tv950_state::row_addr_w) +void tv950_state::row_addr_w(uint8_t data) { m_row_addr = data; } diff --git a/src/mame/drivers/tv965.cpp b/src/mame/drivers/tv965.cpp index 35feda20d5c..343e56ed58d 100644 --- a/src/mame/drivers/tv965.cpp +++ b/src/mame/drivers/tv965.cpp @@ -29,7 +29,7 @@ public: private: SCN2672_DRAW_CHARACTER_MEMBER(draw_character); - DECLARE_READ8_MEMBER(ga_hack_r); + u8 ga_hack_r(); void mem_map(address_map &map); void program_map(address_map &map); @@ -42,7 +42,7 @@ SCN2672_DRAW_CHARACTER_MEMBER(tv965_state::draw_character) { } -READ8_MEMBER(tv965_state::ga_hack_r) +u8 tv965_state::ga_hack_r() { return 0x08; } diff --git a/src/mame/drivers/tv990.cpp b/src/mame/drivers/tv990.cpp index f0f85f6230c..38de5f3b54a 100644 --- a/src/mame/drivers/tv990.cpp +++ b/src/mame/drivers/tv990.cpp @@ -83,10 +83,10 @@ private: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - DECLARE_READ16_MEMBER(tvi1111_r); - DECLARE_WRITE16_MEMBER(tvi1111_w); - DECLARE_READ8_MEMBER(kbdc_r); - DECLARE_WRITE8_MEMBER(kbdc_w); + uint16_t tvi1111_r(offs_t offset); + void tvi1111_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint8_t kbdc_r(offs_t offset); + void kbdc_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(uart0_irq); DECLARE_WRITE_LINE_MEMBER(uart1_irq); @@ -142,7 +142,7 @@ WRITE_LINE_MEMBER(tv990_state::lpt_irq) m_maincpu->set_input_line(M68K_IRQ_3, state); } -READ16_MEMBER(tv990_state::tvi1111_r) +uint16_t tv990_state::tvi1111_r(offs_t offset) { if (offset == (0x32/2)) { @@ -156,7 +156,7 @@ READ16_MEMBER(tv990_state::tvi1111_r) return tvi1111_regs[offset]; } -WRITE16_MEMBER(tv990_state::tvi1111_w) +void tv990_state::tvi1111_w(offs_t offset, uint16_t data, uint16_t mem_mask) { #if 0 //if ((offset != 0x50) && (offset != 0x68) && (offset != 0x1d) && (offset != 0x1e) && (offset != 0x17) && (offset != 0x1c)) @@ -300,7 +300,7 @@ uint32_t tv990_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, return 0; } -READ8_MEMBER(tv990_state::kbdc_r) +uint8_t tv990_state::kbdc_r(offs_t offset) { if(offset) return m_kbdc->data_r(4); @@ -308,7 +308,7 @@ READ8_MEMBER(tv990_state::kbdc_r) return m_kbdc->data_r(0); } -WRITE8_MEMBER(tv990_state::kbdc_w) +void tv990_state::kbdc_w(offs_t offset, uint8_t data) { if(offset) m_kbdc->data_w(4, data); diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp index 73a6e22cd98..5566ea774c2 100644 --- a/src/mame/drivers/twinkle.cpp +++ b/src/mame/drivers/twinkle.cpp @@ -287,20 +287,19 @@ public: private: virtual void machine_start() override; - DECLARE_WRITE8_MEMBER(twinkle_io_w); - DECLARE_READ8_MEMBER(twinkle_io_r); - DECLARE_WRITE16_MEMBER(twinkle_output_w); - DECLARE_WRITE16_MEMBER(led_w); - DECLARE_WRITE16_MEMBER(key_led_w); - DECLARE_WRITE16_MEMBER(serial_w); - DECLARE_WRITE16_MEMBER(twinkle_spu_ctrl_w); - DECLARE_WRITE16_MEMBER(spu_ata_dma_low_w); - DECLARE_WRITE16_MEMBER(spu_ata_dma_high_w); - DECLARE_READ16_MEMBER(twinkle_waveram_r); - DECLARE_WRITE16_MEMBER(twinkle_waveram_w); - DECLARE_WRITE16_MEMBER(spu_led_w); - DECLARE_WRITE16_MEMBER(spu_wavebank_w); - DECLARE_READ16_MEMBER(unk_68k_r); + void twinkle_io_w(offs_t offset, uint8_t data); + uint8_t twinkle_io_r(offs_t offset); + void twinkle_output_w(offs_t offset, uint16_t data); + void led_w(uint16_t data); + void key_led_w(uint16_t data); + void serial_w(uint16_t data); + void twinkle_spu_ctrl_w(uint16_t data); + void spu_ata_dma_low_w(uint16_t data); + void spu_ata_dma_high_w(uint16_t data); + uint16_t twinkle_waveram_r(offs_t offset); + void twinkle_waveram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void spu_led_w(uint16_t data); + void spu_wavebank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(spu_ata_irq); DECLARE_WRITE_LINE_MEMBER(spu_ata_dmarq); void scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size ); @@ -537,7 +536,7 @@ void twinkle_state::machine_start() save_item(NAME(m_output_clock)); } -WRITE8_MEMBER(twinkle_state::twinkle_io_w) +void twinkle_state::twinkle_io_w(offs_t offset, uint8_t data) { switch( offset ) { @@ -621,7 +620,7 @@ WRITE8_MEMBER(twinkle_state::twinkle_io_w) } } -READ8_MEMBER(twinkle_state::twinkle_io_r) +uint8_t twinkle_state::twinkle_io_r(offs_t offset) { uint8_t data = 0; @@ -668,7 +667,7 @@ READ8_MEMBER(twinkle_state::twinkle_io_r) return data; } -WRITE16_MEMBER(twinkle_state::twinkle_output_w) +void twinkle_state::twinkle_output_w(offs_t offset, uint16_t data) { switch( offset ) { @@ -726,7 +725,7 @@ WRITE16_MEMBER(twinkle_state::twinkle_output_w) } } -WRITE16_MEMBER(twinkle_state::led_w) +void twinkle_state::led_w(uint16_t data) { m_main_leds[0] = BIT(~data, 0); m_main_leds[1] = BIT(~data, 1); @@ -744,7 +743,7 @@ WRITE16_MEMBER(twinkle_state::led_w) } } -WRITE16_MEMBER(twinkle_state::key_led_w) +void twinkle_state::key_led_w(uint16_t data) { // words are written using a byte write m_key_leds[0][0] = BIT(data, 0); @@ -765,7 +764,7 @@ WRITE16_MEMBER(twinkle_state::key_led_w) output().set_value("unknown4", (data >> 15) & 1); } -WRITE16_MEMBER(twinkle_state::serial_w) +void twinkle_state::serial_w(uint16_t data) { int _do = ( data >> 4 ) & 1; int clock = ( data >> 5 ) & 1; @@ -836,7 +835,7 @@ WRITE_LINE_MEMBER(twinkle_state::spu_ata_irq) Other bits unknown. */ -WRITE16_MEMBER(twinkle_state::twinkle_spu_ctrl_w) +void twinkle_state::twinkle_spu_ctrl_w(uint16_t data) { if ((!(data & 0x0080)) && (m_spu_ctrl & 0x0080)) { @@ -858,12 +857,12 @@ WRITE16_MEMBER(twinkle_state::twinkle_spu_ctrl_w) m_spu_ctrl = data; } -WRITE16_MEMBER(twinkle_state::spu_ata_dma_low_w) +void twinkle_state::spu_ata_dma_low_w(uint16_t data) { m_spu_ata_dma = (m_spu_ata_dma & ~0xffff) | data; } -WRITE16_MEMBER(twinkle_state::spu_ata_dma_high_w) +void twinkle_state::spu_ata_dma_high_w(uint16_t data) { m_spu_ata_dma = (m_spu_ata_dma & 0xffff) | ((uint32_t)data << 16); //printf("DMA now %x\n", m_spu_ata_dma); @@ -894,7 +893,7 @@ WRITE_LINE_MEMBER(twinkle_state::spu_ata_dmarq) } } -WRITE16_MEMBER(twinkle_state::spu_wavebank_w) +void twinkle_state::spu_wavebank_w(offs_t offset, uint16_t data, uint16_t mem_mask) { //printf("%x to wavebank_w, mask %04x\n", data, mem_mask); @@ -906,19 +905,19 @@ WRITE16_MEMBER(twinkle_state::spu_wavebank_w) m_wave_bank = data * (4*1024*1024); } -READ16_MEMBER(twinkle_state::twinkle_waveram_r) +uint16_t twinkle_state::twinkle_waveram_r(offs_t offset) { return m_waveram[offset+m_wave_bank]; } -WRITE16_MEMBER(twinkle_state::twinkle_waveram_w) +void twinkle_state::twinkle_waveram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_waveram[offset+m_wave_bank]); } -WRITE16_MEMBER(twinkle_state::spu_led_w) +void twinkle_state::spu_led_w(uint16_t data) { - // upper 8 bits are occassionally written as all zeros + // upper 8 bits are occasionally written as all zeros m_spu_leds[0] = BIT(~data, 0); m_spu_leds[1] = BIT(~data, 1); m_spu_leds[2] = BIT(~data, 2); diff --git a/src/mame/drivers/twins.cpp b/src/mame/drivers/twins.cpp index af05dddcc2b..787cfc93da5 100644 --- a/src/mame/drivers/twins.cpp +++ b/src/mame/drivers/twins.cpp @@ -144,8 +144,8 @@ protected: void twins_map(address_map &map); uint32_t screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_READ16_MEMBER(eeprom_r); - DECLARE_WRITE16_MEMBER(eeprom_w); + uint16_t eeprom_r(offs_t offset, uint16_t mem_mask = ~0); + void eeprom_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); virtual void video_start() override; @@ -153,13 +153,13 @@ protected: static constexpr u32 ram_size = 0x10000/2; inline u16* get_vram_base(); - DECLARE_READ16_MEMBER(vram_r); - DECLARE_WRITE16_MEMBER(vram_w); - DECLARE_WRITE16_MEMBER(vram_rmw_w); + uint16_t vram_r(offs_t offset); + void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void vram_rmw_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); private: - DECLARE_WRITE16_MEMBER(access_w); - DECLARE_READ16_MEMBER(access_r); + void access_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t access_r(offs_t offset, uint16_t mem_mask = ~0); virtual void machine_start() override; @@ -178,8 +178,8 @@ public: private: void twinsed1_io(address_map &map); - DECLARE_WRITE16_MEMBER(porte_paloff0_w); - DECLARE_WRITE16_MEMBER(twins_pal_w); + void porte_paloff0_w(uint8_t data); + void twins_pal_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); }; class spider_state : public twins_state @@ -197,12 +197,12 @@ private: void draw_foreground(bitmap_ind16 &bitmap, const rectangle &cliprect); void spider_io(address_map &map); - DECLARE_WRITE16_MEMBER(spider_paloff0_w); - DECLARE_READ16_MEMBER(spider_port_18_r); - DECLARE_READ16_MEMBER(spider_port_1e_r); - DECLARE_WRITE16_MEMBER(spider_port_1a_w); - DECLARE_WRITE16_MEMBER(spider_port_1c_w); - DECLARE_WRITE16_MEMBER(spider_pal_w); + void spider_paloff0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t spider_port_18_r(); + uint16_t spider_port_1e_r(); + void spider_port_1a_w(uint16_t data); + void spider_port_1c_w(uint16_t data); + void spider_pal_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); }; void twins_state::video_start() @@ -278,7 +278,7 @@ void twins_state::machine_start() m_rom8 = memregion("ipl")->base(); } -READ16_MEMBER(twins_state::eeprom_r) +uint16_t twins_state::eeprom_r(offs_t offset, uint16_t mem_mask) { // printf("%08x: eeprom_r %04x\n", m_maincpu->pc(), mem_mask); // return m_i2cmem->read_sda();// | 0xfffe; @@ -287,7 +287,7 @@ READ16_MEMBER(twins_state::eeprom_r) return m_i2cmem->read_sda(); } -WRITE16_MEMBER(twins_state::eeprom_w) +void twins_state::eeprom_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // printf("%08x: eeprom_w %04x %04x\n", m_maincpu->pc(), data, mem_mask); int i2c_clk = BIT(data, 1); @@ -296,7 +296,7 @@ WRITE16_MEMBER(twins_state::eeprom_w) m_i2cmem->write_sda(i2c_mem); } -WRITE16_MEMBER(twinsed1_state::twins_pal_w) +void twinsed1_state::twins_pal_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_paletteram[m_paloff]); @@ -320,7 +320,7 @@ WRITE16_MEMBER(twinsed1_state::twins_pal_w) } /* ??? weird ..*/ -WRITE16_MEMBER(twinsed1_state::porte_paloff0_w) +void twinsed1_state::porte_paloff0_w(uint8_t data) { // printf("porte_paloff0_w %04x\n", data); m_paloff = 0; @@ -331,20 +331,20 @@ inline u16 *twins_state::get_vram_base() return (m_videorambank & 1) ? m_fgvram.get() : m_bgvram.get(); } -READ16_MEMBER(twins_state::vram_r) +uint16_t twins_state::vram_r(offs_t offset) { u16 *vram = get_vram_base(); return vram[offset]; } -WRITE16_MEMBER(twins_state::vram_w) +void twins_state::vram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { u16 *vram = get_vram_base(); COMBINE_DATA(&vram[offset]); } // TODO: confirm this area being present on twins versions -WRITE16_MEMBER(twins_state::vram_rmw_w) +void twins_state::vram_rmw_w(offs_t offset, uint16_t data, uint16_t mem_mask) { u16 *vram = get_vram_base(); @@ -371,12 +371,12 @@ WRITE16_MEMBER(twins_state::vram_rmw_w) } } -READ16_MEMBER(twins_state::access_r) +uint16_t twins_state::access_r(offs_t offset, uint16_t mem_mask) { return m_overlay->read16(offset, mem_mask); } -WRITE16_MEMBER(twins_state::access_w) +void twins_state::access_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // this is very strange, we use the offset (address bits) not data bits to set values.. // I get the impression this might actually overlay the entire address range, including RAM and regular VRAM? @@ -401,7 +401,7 @@ WRITE16_MEMBER(twins_state::access_w) m_overlay->write16(offset, data, mem_mask); } -WRITE16_MEMBER(spider_state::spider_pal_w) +void spider_state::spider_pal_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // ths first write doesn't appear to be a palette value if (m_paloff!=0) @@ -427,19 +427,19 @@ WRITE16_MEMBER(spider_state::spider_pal_w) } -WRITE16_MEMBER(spider_state::spider_paloff0_w) +void spider_state::spider_paloff0_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // this seems to be video ram banking COMBINE_DATA(&m_videorambank); } -WRITE16_MEMBER(spider_state::spider_port_1a_w) +void spider_state::spider_port_1a_w(uint16_t data) { // writes 1 } -WRITE16_MEMBER(spider_state::spider_port_1c_w) +void spider_state::spider_port_1c_w(uint16_t data) { // done before the 'sprite' read / writes // might clear a buffer? @@ -454,7 +454,7 @@ WRITE16_MEMBER(spider_state::spider_port_1c_w) } -READ16_MEMBER(spider_state::spider_port_18_r) +uint16_t spider_state::spider_port_18_r() { // read before each blitter command // seems to put the bus in a state where the next 2 bus access offsets (anywhere) are the blitter params @@ -463,7 +463,7 @@ READ16_MEMBER(spider_state::spider_port_18_r) return 0xff; } -READ16_MEMBER(spider_state::spider_port_1e_r) +uint16_t spider_state::spider_port_1e_r() { // done before each sprite pixel 'write' // the data read is the data written, but only reads one pixel?? diff --git a/src/mame/drivers/uapce.cpp b/src/mame/drivers/uapce.cpp index e12a0f34254..9016b99689c 100644 --- a/src/mame/drivers/uapce.cpp +++ b/src/mame/drivers/uapce.cpp @@ -134,9 +134,9 @@ public: private: uint8_t m_jamma_if_control_latch; - DECLARE_WRITE8_MEMBER(jamma_if_control_latch_w); - DECLARE_READ8_MEMBER(jamma_if_control_latch_r); - DECLARE_READ8_MEMBER(jamma_if_read_dsw); + void jamma_if_control_latch_w(uint8_t data); + uint8_t jamma_if_control_latch_r(); + uint8_t jamma_if_read_dsw(offs_t offset); virtual uint8_t joy_read() override; virtual void machine_reset() override; required_device<discrete_device> m_discrete; @@ -156,7 +156,7 @@ static DISCRETE_SOUND_START(uapce_discrete) DISCRETE_SOUND_END -WRITE8_MEMBER(uapce_state::jamma_if_control_latch_w) +void uapce_state::jamma_if_control_latch_w(uint8_t data) { uint8_t diff = data ^ m_jamma_if_control_latch; m_jamma_if_control_latch = data; @@ -199,12 +199,12 @@ WRITE8_MEMBER(uapce_state::jamma_if_control_latch_w) /* D0 : Not latched. */ } -READ8_MEMBER(uapce_state::jamma_if_control_latch_r) +uint8_t uapce_state::jamma_if_control_latch_r() { return m_jamma_if_control_latch & 0x08; } -READ8_MEMBER(uapce_state::jamma_if_read_dsw) +uint8_t uapce_state::jamma_if_read_dsw(offs_t offset) { uint8_t dsw_val; diff --git a/src/mame/drivers/ultim809.cpp b/src/mame/drivers/ultim809.cpp new file mode 100644 index 00000000000..75c60ee9e5b --- /dev/null +++ b/src/mame/drivers/ultim809.cpp @@ -0,0 +1,173 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +/****************************************************************************************************** + +Ultim809 homebrew computer by Matthew Sarnoff, 2011 +http://www.msarnoff.org/6809/ + +Was developed during 2009-2011, but unknown if it was ever finished. Most of the claimed +features don't seem to be there or are inaccessible. + +2020-06-04 Skeleton [Robbbert] + +If someone knows more about the system, please update this source. + + +ToDo: +- Mirrors +- Video RAM has 2 banks of 0x4000 each. There's no way to select banks in the VDP code. +- Sound (hooked up, unable to test) +- FTDI connector +- Keyboard, PS/2 type from an older PC, connects to VIA PB7 and CA1. +- Joysticks (Sega gamepad, or Atari joystick only). +- Reset button, Run/Halt switch. +- Power LED, Bus status LEDs (2), User status LEDs (2). +- RTC type DS1307, connects to VIA PB0,PB1,PB6; xtal 32'768; battery CR2032. +- SD card slots and SPDI shift register (74595). +- Need software (some is supposed to exist; if found we could use a quickloader to get it in) + +Status: +- It ran into the weeds at 0x100, so memory is patched there to jump to the sign-on screen. +- When it says to press INTERRUPT, press F1. May need multiple presses to get over random errors. +- Various commands starting with k are supposed to be valid, but nothing is acceptable. +- If an error occurs it locks up and you have to press F1 again. +- Even though it is suggested to use a dumb terminal, nothing ever shows on it. + +****************************************************************************************************/ + +#include "emu.h" +#include "cpu/m6809/m6809.h" +#include "video/tms9928a.h" +#include "machine/6522via.h" +#include "sound/ay8910.h" +#include "machine/ins8250.h" +#include "bus/rs232/rs232.h" +#include "speaker.h" + +class ultim809_state : public driver_device +{ +public: + ultim809_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_via(*this, "via") + , m_crtc(*this, "crtc") + , m_psg(*this, "psg") + , m_uart(*this, "uart") + , m_membank(0) + {} + + void ultim809(machine_config &config); + + DECLARE_INPUT_CHANGED_MEMBER(nmi_button); + +private: + void mem_map(address_map &map); + virtual void machine_start() override; + std::unique_ptr<u8[]> m_ram; + required_device<cpu_device> m_maincpu; + required_device<via6522_device> m_via; + required_device<tms9918a_device> m_crtc; + required_device<ay8910_device> m_psg; + required_device<ns16550_device> m_uart; + u8 m_membank; +}; + +void ultim809_state::mem_map(address_map &map) +{ + map.unmap_value_high(); + // main ram banks 0 and 1 + map(0x0000, 0x7fff).lrw8(NAME([this] (offs_t offset) { return m_ram[offset]; }), NAME([this] (offs_t offset, u8 data) { m_ram[offset] = data; } )); + // main ram any bank + map(0x8000, 0xbfff).lrw8(NAME([this] (offs_t offset) { return m_ram[offset | (m_membank << 14)]; }), + NAME([this] (offs_t offset, u8 data) { m_ram[offset | (m_membank << 14)] = data; } )); // u8 + // devices + map(0xc000, 0xc00f).m(m_via, FUNC(via6522_device::map)); // u11 + map(0xc400, 0xc407).rw(m_uart, FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w)); // u16 + map(0xc800, 0xc800); //.r chip enable 74595 + map(0xcc00, 0xcc00).rw(m_crtc, FUNC(tms9918a_device::vram_read), FUNC(tms9918a_device::vram_write)); + map(0xcc01, 0xcc01).rw(m_crtc, FUNC(tms9918a_device::register_read), FUNC(tms9918a_device::register_write)); + map(0xcc02, 0xcc03).rw(m_psg, FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w)); + map(0xcc04, 0xcc04); //.r select lower 16k of VRAM + map(0xcc06, 0xcc06); //.r clear gamepad pin 7 + map(0xcc0c, 0xcc0c); //.r select upper 16k of VRAM + map(0xcc0e, 0xcc0e); //.r set gamepad pin 7 + map(0xd000, 0xd3ff); // expansion slot 1 (not used) + map(0xd400, 0xd7ff); // expansion slot 2 (not used) + map(0xd800, 0xdbff); // expansion slot 3 (not used) + map(0xdc00, 0xdfff); // expansion slot 4 (not used) + // rom + map(0xe000, 0xffff).rom().region("maincpu", 0); // u9 +} + + +static INPUT_PORTS_START( ultim809 ) + PORT_START("RESET") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Interrupt") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, ultim809_state, nmi_button, 0) +INPUT_PORTS_END + +INPUT_CHANGED_MEMBER(ultim809_state::nmi_button) +{ + m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); +} + +void ultim809_state::machine_start() +{ + m_ram = make_unique_clear<u8[]>(0x80000); + save_pointer(NAME(m_ram), 0x80000); + save_item(NAME(m_membank)); + // Send it to the sign-on instead of into the weeds + m_ram[0x100] = 0x10; + m_ram[0x101] = 0x3F; +} + +static DEVICE_INPUT_DEFAULTS_START( terminal ) + DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_38400 ) + DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_38400 ) +DEVICE_INPUT_DEFAULTS_END + +void ultim809_state::ultim809(machine_config &config) +{ + // basic machine hardware + MC6809E(config, m_maincpu, 8000000 / 4); // 68B09E + m_maincpu->set_addrmap(AS_PROGRAM, &ultim809_state::mem_map); + + // video hardware + TMS9918A(config, m_crtc, XTAL(10'738'635)); + m_crtc->set_screen("screen"); + m_crtc->set_vram_size(0x4000); // actually 2 banks of 0x4000 + m_crtc->int_callback().set_inputline(m_maincpu, M6809_IRQ_LINE); + SCREEN(config, "screen", SCREEN_TYPE_RASTER); + + VIA6522(config, m_via, 8000000 / 4); + // Memory banking: up to 32 banks with inbuilt U8, or replace it with external memory to get the full 4 MB + m_via->writepa_handler().set([this] (u8 data) { m_membank = data & 0x1F; }); // memory banking + //m_via->readpb_handler().set(FUNC(ultim809_state::portb_r)); // serial + //m_via->writepb_handler().set(FUNC(ultim809_state::portb_w)); // serial + m_via->irq_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE); + + // sound hardware + SPEAKER(config, "mono").front_center(); + AY8910(config, m_psg, 8000000 / 4).add_route(ALL_OUTPUTS, "mono", 0.50); + //m_psg->port_a_read_callback(FUNC(ultim809_state::...); // joystick 1 + //m_psg->port_b_read_callback(FUNC(ultim809_state::...); // joystick 2 + + NS16550(config, m_uart, XTAL(1'843'200)); + m_uart->out_tx_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + + // there's no rs232 port, it uses FTDI, but we need to see what's going on + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); // must be exactly here +} + +/* ROM definition */ +ROM_START( ultim809 ) + ROM_REGION(0x2000, "maincpu", 0) + ROM_LOAD( "ultim809.u9", 0x0000, 0x2000, CRC(b827aaf1) SHA1(64d9e94542d8ff13f64a4d787508eef7b64d4946) ) +ROM_END + +/* Driver */ + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 2010, ultim809, 0, 0, ultim809, ultim809, ultim809_state, empty_init, "Matthew Sarnoff", "Ultim809", MACHINE_IS_INCOMPLETE | MACHINE_IS_SKELETON | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/umipoker.cpp b/src/mame/drivers/umipoker.cpp index 96bd58b8fb3..d3f096f4f95 100644 --- a/src/mame/drivers/umipoker.cpp +++ b/src/mame/drivers/umipoker.cpp @@ -50,19 +50,19 @@ public: void umipoker(machine_config &config); protected: - DECLARE_READ8_MEMBER(z80_rom_readback_r); - DECLARE_READ8_MEMBER(z80_shared_ram_r); - DECLARE_WRITE8_MEMBER(z80_shared_ram_w); - DECLARE_WRITE16_MEMBER(umipoker_irq_ack_w); - DECLARE_WRITE16_MEMBER(umipoker_scrolly_0_w); - DECLARE_WRITE16_MEMBER(umipoker_scrolly_1_w); - DECLARE_WRITE16_MEMBER(umipoker_scrolly_2_w); - DECLARE_WRITE16_MEMBER(umipoker_scrolly_3_w); - DECLARE_WRITE16_MEMBER(umipoker_vram_0_w); - DECLARE_WRITE16_MEMBER(umipoker_vram_1_w); - DECLARE_WRITE16_MEMBER(umipoker_vram_2_w); - DECLARE_WRITE16_MEMBER(umipoker_vram_3_w); - DECLARE_WRITE16_MEMBER(umi_counters_w); + uint8_t z80_rom_readback_r(offs_t offset); + uint8_t z80_shared_ram_r(offs_t offset); + void z80_shared_ram_w(offs_t offset, uint8_t data); + void umipoker_irq_ack_w(uint16_t data); + void umipoker_scrolly_0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umipoker_scrolly_1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umipoker_scrolly_2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umipoker_scrolly_3_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umipoker_vram_0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umipoker_vram_1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umipoker_vram_2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umipoker_vram_3_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void umi_counters_w(uint16_t data); TILE_GET_INFO_MEMBER(get_tile_info_0); TILE_GET_INFO_MEMBER(get_tile_info_1); TILE_GET_INFO_MEMBER(get_tile_info_2); @@ -105,8 +105,8 @@ protected: virtual void machine_start() override; private: - DECLARE_WRITE16_MEMBER(lamps_w); - DECLARE_WRITE16_MEMBER(saiyu_counters_w); + void lamps_w(uint16_t data); + void saiyu_counters_w(uint16_t data); void saiyukip_map(address_map &map); @@ -188,28 +188,28 @@ uint32_t umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_in return 0; } -READ8_MEMBER(umipoker_state::z80_rom_readback_r) +uint8_t umipoker_state::z80_rom_readback_r(offs_t offset) { uint8_t *ROM = memregion("audiocpu")->base(); return ROM[offset]; } -READ8_MEMBER(umipoker_state::z80_shared_ram_r) +uint8_t umipoker_state::z80_shared_ram_r(offs_t offset) { machine().scheduler().synchronize(); // force resync return m_z80_wram[offset]; } -WRITE8_MEMBER(umipoker_state::z80_shared_ram_w) +void umipoker_state::z80_shared_ram_w(offs_t offset, uint8_t data) { machine().scheduler().synchronize(); // force resync m_z80_wram[offset] = data; } -WRITE16_MEMBER(umipoker_state::umipoker_irq_ack_w) +void umipoker_state::umipoker_irq_ack_w(uint16_t data) { m_maincpu->set_input_line(6, CLEAR_LINE); @@ -218,37 +218,37 @@ WRITE16_MEMBER(umipoker_state::umipoker_irq_ack_w) popmessage("%04x IRQ ACK, contact MAMEdev",data); } -WRITE16_MEMBER(umipoker_state::umipoker_scrolly_0_w){ COMBINE_DATA(&m_umipoker_scrolly[0]); } -WRITE16_MEMBER(umipoker_state::umipoker_scrolly_1_w){ COMBINE_DATA(&m_umipoker_scrolly[1]); } -WRITE16_MEMBER(umipoker_state::umipoker_scrolly_2_w){ COMBINE_DATA(&m_umipoker_scrolly[2]); } -WRITE16_MEMBER(umipoker_state::umipoker_scrolly_3_w){ COMBINE_DATA(&m_umipoker_scrolly[3]); } +void umipoker_state::umipoker_scrolly_0_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_umipoker_scrolly[0]); } +void umipoker_state::umipoker_scrolly_1_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_umipoker_scrolly[1]); } +void umipoker_state::umipoker_scrolly_2_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_umipoker_scrolly[2]); } +void umipoker_state::umipoker_scrolly_3_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_umipoker_scrolly[3]); } -WRITE16_MEMBER(umipoker_state::umipoker_vram_0_w) +void umipoker_state::umipoker_vram_0_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram_0[offset]); m_tilemap_0->mark_tile_dirty(offset >> 1); } -WRITE16_MEMBER(umipoker_state::umipoker_vram_1_w) +void umipoker_state::umipoker_vram_1_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram_1[offset]); m_tilemap_1->mark_tile_dirty(offset >> 1); } -WRITE16_MEMBER(umipoker_state::umipoker_vram_2_w) +void umipoker_state::umipoker_vram_2_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram_2[offset]); m_tilemap_2->mark_tile_dirty(offset >> 1); } -WRITE16_MEMBER(umipoker_state::umipoker_vram_3_w) +void umipoker_state::umipoker_vram_3_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram_3[offset]); m_tilemap_3->mark_tile_dirty(offset >> 1); } -WRITE16_MEMBER(saiyukip_state::lamps_w) +void saiyukip_state::lamps_w(uint16_t data) { /* Umipoker buttons layout: @@ -297,7 +297,7 @@ WRITE16_MEMBER(saiyukip_state::lamps_w) m_lamps[5] = BIT(data, 13); // Lamp 5 - START } -WRITE16_MEMBER(umipoker_state::umi_counters_w) +void umipoker_state::umi_counters_w(uint16_t data) {/* 0x0000 - Normal State (lamps off). 0x0001 - Payout pulse. @@ -318,7 +318,7 @@ WRITE16_MEMBER(umipoker_state::umi_counters_w) machine().bookkeeping().coin_counter_w(2, BIT(data, 0)); // PAYOUT } -WRITE16_MEMBER(saiyukip_state::saiyu_counters_w) +void saiyukip_state::saiyu_counters_w(uint16_t data) { /* 0x0000 - Normal State (lamps off). diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp index 9b36f607b00..fa042790363 100644 --- a/src/mame/drivers/unixpc.cpp +++ b/src/mame/drivers/unixpc.cpp @@ -68,23 +68,23 @@ private: virtual void machine_start() override; virtual void machine_reset() override; - DECLARE_READ16_MEMBER(line_printer_r); + uint16_t line_printer_r(); void disk_control_w(uint8_t data); - DECLARE_WRITE16_MEMBER(gcr_w); + void gcr_w(offs_t offset, uint16_t data); DECLARE_WRITE_LINE_MEMBER(romlmap_w); DECLARE_WRITE_LINE_MEMBER(error_enable_w); DECLARE_WRITE_LINE_MEMBER(parity_enable_w); DECLARE_WRITE_LINE_MEMBER(bpplus_w); - DECLARE_READ16_MEMBER(ram_mmu_r); - DECLARE_WRITE16_MEMBER(ram_mmu_w); - DECLARE_READ16_MEMBER(gsr_r); - DECLARE_WRITE16_MEMBER(tcr_w); - DECLARE_READ16_MEMBER(tsr_r); - DECLARE_READ16_MEMBER(rtc_r); - DECLARE_WRITE16_MEMBER(rtc_w); - DECLARE_READ16_MEMBER(diskdma_size_r); - DECLARE_WRITE16_MEMBER(diskdma_size_w); - DECLARE_WRITE16_MEMBER(diskdma_ptr_w); + uint16_t ram_mmu_r(offs_t offset); + void ram_mmu_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t gsr_r(); + void tcr_w(offs_t offset, uint16_t data); + uint16_t tsr_r(); + uint16_t rtc_r(); + void rtc_w(uint16_t data); + uint16_t diskdma_size_r(); + void diskdma_size_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void diskdma_ptr_w(offs_t offset, uint16_t data); DECLARE_WRITE_LINE_MEMBER(wd2797_intrq_w); DECLARE_WRITE_LINE_MEMBER(wd2797_drq_w); @@ -122,7 +122,7 @@ private: MEMORY ***************************************************************************/ -WRITE16_MEMBER(unixpc_state::gcr_w) +void unixpc_state::gcr_w(offs_t offset, uint16_t data) { m_gcr->write_bit(offset >> 11, BIT(data, 15)); } @@ -132,7 +132,7 @@ WRITE_LINE_MEMBER(unixpc_state::romlmap_w) m_ramrombank->set_bank(state ? 1 : 0); } -READ16_MEMBER(unixpc_state::ram_mmu_r) +uint16_t unixpc_state::ram_mmu_r(offs_t offset) { // TODO: MMU translation if (offset > m_ramsize) @@ -142,7 +142,7 @@ READ16_MEMBER(unixpc_state::ram_mmu_r) return m_ramptr[offset]; } -WRITE16_MEMBER(unixpc_state::ram_mmu_w) +void unixpc_state::ram_mmu_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // TODO: MMU translation if (offset < m_ramsize) @@ -181,32 +181,32 @@ WRITE_LINE_MEMBER(unixpc_state::bpplus_w) MISC ***************************************************************************/ -READ16_MEMBER(unixpc_state::gsr_r) +uint16_t unixpc_state::gsr_r() { return 0; } -WRITE16_MEMBER(unixpc_state::tcr_w) +void unixpc_state::tcr_w(offs_t offset, uint16_t data) { m_tcr->write_bit(offset >> 11, BIT(data, 14)); } -READ16_MEMBER(unixpc_state::tsr_r) +uint16_t unixpc_state::tsr_r() { return 0; } -READ16_MEMBER(unixpc_state::rtc_r) +uint16_t unixpc_state::rtc_r() { return 0; } -WRITE16_MEMBER(unixpc_state::rtc_w) +void unixpc_state::rtc_w(uint16_t data) { logerror("rtc_w: %04x\n", data); } -READ16_MEMBER(unixpc_state::line_printer_r) +uint16_t unixpc_state::line_printer_r() { uint16_t data = 0; @@ -224,18 +224,18 @@ READ16_MEMBER(unixpc_state::line_printer_r) DMA ***************************************************************************/ -READ16_MEMBER(unixpc_state::diskdma_size_r) +uint16_t unixpc_state::diskdma_size_r() { return m_diskdmasize; } -WRITE16_MEMBER(unixpc_state::diskdma_size_w) +void unixpc_state::diskdma_size_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA( &m_diskdmasize ); logerror("%x to disk DMA size\n", data); } -WRITE16_MEMBER(unixpc_state::diskdma_ptr_w) +void unixpc_state::diskdma_ptr_w(offs_t offset, uint16_t data) { if (offset >= 0x2000) { diff --git a/src/mame/drivers/unkhorse.cpp b/src/mame/drivers/unkhorse.cpp index ecf231b4e92..432c2ccb57d 100644 --- a/src/mame/drivers/unkhorse.cpp +++ b/src/mame/drivers/unkhorse.cpp @@ -50,8 +50,8 @@ private: std::unique_ptr<uint8_t[]> m_colorram; uint8_t m_output; - DECLARE_READ8_MEMBER(colorram_r) { return m_colorram[(offset >> 2 & 0x1e0) | (offset & 0x1f)] | 0x0f; } - DECLARE_WRITE8_MEMBER(colorram_w) { m_colorram[(offset >> 2 & 0x1e0) | (offset & 0x1f)] = data & 0xf0; } + uint8_t colorram_r(offs_t offset) { return m_colorram[(offset >> 2 & 0x1e0) | (offset & 0x1f)] | 0x0f; } + void colorram_w(offs_t offset, uint8_t data) { m_colorram[(offset >> 2 & 0x1e0) | (offset & 0x1f)] = data & 0xf0; } uint8_t input_r(); void output_w(uint8_t data); diff --git a/src/mame/drivers/uzebox.cpp b/src/mame/drivers/uzebox.cpp index 27357530321..f7407df54c4 100644 --- a/src/mame/drivers/uzebox.cpp +++ b/src/mame/drivers/uzebox.cpp @@ -53,14 +53,14 @@ private: required_device<snes_control_port_device> m_ctrl2; required_device<speaker_sound_device> m_speaker; - DECLARE_READ8_MEMBER(port_a_r); - DECLARE_WRITE8_MEMBER(port_a_w); - DECLARE_READ8_MEMBER(port_b_r); - DECLARE_WRITE8_MEMBER(port_b_w); - DECLARE_READ8_MEMBER(port_c_r); - DECLARE_WRITE8_MEMBER(port_c_w); - DECLARE_READ8_MEMBER(port_d_r); - DECLARE_WRITE8_MEMBER(port_d_w); + uint8_t port_a_r(); + void port_a_w(uint8_t data); + uint8_t port_b_r(); + void port_b_w(uint8_t data); + uint8_t port_c_r(); + void port_c_w(uint8_t data); + uint8_t port_d_r(); + void port_d_w(uint8_t data); virtual void machine_start() override; virtual void machine_reset() override; @@ -102,7 +102,7 @@ void uzebox_state::machine_reset() } -WRITE8_MEMBER(uzebox_state::port_a_w) +void uzebox_state::port_a_w(uint8_t data) { // xxxx ---- NC // ---- x--- SNES controller clk @@ -124,12 +124,12 @@ WRITE8_MEMBER(uzebox_state::port_a_w) m_port_a = (data & 0x0c) | (m_port_a & 0x03); } -READ8_MEMBER(uzebox_state::port_a_r) +uint8_t uzebox_state::port_a_r() { return m_port_a | 0xf0; } -WRITE8_MEMBER(uzebox_state::port_b_w) +void uzebox_state::port_b_w(uint8_t data) { // xxx- ---- SDCard // ---x ---- AD725 CE @@ -156,12 +156,12 @@ WRITE8_MEMBER(uzebox_state::port_b_w) m_port_b = data; } -READ8_MEMBER(uzebox_state::port_b_r) +uint8_t uzebox_state::port_b_r() { return m_port_b; } -WRITE8_MEMBER(uzebox_state::port_c_w) +void uzebox_state::port_c_w(uint8_t data) { // xx-- ---- blue // --xx x--- green @@ -171,12 +171,12 @@ WRITE8_MEMBER(uzebox_state::port_c_w) m_port_c = data; } -READ8_MEMBER(uzebox_state::port_c_r) +uint8_t uzebox_state::port_c_r() { return m_port_c; } -WRITE8_MEMBER(uzebox_state::port_d_w) +void uzebox_state::port_d_w(uint8_t data) { // x--- ---- sound // -x-- ---- SDCard CS @@ -191,7 +191,7 @@ WRITE8_MEMBER(uzebox_state::port_d_w) m_port_d = data; } -READ8_MEMBER(uzebox_state::port_d_r) +uint8_t uzebox_state::port_d_r() { return m_port_d; } diff --git a/src/mame/drivers/v100.cpp b/src/mame/drivers/v100.cpp index 6a58c9d1a09..e7d66a7937b 100644 --- a/src/mame/drivers/v100.cpp +++ b/src/mame/drivers/v100.cpp @@ -47,11 +47,11 @@ public: private: u8 status_r(); - DECLARE_WRITE8_MEMBER(port30_w); - DECLARE_READ8_MEMBER(keyboard_r); - DECLARE_WRITE8_MEMBER(key_row_w); - DECLARE_WRITE8_MEMBER(port48_w); - DECLARE_WRITE8_MEMBER(picu_w); + void port30_w(u8 data); + u8 keyboard_r(); + void key_row_w(u8 data); + void port48_w(u8 data); + void picu_w(u8 data); template<int N> DECLARE_WRITE_LINE_MEMBER(picu_r_w); IRQ_CALLBACK_MEMBER(irq_ack); void ppi_porta_w(u8 data); @@ -168,29 +168,29 @@ u8 v100_state::status_r() return status; } -WRITE8_MEMBER(v100_state::port30_w) +void v100_state::port30_w(u8 data) { // D6 = cursor/text blinking? //logerror("Writing %02X to port 30\n", data); } -READ8_MEMBER(v100_state::keyboard_r) +u8 v100_state::keyboard_r() { return m_key_row[m_active_row & 15].read_safe(0xff); } -WRITE8_MEMBER(v100_state::key_row_w) +void v100_state::key_row_w(u8 data) { m_active_row = data; } -WRITE8_MEMBER(v100_state::port48_w) +void v100_state::port48_w(u8 data) { //logerror("Writing %02X to port 48\n", data); } -WRITE8_MEMBER(v100_state::picu_w) +void v100_state::picu_w(u8 data) { m_picu->b_w((data & 0x0e) >> 1); m_picu->sgs_w(BIT(data, 4)); diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp index d265742af15..4789484e789 100644 --- a/src/mame/drivers/vamphalf.cpp +++ b/src/mame/drivers/vamphalf.cpp @@ -185,29 +185,29 @@ private: void boonggab_prize_w(offs_t offset, u16 data); void boonggab_lamps_w(offs_t offset, u16 data); - DECLARE_READ16_MEMBER(vamphalf_speedup_r); - DECLARE_READ16_MEMBER(vamphalfr1_speedup_r); - DECLARE_READ16_MEMBER(vamphafk_speedup_r); - DECLARE_READ16_MEMBER(coolmini_speedup_r); - DECLARE_READ16_MEMBER(coolminii_speedup_r); - DECLARE_READ16_MEMBER(suplup_speedup_r); - DECLARE_READ16_MEMBER(luplup_speedup_r); - DECLARE_READ16_MEMBER(luplup29_speedup_r); - DECLARE_READ16_MEMBER(luplup10_speedup_r); - DECLARE_READ16_MEMBER(puzlbang_speedup_r); - DECLARE_READ16_MEMBER(puzlbanga_speedup_r); - DECLARE_READ16_MEMBER(mrkicker_speedup_r); - DECLARE_READ16_MEMBER(dquizgo2_speedup_r); - DECLARE_READ32_MEMBER(aoh_speedup_r); - DECLARE_READ16_MEMBER(jmpbreak_speedup_r); - DECLARE_READ16_MEMBER(jmpbreaka_speedup_r); - DECLARE_READ16_MEMBER(poosho_speedup_r); - DECLARE_READ16_MEMBER(newxpang_speedup_r); - DECLARE_READ16_MEMBER(worldadv_speedup_r); - DECLARE_READ16_MEMBER(mrdig_speedup_r); - DECLARE_READ16_MEMBER(dtfamily_speedup_r); - DECLARE_READ16_MEMBER(toyland_speedup_r); - DECLARE_READ16_MEMBER(boonggab_speedup_r); + u16 vamphalf_speedup_r(); + u16 vamphalfr1_speedup_r(); + u16 vamphafk_speedup_r(); + u16 coolmini_speedup_r(); + u16 coolminii_speedup_r(); + u16 suplup_speedup_r(); + u16 luplup_speedup_r(); + u16 luplup29_speedup_r(); + u16 luplup10_speedup_r(); + u16 puzlbang_speedup_r(); + u16 puzlbanga_speedup_r(); + u16 mrkicker_speedup_r(); + u16 dquizgo2_speedup_r(); + u32 aoh_speedup_r(); + u16 jmpbreak_speedup_r(); + u16 jmpbreaka_speedup_r(); + u16 poosho_speedup_r(); + u16 newxpang_speedup_r(); + u16 worldadv_speedup_r(); + u16 mrdig_speedup_r(); + u16 dtfamily_speedup_r(); + u16 toyland_speedup_r(); + u16 boonggab_speedup_r(); void aoh_oki_bank_w(u32 data); void boonggab_oki_bank_w(offs_t offset, u16 data); @@ -252,11 +252,11 @@ public: private: required_device<i8052_device> m_qdsp_cpu; - DECLARE_READ16_MEMBER(misncrft_speedup_r); - DECLARE_READ16_MEMBER(misncrfta_speedup_r); - DECLARE_READ32_MEMBER(wivernwg_speedup_r); - DECLARE_READ32_MEMBER(wyvernwg_speedup_r); - DECLARE_READ32_MEMBER(wyvernwga_speedup_r); + u16 misncrft_speedup_r(); + u16 misncrfta_speedup_r(); + u32 wivernwg_speedup_r(); + u32 wyvernwg_speedup_r(); + u32 wyvernwga_speedup_r(); u32 wyvernwg_prot_r(); void wyvernwg_prot_w(u32 data); @@ -298,8 +298,8 @@ private: u32 finalgdr_prot_r(); void finalgdr_prot_w(u32 data); - DECLARE_READ32_MEMBER(finalgdr_speedup_r); - DECLARE_READ32_MEMBER(mrkickera_speedup_r); + u32 finalgdr_speedup_r(); + u32 mrkickera_speedup_r(); void finalgdr_prize_w(u32 data); void finalgdr_oki_bank_w(u32 data); @@ -2906,7 +2906,7 @@ void vamphalf_state::banked_oki(int chip) m_okibank->set_base(&ROM[0x20000]); } -READ16_MEMBER(vamphalf_state::vamphalf_speedup_r) +u16 vamphalf_state::vamphalf_speedup_r() { if (m_maincpu->pc() == 0x82ec) { @@ -2919,7 +2919,7 @@ READ16_MEMBER(vamphalf_state::vamphalf_speedup_r) return m_wram[0x4a7b8 / 2]; } -READ16_MEMBER(vamphalf_state::vamphalfr1_speedup_r) +u16 vamphalf_state::vamphalfr1_speedup_r() { if (m_maincpu->pc() == 0x82ec) { @@ -2932,7 +2932,7 @@ READ16_MEMBER(vamphalf_state::vamphalfr1_speedup_r) return m_wram[0x4a468 / 2]; } -READ16_MEMBER(vamphalf_state::vamphafk_speedup_r) +u16 vamphalf_state::vamphafk_speedup_r() { if (m_maincpu->pc() == 0x82ec) { @@ -2945,7 +2945,7 @@ READ16_MEMBER(vamphalf_state::vamphafk_speedup_r) return m_wram[0x4a648 / 2]; } -READ16_MEMBER(vamphalf_qdsp_state::misncrft_speedup_r) +u16 vamphalf_qdsp_state::misncrft_speedup_r() { if (m_maincpu->pc() == 0xff5a) { @@ -2958,7 +2958,7 @@ READ16_MEMBER(vamphalf_qdsp_state::misncrft_speedup_r) return m_wram[0x741e8 / 2]; } -READ16_MEMBER(vamphalf_qdsp_state::misncrfta_speedup_r) +u16 vamphalf_qdsp_state::misncrfta_speedup_r() { if (m_maincpu->pc() == 0xecd6) { @@ -2971,7 +2971,7 @@ READ16_MEMBER(vamphalf_qdsp_state::misncrfta_speedup_r) return m_wram[0x72e2c / 2]; } -READ16_MEMBER(vamphalf_state::coolmini_speedup_r) +u16 vamphalf_state::coolmini_speedup_r() { if (m_maincpu->pc() == 0x75f88) { @@ -2984,7 +2984,7 @@ READ16_MEMBER(vamphalf_state::coolmini_speedup_r) return m_wram[0xd2df8 / 2]; } -READ16_MEMBER(vamphalf_state::coolminii_speedup_r) +u16 vamphalf_state::coolminii_speedup_r() { if (m_maincpu->pc() == 0x76024) { @@ -2997,7 +2997,7 @@ READ16_MEMBER(vamphalf_state::coolminii_speedup_r) return m_wram[0xd30a8 / 2]; } -READ16_MEMBER(vamphalf_state::suplup_speedup_r) +u16 vamphalf_state::suplup_speedup_r() { if (m_maincpu->pc() == 0xaf184) { @@ -3010,7 +3010,7 @@ READ16_MEMBER(vamphalf_state::suplup_speedup_r) return m_wram[0x11605c / 2]; } -READ16_MEMBER(vamphalf_state::luplup_speedup_r) +u16 vamphalf_state::luplup_speedup_r() { if (m_maincpu->pc() == 0xaefac) { @@ -3023,7 +3023,7 @@ READ16_MEMBER(vamphalf_state::luplup_speedup_r) return m_wram[0x115e84 / 2]; } -READ16_MEMBER(vamphalf_state::luplup29_speedup_r) +u16 vamphalf_state::luplup29_speedup_r() { if (m_maincpu->pc() == 0xae6c0) { @@ -3036,7 +3036,7 @@ READ16_MEMBER(vamphalf_state::luplup29_speedup_r) return m_wram[0x113f08 / 2]; } -READ16_MEMBER(vamphalf_state::luplup10_speedup_r) +u16 vamphalf_state::luplup10_speedup_r() { if (m_maincpu->pc() == 0xb1128) { @@ -3049,7 +3049,7 @@ READ16_MEMBER(vamphalf_state::luplup10_speedup_r) return m_wram[0x113b78 / 2]; } -READ16_MEMBER(vamphalf_state::puzlbang_speedup_r) +u16 vamphalf_state::puzlbang_speedup_r() { if (m_maincpu->pc() == 0xae6cc) { @@ -3062,7 +3062,7 @@ READ16_MEMBER(vamphalf_state::puzlbang_speedup_r) return m_wram[0x113f14 / 2]; } -READ16_MEMBER(vamphalf_state::puzlbanga_speedup_r) +u16 vamphalf_state::puzlbanga_speedup_r() { if (m_maincpu->pc() == 0xae6cc) { @@ -3075,7 +3075,7 @@ READ16_MEMBER(vamphalf_state::puzlbanga_speedup_r) return m_wram[0x113ecc / 2]; } -READ32_MEMBER(vamphalf_qdsp_state::wivernwg_speedup_r) +u32 vamphalf_qdsp_state::wivernwg_speedup_r() { if (m_maincpu->pc() == 0x10766) { @@ -3088,7 +3088,7 @@ READ32_MEMBER(vamphalf_qdsp_state::wivernwg_speedup_r) return m_wram32[0xb4cc4 / 4]; } -READ32_MEMBER(vamphalf_qdsp_state::wyvernwg_speedup_r) +u32 vamphalf_qdsp_state::wyvernwg_speedup_r() { if (m_maincpu->pc() == 0x10766) { @@ -3101,7 +3101,7 @@ READ32_MEMBER(vamphalf_qdsp_state::wyvernwg_speedup_r) return m_wram32[0xb56f4 / 4]; } -READ32_MEMBER(vamphalf_qdsp_state::wyvernwga_speedup_r) +u32 vamphalf_qdsp_state::wyvernwga_speedup_r() { if (m_maincpu->pc() == 0x10766) { @@ -3114,7 +3114,7 @@ READ32_MEMBER(vamphalf_qdsp_state::wyvernwga_speedup_r) return m_wram32[0xb74f0 / 4]; } -READ32_MEMBER(vamphalf_nvram_state::finalgdr_speedup_r) +u32 vamphalf_nvram_state::finalgdr_speedup_r() { if (m_maincpu->pc() == 0x1c20c) { @@ -3127,7 +3127,7 @@ READ32_MEMBER(vamphalf_nvram_state::finalgdr_speedup_r) return m_wram32[0x5e870 / 4]; } -READ32_MEMBER(vamphalf_nvram_state::mrkickera_speedup_r) +u32 vamphalf_nvram_state::mrkickera_speedup_r() { if (m_maincpu->pc() == 0x46a30) { @@ -3140,7 +3140,7 @@ READ32_MEMBER(vamphalf_nvram_state::mrkickera_speedup_r) return m_wram32[0x701a0 / 4]; } -READ16_MEMBER(vamphalf_state::mrkicker_speedup_r) +u16 vamphalf_state::mrkicker_speedup_r() { if (m_maincpu->pc() == 0x41ec6) { @@ -3153,7 +3153,7 @@ READ16_MEMBER(vamphalf_state::mrkicker_speedup_r) return m_wram[0x63fc0 / 2]; } -READ16_MEMBER(vamphalf_state::dquizgo2_speedup_r) +u16 vamphalf_state::dquizgo2_speedup_r() { if (m_maincpu->pc() == 0xaa630) { @@ -3166,7 +3166,7 @@ READ16_MEMBER(vamphalf_state::dquizgo2_speedup_r) return m_wram[0xcdde8 / 2]; } -READ32_MEMBER(vamphalf_state::aoh_speedup_r) +u32 vamphalf_state::aoh_speedup_r() { if (m_maincpu->pc() == 0xb994 || m_maincpu->pc() == 0xba40) { @@ -3176,7 +3176,7 @@ READ32_MEMBER(vamphalf_state::aoh_speedup_r) return m_wram32[0x28a09c / 4]; } -READ16_MEMBER(vamphalf_state::jmpbreak_speedup_r) +u16 vamphalf_state::jmpbreak_speedup_r() { if (m_maincpu->pc() == 0x984a) { @@ -3189,7 +3189,7 @@ READ16_MEMBER(vamphalf_state::jmpbreak_speedup_r) return m_wram[0x906f4 / 2]; } -READ16_MEMBER(vamphalf_state::jmpbreaka_speedup_r) +u16 vamphalf_state::jmpbreaka_speedup_r() { if (m_maincpu->pc() == 0x909ac) { @@ -3202,7 +3202,7 @@ READ16_MEMBER(vamphalf_state::jmpbreaka_speedup_r) return m_wram[0xe1dfc / 2]; } -READ16_MEMBER(vamphalf_state::poosho_speedup_r) +u16 vamphalf_state::poosho_speedup_r() { if (m_maincpu->pc() == 0xa8c78) { @@ -3215,7 +3215,7 @@ READ16_MEMBER(vamphalf_state::poosho_speedup_r) return m_wram[0xc8b58 / 2]; } -READ16_MEMBER(vamphalf_state::newxpang_speedup_r) +u16 vamphalf_state::newxpang_speedup_r() { if (m_maincpu->pc() == 0x8b8e) { @@ -3228,7 +3228,7 @@ READ16_MEMBER(vamphalf_state::newxpang_speedup_r) return m_wram[0x61218 / 2]; } -READ16_MEMBER(vamphalf_state::worldadv_speedup_r) +u16 vamphalf_state::worldadv_speedup_r() { if (m_maincpu->pc() == 0x93ae) { @@ -3241,7 +3241,7 @@ READ16_MEMBER(vamphalf_state::worldadv_speedup_r) return m_wram[0xc5e78 / 2]; } -READ16_MEMBER(vamphalf_state::mrdig_speedup_r) +u16 vamphalf_state::mrdig_speedup_r() { if (m_maincpu->pc() == 0xae38) { @@ -3254,7 +3254,7 @@ READ16_MEMBER(vamphalf_state::mrdig_speedup_r) return m_wram[0x0e0768 / 2]; } -READ16_MEMBER(vamphalf_state::dtfamily_speedup_r) +u16 vamphalf_state::dtfamily_speedup_r() { if (m_maincpu->pc() == 0x12fa6) { @@ -3267,7 +3267,7 @@ READ16_MEMBER(vamphalf_state::dtfamily_speedup_r) return m_wram[0xcc2a8 / 2]; } -READ16_MEMBER(vamphalf_state::toyland_speedup_r) +u16 vamphalf_state::toyland_speedup_r() { if (m_maincpu->pc() == 0x130c2) { @@ -3280,7 +3280,7 @@ READ16_MEMBER(vamphalf_state::toyland_speedup_r) return m_wram[0x780d8 / 2]; } -READ16_MEMBER(vamphalf_state::boonggab_speedup_r) +u16 vamphalf_state::boonggab_speedup_r() { if (m_maincpu->pc() == 0x131a6) { @@ -3295,7 +3295,7 @@ READ16_MEMBER(vamphalf_state::boonggab_speedup_r) void vamphalf_state::init_vamphalf() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a7b8, 0x0004a7b9, read16_delegate(*this, FUNC(vamphalf_state::vamphalf_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a7b8, 0x0004a7b9, read16smo_delegate(*this, FUNC(vamphalf_state::vamphalf_speedup_r))); m_palshift = 0; m_flip_bit = 0x80; @@ -3303,7 +3303,7 @@ void vamphalf_state::init_vamphalf() void vamphalf_state::init_vamphalfr1() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a468, 0x0004a469, read16_delegate(*this, FUNC(vamphalf_state::vamphalfr1_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a468, 0x0004a469, read16smo_delegate(*this, FUNC(vamphalf_state::vamphalfr1_speedup_r))); m_palshift = 0; m_flip_bit = 0x80; @@ -3311,7 +3311,7 @@ void vamphalf_state::init_vamphalfr1() void vamphalf_state::init_vamphafk() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a648, 0x0004a649, read16_delegate(*this, FUNC(vamphalf_state::vamphafk_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a648, 0x0004a649, read16smo_delegate(*this, FUNC(vamphalf_state::vamphafk_speedup_r))); m_palshift = 0; m_flip_bit = 0x80; @@ -3319,8 +3319,8 @@ void vamphalf_state::init_vamphafk() void vamphalf_qdsp_state::init_misncrft() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16_delegate(*this, FUNC(vamphalf_qdsp_state::misncrft_speedup_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16_delegate(*this, FUNC(vamphalf_qdsp_state::misncrfta_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16smo_delegate(*this, FUNC(vamphalf_qdsp_state::misncrft_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16smo_delegate(*this, FUNC(vamphalf_qdsp_state::misncrfta_speedup_r))); m_palshift = 0; m_flip_bit = 1; @@ -3331,7 +3331,7 @@ void vamphalf_qdsp_state::init_misncrft() void vamphalf_state::init_coolmini() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d2df8, 0x000d2df9, read16_delegate(*this, FUNC(vamphalf_state::coolmini_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d2df8, 0x000d2df9, read16smo_delegate(*this, FUNC(vamphalf_state::coolmini_speedup_r))); m_palshift = 0; m_flip_bit = 1; @@ -3339,7 +3339,7 @@ void vamphalf_state::init_coolmini() void vamphalf_state::init_coolminii() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d30a8, 0x000d30a9, read16_delegate(*this, FUNC(vamphalf_state::coolminii_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d30a8, 0x000d30a9, read16smo_delegate(*this, FUNC(vamphalf_state::coolminii_speedup_r))); m_palshift = 0; m_flip_bit = 1; @@ -3348,7 +3348,7 @@ void vamphalf_state::init_coolminii() void vamphalf_state::init_mrkicker() { banked_oki(0); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00063fc0, 0x00063fc1, read16_delegate(*this, FUNC(vamphalf_state::mrkicker_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00063fc0, 0x00063fc1, read16smo_delegate(*this, FUNC(vamphalf_state::mrkicker_speedup_r))); m_palshift = 0; m_flip_bit = 1; @@ -3356,7 +3356,7 @@ void vamphalf_state::init_mrkicker() void vamphalf_state::init_suplup() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x0011605c, 0x0011605d, read16_delegate(*this, FUNC(vamphalf_state::suplup_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0011605c, 0x0011605d, read16smo_delegate(*this, FUNC(vamphalf_state::suplup_speedup_r))); m_palshift = 8; /* no flipscreen */ @@ -3364,7 +3364,7 @@ void vamphalf_state::init_suplup() void vamphalf_state::init_luplup() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00115e84, 0x00115e85, read16_delegate(*this, FUNC(vamphalf_state::luplup_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00115e84, 0x00115e85, read16smo_delegate(*this, FUNC(vamphalf_state::luplup_speedup_r))); m_palshift = 8; /* no flipscreen */ @@ -3372,7 +3372,7 @@ void vamphalf_state::init_luplup() void vamphalf_state::init_luplup29() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f08, 0x00113f09, read16_delegate(*this, FUNC(vamphalf_state::luplup29_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f08, 0x00113f09, read16smo_delegate(*this, FUNC(vamphalf_state::luplup29_speedup_r))); m_palshift = 8; /* no flipscreen */ @@ -3380,7 +3380,7 @@ void vamphalf_state::init_luplup29() void vamphalf_state::init_luplup10() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113b78, 0x00113b79, read16_delegate(*this, FUNC(vamphalf_state::luplup10_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113b78, 0x00113b79, read16smo_delegate(*this, FUNC(vamphalf_state::luplup10_speedup_r))); m_palshift = 8; /* no flipscreen */ @@ -3388,8 +3388,8 @@ void vamphalf_state::init_luplup10() void vamphalf_state::init_puzlbang() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f14, 0x00113f15, read16_delegate(*this, FUNC(vamphalf_state::puzlbang_speedup_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113ecc, 0x00113ecd, read16_delegate(*this, FUNC(vamphalf_state::puzlbanga_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f14, 0x00113f15, read16smo_delegate(*this, FUNC(vamphalf_state::puzlbang_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113ecc, 0x00113ecd, read16smo_delegate(*this, FUNC(vamphalf_state::puzlbanga_speedup_r))); m_palshift = 8; /* no flipscreen */ @@ -3397,9 +3397,9 @@ void vamphalf_state::init_puzlbang() void vamphalf_qdsp_state::init_wyvernwg() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wivernwg_speedup_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwg_speedup_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwga_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32smo_delegate(*this, FUNC(vamphalf_qdsp_state::wivernwg_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32smo_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwg_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32smo_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwga_speedup_r))); m_palshift = 0; m_flip_bit = 1; @@ -3441,7 +3441,7 @@ void vamphalf_nvram_state::init_finalgdr() banked_oki(0); m_finalgdr_backupram_bank = 1; m_finalgdr_backupram = std::make_unique<u8[]>(0x80*0x100); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32_delegate(*this, FUNC(vamphalf_nvram_state::finalgdr_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32smo_delegate(*this, FUNC(vamphalf_nvram_state::finalgdr_speedup_r))); m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100); m_palshift = 0; @@ -3463,7 +3463,7 @@ void vamphalf_nvram_state::init_mrkickera() // backup ram isn't used m_finalgdr_backupram_bank = 1; m_finalgdr_backupram = std::make_unique<u8[]>(0x80*0x100); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32_delegate(*this, FUNC(vamphalf_nvram_state::mrkickera_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32smo_delegate(*this, FUNC(vamphalf_nvram_state::mrkickera_speedup_r))); m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100); m_palshift = 0; @@ -3479,7 +3479,7 @@ void vamphalf_nvram_state::init_mrkickera() void vamphalf_state::init_dquizgo2() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00cdde8, 0x00cdde9, read16_delegate(*this, FUNC(vamphalf_state::dquizgo2_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00cdde8, 0x00cdde9, read16smo_delegate(*this, FUNC(vamphalf_state::dquizgo2_speedup_r))); m_palshift = 0; m_flip_bit = 1; @@ -3488,7 +3488,7 @@ void vamphalf_state::init_dquizgo2() void vamphalf_state::init_dtfamily() { banked_oki(0); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xcc2a8, 0xcc2a9, read16_delegate(*this, FUNC(vamphalf_state::dtfamily_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xcc2a8, 0xcc2a9, read16smo_delegate(*this, FUNC(vamphalf_state::dtfamily_speedup_r))); m_palshift = 0; m_flip_bit = 1; @@ -3497,7 +3497,7 @@ void vamphalf_state::init_dtfamily() void vamphalf_state::init_toyland() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x780d8, 0x780d9, read16_delegate(*this, FUNC(vamphalf_state::toyland_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x780d8, 0x780d9, read16smo_delegate(*this, FUNC(vamphalf_state::toyland_speedup_r))); m_palshift = 0; m_flip_bit = 1; @@ -3506,7 +3506,7 @@ void vamphalf_state::init_toyland() void vamphalf_state::init_aoh() { banked_oki(1); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x028a09c, 0x028a09f, read32_delegate(*this, FUNC(vamphalf_state::aoh_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x028a09c, 0x028a09f, read32smo_delegate(*this, FUNC(vamphalf_state::aoh_speedup_r))); m_palshift = 0; /* no flipscreen */ @@ -3514,7 +3514,7 @@ void vamphalf_state::init_aoh() void vamphalf_state::init_jmpbreak() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00906f4, 0x00906f5, read16_delegate(*this, FUNC(vamphalf_state::jmpbreak_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00906f4, 0x00906f5, read16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_speedup_r))); m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w))); m_palshift = 0; @@ -3522,7 +3522,7 @@ void vamphalf_state::init_jmpbreak() void vamphalf_state::init_jmpbreaka() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e1dfc, 0x00e1dfd, read16_delegate(*this, FUNC(vamphalf_state::jmpbreaka_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e1dfc, 0x00e1dfd, read16smo_delegate(*this, FUNC(vamphalf_state::jmpbreaka_speedup_r))); m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w))); m_palshift = 0; @@ -3530,7 +3530,7 @@ void vamphalf_state::init_jmpbreaka() void vamphalf_state::init_mrdig() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0768, 0x0e0769, read16_delegate(*this, FUNC(vamphalf_state::mrdig_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0768, 0x0e0769, read16smo_delegate(*this, FUNC(vamphalf_state::mrdig_speedup_r))); m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w))); m_palshift = 0; @@ -3538,7 +3538,7 @@ void vamphalf_state::init_mrdig() void vamphalf_state::init_poosho() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c8b58, 0x0c8b59, read16_delegate(*this, FUNC(vamphalf_state::poosho_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c8b58, 0x0c8b59, read16smo_delegate(*this, FUNC(vamphalf_state::poosho_speedup_r))); m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w))); m_palshift = 0; @@ -3546,7 +3546,7 @@ void vamphalf_state::init_poosho() void vamphalf_state::init_newxpang() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x061218, 0x061219, read16_delegate(*this, FUNC(vamphalf_state::newxpang_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x061218, 0x061219, read16smo_delegate(*this, FUNC(vamphalf_state::newxpang_speedup_r))); m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w))); m_palshift = 0; @@ -3554,7 +3554,7 @@ void vamphalf_state::init_newxpang() void vamphalf_state::init_worldadv() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c5e78, 0x0c5e79, read16_delegate(*this, FUNC(vamphalf_state::worldadv_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c5e78, 0x0c5e79, read16smo_delegate(*this, FUNC(vamphalf_state::worldadv_speedup_r))); m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w))); m_palshift = 0; @@ -3563,7 +3563,7 @@ void vamphalf_state::init_worldadv() void vamphalf_state::init_boonggab() { banked_oki(0); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x000f1b74, 0x000f1b75, read16_delegate(*this, FUNC(vamphalf_state::boonggab_speedup_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x000f1b74, 0x000f1b75, read16smo_delegate(*this, FUNC(vamphalf_state::boonggab_speedup_r))); m_palshift = 0; m_has_extra_gfx = true; diff --git a/src/mame/drivers/vax11.cpp b/src/mame/drivers/vax11.cpp index c07cfe1798a..01c16de4fe8 100644 --- a/src/mame/drivers/vax11.cpp +++ b/src/mame/drivers/vax11.cpp @@ -85,33 +85,33 @@ public: private: required_device<t11_device> m_maincpu; required_device<generic_terminal_device> m_terminal; - DECLARE_READ16_MEMBER( term_r ); - DECLARE_READ16_MEMBER( term_tx_status_r ); - DECLARE_READ16_MEMBER( term_rx_status_r ); - DECLARE_WRITE16_MEMBER( term_w ); + uint16_t term_r(); + uint16_t term_tx_status_r(); + uint16_t term_rx_status_r(); + void term_w(uint16_t data); void kbd_put(u8 data); uint8_t m_term_data; uint16_t m_term_status; void vax11_mem(address_map &map); }; -WRITE16_MEMBER(vax11_state::term_w) +void vax11_state::term_w(uint16_t data) { m_terminal->write(data); } -READ16_MEMBER(vax11_state::term_r) +uint16_t vax11_state::term_r() { m_term_status = 0x0000; return m_term_data; } -READ16_MEMBER(vax11_state::term_tx_status_r) +uint16_t vax11_state::term_tx_status_r() { // always ready return 0xffff; } -READ16_MEMBER(vax11_state::term_rx_status_r) +uint16_t vax11_state::term_rx_status_r() { return m_term_status; } diff --git a/src/mame/drivers/vboy.cpp b/src/mame/drivers/vboy.cpp index fc7213e15a5..ef69def55cc 100644 --- a/src/mame/drivers/vboy.cpp +++ b/src/mame/drivers/vboy.cpp @@ -146,28 +146,28 @@ private: uint8_t m_row_num; attotime m_input_latch_time; - DECLARE_READ32_MEMBER(io_r); - DECLARE_WRITE32_MEMBER(io_w); - DECLARE_READ16_MEMBER(vip_r); - DECLARE_WRITE16_MEMBER(vip_w); - DECLARE_WRITE16_MEMBER(font0_w); - DECLARE_WRITE16_MEMBER(font1_w); - DECLARE_WRITE16_MEMBER(font2_w); - DECLARE_WRITE16_MEMBER(font3_w); - DECLARE_READ16_MEMBER(font0_r); - DECLARE_READ16_MEMBER(font1_r); - DECLARE_READ16_MEMBER(font2_r); - DECLARE_READ16_MEMBER(font3_r); - DECLARE_WRITE16_MEMBER(vboy_bgmap_w); - DECLARE_READ16_MEMBER(vboy_bgmap_r); - DECLARE_READ8_MEMBER(lfb0_r); - DECLARE_READ8_MEMBER(lfb1_r); - DECLARE_READ8_MEMBER(rfb0_r); - DECLARE_READ8_MEMBER(rfb1_r); - DECLARE_WRITE8_MEMBER(lfb0_w); - DECLARE_WRITE8_MEMBER(lfb1_w); - DECLARE_WRITE8_MEMBER(rfb0_w); - DECLARE_WRITE8_MEMBER(rfb1_w); + uint32_t io_r(offs_t offset); + void io_w(offs_t offset, uint32_t data); + uint16_t vip_r(offs_t offset); + void vip_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void font0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void font1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void font2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void font3_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t font0_r(offs_t offset); + uint16_t font1_r(offs_t offset); + uint16_t font2_r(offs_t offset); + uint16_t font3_r(offs_t offset); + void vboy_bgmap_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t vboy_bgmap_r(offs_t offset); + uint8_t lfb0_r(offs_t offset); + uint8_t lfb1_r(offs_t offset); + uint8_t rfb0_r(offs_t offset); + uint8_t rfb1_r(offs_t offset); + void lfb0_w(offs_t offset, uint8_t data); + void lfb1_w(offs_t offset, uint8_t data); + void rfb0_w(offs_t offset, uint8_t data); + void rfb1_w(offs_t offset, uint8_t data); void m_timer_tick(); void m_scanline_tick(int scanline, uint8_t screen_type); @@ -557,7 +557,7 @@ uint32_t vboy_state::screen_update_vboy_right(screen_device &screen, bitmap_ind1 * *********************************/ -READ32_MEMBER( vboy_state::io_r ) +uint32_t vboy_state::io_r(offs_t offset) { uint32_t value = 0x00; @@ -602,7 +602,7 @@ READ32_MEMBER( vboy_state::io_r ) return value; } -WRITE32_MEMBER( vboy_state::io_w ) +void vboy_state::io_w(offs_t offset, uint32_t data) { switch (offset<<2) { @@ -719,7 +719,7 @@ void vboy_state::m_set_brightness() m_palette->set_pen_color(3, c,0,0); } -READ16_MEMBER( vboy_state::vip_r ) +uint16_t vboy_state::vip_r(offs_t offset) { switch(offset << 1) { case 0x00: //INTPND @@ -842,7 +842,7 @@ READ16_MEMBER( vboy_state::vip_r ) return 0xffff; } -WRITE16_MEMBER( vboy_state::vip_w ) +void vboy_state::vip_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if(mem_mask != 0xffff) printf("%04x %02x\n",mem_mask,offset*2); @@ -986,64 +986,64 @@ WRITE16_MEMBER( vboy_state::vip_w ) -WRITE16_MEMBER( vboy_state::font0_w ) +void vboy_state::font0_w(offs_t offset, uint16_t data, uint16_t mem_mask) { WRITE_FONT(offset); } -WRITE16_MEMBER( vboy_state::font1_w ) +void vboy_state::font1_w(offs_t offset, uint16_t data, uint16_t mem_mask) { WRITE_FONT(offset+0x1000); } -WRITE16_MEMBER( vboy_state::font2_w ) +void vboy_state::font2_w(offs_t offset, uint16_t data, uint16_t mem_mask) { WRITE_FONT(offset+0x2000); } -WRITE16_MEMBER( vboy_state::font3_w ) +void vboy_state::font3_w(offs_t offset, uint16_t data, uint16_t mem_mask) { WRITE_FONT(offset+0x3000); } -READ16_MEMBER( vboy_state::font0_r ) +uint16_t vboy_state::font0_r(offs_t offset) { return READ_FONT(offset); } -READ16_MEMBER( vboy_state::font1_r ) +uint16_t vboy_state::font1_r(offs_t offset) { return READ_FONT(offset + 0x1000); } -READ16_MEMBER( vboy_state::font2_r ) +uint16_t vboy_state::font2_r(offs_t offset) { return READ_FONT(offset + 0x2000); } -READ16_MEMBER( vboy_state::font3_r ) +uint16_t vboy_state::font3_r(offs_t offset) { return READ_FONT(offset + 0x3000); } -WRITE16_MEMBER( vboy_state::vboy_bgmap_w ) +void vboy_state::vboy_bgmap_w(offs_t offset, uint16_t data, uint16_t mem_mask) { m_bgmap[offset] = data | (m_bgmap[offset] & (mem_mask ^ 0xffff)); } -READ16_MEMBER( vboy_state::vboy_bgmap_r ) +uint16_t vboy_state::vboy_bgmap_r(offs_t offset) { return m_bgmap[offset]; } -READ8_MEMBER( vboy_state::lfb0_r ) { return m_l_frame_0[offset]; } -READ8_MEMBER( vboy_state::lfb1_r ) { return m_l_frame_1[offset]; } -READ8_MEMBER( vboy_state::rfb0_r ) { return m_r_frame_0[offset]; } -READ8_MEMBER( vboy_state::rfb1_r ) { return m_r_frame_1[offset]; } -WRITE8_MEMBER( vboy_state::lfb0_w ) { m_l_frame_0[offset] = data; } -WRITE8_MEMBER( vboy_state::lfb1_w ) { m_l_frame_1[offset] = data; } -WRITE8_MEMBER( vboy_state::rfb0_w ) { m_r_frame_0[offset] = data; } -WRITE8_MEMBER( vboy_state::rfb1_w ) { m_r_frame_1[offset] = data; } +uint8_t vboy_state::lfb0_r(offs_t offset) { return m_l_frame_0[offset]; } +uint8_t vboy_state::lfb1_r(offs_t offset) { return m_l_frame_1[offset]; } +uint8_t vboy_state::rfb0_r(offs_t offset) { return m_r_frame_0[offset]; } +uint8_t vboy_state::rfb1_r(offs_t offset) { return m_r_frame_1[offset]; } +void vboy_state::lfb0_w(offs_t offset, uint8_t data) { m_l_frame_0[offset] = data; } +void vboy_state::lfb1_w(offs_t offset, uint8_t data) { m_l_frame_1[offset] = data; } +void vboy_state::rfb0_w(offs_t offset, uint8_t data) { m_r_frame_0[offset] = data; } +void vboy_state::rfb1_w(offs_t offset, uint8_t data) { m_r_frame_1[offset] = data; } void vboy_state::vboy_mem(address_map &map) diff --git a/src/mame/drivers/vcombat.cpp b/src/mame/drivers/vcombat.cpp index 5381fd8fc8e..ef93aec1594 100644 --- a/src/mame/drivers/vcombat.cpp +++ b/src/mame/drivers/vcombat.cpp @@ -133,19 +133,19 @@ private: std::unique_ptr<uint16_t[]> m_i860_framebuffer[2][2]; int m_crtc_select; - DECLARE_WRITE16_MEMBER(main_video_write); - DECLARE_READ16_MEMBER(control_1_r); - DECLARE_READ16_MEMBER(control_2_r); - DECLARE_READ16_MEMBER(control_3_r); + void main_video_write(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t control_1_r(); + uint16_t control_2_r(); + uint16_t control_3_r(); void wiggle_i860_common(int which, uint16_t data); - DECLARE_WRITE16_MEMBER(wiggle_i860p0_pins_w); - DECLARE_WRITE16_MEMBER(wiggle_i860p1_pins_w); - DECLARE_READ16_MEMBER(main_irqiack_r); - DECLARE_READ16_MEMBER(sound_resetmain_r); - DECLARE_WRITE64_MEMBER(v0_fb_w); - DECLARE_WRITE64_MEMBER(v1_fb_w); - DECLARE_WRITE16_MEMBER(crtc_w); - DECLARE_WRITE16_MEMBER(vcombat_dac_w); + void wiggle_i860p0_pins_w(uint16_t data); + void wiggle_i860p1_pins_w(uint16_t data); + uint16_t main_irqiack_r(); + uint16_t sound_resetmain_r(); + void v0_fb_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void v1_fb_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void crtc_w(uint16_t data); + void vcombat_dac_w(uint16_t data); DECLARE_WRITE_LINE_MEMBER(sound_update); uint32_t update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index); @@ -210,7 +210,7 @@ uint32_t vcombat_state::screen_update_vcombat_main(screen_device &screen, bitmap uint32_t vcombat_state::screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); } -WRITE16_MEMBER(vcombat_state::main_video_write) +void vcombat_state::main_video_write(offs_t offset, uint16_t data, uint16_t mem_mask) { int fb = (*m_framebuffer_ctrl & 0x20) ? 0 : 1; uint16_t old_data = m_m68k_framebuffer[fb][offset]; @@ -234,17 +234,17 @@ WRITE16_MEMBER(vcombat_state::main_video_write) } } -READ16_MEMBER(vcombat_state::control_1_r) +uint16_t vcombat_state::control_1_r() { return (ioport("IN0")->read() << 8); } -READ16_MEMBER(vcombat_state::control_2_r) +uint16_t vcombat_state::control_2_r() { return (ioport("IN1")->read() << 8); } -READ16_MEMBER(vcombat_state::control_3_r) +uint16_t vcombat_state::control_3_r() { return (ioport("IN2")->read() << 8); } @@ -277,17 +277,17 @@ void vcombat_state::wiggle_i860_common(int which, uint16_t data) device.i860_set_pin(DEC_PIN_RESET, 0); } -WRITE16_MEMBER(vcombat_state::wiggle_i860p0_pins_w) +void vcombat_state::wiggle_i860p0_pins_w(uint16_t data) { wiggle_i860_common(0, data); } -WRITE16_MEMBER(vcombat_state::wiggle_i860p1_pins_w) +void vcombat_state::wiggle_i860p1_pins_w(uint16_t data) { wiggle_i860_common(1, data); } -READ16_MEMBER(vcombat_state::main_irqiack_r) +uint16_t vcombat_state::main_irqiack_r() { //LOG("M0: irq iack\n"); m_maincpu->set_input_line(M68K_IRQ_1, CLEAR_LINE); @@ -295,14 +295,14 @@ READ16_MEMBER(vcombat_state::main_irqiack_r) return 0; } -READ16_MEMBER(vcombat_state::sound_resetmain_r) +uint16_t vcombat_state::sound_resetmain_r() { //LOG("M1: reset line to M0\n"); //m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); return 0; } -WRITE64_MEMBER(vcombat_state::v0_fb_w) +void vcombat_state::v0_fb_w(offs_t offset, uint64_t data, uint64_t mem_mask) { /* The frame buffer seems to sit on a 32-bit data bus, while the i860 uses a 64-bit data bus. Adjust accordingly. */ @@ -325,7 +325,7 @@ WRITE64_MEMBER(vcombat_state::v0_fb_w) /* This is just temporary so we can see what each i860 is doing to the framebuffer. */ -WRITE64_MEMBER(vcombat_state::v1_fb_w) +void vcombat_state::v1_fb_w(offs_t offset, uint64_t data, uint64_t mem_mask) { /* The frame buffer seems to sit on a 32-bit data bus, while the i860 uses a 64-bit data bus. Adjust accordingly. */ @@ -346,7 +346,7 @@ WRITE64_MEMBER(vcombat_state::v1_fb_w) } } -WRITE16_MEMBER(vcombat_state::crtc_w) +void vcombat_state::crtc_w(uint16_t data) { if (m_crtc == nullptr) return; @@ -359,7 +359,7 @@ WRITE16_MEMBER(vcombat_state::crtc_w) m_crtc_select ^= 1; } -WRITE16_MEMBER(vcombat_state::vcombat_dac_w) +void vcombat_state::vcombat_dac_w(uint16_t data) { m_dac->write(data >> 5); if (data & 0x801f) diff --git a/src/mame/drivers/vcs80.cpp b/src/mame/drivers/vcs80.cpp index 22b6d1ebda6..7c2dfc40376 100644 --- a/src/mame/drivers/vcs80.cpp +++ b/src/mame/drivers/vcs80.cpp @@ -86,7 +86,7 @@ private: m_bdmem->write8(offset, data); } - DECLARE_READ8_MEMBER( io_r ) + uint8_t io_r(offs_t offset) { m_pio->port_b_write((!BIT(offset, 0)) << 7); if (BIT(offset, 2)) @@ -94,7 +94,7 @@ private: return 0xff; } - DECLARE_WRITE8_MEMBER( io_w ) + void io_w(offs_t offset, uint8_t data) { m_pio->port_b_write((!BIT(offset, 0)) << 7); if (BIT(offset, 2)) diff --git a/src/mame/drivers/vd.cpp b/src/mame/drivers/vd.cpp index e06b9053ff7..83300b91c9b 100644 --- a/src/mame/drivers/vd.cpp +++ b/src/mame/drivers/vd.cpp @@ -37,11 +37,11 @@ public: void vd(machine_config &config); private: - DECLARE_READ8_MEMBER(ack_r); - DECLARE_WRITE8_MEMBER(col_w); - DECLARE_WRITE8_MEMBER(disp_w); - DECLARE_WRITE8_MEMBER(lamp_w) { }; - DECLARE_WRITE8_MEMBER(sol_w) { }; + uint8_t ack_r(); + void col_w(uint8_t data); + void disp_w(offs_t offset, uint8_t data); + void lamp_w(uint8_t data) { }; + void sol_w(uint8_t data) { }; TIMER_DEVICE_CALLBACK_MEMBER(irq); void vd_io(address_map &map); void vd_map(address_map &map); @@ -55,7 +55,7 @@ private: }; -READ8_MEMBER(vd_state::ack_r) +uint8_t vd_state::ack_r() { m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); // guess return 0; // this value is not used @@ -159,7 +159,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( vd_state::irq ) m_t_c++; } -WRITE8_MEMBER( vd_state::disp_w ) +void vd_state::disp_w(offs_t offset, uint8_t data) { segment[offset] = data; #if 0 // probably not how this works @@ -168,7 +168,7 @@ WRITE8_MEMBER( vd_state::disp_w ) #endif } -WRITE8_MEMBER( vd_state::col_w ) +void vd_state::col_w(uint8_t data) { if (data != 0x3f) { @@ -218,7 +218,7 @@ void vd_state::vd(machine_config &config) / Break '86", and the service manual's title page has "Modbreak." /-------------------------------------------------------------------*/ ROM_START(break86) - ROM_REGION(0x10000, "maincpu", 0) + ROM_REGION(0x6000, "maincpu", 0) ROM_LOAD("break1.cpu", 0x0000, 0x2000, CRC(c187d263) SHA1(1790566799ccc41cd5445936e86f945150e24e8a)) ROM_LOAD("break2.cpu", 0x2000, 0x2000, CRC(ed8f84ab) SHA1(ff5d7e3c373ca345205e8b92c6ce7b02f36a3d95)) ROM_LOAD("break3.cpu", 0x4000, 0x2000, CRC(3cdfedc2) SHA1(309fd04c81b8facdf705e6297c0f4d507957ae1f)) @@ -228,7 +228,7 @@ ROM_END / Papillon (1986) /-------------------------------------------------------------------*/ ROM_START(papillon) - ROM_REGION(0x10000, "maincpu", 0) + ROM_REGION(0x6000, "maincpu", 0) ROM_LOAD("u4.dat", 0x0000, 0x2000, CRC(e57bfcdd) SHA1(d0d5c798552a2436693dfee0e2ebf4b6f465b194)) ROM_LOAD("u5.dat", 0x2000, 0x2000, CRC(6d2ef02a) SHA1(0b67b2edd85624531630c162ae31af8078be01e3)) ROM_LOAD("u6.dat", 0x4000, 0x2000, CRC(6b2867b3) SHA1(720fe8a65b447e839b0eb9ea21e0b3cb0e50cf7a)) diff --git a/src/mame/drivers/vegaeo.cpp b/src/mame/drivers/vegaeo.cpp index 5b3ef25af1a..796a3c03332 100644 --- a/src/mame/drivers/vegaeo.cpp +++ b/src/mame/drivers/vegaeo.cpp @@ -47,10 +47,10 @@ private: std::unique_ptr<uint8_t[]> m_vram; int m_vbuffer; - DECLARE_WRITE8_MEMBER(vram_w); - DECLARE_READ8_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vega_misc_w); - DECLARE_READ32_MEMBER(vegaeo_custom_read); + void vram_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); + uint8_t vram_r(offs_t offset); + void vega_misc_w(uint32_t data); + uint32_t vegaeo_custom_read(); void qs1000_p1_w(uint8_t data); void qs1000_p2_w(uint8_t data); void qs1000_p3_w(uint8_t data); @@ -79,19 +79,19 @@ void vegaeo_state::qs1000_p3_w(uint8_t data) m_soundlatch->acknowledge_w(); } -WRITE8_MEMBER(vegaeo_state::vram_w) +void vegaeo_state::vram_w(offs_t offset, uint8_t data, uint8_t mem_mask) { // don't write transparent pen if (data != 0xff) COMBINE_DATA(&m_vram[offset + m_vbuffer * 0x14000]); } -READ8_MEMBER(vegaeo_state::vram_r) +uint8_t vegaeo_state::vram_r(offs_t offset) { return m_vram[offset + 0x14000 * m_vbuffer]; } -WRITE32_MEMBER(vegaeo_state::vega_misc_w) +void vegaeo_state::vega_misc_w(uint32_t data) { // other bits ??? @@ -99,7 +99,7 @@ WRITE32_MEMBER(vegaeo_state::vega_misc_w) } -READ32_MEMBER(vegaeo_state::vegaeo_custom_read) +uint32_t vegaeo_state::vegaeo_custom_read() { speedup_read(); return m_system_io->read(); diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp index 39868016eb2..ac37e0b5643 100644 --- a/src/mame/drivers/vegas.cpp +++ b/src/mame/drivers/vegas.cpp @@ -420,31 +420,25 @@ private: DECLARE_WRITE_LINE_MEMBER(watchdog_reset); DECLARE_WRITE_LINE_MEMBER(watchdog_irq); - DECLARE_WRITE32_MEMBER(timekeeper_w); - DECLARE_READ32_MEMBER(timekeeper_r); + void timekeeper_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint32_t timekeeper_r(offs_t offset, uint32_t mem_mask = ~0); void reset_sio(void); - DECLARE_READ8_MEMBER(sio_r); - DECLARE_WRITE8_MEMBER(sio_w); - DECLARE_WRITE8_MEMBER( cpu_io_w ); - DECLARE_READ8_MEMBER( cpu_io_r ); - DECLARE_READ32_MEMBER( analog_port_r ); - DECLARE_WRITE32_MEMBER( analog_port_w ); - DECLARE_WRITE32_MEMBER( asic_fifo_w ); - DECLARE_READ32_MEMBER( ide_main_r ); - DECLARE_WRITE32_MEMBER( ide_main_w ); - DECLARE_READ32_MEMBER( ide_alt_r ); - DECLARE_WRITE32_MEMBER( ide_alt_w ); - DECLARE_READ32_MEMBER( ide_bus_master32_r ); - DECLARE_WRITE32_MEMBER( ide_bus_master32_w ); - DECLARE_READ32_MEMBER( ethernet_r ); - DECLARE_WRITE32_MEMBER( ethernet_w ); - DECLARE_WRITE32_MEMBER( dcs3_fifo_full_w ); + uint8_t sio_r(offs_t offset); + void sio_w(offs_t offset, uint8_t data); + void cpu_io_w(offs_t offset, uint8_t data); + uint8_t cpu_io_r(offs_t offset); + uint32_t analog_port_r(offs_t offset, uint32_t mem_mask = ~0); + void analog_port_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void asic_fifo_w(uint32_t data); + uint32_t ethernet_r(offs_t offset, uint32_t mem_mask = ~0); + void ethernet_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void dcs3_fifo_full_w(uint32_t data); DECLARE_WRITE_LINE_MEMBER(ethernet_interrupt); DECLARE_WRITE_LINE_MEMBER(ioasic_irq); - DECLARE_READ32_MEMBER(unknown_r); - DECLARE_READ8_MEMBER(parallel_r); - DECLARE_WRITE8_MEMBER(parallel_w); - DECLARE_WRITE8_MEMBER(mpsreset_w); + uint32_t unknown_r(offs_t offset, uint32_t mem_mask = ~0); + uint8_t parallel_r(offs_t offset); + void parallel_w(offs_t offset, uint8_t data); + void mpsreset_w(offs_t offset, uint8_t data); void i40_w(uint32_t data); void wheel_board_w(uint32_t data); @@ -569,7 +563,7 @@ WRITE_LINE_MEMBER(vegas_state::watchdog_reset) * *************************************/ -WRITE32_MEMBER( vegas_state::timekeeper_w ) +void vegas_state::timekeeper_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (m_cmos_unlocked) { @@ -590,7 +584,7 @@ WRITE32_MEMBER( vegas_state::timekeeper_w ) } -READ32_MEMBER( vegas_state::timekeeper_r ) +uint32_t vegas_state::timekeeper_r(offs_t offset, uint32_t mem_mask) { uint32_t result = 0xffffffff; if (ACCESSING_BITS_0_7) @@ -692,7 +686,7 @@ void vegas_state::reset_sio() update_sio_irqs(); } -READ8_MEMBER(vegas_state::sio_r) +uint8_t vegas_state::sio_r(offs_t offset) { uint32_t result = 0x0; int index = offset >> 12; @@ -770,7 +764,7 @@ READ8_MEMBER(vegas_state::sio_r) } -WRITE8_MEMBER(vegas_state::sio_w) +void vegas_state::sio_w(offs_t offset, uint8_t data) { // Bit 0 of data is used to program the 6016 FPGA in programming mode (m_cpio_data[3](Bit 0)==0) if (m_cpuio_data[3] & 0x1) { @@ -839,7 +833,7 @@ WRITE8_MEMBER(vegas_state::sio_w) * *************************************/ -WRITE8_MEMBER(vegas_state::cpu_io_w) +void vegas_state::cpu_io_w(offs_t offset, uint8_t data) { // 0: system LED // 1: PLD Config / Clock Gen @@ -906,7 +900,7 @@ WRITE8_MEMBER(vegas_state::cpu_io_w) } } -READ8_MEMBER( vegas_state::cpu_io_r ) +uint8_t vegas_state::cpu_io_r(offs_t offset) { uint32_t result = 0; if (offset < 4) @@ -924,7 +918,7 @@ READ8_MEMBER( vegas_state::cpu_io_r ) * *************************************/ -READ32_MEMBER( vegas_state::analog_port_r ) +uint32_t vegas_state::analog_port_r(offs_t offset, uint32_t mem_mask) { //logerror("%s: analog_port_r = %08X & %08X\n", machine().describe_context(), m_pending_analog_read, mem_mask); // Clear interrupt @@ -937,7 +931,7 @@ READ32_MEMBER( vegas_state::analog_port_r ) } -WRITE32_MEMBER( vegas_state::analog_port_w ) +void vegas_state::analog_port_w(offs_t offset, uint32_t data, uint32_t mem_mask) { uint32_t shift_data = data >> m_a2d_shift; int index = shift_data & 0x7; @@ -979,12 +973,12 @@ WRITE32_MEMBER( vegas_state::analog_port_w ) * *************************************/ -WRITE32_MEMBER( vegas_state::asic_fifo_w ) +void vegas_state::asic_fifo_w(uint32_t data) { m_ioasic->fifo_w(data); } -READ32_MEMBER( vegas_state::ethernet_r ) +uint32_t vegas_state::ethernet_r(offs_t offset, uint32_t mem_mask) { uint32_t result = 0; if (ACCESSING_BITS_0_15) @@ -996,7 +990,7 @@ READ32_MEMBER( vegas_state::ethernet_r ) } -WRITE32_MEMBER( vegas_state::ethernet_w ) +void vegas_state::ethernet_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_0_15) m_ethernet->write(offset * 2 + 0, data, mem_mask); @@ -1006,12 +1000,12 @@ WRITE32_MEMBER( vegas_state::ethernet_w ) } -WRITE32_MEMBER( vegas_state::dcs3_fifo_full_w ) +void vegas_state::dcs3_fifo_full_w(uint32_t data) { m_ioasic->fifo_full_w(data); } -READ32_MEMBER(vegas_state::unknown_r) +uint32_t vegas_state::unknown_r(offs_t offset, uint32_t mem_mask) { uint32_t result = 0xffffffff; if (1) @@ -1022,14 +1016,14 @@ READ32_MEMBER(vegas_state::unknown_r) /************************************* * Parallel Port *************************************/ -READ8_MEMBER(vegas_state::parallel_r) +uint8_t vegas_state::parallel_r(offs_t offset) { uint8_t result = 0x7; logerror("%s: parallel_r %08x = %02x\n", machine().describe_context(), offset, result); return result; } -WRITE8_MEMBER(vegas_state::parallel_w) +void vegas_state::parallel_w(offs_t offset, uint8_t data) { logerror("%s: parallel_w %08x = %02x\n", machine().describe_context(), offset, data); } @@ -1037,7 +1031,7 @@ WRITE8_MEMBER(vegas_state::parallel_w) /************************************* * MPS Reset *************************************/ -WRITE8_MEMBER(vegas_state::mpsreset_w) +void vegas_state::mpsreset_w(offs_t offset, uint8_t data) { logerror("%s: mpsreset_w %08x = %02x\n", machine().describe_context(), offset, data); } diff --git a/src/mame/drivers/vg5k.cpp b/src/mame/drivers/vg5k.cpp index 8663c4bc291..6b1d0979df5 100644 --- a/src/mame/drivers/vg5k.cpp +++ b/src/mame/drivers/vg5k.cpp @@ -95,13 +95,13 @@ private: virtual void machine_start() override; virtual void machine_reset() override; - DECLARE_READ8_MEMBER( printer_r ); - DECLARE_WRITE8_MEMBER( printer_w ); - DECLARE_WRITE8_MEMBER ( ef9345_offset_w ); - DECLARE_READ8_MEMBER ( ef9345_io_r ); - DECLARE_WRITE8_MEMBER ( ef9345_io_w ); - DECLARE_READ8_MEMBER ( cassette_r ); - DECLARE_WRITE8_MEMBER ( cassette_w ); + uint8_t printer_r(); + void printer_w(uint8_t data); + void ef9345_offset_w(uint8_t data); + uint8_t ef9345_io_r(); + void ef9345_io_w(uint8_t data); + uint8_t cassette_r(); + void cassette_w(uint8_t data); TIMER_CALLBACK_MEMBER(z80_irq_clear); TIMER_DEVICE_CALLBACK_MEMBER(z80_irq); TIMER_DEVICE_CALLBACK_MEMBER(vg5k_scanline); @@ -110,37 +110,37 @@ private: }; -READ8_MEMBER( vg5k_state::printer_r ) +uint8_t vg5k_state::printer_r() { return (m_printer->is_ready() ? 0x00 : 0xff); } -WRITE8_MEMBER( vg5k_state::printer_w ) +void vg5k_state::printer_w(uint8_t data) { m_printer->output(data); } -WRITE8_MEMBER ( vg5k_state::ef9345_offset_w ) +void vg5k_state::ef9345_offset_w(uint8_t data) { m_ef9345_offset = data; } -READ8_MEMBER ( vg5k_state::ef9345_io_r ) +uint8_t vg5k_state::ef9345_io_r() { return m_ef9345->data_r(m_ef9345_offset); } -WRITE8_MEMBER ( vg5k_state::ef9345_io_w ) +void vg5k_state::ef9345_io_w(uint8_t data) { m_ef9345->data_w(m_ef9345_offset, data); } -READ8_MEMBER ( vg5k_state::cassette_r ) +uint8_t vg5k_state::cassette_r() { double level = m_cassette->input(); @@ -148,7 +148,7 @@ READ8_MEMBER ( vg5k_state::cassette_r ) } -WRITE8_MEMBER ( vg5k_state::cassette_w ) +void vg5k_state::cassette_w(uint8_t data) { m_dac->write(BIT(data, 3)); diff --git a/src/mame/drivers/vgmplay.cpp b/src/mame/drivers/vgmplay.cpp index c45c5c39c2d..42439e94f22 100644 --- a/src/mame/drivers/vgmplay.cpp +++ b/src/mame/drivers/vgmplay.cpp @@ -246,35 +246,35 @@ public: virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; - template<int Index> DECLARE_READ8_MEMBER(segapcm_rom_r); - template<int Index> DECLARE_READ8_MEMBER(ym2608_rom_r); - template<int Index> DECLARE_READ8_MEMBER(ym2610_adpcm_a_rom_r); - template<int Index> DECLARE_READ8_MEMBER(ym2610_adpcm_b_rom_r); - template<int Index> DECLARE_READ8_MEMBER(y8950_rom_r); - template<int Index> DECLARE_READ8_MEMBER(ymf278b_rom_r); - template<int Index> DECLARE_READ8_MEMBER(ymf271_rom_r); - template<int Index> DECLARE_READ8_MEMBER(ymz280b_rom_r); - template<int Index> DECLARE_READ8_MEMBER(multipcm_rom_r); - template<int Index> DECLARE_READ8_MEMBER(upd7759_rom_r); - template<int Index> DECLARE_READ8_MEMBER(okim6295_rom_r); - template<int Index> DECLARE_READ8_MEMBER(k054539_rom_r); - template<int Index> DECLARE_READ16_MEMBER(c140_rom_r); - template<int Index> DECLARE_READ16_MEMBER(c219_rom_r); - template<int Index> DECLARE_READ8_MEMBER(k053260_rom_r); - template<int Index> DECLARE_READ8_MEMBER(qsound_rom_r); - template<int Index> DECLARE_READ8_MEMBER(es5505_rom_r); - template<int Index> DECLARE_READ8_MEMBER(x1_010_rom_r); - template<int Index> DECLARE_READ8_MEMBER(c352_rom_r); - template<int Index> DECLARE_READ8_MEMBER(ga20_rom_r); - - template<int Index> DECLARE_WRITE8_MEMBER(multipcm_bank_hi_w); - template<int Index> DECLARE_WRITE8_MEMBER(multipcm_bank_lo_w); - - template<int Index> DECLARE_WRITE8_MEMBER(upd7759_bank_w); - - template<int Index> DECLARE_WRITE8_MEMBER(okim6295_nmk112_enable_w); - template<int Index> DECLARE_WRITE8_MEMBER(okim6295_bank_w); - template<int Index> DECLARE_WRITE8_MEMBER(okim6295_nmk112_bank_w); + template<int Index> uint8_t segapcm_rom_r(offs_t offset); + template<int Index> uint8_t ym2608_rom_r(offs_t offset); + template<int Index> uint8_t ym2610_adpcm_a_rom_r(offs_t offset); + template<int Index> uint8_t ym2610_adpcm_b_rom_r(offs_t offset); + template<int Index> uint8_t y8950_rom_r(offs_t offset); + template<int Index> uint8_t ymf278b_rom_r(offs_t offset); + template<int Index> uint8_t ymf271_rom_r(offs_t offset); + template<int Index> uint8_t ymz280b_rom_r(offs_t offset); + template<int Index> uint8_t multipcm_rom_r(offs_t offset); + template<int Index> uint8_t upd7759_rom_r(offs_t offset); + template<int Index> uint8_t okim6295_rom_r(offs_t offset); + template<int Index> uint8_t k054539_rom_r(offs_t offset); + template<int Index> uint16_t c140_rom_r(offs_t offset); + template<int Index> uint16_t c219_rom_r(offs_t offset); + template<int Index> uint8_t k053260_rom_r(offs_t offset); + template<int Index> uint8_t qsound_rom_r(offs_t offset); + template<int Index> uint8_t es5505_rom_r(offs_t offset); + template<int Index> uint8_t x1_010_rom_r(offs_t offset); + template<int Index> uint8_t c352_rom_r(offs_t offset); + template<int Index> uint8_t ga20_rom_r(offs_t offset); + + template<int Index> void multipcm_bank_hi_w(offs_t offset, uint8_t data); + template<int Index> void multipcm_bank_lo_w(offs_t offset, uint8_t data); + + template<int Index> void upd7759_bank_w(uint8_t data); + + template<int Index> void okim6295_nmk112_enable_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); + template<int Index> void okim6295_bank_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); + template<int Index> void okim6295_nmk112_bank_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); void set_c140_bank_type(int index, C140_TYPE type); C140_TYPE c140_bank(int index) { return m_c140_bank[index]; } @@ -421,19 +421,19 @@ public: DECLARE_QUICKLOAD_LOAD_MEMBER(load_file); - DECLARE_READ8_MEMBER(file_r); - DECLARE_READ8_MEMBER(file_size_r); + uint8_t file_r(offs_t offset); + uint8_t file_size_r(offs_t offset); DECLARE_INPUT_CHANGED_MEMBER(key_pressed); - template<int Index> DECLARE_WRITE8_MEMBER(upd7759_reset_w); - template<int Index> DECLARE_WRITE8_MEMBER(upd7759_data_w); + template<int Index> void upd7759_reset_w(uint8_t data); + template<int Index> void upd7759_data_w(uint8_t data); template<int Index> DECLARE_WRITE_LINE_MEMBER(upd7759_drq_w); - template<int Index> DECLARE_WRITE8_MEMBER(okim6258_clock_w); - template<int Index> DECLARE_WRITE8_MEMBER(okim6258_divider_w); - template<int Index> DECLARE_WRITE8_MEMBER(okim6295_clock_w); - template<int Index> DECLARE_WRITE8_MEMBER(okim6295_pin7_w); - template<int Index> DECLARE_WRITE8_MEMBER(scc_w); - template<int Index> DECLARE_WRITE8_MEMBER(c140_c219_w); + template<int Index> void okim6258_clock_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); + template<int Index> void okim6258_divider_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); + template<int Index> void okim6295_clock_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); + template<int Index> void okim6295_pin7_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); + template<int Index> void scc_w(offs_t offset, uint8_t data); + template<int Index> void c140_c219_w(offs_t offset, uint8_t data); void vgmplay(machine_config &config); void file_map(address_map &map); @@ -2423,55 +2423,55 @@ uint8_t vgmplay_device::rom_r(int index, uint8_t type, offs_t offset) } template<int Index> -READ8_MEMBER(vgmplay_device::segapcm_rom_r) +uint8_t vgmplay_device::segapcm_rom_r(offs_t offset) { return rom_r(Index, 0x80, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::ym2608_rom_r) +uint8_t vgmplay_device::ym2608_rom_r(offs_t offset) { return rom_r(Index, 0x81, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::ym2610_adpcm_a_rom_r) +uint8_t vgmplay_device::ym2610_adpcm_a_rom_r(offs_t offset) { return rom_r(Index, 0x82, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::ym2610_adpcm_b_rom_r) +uint8_t vgmplay_device::ym2610_adpcm_b_rom_r(offs_t offset) { return rom_r(Index, 0x83, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::ymf278b_rom_r) +uint8_t vgmplay_device::ymf278b_rom_r(offs_t offset) { return rom_r(Index, 0x84, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::ymf271_rom_r) +uint8_t vgmplay_device::ymf271_rom_r(offs_t offset) { return rom_r(Index, 0x85, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::ymz280b_rom_r) +uint8_t vgmplay_device::ymz280b_rom_r(offs_t offset) { return rom_r(Index, 0x86, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::y8950_rom_r) +uint8_t vgmplay_device::y8950_rom_r(offs_t offset) { return rom_r(Index, 0x88, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::multipcm_rom_r) +uint8_t vgmplay_device::multipcm_rom_r(offs_t offset) { if (m_multipcm_banked[Index] == 1) { @@ -2499,13 +2499,13 @@ READ8_MEMBER(vgmplay_device::multipcm_rom_r) } template<int Index> -READ8_MEMBER(vgmplay_device::upd7759_rom_r) +uint8_t vgmplay_device::upd7759_rom_r(offs_t offset) { return rom_r(Index, 0x8a, m_upd7759_bank[Index] | offset); } template<int Index> -READ8_MEMBER(vgmplay_device::okim6295_rom_r) +uint8_t vgmplay_device::okim6295_rom_r(offs_t offset) { if (m_okim6295_nmk112_enable[Index]) { @@ -2526,13 +2526,13 @@ READ8_MEMBER(vgmplay_device::okim6295_rom_r) } template<int Index> -READ8_MEMBER(vgmplay_device::k054539_rom_r) +uint8_t vgmplay_device::k054539_rom_r(offs_t offset) { return rom_r(Index, 0x8c, offset); } template<int Index> -READ16_MEMBER(vgmplay_device::c140_rom_r) +uint16_t vgmplay_device::c140_rom_r(offs_t offset) { switch (m_c140_bank[Index]) { @@ -2551,7 +2551,7 @@ READ16_MEMBER(vgmplay_device::c140_rom_r) } template<int Index> -READ16_MEMBER(vgmplay_device::c219_rom_r) +uint16_t vgmplay_device::c219_rom_r(offs_t offset) { if (m_c140_bank[Index] == C140_ASIC219) return (rom_r(Index, 0x8d, offset * 2 + 1) << 8) | rom_r(Index, 0x8d, offset * 2); // 8 bit sample @@ -2560,37 +2560,37 @@ READ16_MEMBER(vgmplay_device::c219_rom_r) } template<int Index> -READ8_MEMBER(vgmplay_device::k053260_rom_r) +uint8_t vgmplay_device::k053260_rom_r(offs_t offset) { return rom_r(Index, 0x8e, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::qsound_rom_r) +uint8_t vgmplay_device::qsound_rom_r(offs_t offset) { return rom_r(Index, 0x8f, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::es5505_rom_r) +uint8_t vgmplay_device::es5505_rom_r(offs_t offset) { return rom_r(Index, 0x90, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::x1_010_rom_r) +uint8_t vgmplay_device::x1_010_rom_r(offs_t offset) { return rom_r(Index, 0x91, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::c352_rom_r) +uint8_t vgmplay_device::c352_rom_r(offs_t offset) { return rom_r(Index, 0x92, offset); } template<int Index> -READ8_MEMBER(vgmplay_device::ga20_rom_r) +uint8_t vgmplay_device::ga20_rom_r(offs_t offset) { return rom_r(Index, 0x93, offset); } @@ -3017,21 +3017,21 @@ QUICKLOAD_LOAD_MEMBER(vgmplay_state::load_file) } } -READ8_MEMBER(vgmplay_state::file_r) +uint8_t vgmplay_state::file_r(offs_t offset) { if (offset < m_file_data.size()) return m_file_data[offset]; return 0; } -READ8_MEMBER(vgmplay_state::file_size_r) +uint8_t vgmplay_state::file_size_r(offs_t offset) { uint32_t size = m_file_data.size(); return size >> (8 * offset); } template<int Index> -WRITE8_MEMBER(vgmplay_device::multipcm_bank_hi_w) +void vgmplay_device::multipcm_bank_hi_w(offs_t offset, uint8_t data) { if (offset & 1) m_multipcm_bank_l[Index] = (m_multipcm_bank_l[Index] & 0xff) | (data << 16); @@ -3040,7 +3040,7 @@ WRITE8_MEMBER(vgmplay_device::multipcm_bank_hi_w) } template<int Index> -WRITE8_MEMBER(vgmplay_device::multipcm_bank_lo_w) +void vgmplay_device::multipcm_bank_lo_w(offs_t offset, uint8_t data) { if (offset & 1) m_multipcm_bank_l[Index] = (m_multipcm_bank_l[Index] & 0xff00) | data; @@ -3051,7 +3051,7 @@ WRITE8_MEMBER(vgmplay_device::multipcm_bank_lo_w) } template<int Index> -WRITE8_MEMBER(vgmplay_state::upd7759_reset_w) +void vgmplay_state::upd7759_reset_w(uint8_t data) { int reset = data != 0; @@ -3067,7 +3067,7 @@ WRITE8_MEMBER(vgmplay_state::upd7759_reset_w) } template<int Index> -WRITE8_MEMBER(vgmplay_state::upd7759_data_w) +void vgmplay_state::upd7759_data_w(uint8_t data) { if (!m_upd7759_md[Index] && !m_upd7759_drq[Index]) { @@ -3098,14 +3098,14 @@ WRITE_LINE_MEMBER(vgmplay_state::upd7759_drq_w) } template<int Index> -WRITE8_MEMBER(vgmplay_device::upd7759_bank_w) +void vgmplay_device::upd7759_bank_w(uint8_t data) { // TODO: upd7759 update stream m_upd7759_bank[Index] = data * 0x20000; } template<int Index> -WRITE8_MEMBER(vgmplay_state::okim6258_clock_w) +void vgmplay_state::okim6258_clock_w(offs_t offset, uint8_t data, uint8_t mem_mask) { int shift = ((offset & 3) << 3); uint32_t c = (m_okim6258[Index]->unscaled_clock() & ~(mem_mask << shift)) | ((data & mem_mask) << shift); @@ -3114,7 +3114,7 @@ WRITE8_MEMBER(vgmplay_state::okim6258_clock_w) } template<int Index> -WRITE8_MEMBER(vgmplay_state::okim6258_divider_w) +void vgmplay_state::okim6258_divider_w(offs_t offset, uint8_t data, uint8_t mem_mask) { if ((data & mem_mask) != (m_okim6258_divider[Index] & mem_mask)) { @@ -3124,7 +3124,7 @@ WRITE8_MEMBER(vgmplay_state::okim6258_divider_w) } template<int Index> -WRITE8_MEMBER(vgmplay_state::okim6295_clock_w) +void vgmplay_state::okim6295_clock_w(offs_t offset, uint8_t data, uint8_t mem_mask) { int shift = ((offset & 3) << 3); uint32_t c = (m_okim6295[Index]->unscaled_clock() & ~(mem_mask << shift)) | ((data & mem_mask) << shift); @@ -3133,7 +3133,7 @@ WRITE8_MEMBER(vgmplay_state::okim6295_clock_w) } template<int Index> -WRITE8_MEMBER(vgmplay_state::okim6295_pin7_w) +void vgmplay_state::okim6295_pin7_w(offs_t offset, uint8_t data, uint8_t mem_mask) { if ((data & mem_mask) != (m_okim6295_pin7[Index] & mem_mask)) { @@ -3143,13 +3143,13 @@ WRITE8_MEMBER(vgmplay_state::okim6295_pin7_w) } template<int Index> -WRITE8_MEMBER(vgmplay_device::okim6295_nmk112_enable_w) +void vgmplay_device::okim6295_nmk112_enable_w(offs_t offset, uint8_t data, uint8_t mem_mask) { COMBINE_DATA(&m_okim6295_nmk112_enable[Index]); } template<int Index> -WRITE8_MEMBER(vgmplay_device::okim6295_bank_w) +void vgmplay_device::okim6295_bank_w(offs_t offset, uint8_t data, uint8_t mem_mask) { if ((data & mem_mask) != (m_okim6295_bank[Index] & mem_mask)) { @@ -3158,7 +3158,7 @@ WRITE8_MEMBER(vgmplay_device::okim6295_bank_w) } template<int Index> -WRITE8_MEMBER(vgmplay_device::okim6295_nmk112_bank_w) +void vgmplay_device::okim6295_nmk112_bank_w(offs_t offset, uint8_t data, uint8_t mem_mask) { offset &= 3; if ((data & mem_mask) != (m_okim6295_nmk112_bank[Index][offset] & mem_mask)) @@ -3168,7 +3168,7 @@ WRITE8_MEMBER(vgmplay_device::okim6295_nmk112_bank_w) } template<int Index> -WRITE8_MEMBER(vgmplay_state::scc_w) +void vgmplay_state::scc_w(offs_t offset, uint8_t data) { switch (offset & 1) { @@ -3202,7 +3202,7 @@ WRITE8_MEMBER(vgmplay_state::scc_w) } template<int Index> -WRITE8_MEMBER(vgmplay_state::c140_c219_w) +void vgmplay_state::c140_c219_w(offs_t offset, uint8_t data) { if (m_vgmplay->c140_bank(Index) == C140_ASIC219) m_c219[Index]->c219_w(offset, data); diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp index af31fae0b82..78e89ec5052 100644 --- a/src/mame/drivers/vic20.cpp +++ b/src/mame/drivers/vic20.cpp @@ -88,10 +88,10 @@ private: virtual void machine_start() override; virtual void machine_reset() override; - DECLARE_READ8_MEMBER( read ); - DECLARE_WRITE8_MEMBER( write ); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER( vic_videoram_r ); + uint8_t vic_videoram_r(offs_t offset); DECLARE_WRITE_LINE_MEMBER( write_light_pen ); DECLARE_WRITE_LINE_MEMBER( write_user_joy0 ); @@ -175,7 +175,7 @@ QUICKLOAD_LOAD_MEMBER(vic20_state::quickload_vc20) // read - //------------------------------------------------- -READ8_MEMBER( vic20_state::read ) +uint8_t vic20_state::read(offs_t offset) { uint8_t data = m_vic->bus_r(); @@ -256,7 +256,7 @@ READ8_MEMBER( vic20_state::read ) // write - //------------------------------------------------- -WRITE8_MEMBER( vic20_state::write ) +void vic20_state::write(offs_t offset, uint8_t data) { int ram1 = 1, ram2 = 1, ram3 = 1; int blk1 = 1, blk2 = 1, blk3 = 1, blk5 = 1; @@ -323,7 +323,7 @@ WRITE8_MEMBER( vic20_state::write ) // vic_videoram_r - //------------------------------------------------- -READ8_MEMBER( vic20_state::vic_videoram_r ) +uint8_t vic20_state::vic_videoram_r(offs_t offset) { int ram1 = 1, ram2 = 1, ram3 = 1; int blk1 = 1, blk2 = 1, blk3 = 1, blk5 = 1; diff --git a/src/mame/drivers/video21.cpp b/src/mame/drivers/video21.cpp index 699f0390d66..66a1ed5521e 100644 --- a/src/mame/drivers/video21.cpp +++ b/src/mame/drivers/video21.cpp @@ -51,9 +51,9 @@ protected: virtual void machine_start() override; private: - DECLARE_WRITE8_MEMBER(sound_w); - DECLARE_WRITE8_MEMBER(lamp1_w); - DECLARE_WRITE8_MEMBER(lamp2_w); + void sound_w(uint8_t data); + void lamp1_w(uint8_t data); + void lamp2_w(uint8_t data); int m_hopper_motor; int m_hopper_coin; @@ -112,14 +112,14 @@ TIMER_CALLBACK_MEMBER(video21_state::hopper_coinout) m_hopper_timer->adjust(attotime::from_msec(100), m_hopper_coin ^ 1); } -WRITE8_MEMBER(video21_state::sound_w) +void video21_state::sound_w(uint8_t data) { // beeper pitch m_beeper->set_state(data != 0xff); // FF is off m_beeper->set_clock(4 * data); } -WRITE8_MEMBER(video21_state::lamp1_w) +void video21_state::lamp1_w(uint8_t data) { // d1-d3: coincounters machine().bookkeeping().coin_counter_w(0, data & 0x04); // coin in @@ -139,7 +139,7 @@ WRITE8_MEMBER(video21_state::lamp1_w) m_lamps[i+0] = BIT(data, 7-i); } -WRITE8_MEMBER(video21_state::lamp2_w) +void video21_state::lamp2_w(uint8_t data) { // lamps: // d5: bet diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp index 50bf6d44fcc..0e127efe2bc 100644 --- a/src/mame/drivers/videopkr.cpp +++ b/src/mame/drivers/videopkr.cpp @@ -324,16 +324,16 @@ public: void bpoker(machine_config &config); private: - DECLARE_READ8_MEMBER(videopkr_io_r); - DECLARE_WRITE8_MEMBER(videopkr_io_w); + uint8_t videopkr_io_r(offs_t offset); + void videopkr_io_w(offs_t offset, uint8_t data); uint8_t videopkr_p1_data_r(); uint8_t videopkr_p2_data_r(); void videopkr_p1_data_w(uint8_t data); void videopkr_p2_data_w(uint8_t data); DECLARE_READ_LINE_MEMBER(videopkr_t0_latch); DECLARE_WRITE_LINE_MEMBER(prog_w); - DECLARE_READ8_MEMBER(sound_io_r); - DECLARE_WRITE8_MEMBER(sound_io_w); + uint8_t sound_io_r(); + void sound_io_w(uint8_t data); uint8_t sound_p2_r(); void sound_p2_w(uint8_t data); uint8_t baby_sound_p0_r(); @@ -549,7 +549,7 @@ uint32_t videopkr_state::screen_update_videopkr(screen_device &screen, bitmap_in * R/W Handlers * *************************/ -READ8_MEMBER(videopkr_state::videopkr_io_r) +uint8_t videopkr_state::videopkr_io_r(offs_t offset) { uint8_t valor = 0, hf, co; @@ -629,7 +629,7 @@ READ8_MEMBER(videopkr_state::videopkr_io_r) return valor; } -WRITE8_MEMBER(videopkr_state::videopkr_io_w) +void videopkr_state::videopkr_io_w(offs_t offset, uint8_t data) { switch (m_p2) { @@ -802,7 +802,7 @@ WRITE_LINE_MEMBER(videopkr_state::prog_w) */ -READ8_MEMBER(videopkr_state::sound_io_r) +uint8_t videopkr_state::sound_io_r() { switch (m_vp_sound_p2) { @@ -824,7 +824,7 @@ READ8_MEMBER(videopkr_state::sound_io_r) return m_sound_latch; } -WRITE8_MEMBER(videopkr_state::sound_io_w) +void videopkr_state::sound_io_w(uint8_t data) { if (m_vp_sound_p2 == 0x5f || m_vp_sound_p2 == 0xdf) { diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp index 0680a5da6c5..f41c85361a6 100644 --- a/src/mame/drivers/viper.cpp +++ b/src/mame/drivers/viper.cpp @@ -395,35 +395,35 @@ public: DECLARE_READ_LINE_MEMBER(ds2430_unk_r); private: - DECLARE_READ32_MEMBER(epic_r); - DECLARE_WRITE32_MEMBER(epic_w); - DECLARE_WRITE64_MEMBER(unk2_w); - DECLARE_READ64_MEMBER(voodoo3_io_r); - DECLARE_WRITE64_MEMBER(voodoo3_io_w); - DECLARE_READ64_MEMBER(voodoo3_r); - DECLARE_WRITE64_MEMBER(voodoo3_w); - DECLARE_READ64_MEMBER(voodoo3_lfb_r); - DECLARE_WRITE64_MEMBER(voodoo3_lfb_w); - DECLARE_READ8_MEMBER(input_r); - DECLARE_READ64_MEMBER(e70000_r); - DECLARE_WRITE64_MEMBER(e70000_w); - DECLARE_WRITE64_MEMBER(unk1a_w); - DECLARE_WRITE64_MEMBER(unk1b_w); - DECLARE_READ64_MEMBER(e00008_r); - DECLARE_WRITE64_MEMBER(e00008_w); - DECLARE_READ64_MEMBER(e00000_r); - DECLARE_READ64_MEMBER(pci_config_addr_r); - DECLARE_WRITE64_MEMBER(pci_config_addr_w); - DECLARE_READ64_MEMBER(pci_config_data_r); - DECLARE_WRITE64_MEMBER(pci_config_data_w); - DECLARE_READ64_MEMBER(cf_card_data_r); - DECLARE_WRITE64_MEMBER(cf_card_data_w); - DECLARE_READ64_MEMBER(cf_card_r); - DECLARE_WRITE64_MEMBER(cf_card_w); - DECLARE_READ64_MEMBER(ata_r); - DECLARE_WRITE64_MEMBER(ata_w); - DECLARE_READ64_MEMBER(unk_serial_r); - DECLARE_WRITE64_MEMBER(unk_serial_w); + uint32_t epic_r(offs_t offset); + void epic_w(offs_t offset, uint32_t data); + void unk2_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t voodoo3_io_r(offs_t offset, uint64_t mem_mask = ~0); + void voodoo3_io_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t voodoo3_r(offs_t offset, uint64_t mem_mask = ~0); + void voodoo3_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t voodoo3_lfb_r(offs_t offset, uint64_t mem_mask = ~0); + void voodoo3_lfb_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint8_t input_r(offs_t offset); + uint64_t e70000_r(offs_t offset, uint64_t mem_mask = ~0); + void e70000_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void unk1a_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void unk1b_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t e00008_r(offs_t offset, uint64_t mem_mask = ~0); + void e00008_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t e00000_r(); + uint64_t pci_config_addr_r(); + void pci_config_addr_w(uint64_t data); + uint64_t pci_config_data_r(); + void pci_config_data_w(uint64_t data); + uint64_t cf_card_data_r(offs_t offset, uint64_t mem_mask = ~0); + void cf_card_data_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t cf_card_r(offs_t offset, uint64_t mem_mask = ~0); + void cf_card_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t ata_r(offs_t offset, uint64_t mem_mask = ~0); + void ata_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t unk_serial_r(offs_t offset, uint64_t mem_mask = ~0); + void unk_serial_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(voodoo_vblank); uint32_t screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -664,22 +664,22 @@ void viper_state::mpc8240_pci_w(int function, int reg, uint32_t data, uint32_t m } -READ64_MEMBER(viper_state::pci_config_addr_r) +uint64_t viper_state::pci_config_addr_r() { return m_lpci->read_64be(0, 0xffffffff00000000U); } -WRITE64_MEMBER(viper_state::pci_config_addr_w) +void viper_state::pci_config_addr_w(uint64_t data) { m_lpci->write_64be(0, data, 0xffffffff00000000U); } -READ64_MEMBER(viper_state::pci_config_data_r) +uint64_t viper_state::pci_config_data_r() { return m_lpci->read_64be(1, 0x00000000ffffffffU) << 32; } -WRITE64_MEMBER(viper_state::pci_config_data_w) +void viper_state::pci_config_data_w(uint64_t data) { m_lpci->write_64be(1, data >> 32, 0x00000000ffffffffU); } @@ -877,7 +877,7 @@ void viper_state::epic_update_interrupts() } } -READ32_MEMBER(viper_state::epic_r) +uint32_t viper_state::epic_r(offs_t offset) { int reg; reg = offset * 4; @@ -1074,7 +1074,7 @@ READ32_MEMBER(viper_state::epic_r) return swapendian_int32(ret); } -WRITE32_MEMBER(viper_state::epic_w) +void viper_state::epic_w(offs_t offset, uint32_t data) { int reg; reg = offset * 4; @@ -1355,16 +1355,6 @@ WRITE32_MEMBER(viper_state::epic_w) } } } -/* -READ64_MEMBER(viper_state::epic_64be_r) -{ - return read64be_with_32le_handler(epic_r, space, offset, mem_mask); -} -WRITE64_MEMBER(viper_state::epic_64be_w) -{ - write64be_with_32le_handler(epic_w, space, offset, data, mem_mask); -} -*/ void viper_state::mpc8240_interrupt(int irq) { @@ -1412,7 +1402,7 @@ static const uint8_t cf_card_tuples[] = 0x00, 0x01, 0x00, 0x00, // CCR base (0x00000100) }; -READ64_MEMBER(viper_state::cf_card_data_r) +uint64_t viper_state::cf_card_data_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; @@ -1435,7 +1425,7 @@ READ64_MEMBER(viper_state::cf_card_data_r) return r; } -WRITE64_MEMBER(viper_state::cf_card_data_w) +void viper_state::cf_card_data_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_16_31) { @@ -1455,7 +1445,7 @@ WRITE64_MEMBER(viper_state::cf_card_data_w) } } -READ64_MEMBER(viper_state::cf_card_r) +uint64_t viper_state::cf_card_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; @@ -1518,7 +1508,7 @@ READ64_MEMBER(viper_state::cf_card_r) return r; } -WRITE64_MEMBER(viper_state::cf_card_w) +void viper_state::cf_card_w(offs_t offset, uint64_t data, uint64_t mem_mask) { #ifdef VIPER_DEBUG_LOG //logerror("%s:compact_flash_w: %08X%08X, %08X, %08X%08X\n", machine().describe_context(), (uint32_t)(data>>32), (uint32_t)(data), offset, (uint32_t)(mem_mask >> 32), (uint32_t)(mem_mask)); @@ -1587,7 +1577,7 @@ WRITE64_MEMBER(viper_state::cf_card_w) } } -WRITE64_MEMBER(viper_state::unk2_w) +void viper_state::unk2_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -1598,7 +1588,7 @@ WRITE64_MEMBER(viper_state::unk2_w) -READ64_MEMBER(viper_state::ata_r) +uint64_t viper_state::ata_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; @@ -1620,7 +1610,7 @@ READ64_MEMBER(viper_state::ata_r) return r; } -WRITE64_MEMBER(viper_state::ata_w) +void viper_state::ata_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_16_31) { @@ -1743,33 +1733,33 @@ void viper_state::voodoo3_pci_w(int function, int reg, uint32_t data, uint32_t m } } -READ64_MEMBER(viper_state::voodoo3_io_r) +uint64_t viper_state::voodoo3_io_r(offs_t offset, uint64_t mem_mask) { return read64be_with_32sle_device_handler(read32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_io_r)), offset, mem_mask); } -WRITE64_MEMBER(viper_state::voodoo3_io_w) +void viper_state::voodoo3_io_w(offs_t offset, uint64_t data, uint64_t mem_mask) { // printf("voodoo3_io_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc()); write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_io_w)), offset, data, mem_mask); } -READ64_MEMBER(viper_state::voodoo3_r) +uint64_t viper_state::voodoo3_r(offs_t offset, uint64_t mem_mask) { return read64be_with_32sle_device_handler(read32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_r)), offset, mem_mask); } -WRITE64_MEMBER(viper_state::voodoo3_w) +void viper_state::voodoo3_w(offs_t offset, uint64_t data, uint64_t mem_mask) { // printf("voodoo3_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc()); write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_w)), offset, data, mem_mask); } -READ64_MEMBER(viper_state::voodoo3_lfb_r) +uint64_t viper_state::voodoo3_lfb_r(offs_t offset, uint64_t mem_mask) { return read64be_with_32smle_device_handler(read32sm_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_fb_r)), offset, mem_mask); } -WRITE64_MEMBER(viper_state::voodoo3_lfb_w) +void viper_state::voodoo3_lfb_w(offs_t offset, uint64_t data, uint64_t mem_mask) { // printf("voodoo3_lfb_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc()); @@ -1795,7 +1785,7 @@ TIMER_CALLBACK_MEMBER(viper_state::ds2430_timer_callback) } #ifdef UNUSED_FUNCTION -READ64_MEMBER(viper_state::input_r) +uint64_t viper_state::input_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; //return 0;//0x0000400000000000U; @@ -1842,7 +1832,7 @@ READ64_MEMBER(viper_state::input_r) } #endif -READ8_MEMBER(viper_state::input_r) +uint8_t viper_state::input_r(offs_t offset) { return (m_io_ports[offset & 7])->read(); } @@ -1950,7 +1940,7 @@ void viper_state::DS2430_w(int bit) } -READ64_MEMBER(viper_state::e70000_r) +uint64_t viper_state::e70000_r(offs_t offset, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -1963,7 +1953,7 @@ READ64_MEMBER(viper_state::e70000_r) return 0; } -WRITE64_MEMBER(viper_state::e70000_w) +void viper_state::e70000_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -1993,7 +1983,7 @@ WRITE64_MEMBER(viper_state::e70000_w) } } -WRITE64_MEMBER(viper_state::unk1a_w) +void viper_state::unk1a_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -2001,7 +1991,7 @@ WRITE64_MEMBER(viper_state::unk1a_w) } } -WRITE64_MEMBER(viper_state::unk1b_w) +void viper_state::unk1b_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_56_63) { @@ -2010,7 +2000,7 @@ WRITE64_MEMBER(viper_state::unk1b_w) } } -READ64_MEMBER(viper_state::e00008_r) +uint64_t viper_state::e00008_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; if (ACCESSING_BITS_0_7) @@ -2021,7 +2011,7 @@ READ64_MEMBER(viper_state::e00008_r) return r; } -WRITE64_MEMBER(viper_state::e00008_w) +void viper_state::e00008_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_0_7) { @@ -2029,13 +2019,13 @@ WRITE64_MEMBER(viper_state::e00008_w) } } -READ64_MEMBER(viper_state::e00000_r) +uint64_t viper_state::e00000_r() { uint64_t r = 0;//0xffffffffffffffffU; return r; } -READ64_MEMBER(viper_state::unk_serial_r) +uint64_t viper_state::unk_serial_r(offs_t offset, uint64_t mem_mask) { uint64_t r = 0; if (ACCESSING_BITS_16_31) @@ -2047,7 +2037,7 @@ READ64_MEMBER(viper_state::unk_serial_r) return r; } -WRITE64_MEMBER(viper_state::unk_serial_w) +void viper_state::unk_serial_w(offs_t offset, uint64_t data, uint64_t mem_mask) { if (ACCESSING_BITS_16_31) { @@ -2467,17 +2457,17 @@ void viper_state::init_viperhd() { init_viper(); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(*this, FUNC(viper_state::ata_r)), write64_delegate(*this, FUNC(viper_state::ata_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64s_delegate(*this, FUNC(viper_state::ata_r)), write64s_delegate(*this, FUNC(viper_state::ata_w))); } void viper_state::init_vipercf() { init_viper(); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff000000, 0xff000fff, read64_delegate(*this, FUNC(viper_state::cf_card_data_r)), write64_delegate(*this, FUNC(viper_state::cf_card_data_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64_delegate(*this, FUNC(viper_state::cf_card_r)), write64_delegate(*this, FUNC(viper_state::cf_card_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff000000, 0xff000fff, read64s_delegate(*this, FUNC(viper_state::cf_card_data_r)), write64s_delegate(*this, FUNC(viper_state::cf_card_data_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64s_delegate(*this, FUNC(viper_state::cf_card_r)), write64s_delegate(*this, FUNC(viper_state::cf_card_w))); - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(*this, FUNC(viper_state::unk_serial_r)), write64_delegate(*this, FUNC(viper_state::unk_serial_w))); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64s_delegate(*this, FUNC(viper_state::unk_serial_r)), write64s_delegate(*this, FUNC(viper_state::unk_serial_w))); } diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp index 48c2f9526d2..1ade543187c 100644 --- a/src/mame/drivers/vis.cpp +++ b/src/mame/drivers/vis.cpp @@ -728,8 +728,8 @@ private: void unk_w(offs_t offset, uint8_t data); uint8_t unk2_r(); uint8_t unk3_r(); - DECLARE_READ16_MEMBER(pad_r); - DECLARE_WRITE16_MEMBER(pad_w); + uint16_t pad_r(offs_t offset); + void pad_w(offs_t offset, uint16_t data); uint8_t unk1_r(offs_t offset); void unk1_w(offs_t offset, uint8_t data); void io_map(address_map &map); @@ -783,7 +783,7 @@ uint8_t vis_state::unk3_r() return 0x00; } -READ16_MEMBER(vis_state::pad_r) +uint16_t vis_state::pad_r(offs_t offset) { uint16_t ret = 0; switch(offset) @@ -803,7 +803,7 @@ READ16_MEMBER(vis_state::pad_r) return ret; } -WRITE16_MEMBER(vis_state::pad_w) +void vis_state::pad_w(offs_t offset, uint16_t data) { switch(offset) { diff --git a/src/mame/drivers/vk100.cpp b/src/mame/drivers/vk100.cpp index 6e1e4fa8a1c..b56b800fdbb 100644 --- a/src/mame/drivers/vk100.cpp +++ b/src/mame/drivers/vk100.cpp @@ -234,18 +234,18 @@ private: uint8_t m_ADSR; ioport_port* m_col_array[16]; - DECLARE_WRITE8_MEMBER(vgLD_X); - DECLARE_WRITE8_MEMBER(vgLD_Y); - DECLARE_WRITE8_MEMBER(vgERR); - DECLARE_WRITE8_MEMBER(vgSOPS); - DECLARE_WRITE8_MEMBER(vgPAT); - DECLARE_WRITE8_MEMBER(vgPMUL); - DECLARE_WRITE8_MEMBER(vgREG); - DECLARE_WRITE8_MEMBER(vgEX); - DECLARE_WRITE8_MEMBER(KBDW); - DECLARE_READ8_MEMBER(vk100_keyboard_column_r); - DECLARE_READ8_MEMBER(SYSTAT_A); - DECLARE_READ8_MEMBER(SYSTAT_B); + void vgLD_X(offs_t offset, uint8_t data); + void vgLD_Y(offs_t offset, uint8_t data); + void vgERR(uint8_t data); + void vgSOPS(uint8_t data); + void vgPAT(uint8_t data); + void vgPMUL(uint8_t data); + void vgREG(offs_t offset, uint8_t data); + void vgEX(offs_t offset, uint8_t data); + void KBDW(uint8_t data); + uint8_t vk100_keyboard_column_r(offs_t offset); + uint8_t SYSTAT_A(offs_t offset); + uint8_t SYSTAT_B(); virtual void machine_start() override; virtual void video_start() override; @@ -430,7 +430,7 @@ TIMER_CALLBACK_MEMBER(vk100_state::execute_vg) } /* ports 0x40 and 0x41: load low and high bytes of vector gen X register */ -WRITE8_MEMBER(vk100_state::vgLD_X) +void vk100_state::vgLD_X(offs_t offset, uint8_t data) { m_vgX &= 0xFF << ((1-offset)*8); m_vgX |= ((uint16_t)data) << (offset*8); @@ -440,7 +440,7 @@ WRITE8_MEMBER(vk100_state::vgLD_X) } /* ports 0x42 and 0x43: load low and high bytes of vector gen Y register */ -WRITE8_MEMBER(vk100_state::vgLD_Y) +void vk100_state::vgLD_Y(offs_t offset, uint8_t data) { m_vgY &= 0xFF << ((1-offset)*8); m_vgY |= ((uint16_t)data) << (offset*8); @@ -450,7 +450,7 @@ WRITE8_MEMBER(vk100_state::vgLD_Y) } /* port 0x44: "ERR" load bresenham line algorithm 'error' count */ -WRITE8_MEMBER(vk100_state::vgERR) +void vk100_state::vgERR(uint8_t data) { m_vgERR = data; #ifdef VG40_VERBOSE @@ -474,7 +474,7 @@ WRITE8_MEMBER(vk100_state::vgERR) * 1 1 8251TXD ACTS(loop) 8251RXD J6 /DTR J7 URTS GND 8251RTS(loop) J6 /DSR * * and UCTS, the pin drives both pins on J7 */ -WRITE8_MEMBER(vk100_state::vgSOPS) +void vk100_state::vgSOPS(uint8_t data) { m_vgSOPS = data; #ifdef VG40_VERBOSE @@ -484,7 +484,7 @@ WRITE8_MEMBER(vk100_state::vgSOPS) } /* port 0x46: "PAT" load vg Pattern register */ -WRITE8_MEMBER(vk100_state::vgPAT) +void vk100_state::vgPAT(uint8_t data) { m_vgPAT = data; #ifdef PAT_DEBUG @@ -504,7 +504,7 @@ WRITE8_MEMBER(vk100_state::vgPAT) the pattern register and increments on each one. if it overflows from 1111 to 0000 the pattern register is shifted right one bit and the counter is reloaded from PMUL */ -WRITE8_MEMBER(vk100_state::vgPMUL) +void vk100_state::vgPMUL(uint8_t data) { m_vgPMUL = data; #ifdef VG40_VERBOSE @@ -521,7 +521,7 @@ WRITE8_MEMBER(vk100_state::vgPMUL) * Change * d7 d6 d5 d4 d3 d2 d1 d0 */ -WRITE8_MEMBER(vk100_state::vgREG) +void vk100_state::vgREG(offs_t offset, uint8_t data) { m_vgRegFile[offset] = data; #ifdef VG60_VERBOSE @@ -537,7 +537,7 @@ WRITE8_MEMBER(vk100_state::vgREG) /* port 0x65: "EX DOT" execute a dot (draw a dot at x,y?) */ /* port 0x66: "EX VEC" execute a vector (draw a vector from x,y to a destination using du/dvm/dir/err ) */ /* port 0x67: "EX ER" execute an erase (clear the screen to the bg color, i.e. fill vram with zeroes) */ -WRITE8_MEMBER(vk100_state::vgEX) +void vk100_state::vgEX(offs_t offset, uint8_t data) { #ifdef VG60_VERBOSE static const char *const ex_functions[] = { "Move", "Dot", "Vector", "Erase" }; @@ -554,7 +554,7 @@ WRITE8_MEMBER(vk100_state::vgEX) /* port 0x68: "KBDW" d7 is beeper, d6 is keyclick, d5-d0 are keyboard LEDS */ -WRITE8_MEMBER(vk100_state::KBDW) +void vk100_state::KBDW(uint8_t data) { output().set_value("online_led",BIT(data, 5) ? 1 : 0); output().set_value("local_led", BIT(data, 5) ? 0 : 1); @@ -639,7 +639,7 @@ WRITE8_MEMBER(vk100_state::KBDW) 299 reads, rotates result right 3 times and ANDs the result with 0x0F 2A4 reads, rotates result left 1 time and ANDS the result with 0xF0 */ -READ8_MEMBER(vk100_state::SYSTAT_A) +uint8_t vk100_state::SYSTAT_A(offs_t offset) { uint8_t dipswitchLUT[8] = { 1,3,5,7,6,4,2,0 }; // the dipswitches map in a weird order to offsets #ifdef SYSTAT_A_VERBOSE @@ -666,7 +666,7 @@ READ8_MEMBER(vk100_state::SYSTAT_A) * The 4 attribute ram bits for the cell being pointed at by the X and Y regs are readable as the low nybble. * The DSR pin is readable as bit 6. */ -READ8_MEMBER(vk100_state::SYSTAT_B) +uint8_t vk100_state::SYSTAT_B() { #ifdef SYSTAT_B_VERBOSE logerror("0x%04X: SYSTAT_B Read!\n", m_maincpu->pc()); @@ -674,7 +674,7 @@ READ8_MEMBER(vk100_state::SYSTAT_B) return (m_ACTS<<7)|(m_ADSR<<6)|vram_attr_read(); } -READ8_MEMBER(vk100_state::vk100_keyboard_column_r) +uint8_t vk100_state::vk100_keyboard_column_r(offs_t offset) { uint8_t code = m_col_array[offset&0xF]->read() | m_capsshift->read(); #ifdef KBD_VERBOSE diff --git a/src/mame/drivers/vlc.cpp b/src/mame/drivers/vlc.cpp index 870130bf8df..67b58ccfe2f 100644 --- a/src/mame/drivers/vlc.cpp +++ b/src/mame/drivers/vlc.cpp @@ -204,12 +204,12 @@ private: template<int N> void duart_w(offs_t offset, uint8_t data); uint8_t rtc_r(offs_t offset); void rtc_w(offs_t offset, uint8_t data); - DECLARE_READ16_MEMBER(io_board_r); - DECLARE_WRITE16_MEMBER(io_board_w); - DECLARE_WRITE16_MEMBER (io_board_x); - DECLARE_READ16_MEMBER( nevada_sec_r ); - DECLARE_WRITE16_MEMBER( nevada_sec_w ); - DECLARE_WRITE16_MEMBER( vram_w ); + uint16_t io_board_r(); + void io_board_w(uint16_t data); + void io_board_x(uint16_t data); + uint16_t nevada_sec_r(); + void nevada_sec_w(uint16_t data); + void vram_w(offs_t offset, uint16_t data); DECLARE_MACHINE_START(nevada); @@ -268,7 +268,7 @@ static const gfx_layout charlayout = /***************************************************************************/ -WRITE16_MEMBER( nevada_state::vram_w ) +void nevada_state::vram_w(offs_t offset, uint16_t data) { // Todo, Just for sample @@ -373,24 +373,24 @@ void nevada_state::rtc_w(offs_t offset, uint8_t data) /***************************************************************************/ -READ16_MEMBER(nevada_state::io_board_r) +uint16_t nevada_state::io_board_r() { // IO board Serial communication 0xA00000 return 1; } /***************************************************************************/ -WRITE16_MEMBER(nevada_state::io_board_w) +void nevada_state::io_board_w(uint16_t data) { // IO board Serial communication 0xA00000 on bit0 } /***************************************************************************/ -WRITE16_MEMBER(nevada_state::io_board_x) +void nevada_state::io_board_x(uint16_t data) { // IO board Serial communication 0xA80000 on bit15 } /***************************************************************************/ -READ16_MEMBER(nevada_state::nevada_sec_r ) +uint16_t nevada_state::nevada_sec_r() { // D3..D0 = DOOR OPEN or Track STATE of PAL35 uint16_t res; @@ -403,7 +403,7 @@ READ16_MEMBER(nevada_state::nevada_sec_r ) return res; } /***************************************************************************/ -WRITE16_MEMBER(nevada_state::nevada_sec_w ) +void nevada_state::nevada_sec_w(uint16_t data) { // 74LS173 $bits Register used LOWER bits D3..D0 for DOOR LOGIC SWITCH m_datA40000 = data | 0x00f0; // since D7..D4 are not used and are connected to PULLUP diff --git a/src/mame/drivers/voyager.cpp b/src/mame/drivers/voyager.cpp index 02875b7c383..85dbc8955fb 100644 --- a/src/mame/drivers/voyager.cpp +++ b/src/mame/drivers/voyager.cpp @@ -57,7 +57,7 @@ private: uint8_t m_mtxc_config_reg[256]; uint8_t m_piix4_config_reg[4][256]; - DECLARE_WRITE32_MEMBER(bios_ram_w); + void bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); uint8_t nvram_r(offs_t offset); void nvram_w(offs_t offset, uint8_t data); @@ -238,7 +238,7 @@ void voyager_state::intel82371ab_pci_w(int function, int reg, uint32_t data, uin } } -WRITE32_MEMBER(voyager_state::bios_ram_w) +void voyager_state::bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask) { //if (m_mtxc_config_reg[0x59] & 0x20) // write to RAM if this region is write-enabled if (m_mtxc_config_reg[0x63] & 0x50) diff --git a/src/mame/drivers/vp101.cpp b/src/mame/drivers/vp101.cpp index 5585772cb33..7104d1ffbb7 100644 --- a/src/mame/drivers/vp101.cpp +++ b/src/mame/drivers/vp101.cpp @@ -124,23 +124,23 @@ private: virtual void machine_reset() override; virtual void machine_start() override; - DECLARE_READ32_MEMBER(tty_ready_r); - DECLARE_WRITE32_MEMBER(tty_w); - DECLARE_READ32_MEMBER(test_r) { return 0xffffffff; } + uint32_t tty_ready_r(); + void tty_w(uint32_t data); + uint32_t test_r() { return 0xffffffff; } - DECLARE_READ32_MEMBER(pic_r); - DECLARE_WRITE32_MEMBER(pic_w); + uint32_t pic_r(); + void pic_w(uint32_t data); - DECLARE_WRITE32_MEMBER(dmaaddr_w); + void dmaaddr_w(uint32_t data); DECLARE_WRITE_LINE_MEMBER(dmarq_w); - DECLARE_READ32_MEMBER(tty_4925_rdy_r) { return 0x2; } + uint32_t tty_4925_rdy_r() { return 0x2; } - DECLARE_READ32_MEMBER(spi_status_r) { return 0x8007; } + uint32_t spi_status_r() { return 0x8007; } - DECLARE_READ32_MEMBER(spi_r); - DECLARE_WRITE32_MEMBER(spi_w); + uint32_t spi_r(); + void spi_w(uint32_t data); uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); uint32_t vp50_screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -175,7 +175,7 @@ void vp10x_state::machine_start() // m_maincpu->add_fastram(0x00000000, 0x03ffffff, false, m_mainram); } -WRITE32_MEMBER(vp10x_state::dmaaddr_w) +void vp10x_state::dmaaddr_w(uint32_t data) { m_dma_ptr = (data & 0x07ffffff); } @@ -204,7 +204,7 @@ WRITE_LINE_MEMBER(vp10x_state::dmarq_w) } } -READ32_MEMBER(vp10x_state::pic_r) +uint32_t vp10x_state::pic_r() { static const uint8_t vers[5] = { 0x00, 0x01, 0x00, 0x00, 0x00 }; static const uint8_t serial[10] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a }; @@ -226,7 +226,7 @@ READ32_MEMBER(vp10x_state::pic_r) return 0; } -WRITE32_MEMBER(vp10x_state::pic_w) +void vp10x_state::pic_w(uint32_t data) { //printf("%02x to pic_cmd\n", data&0xff); if ((data & 0xff) == 0) @@ -237,12 +237,12 @@ WRITE32_MEMBER(vp10x_state::pic_w) pic_state = 0; } -READ32_MEMBER(vp10x_state::spi_r) +uint32_t vp10x_state::spi_r() { return 0xffffffff; } -WRITE32_MEMBER(vp10x_state::spi_w) +void vp10x_state::spi_w(uint32_t data) { // printf("%d to SPI select\n", data); m_spi_select = data; @@ -292,12 +292,12 @@ uint32_t vp10x_state::vp50_screen_update(screen_device &screen, bitmap_rgb32 &bi return 0; } -READ32_MEMBER(vp10x_state::tty_ready_r) +uint32_t vp10x_state::tty_ready_r() { return 0x60; // must return &0x20 for output at tty_w to continue } -WRITE32_MEMBER(vp10x_state::tty_w) // set breakpoint at bfc01430 to catch when it's printing things +void vp10x_state::tty_w(uint32_t data) // set breakpoint at bfc01430 to catch when it's printing things { // uncomment to see startup messages - it says "RAM OK" and "EPI RSS Ver 4.5.1" followed by "<RSS active>" and then lots of dots // Special Forces also says "<inited tv_cap> = 00000032" diff --git a/src/mame/drivers/vpoker.cpp b/src/mame/drivers/vpoker.cpp index eafe391270f..6c7f004641a 100644 --- a/src/mame/drivers/vpoker.cpp +++ b/src/mame/drivers/vpoker.cpp @@ -121,8 +121,8 @@ public: private: std::unique_ptr<uint8_t[]> m_videoram; uint8_t m_blit_ram[8]; - DECLARE_READ8_MEMBER(blitter_r); - DECLARE_WRITE8_MEMBER(blitter_w); + uint8_t blitter_r(offs_t offset); + void blitter_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(ptm_irq); virtual void video_start() override; uint32_t screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -161,7 +161,7 @@ uint32_t vpoker_state::screen_update_vpoker(screen_device &screen, bitmap_ind16 return 0; } -READ8_MEMBER(vpoker_state::blitter_r) +uint8_t vpoker_state::blitter_r(offs_t offset) { if(offset == 6) return ioport("IN0")->read(); @@ -169,7 +169,7 @@ READ8_MEMBER(vpoker_state::blitter_r) return 0; } -WRITE8_MEMBER(vpoker_state::blitter_w) +void vpoker_state::blitter_w(offs_t offset, uint8_t data) { uint8_t *videoram = m_videoram.get(); diff --git a/src/mame/drivers/vroulet.cpp b/src/mame/drivers/vroulet.cpp index 5987dbd16f8..99208384039 100644 --- a/src/mame/drivers/vroulet.cpp +++ b/src/mame/drivers/vroulet.cpp @@ -74,9 +74,9 @@ private: tilemap_t *m_bg_tilemap; - DECLARE_WRITE8_MEMBER(paletteram_w); - DECLARE_WRITE8_MEMBER(videoram_w); - DECLARE_WRITE8_MEMBER(colorram_w); + void paletteram_w(offs_t offset, uint8_t data); + void videoram_w(offs_t offset, uint8_t data); + void colorram_w(offs_t offset, uint8_t data); void ppi8255_a_w(uint8_t data); void ppi8255_b_w(uint8_t data); void ppi8255_c_w(uint8_t data); @@ -94,7 +94,7 @@ private: /* video */ -WRITE8_MEMBER(vroulet_state::paletteram_w) +void vroulet_state::paletteram_w(offs_t offset, uint8_t data) { /* paletteram_xxxxBBBBGGGGRRRR_byte_be_w @@ -114,13 +114,13 @@ WRITE8_MEMBER(vroulet_state::paletteram_w) } } -WRITE8_MEMBER(vroulet_state::videoram_w) +void vroulet_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(vroulet_state::colorram_w) +void vroulet_state::colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/drivers/vt1682.cpp b/src/mame/drivers/vt1682.cpp index 76a75557d54..6bd7b73712f 100644 --- a/src/mame/drivers/vt1682.cpp +++ b/src/mame/drivers/vt1682.cpp @@ -239,120 +239,120 @@ private: uint8_t m_2030; - DECLARE_READ8_MEMBER(vt1682_2000_r); - DECLARE_WRITE8_MEMBER(vt1682_2000_w); - - DECLARE_READ8_MEMBER(vt1682_2001_vblank_r); - DECLARE_WRITE8_MEMBER(vt1682_2001_w); - - DECLARE_READ8_MEMBER(vt1682_2002_sprramaddr_2_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2002_sprramaddr_2_0_w); - DECLARE_READ8_MEMBER(vt1682_2003_sprramaddr_10_3_r); - DECLARE_WRITE8_MEMBER(vt1682_2003_sprramaddr_10_3_w); - DECLARE_READ8_MEMBER(vt1682_2004_sprram_data_r); - DECLARE_WRITE8_MEMBER(vt1682_2004_sprram_data_w); - - DECLARE_READ8_MEMBER(vt1682_2005_vramaddr_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2005_vramaddr_7_0_w); - DECLARE_READ8_MEMBER(vt1682_2006_vramaddr_15_8_r); - DECLARE_WRITE8_MEMBER(vt1682_2006_vramaddr_15_8_w); - DECLARE_READ8_MEMBER(vt1682_2007_vram_data_r); - DECLARE_WRITE8_MEMBER(vt1682_2007_vram_data_w); - - DECLARE_READ8_MEMBER(vt1682_201a_sp_segment_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_201a_sp_segment_7_0_w); - DECLARE_READ8_MEMBER(vt1682_201b_sp_segment_11_8_r); - DECLARE_WRITE8_MEMBER(vt1682_201b_sp_segment_11_8_w); - - DECLARE_READ8_MEMBER(vt1682_201c_bk1_segment_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_201c_bk1_segment_7_0_w); - DECLARE_READ8_MEMBER(vt1682_201d_bk1_segment_11_8_r); - DECLARE_WRITE8_MEMBER(vt1682_201d_bk1_segment_11_8_w); - DECLARE_READ8_MEMBER(vt1682_201e_bk2_segment_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_201e_bk2_segment_7_0_w); - DECLARE_READ8_MEMBER(vt1682_201f_bk2_segment_11_8_r); - DECLARE_WRITE8_MEMBER(vt1682_201f_bk2_segment_11_8_w); - - DECLARE_READ8_MEMBER(vt1682_2013_bk1_main_control_r); - DECLARE_WRITE8_MEMBER(vt1682_2013_bk1_main_control_w); - DECLARE_READ8_MEMBER(vt1682_2017_bk2_main_control_r); - DECLARE_WRITE8_MEMBER(vt1682_2017_bk2_main_control_w); - - DECLARE_READ8_MEMBER(vt1682_2012_bk1_scroll_control_r); - DECLARE_WRITE8_MEMBER(vt1682_2012_bk1_scroll_control_w); - DECLARE_READ8_MEMBER(vt1682_2016_bk2_scroll_control_r); - DECLARE_WRITE8_MEMBER(vt1682_2016_bk2_scroll_control_w); - - DECLARE_READ8_MEMBER(vt1682_2010_bk1_xscroll_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2010_bk1_xscroll_7_0_w); - DECLARE_READ8_MEMBER(vt1682_2011_bk1_yscoll_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2011_bk1_yscoll_7_0_w); - DECLARE_READ8_MEMBER(vt1682_2014_bk2_xscroll_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2014_bk2_xscroll_7_0_w); - DECLARE_READ8_MEMBER(vt1682_2015_bk2_yscoll_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2015_bk2_yscoll_7_0_w); - - DECLARE_READ8_MEMBER(vt1682_200e_blend_pal_sel_r); - DECLARE_WRITE8_MEMBER(vt1682_200e_blend_pal_sel_w); - DECLARE_READ8_MEMBER(vt1682_200f_bk_pal_sel_r); - DECLARE_WRITE8_MEMBER(vt1682_200f_bk_pal_sel_w); - - DECLARE_READ8_MEMBER(vt1682_2008_lcd_vs_delay_r); - DECLARE_WRITE8_MEMBER(vt1682_2008_lcd_vs_delay_w); - DECLARE_READ8_MEMBER(vt1682_2009_lcd_hs_delay_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2009_lcd_hs_delay_7_0_w); - DECLARE_READ8_MEMBER(vt1682_200a_lcd_fr_delay_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_200a_lcd_fr_delay_7_0_w); - - DECLARE_READ8_MEMBER(vt1682_200d_misc_vregs2_r); - DECLARE_WRITE8_MEMBER(vt1682_200d_misc_vregs2_w); - DECLARE_READ8_MEMBER(vt1682_200c_misc_vregs1_r); - DECLARE_WRITE8_MEMBER(vt1682_200c_misc_vregs1_w); - DECLARE_READ8_MEMBER(vt1682_200b_misc_vregs0_r); - DECLARE_WRITE8_MEMBER(vt1682_200b_misc_vregs0_w); - - DECLARE_READ8_MEMBER(vt1682_2018_spregs_r); - DECLARE_WRITE8_MEMBER(vt1682_2018_spregs_w); - DECLARE_READ8_MEMBER(vt1682_2019_bkgain_r); - DECLARE_WRITE8_MEMBER(vt1682_2019_bkgain_w); - - DECLARE_READ8_MEMBER(vt1682_2020_bk_linescroll_r); - DECLARE_WRITE8_MEMBER(vt1682_2020_bk_linescroll_w); - DECLARE_READ8_MEMBER(vt1682_2021_lum_offset_r); - DECLARE_WRITE8_MEMBER(vt1682_2021_lum_offset_w); - DECLARE_READ8_MEMBER(vt1682_2022_saturation_misc_r); - DECLARE_WRITE8_MEMBER(vt1682_2022_saturation_misc_w); - - DECLARE_READ8_MEMBER(vt1682_2023_lightgun_reset_r); - DECLARE_WRITE8_MEMBER(vt1682_2023_lightgun_reset_w); - DECLARE_READ8_MEMBER(vt1682_2024_lightgun1_y_r); - DECLARE_WRITE8_MEMBER(vt1682_2024_lightgun1_y_w); - DECLARE_READ8_MEMBER(vt1682_2025_lightgun1_x_r); - DECLARE_WRITE8_MEMBER(vt1682_2025_lightgun1_x_w); - DECLARE_READ8_MEMBER(vt1682_2026_lightgun2_y_r); - DECLARE_WRITE8_MEMBER(vt1682_2026_lightgun2_y_w); - DECLARE_READ8_MEMBER(vt1682_2027_lightgun2_x_r); - DECLARE_WRITE8_MEMBER(vt1682_2027_lightgun2_x_w); - - DECLARE_READ8_MEMBER(vt1682_2031_red_dac_r); - DECLARE_WRITE8_MEMBER(vt1682_2031_red_dac_w); - DECLARE_READ8_MEMBER(vt1682_2032_green_dac_r); - DECLARE_WRITE8_MEMBER(vt1682_2032_green_dac_w); - DECLARE_READ8_MEMBER(vt1682_2033_blue_dac_r); - DECLARE_WRITE8_MEMBER(vt1682_2033_blue_dac_w); - - DECLARE_READ8_MEMBER(vt1682_2028_r); - DECLARE_WRITE8_MEMBER(vt1682_2028_w); - DECLARE_READ8_MEMBER(vt1682_2029_r); - DECLARE_WRITE8_MEMBER(vt1682_2029_w); - DECLARE_READ8_MEMBER(vt1682_202a_r); - DECLARE_WRITE8_MEMBER(vt1682_202a_w); - DECLARE_READ8_MEMBER(vt1682_202b_r); - DECLARE_WRITE8_MEMBER(vt1682_202b_w); - DECLARE_READ8_MEMBER(vt1682_202e_r); - DECLARE_WRITE8_MEMBER(vt1682_202e_w); - DECLARE_READ8_MEMBER(vt1682_2030_r); - DECLARE_WRITE8_MEMBER(vt1682_2030_w); + uint8_t vt1682_2000_r(); + void vt1682_2000_w(uint8_t data); + + uint8_t vt1682_2001_vblank_r(); + void vt1682_2001_w(uint8_t data); + + uint8_t vt1682_2002_sprramaddr_2_0_r(); + void vt1682_2002_sprramaddr_2_0_w(uint8_t data); + uint8_t vt1682_2003_sprramaddr_10_3_r(); + void vt1682_2003_sprramaddr_10_3_w(uint8_t data); + uint8_t vt1682_2004_sprram_data_r(); + void vt1682_2004_sprram_data_w(uint8_t data); + + uint8_t vt1682_2005_vramaddr_7_0_r(); + void vt1682_2005_vramaddr_7_0_w(uint8_t data); + uint8_t vt1682_2006_vramaddr_15_8_r(); + void vt1682_2006_vramaddr_15_8_w(uint8_t data); + uint8_t vt1682_2007_vram_data_r(); + void vt1682_2007_vram_data_w(uint8_t data); + + uint8_t vt1682_201a_sp_segment_7_0_r(); + void vt1682_201a_sp_segment_7_0_w(uint8_t data); + uint8_t vt1682_201b_sp_segment_11_8_r(); + void vt1682_201b_sp_segment_11_8_w(uint8_t data); + + uint8_t vt1682_201c_bk1_segment_7_0_r(); + void vt1682_201c_bk1_segment_7_0_w(uint8_t data); + uint8_t vt1682_201d_bk1_segment_11_8_r(); + void vt1682_201d_bk1_segment_11_8_w(uint8_t data); + uint8_t vt1682_201e_bk2_segment_7_0_r(); + void vt1682_201e_bk2_segment_7_0_w(uint8_t data); + uint8_t vt1682_201f_bk2_segment_11_8_r(); + void vt1682_201f_bk2_segment_11_8_w(uint8_t data); + + uint8_t vt1682_2013_bk1_main_control_r(); + void vt1682_2013_bk1_main_control_w(uint8_t data); + uint8_t vt1682_2017_bk2_main_control_r(); + void vt1682_2017_bk2_main_control_w(uint8_t data); + + uint8_t vt1682_2012_bk1_scroll_control_r(); + void vt1682_2012_bk1_scroll_control_w(uint8_t data); + uint8_t vt1682_2016_bk2_scroll_control_r(); + void vt1682_2016_bk2_scroll_control_w(uint8_t data); + + uint8_t vt1682_2010_bk1_xscroll_7_0_r(); + void vt1682_2010_bk1_xscroll_7_0_w(uint8_t data); + uint8_t vt1682_2011_bk1_yscoll_7_0_r(); + void vt1682_2011_bk1_yscoll_7_0_w(uint8_t data); + uint8_t vt1682_2014_bk2_xscroll_7_0_r(); + void vt1682_2014_bk2_xscroll_7_0_w(uint8_t data); + uint8_t vt1682_2015_bk2_yscoll_7_0_r(); + void vt1682_2015_bk2_yscoll_7_0_w(uint8_t data); + + uint8_t vt1682_200e_blend_pal_sel_r(); + void vt1682_200e_blend_pal_sel_w(uint8_t data); + uint8_t vt1682_200f_bk_pal_sel_r(); + void vt1682_200f_bk_pal_sel_w(uint8_t data); + + uint8_t vt1682_2008_lcd_vs_delay_r(); + void vt1682_2008_lcd_vs_delay_w(uint8_t data); + uint8_t vt1682_2009_lcd_hs_delay_7_0_r(); + void vt1682_2009_lcd_hs_delay_7_0_w(uint8_t data); + uint8_t vt1682_200a_lcd_fr_delay_7_0_r(); + void vt1682_200a_lcd_fr_delay_7_0_w(uint8_t data); + + uint8_t vt1682_200d_misc_vregs2_r(); + void vt1682_200d_misc_vregs2_w(uint8_t data); + uint8_t vt1682_200c_misc_vregs1_r(); + void vt1682_200c_misc_vregs1_w(uint8_t data); + uint8_t vt1682_200b_misc_vregs0_r(); + void vt1682_200b_misc_vregs0_w(uint8_t data); + + uint8_t vt1682_2018_spregs_r(); + void vt1682_2018_spregs_w(uint8_t data); + uint8_t vt1682_2019_bkgain_r(); + void vt1682_2019_bkgain_w(uint8_t data); + + uint8_t vt1682_2020_bk_linescroll_r(); + void vt1682_2020_bk_linescroll_w(uint8_t data); + uint8_t vt1682_2021_lum_offset_r(); + void vt1682_2021_lum_offset_w(uint8_t data); + uint8_t vt1682_2022_saturation_misc_r(); + void vt1682_2022_saturation_misc_w(uint8_t data); + + uint8_t vt1682_2023_lightgun_reset_r(); + void vt1682_2023_lightgun_reset_w(uint8_t data); + uint8_t vt1682_2024_lightgun1_y_r(); + void vt1682_2024_lightgun1_y_w(uint8_t data); + uint8_t vt1682_2025_lightgun1_x_r(); + void vt1682_2025_lightgun1_x_w(uint8_t data); + uint8_t vt1682_2026_lightgun2_y_r(); + void vt1682_2026_lightgun2_y_w(uint8_t data); + uint8_t vt1682_2027_lightgun2_x_r(); + void vt1682_2027_lightgun2_x_w(uint8_t data); + + uint8_t vt1682_2031_red_dac_r(); + void vt1682_2031_red_dac_w(uint8_t data); + uint8_t vt1682_2032_green_dac_r(); + void vt1682_2032_green_dac_w(uint8_t data); + uint8_t vt1682_2033_blue_dac_r(); + void vt1682_2033_blue_dac_w(uint8_t data); + + uint8_t vt1682_2028_r(); + void vt1682_2028_w(uint8_t data); + uint8_t vt1682_2029_r(); + void vt1682_2029_w(uint8_t data); + uint8_t vt1682_202a_r(); + void vt1682_202a_w(uint8_t data); + uint8_t vt1682_202b_r(); + void vt1682_202b_w(uint8_t data); + uint8_t vt1682_202e_r(); + void vt1682_202e_w(uint8_t data); + uint8_t vt1682_2030_r(); + void vt1682_2030_w(uint8_t data); /* Video Helpers */ @@ -426,73 +426,73 @@ private: uint8_t m_2106_enable_reg; - DECLARE_READ8_MEMBER(vt1682_2100_prgbank1_r3_r); - DECLARE_WRITE8_MEMBER(vt1682_2100_prgbank1_r3_w); - DECLARE_READ8_MEMBER(vt1682_210c_prgbank1_r2_r); - DECLARE_WRITE8_MEMBER(vt1682_210c_prgbank1_r2_w); + uint8_t vt1682_2100_prgbank1_r3_r(); + void vt1682_2100_prgbank1_r3_w(uint8_t data); + uint8_t vt1682_210c_prgbank1_r2_r(); + void vt1682_210c_prgbank1_r2_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_2107_prgbank0_r0_r); - DECLARE_WRITE8_MEMBER(vt1682_2107_prgbank0_r0_w); - DECLARE_READ8_MEMBER(vt1682_2108_prgbank0_r1_r); - DECLARE_WRITE8_MEMBER(vt1682_2108_prgbank0_r1_w); - DECLARE_READ8_MEMBER(vt1682_2109_prgbank0_r2_r); - DECLARE_WRITE8_MEMBER(vt1682_2109_prgbank0_r2_w); - DECLARE_READ8_MEMBER(vt1682_210a_prgbank0_r3_r); - DECLARE_WRITE8_MEMBER(vt1682_210a_prgbank0_r3_w); + uint8_t vt1682_2107_prgbank0_r0_r(); + void vt1682_2107_prgbank0_r0_w(uint8_t data); + uint8_t vt1682_2108_prgbank0_r1_r(); + void vt1682_2108_prgbank0_r1_w(uint8_t data); + uint8_t vt1682_2109_prgbank0_r2_r(); + void vt1682_2109_prgbank0_r2_w(uint8_t data); + uint8_t vt1682_210a_prgbank0_r3_r(); + void vt1682_210a_prgbank0_r3_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_prgbank0_r4_r); - DECLARE_READ8_MEMBER(vt1682_prgbank0_r5_r); - DECLARE_READ8_MEMBER(vt1682_prgbank1_r0_r); - DECLARE_READ8_MEMBER(vt1682_prgbank1_r1_r); + uint8_t vt1682_prgbank0_r4_r(); + uint8_t vt1682_prgbank0_r5_r(); + uint8_t vt1682_prgbank1_r0_r(); + uint8_t vt1682_prgbank1_r1_r(); - DECLARE_WRITE8_MEMBER(vt1682_prgbank1_r0_w); - DECLARE_WRITE8_MEMBER(vt1682_prgbank1_r1_w); - DECLARE_WRITE8_MEMBER(vt1682_prgbank0_r4_w); - DECLARE_WRITE8_MEMBER(vt1682_prgbank0_r5_w); + void vt1682_prgbank1_r0_w(uint8_t data); + void vt1682_prgbank1_r1_w(uint8_t data); + void vt1682_prgbank0_r4_w(uint8_t data); + void vt1682_prgbank0_r5_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_2118_prgbank1_r4_r5_r); - DECLARE_WRITE8_MEMBER(vt1682_2118_prgbank1_r4_r5_w); + uint8_t vt1682_2118_prgbank1_r4_r5_r(); + void vt1682_2118_prgbank1_r4_r5_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_210b_misc_cs_prg0_bank_sel_r); - DECLARE_WRITE8_MEMBER(vt1682_210b_misc_cs_prg0_bank_sel_w); + uint8_t vt1682_210b_misc_cs_prg0_bank_sel_r(); + void vt1682_210b_misc_cs_prg0_bank_sel_w(uint8_t data); - DECLARE_WRITE8_MEMBER(vt1682_2105_comr6_tvmodes_w); + void vt1682_2105_comr6_tvmodes_w(uint8_t data); - DECLARE_WRITE8_MEMBER(vt1682_211c_regs_ext2421_w); + void vt1682_211c_regs_ext2421_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_2122_dma_dt_addr_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2122_dma_dt_addr_7_0_w); - DECLARE_READ8_MEMBER(vt1682_2123_dma_dt_addr_15_8_r); - DECLARE_WRITE8_MEMBER(vt1682_2123_dma_dt_addr_15_8_w); + uint8_t vt1682_2122_dma_dt_addr_7_0_r(); + void vt1682_2122_dma_dt_addr_7_0_w(uint8_t data); + uint8_t vt1682_2123_dma_dt_addr_15_8_r(); + void vt1682_2123_dma_dt_addr_15_8_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_2124_dma_sr_addr_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_2124_dma_sr_addr_7_0_w); - DECLARE_READ8_MEMBER(vt1682_2125_dma_sr_addr_15_8_r); - DECLARE_WRITE8_MEMBER(vt1682_2125_dma_sr_addr_15_8_w); + uint8_t vt1682_2124_dma_sr_addr_7_0_r(); + void vt1682_2124_dma_sr_addr_7_0_w(uint8_t data); + uint8_t vt1682_2125_dma_sr_addr_15_8_r(); + void vt1682_2125_dma_sr_addr_15_8_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_2126_dma_sr_bank_addr_22_15_r); - DECLARE_WRITE8_MEMBER(vt1682_2126_dma_sr_bank_addr_22_15_w); - DECLARE_READ8_MEMBER(vt1682_2128_dma_sr_bank_addr_24_23_r); - DECLARE_WRITE8_MEMBER(vt1682_2128_dma_sr_bank_addr_24_23_w); + uint8_t vt1682_2126_dma_sr_bank_addr_22_15_r(); + void vt1682_2126_dma_sr_bank_addr_22_15_w(uint8_t data); + uint8_t vt1682_2128_dma_sr_bank_addr_24_23_r(); + void vt1682_2128_dma_sr_bank_addr_24_23_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_2127_dma_status_r); - DECLARE_WRITE8_MEMBER(vt1682_2127_dma_size_trigger_w); + uint8_t vt1682_2127_dma_status_r(); + void vt1682_2127_dma_size_trigger_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_2106_enable_regs_r); - DECLARE_WRITE8_MEMBER(vt1682_2106_enable_regs_w); + uint8_t vt1682_2106_enable_regs_r(); + void vt1682_2106_enable_regs_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_212c_prng_r); - DECLARE_WRITE8_MEMBER(vt1682_212c_prng_seed_w); + uint8_t vt1682_212c_prng_r(); + void vt1682_212c_prng_seed_w(uint8_t data); virtual void clock_joy2(); - READ8_MEMBER(inteact_212a_send_joy_clock2_r); + uint8_t inteact_212a_send_joy_clock2_r(); /* Hacky */ - DECLARE_READ8_MEMBER(soundcpu_irq_vector_hack_r); - DECLARE_READ8_MEMBER(maincpu_irq_vector_hack_r); - DECLARE_WRITE8_MEMBER(vt1682_sound_reset_hack_w); + uint8_t soundcpu_irq_vector_hack_r(offs_t offset); + uint8_t maincpu_irq_vector_hack_r(offs_t offset); + void vt1682_sound_reset_hack_w(offs_t offset, uint8_t data); bool m_scpu_is_in_reset; /* System Helpers */ @@ -560,30 +560,30 @@ private: uint8_t m_soundcpu_211a_dacright_7_0; uint8_t m_soundcpu_211b_dacright_15_8; - DECLARE_WRITE8_MEMBER(vt1682_soundcpu_211c_reg_irqctrl_w); + void vt1682_soundcpu_211c_reg_irqctrl_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_soundcpu_2118_dacleft_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_soundcpu_2118_dacleft_7_0_w); - DECLARE_READ8_MEMBER(vt1682_soundcpu_2119_dacleft_15_8_r); - DECLARE_WRITE8_MEMBER(vt1682_soundcpu_2119_dacleft_15_8_w); - DECLARE_READ8_MEMBER(vt1682_soundcpu_211a_dacright_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_soundcpu_211a_dacright_7_0_w); - DECLARE_READ8_MEMBER(vt1682_soundcpu_211b_dacright_15_8_r); - DECLARE_WRITE8_MEMBER(vt1682_soundcpu_211b_dacright_15_8_w); + uint8_t vt1682_soundcpu_2118_dacleft_7_0_r(); + void vt1682_soundcpu_2118_dacleft_7_0_w(uint8_t data); + uint8_t vt1682_soundcpu_2119_dacleft_15_8_r(); + void vt1682_soundcpu_2119_dacleft_15_8_w(uint8_t data); + uint8_t vt1682_soundcpu_211a_dacright_7_0_r(); + void vt1682_soundcpu_211a_dacright_7_0_w(uint8_t data); + uint8_t vt1682_soundcpu_211b_dacright_15_8_r(); + void vt1682_soundcpu_211b_dacright_15_8_w(uint8_t data); /* Support */ - DECLARE_WRITE8_MEMBER(vt1682_timer_enable_trampoline_w) + void vt1682_timer_enable_trampoline_w(uint8_t data) { // this is used for raster interrpt effects, despite not being a scanline timer, so knowing when it triggers is useful, so trampoline it to avoid passing m_screen to the device LOGMASKED(LOG_OTHER, "%s: vt1682_timer_enable_trampoline_w: %02x @ position y%d, x%d\n", machine().describe_context(), data, m_screen->vpos(), m_screen->hpos()); - m_system_timer_dev->vt1682_timer_enable_w(space, offset, data); + m_system_timer_dev->vt1682_timer_enable_w(data); }; - DECLARE_WRITE8_MEMBER(vt1682_timer_preload_15_8_trampoline_w) + void vt1682_timer_preload_15_8_trampoline_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_timer_preload_15_8_trampoline_w: %02x @ position y%d, x%d\n", machine().describe_context(), data, m_screen->vpos(), m_screen->hpos()); - m_system_timer_dev->vt1682_timer_preload_15_8_w(space, offset, data); + m_system_timer_dev->vt1682_timer_preload_15_8_w(data); }; @@ -592,8 +592,8 @@ private: uint32_t translate_address_4000_to_7fff(uint16_t address); uint32_t translate_address_8000_to_ffff(uint16_t address); - DECLARE_READ8_MEMBER(rom_4000_to_7fff_r); - DECLARE_READ8_MEMBER(rom_8000_to_ffff_r); + uint8_t rom_4000_to_7fff_r(offs_t offset); + uint8_t rom_8000_to_ffff_r(offs_t offset); TIMER_DEVICE_CALLBACK_MEMBER(scanline); TIMER_DEVICE_CALLBACK_MEMBER(line_render_start); @@ -944,7 +944,7 @@ void vt_vt1682_state::machine_reset() /* -Address tranlsation +Address translation ---------------------------------------------------------------- @@ -1174,13 +1174,13 @@ uint32_t vt_vt1682_state::translate_address_8000_to_ffff(uint16_t address) return realaddress; } -READ8_MEMBER(vt_vt1682_state::rom_4000_to_7fff_r) +uint8_t vt_vt1682_state::rom_4000_to_7fff_r(offs_t offset) { const uint32_t address = translate_address_4000_to_7fff(offset + 0x4000); return m_fullrom->read8(address); } -READ8_MEMBER(vt_vt1682_state::rom_8000_to_ffff_r) +uint8_t vt_vt1682_state::rom_8000_to_ffff_r(offs_t offset) { const uint32_t address = translate_address_8000_to_ffff(offset + 0x8000); return m_fullrom->read8(address); @@ -1203,14 +1203,14 @@ READ8_MEMBER(vt_vt1682_state::rom_8000_to_ffff_r) 0x01 - NMI_EN */ -READ8_MEMBER(vt_vt1682_state::vt1682_2000_r) +uint8_t vt_vt1682_state::vt1682_2000_r() { uint8_t ret = m_2000; LOGMASKED(LOG_OTHER, "%s: vt1682_2000_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2000_w) +void vt_vt1682_state::vt1682_2000_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2000_w writing: %02x (Capture:%1x Slave:%1x NMI_Enable:%1x)\n", machine().describe_context(), data, (data & 0x10)>>4, (data & 0x08)>>3, (data & 0x01)>>0 ); m_2000 = data; @@ -1240,7 +1240,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2000_w) 0x01 - BK INI (blank bg on left 8 pixels) */ -READ8_MEMBER(vt_vt1682_state::vt1682_2001_vblank_r) +uint8_t vt_vt1682_state::vt1682_2001_vblank_r() { uint8_t ret = 0x00; @@ -1254,7 +1254,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2001_vblank_r) return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2001_w) +void vt_vt1682_state::vt1682_2001_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2001_w writing: %02x (ext_clk_div:%1x sp_ini:%1x bk_ini:%1x)\n", machine().describe_context(), data, (data & 0x0c) >> 2, (data & 0x02) >> 1, (data & 0x01) >> 0); @@ -1276,14 +1276,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2001_w) 0x01 - SPRAM ADDR:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2002_sprramaddr_2_0_r) +uint8_t vt_vt1682_state::vt1682_2002_sprramaddr_2_0_r() { uint8_t ret = m_2002_sprramaddr_2_0; LOGMASKED(LOG_OTHER, "%s: vt1682_2002_sprramaddr_2_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2002_sprramaddr_2_0_w) +void vt_vt1682_state::vt1682_2002_sprramaddr_2_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2002_sprramaddr_2_0_w writing: %02x\n", machine().describe_context(), data); m_2002_sprramaddr_2_0 = data & 0x07; @@ -1302,14 +1302,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2002_sprramaddr_2_0_w) 0x01 - SPRAM ADDR:3 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2003_sprramaddr_10_3_r) +uint8_t vt_vt1682_state::vt1682_2003_sprramaddr_10_3_r() { uint8_t ret = m_2003_sprramaddr_10_3; LOGMASKED(LOG_OTHER, "%s: vt1682_2003_sprramaddr_10_3_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2003_sprramaddr_10_3_w) +void vt_vt1682_state::vt1682_2003_sprramaddr_10_3_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2003_sprramaddr_10_3_w writing: %02x\n", machine().describe_context(), data); m_2003_sprramaddr_10_3 = data; @@ -1328,7 +1328,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2003_sprramaddr_10_3_w) 0x01 - SPRAM DATA:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2004_sprram_data_r) +uint8_t vt_vt1682_state::vt1682_2004_sprram_data_r() { uint16_t spriteram_address = get_spriteram_addr(); uint8_t ret = m_spriteram->read8(spriteram_address); @@ -1338,7 +1338,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2004_sprram_data_r) return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2004_sprram_data_w) +void vt_vt1682_state::vt1682_2004_sprram_data_w(uint8_t data) { uint16_t spriteram_address = get_spriteram_addr(); m_spriteram->write8(spriteram_address, data); @@ -1361,14 +1361,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2004_sprram_data_w) 0x01 - VRAM ADDR:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2005_vramaddr_7_0_r) +uint8_t vt_vt1682_state::vt1682_2005_vramaddr_7_0_r() { uint8_t ret = m_2005_vramaddr_7_0; LOGMASKED(LOG_OTHER, "%s: vt1682_2005_vramaddr_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2005_vramaddr_7_0_w) +void vt_vt1682_state::vt1682_2005_vramaddr_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2005_vramaddr_7_0_w writing: %02x\n", machine().describe_context(), data); m_2005_vramaddr_7_0 = data; @@ -1387,14 +1387,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2005_vramaddr_7_0_w) 0x01 - VRAM ADDR:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2006_vramaddr_15_8_r) +uint8_t vt_vt1682_state::vt1682_2006_vramaddr_15_8_r() { uint8_t ret = m_2006_vramaddr_15_8; LOGMASKED(LOG_OTHER, "%s: vt1682_2006_vramaddr_15_8 returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2006_vramaddr_15_8_w) +void vt_vt1682_state::vt1682_2006_vramaddr_15_8_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2006_vramaddr_15_8 writing: %02x\n", machine().describe_context(), data); m_2006_vramaddr_15_8 = data; @@ -1414,7 +1414,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2006_vramaddr_15_8_w) 0x01 - VRAM DATA:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2007_vram_data_r) +uint8_t vt_vt1682_state::vt1682_2007_vram_data_r() { uint16_t vram_address = get_vram_addr(); uint8_t ret = m_vram->read8(vram_address); @@ -1424,7 +1424,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2007_vram_data_r) return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2007_vram_data_w) +void vt_vt1682_state::vt1682_2007_vram_data_w(uint8_t data) { uint16_t vram_address = get_vram_addr(); m_vram->write8(vram_address, data); @@ -1447,14 +1447,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2007_vram_data_w) 0x01 - LCD VS DELAY */ -READ8_MEMBER(vt_vt1682_state::vt1682_2008_lcd_vs_delay_r) +uint8_t vt_vt1682_state::vt1682_2008_lcd_vs_delay_r() { uint8_t ret = m_2008_lcd_vs_delay; LOGMASKED(LOG_OTHER, "%s: vt1682_2008_lcd_vs_delay_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2008_lcd_vs_delay_w) +void vt_vt1682_state::vt1682_2008_lcd_vs_delay_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2008_lcd_vs_delay_w writing: %02x\n", machine().describe_context(), data); m_2008_lcd_vs_delay = data; @@ -1473,14 +1473,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2008_lcd_vs_delay_w) 0x01 - LCD HS DELAY:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_r) +uint8_t vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_r() { uint8_t ret = m_2009_lcd_hs_delay_7_0; LOGMASKED(LOG_OTHER, "%s: vt1682_2009_lcd_hs_delay_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_w) +void vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2009_lcd_hs_delay_7_0_w writing: %02x\n", machine().describe_context(), data); m_2009_lcd_hs_delay_7_0 = data; @@ -1499,14 +1499,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_w) 0x01 - LCD FR DELAY:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_r) +uint8_t vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_r() { uint8_t ret = m_200a_lcd_fr_delay_7_0; LOGMASKED(LOG_OTHER, "%s: vt1682_200a_lcd_fr_delay_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_w) +void vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_200a_lcd_fr_delay_7_0_w writing: %02x\n", machine().describe_context(), data); m_200a_lcd_fr_delay_7_0 = data; @@ -1526,14 +1526,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_w) 0x01 - LCD HS:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_200b_misc_vregs0_r) +uint8_t vt_vt1682_state::vt1682_200b_misc_vregs0_r() { uint8_t ret = m_200b_misc_vregs0; LOGMASKED(LOG_OTHER, "%s: vt1682_200b_misc_vregs0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_200b_misc_vregs0_w) +void vt_vt1682_state::vt1682_200b_misc_vregs0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_200b_misc_vregs0_w writing: %02x\n", machine().describe_context(), data); m_200b_misc_vregs0 = data; @@ -1552,14 +1552,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200b_misc_vregs0_w) 0x01 - LCD MODE */ -READ8_MEMBER(vt_vt1682_state::vt1682_200c_misc_vregs1_r) +uint8_t vt_vt1682_state::vt1682_200c_misc_vregs1_r() { uint8_t ret = m_200c_misc_vregs1; LOGMASKED(LOG_OTHER, "%s: vt1682_200c_misc_vregs1_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_200c_misc_vregs1_w) +void vt_vt1682_state::vt1682_200c_misc_vregs1_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_200c_misc_vregs1_w writing: %02x\n", machine().describe_context(), data); m_200c_misc_vregs1 = data; @@ -1578,14 +1578,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200c_misc_vregs1_w) 0x01 - Even Line Color */ -READ8_MEMBER(vt_vt1682_state::vt1682_200d_misc_vregs2_r) +uint8_t vt_vt1682_state::vt1682_200d_misc_vregs2_r() { uint8_t ret = m_200d_misc_vregs2; LOGMASKED(LOG_OTHER, "%s: vt1682_200d_misc_vregs2_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_200d_misc_vregs2_w) +void vt_vt1682_state::vt1682_200d_misc_vregs2_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_200d_misc_vregs2_w writing: %02x\n", machine().describe_context(), data); m_200d_misc_vregs2 = data; @@ -1605,14 +1605,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200d_misc_vregs2_w) 0x01 - Palette 1 Out Sel 'SB5' /- 0 = output Palette 1 Disable, 1 = output Palette 1 to LCD only, 2 = Output Palette 1 to TV only, 3 = Output Palette 1 to both */ -READ8_MEMBER(vt_vt1682_state::vt1682_200e_blend_pal_sel_r) +uint8_t vt_vt1682_state::vt1682_200e_blend_pal_sel_r() { uint8_t ret = m_200e_blend_pal_sel; LOGMASKED(LOG_OTHER, "%s: vt1682_200e_blend_pal_sel_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_200e_blend_pal_sel_w) +void vt_vt1682_state::vt1682_200e_blend_pal_sel_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_200e_blend_pal_sel_w writing: %02x\n", machine().describe_context(), data); m_200e_blend_pal_sel = data; @@ -1631,14 +1631,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200e_blend_pal_sel_w) 0x01 - Bk1 Palette Select 'BK1 SB1' */ -READ8_MEMBER(vt_vt1682_state::vt1682_200f_bk_pal_sel_r) +uint8_t vt_vt1682_state::vt1682_200f_bk_pal_sel_r() { uint8_t ret = m_200f_bk_pal_sel; LOGMASKED(LOG_OTHER, "%s: vt1682_200f_bk_pal_sel_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_200f_bk_pal_sel_w) +void vt_vt1682_state::vt1682_200f_bk_pal_sel_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_200f_bk_pal_sel_w writing: %02x\n", machine().describe_context(), data); m_200f_bk_pal_sel = data; @@ -1657,14 +1657,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200f_bk_pal_sel_w) 0x01 - BK1X:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_r) +uint8_t vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_r() { uint8_t ret = m_xscroll_7_0_bk[0]; LOGMASKED(LOG_OTHER, "%s: vt1682_2010_bk1_xscroll_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_w) +void vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2010_bk1_xscroll_7_0_w writing: %02x\n", machine().describe_context(), data); m_xscroll_7_0_bk[0] = data; @@ -1683,14 +1683,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_w) 0x01 - BK1Y:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_r) +uint8_t vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_r() { uint8_t ret = m_yscroll_7_0_bk[0]; LOGMASKED(LOG_OTHER, "%s: vt1682_2011_bk1_yscoll_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_w) +void vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2011_bk1_yscoll_7_0_w writing: %02x\n", machine().describe_context(), data); m_yscroll_7_0_bk[0] = data; @@ -1710,7 +1710,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_w) 0x01 - BK1X:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2012_bk1_scroll_control_r) +uint8_t vt_vt1682_state::vt1682_2012_bk1_scroll_control_r() { uint8_t ret = m_scroll_control_bk[0]; LOGMASKED(LOG_OTHER, "%s: vt1682_2012_bk1_scroll_control_r returning: %02x\n", machine().describe_context(), ret); @@ -1718,7 +1718,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2012_bk1_scroll_control_r) } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2012_bk1_scroll_control_w) +void vt_vt1682_state::vt1682_2012_bk1_scroll_control_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2012_bk1_scroll_control_w writing: %02x (hclr: %1x page_layout:%1x ymsb:%1x xmsb:%1x)\n", machine().describe_context(), data, @@ -1741,14 +1741,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2012_bk1_scroll_control_w) 0x01 - BK1 Size */ -READ8_MEMBER(vt_vt1682_state::vt1682_2013_bk1_main_control_r) +uint8_t vt_vt1682_state::vt1682_2013_bk1_main_control_r() { uint8_t ret = m_main_control_bk[0]; LOGMASKED(LOG_OTHER, "%s: vt1682_2013_bk1_main_control_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2013_bk1_main_control_w) +void vt_vt1682_state::vt1682_2013_bk1_main_control_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2013_bk1_main_control_w writing: %02x (enable:%01x palette:%01x depth:%01x bpp:%01x linemode:%01x tilesize:%01x)\n", machine().describe_context(), data, (data & 0x80) >> 7, (data & 0x40) >> 6, (data & 0x30) >> 4, (data & 0x0c) >> 2, (data & 0x02) >> 1, (data & 0x01) >> 0 ); @@ -1770,14 +1770,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2013_bk1_main_control_w) */ -READ8_MEMBER(vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_r) +uint8_t vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_r() { uint8_t ret = m_xscroll_7_0_bk[1]; LOGMASKED(LOG_OTHER, "%s: vt1682_2014_bk2_xscroll_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_w) +void vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2014_bk2_xscroll_7_0_w writing: %02x\n", machine().describe_context(), data); m_xscroll_7_0_bk[1] = data; @@ -1796,14 +1796,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_w) 0x01 - BK2Y:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_r) +uint8_t vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_r() { uint8_t ret = m_yscroll_7_0_bk[1]; LOGMASKED(LOG_OTHER, "%s: vt1682_2015_bk2_yscoll_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_w) +void vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2015_bk2_yscoll_7_0_w writing: %02x\n", machine().describe_context(), data); m_yscroll_7_0_bk[1] = data; @@ -1823,7 +1823,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_w) 0x01 - BK2X:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2016_bk2_scroll_control_r) +uint8_t vt_vt1682_state::vt1682_2016_bk2_scroll_control_r() { uint8_t ret = m_scroll_control_bk[1]; LOGMASKED(LOG_OTHER, "%s: vt1682_2016_bk2_scroll_control_r returning: %02x\n", machine().describe_context(), ret); @@ -1831,7 +1831,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2016_bk2_scroll_control_r) } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2016_bk2_scroll_control_w) +void vt_vt1682_state::vt1682_2016_bk2_scroll_control_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2016_bk2_scroll_control_w writing: %02x ((invalid): %1x page_layout:%1x ymsb:%1x xmsb:%1x)\n", machine().describe_context(), data, (data & 0x10) >> 4, (data & 0x0c) >> 2, (data & 0x02) >> 1, (data & 0x01) >> 0); @@ -1853,14 +1853,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2016_bk2_scroll_control_w) 0x01 - BK2 Size */ -READ8_MEMBER(vt_vt1682_state::vt1682_2017_bk2_main_control_r) +uint8_t vt_vt1682_state::vt1682_2017_bk2_main_control_r() { uint8_t ret = m_main_control_bk[1]; LOGMASKED(LOG_OTHER, "%s: vt1682_2017_bk2_main_control_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2017_bk2_main_control_w) +void vt_vt1682_state::vt1682_2017_bk2_main_control_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2017_bk2_main_control_w writing: %02x (enable:%01x palette:%01x depth:%01x bpp:%01x (invalid):%01x tilesize:%01x)\n", machine().describe_context(), data, (data & 0x80) >> 7, (data & 0x40) >> 6, (data & 0x30) >> 4, (data & 0x0c) >> 2, (data & 0x02) >> 1, (data & 0x01) >> 0 ); @@ -1882,14 +1882,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2017_bk2_main_control_w) 0x01 - SP SIZE */ -READ8_MEMBER(vt_vt1682_state::vt1682_2018_spregs_r) +uint8_t vt_vt1682_state::vt1682_2018_spregs_r() { uint8_t ret = m_2018_spregs; LOGMASKED(LOG_OTHER, "%s: vt1682_2018_spregs_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2018_spregs_w) +void vt_vt1682_state::vt1682_2018_spregs_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2018_spregs_w writing: %02x\n", machine().describe_context(), data); m_2018_spregs = data; @@ -1908,14 +1908,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2018_spregs_w) 0x01 - BK1 Gain */ -READ8_MEMBER(vt_vt1682_state::vt1682_2019_bkgain_r) +uint8_t vt_vt1682_state::vt1682_2019_bkgain_r() { uint8_t ret = m_2019_bkgain; LOGMASKED(LOG_OTHER, "%s: vt1682_2019_bkgain_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2019_bkgain_w) +void vt_vt1682_state::vt1682_2019_bkgain_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2019_bkgain_w writing: %02x\n", machine().describe_context(), data); m_2019_bkgain = data; @@ -1935,14 +1935,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2019_bkgain_w) 0x01 - SP SEGMENT:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_201a_sp_segment_7_0_r) +uint8_t vt_vt1682_state::vt1682_201a_sp_segment_7_0_r() { uint8_t ret = m_201a_sp_segment_7_0; LOGMASKED(LOG_OTHER, "%s: vt1682_201a_sp_segment_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_201a_sp_segment_7_0_w) +void vt_vt1682_state::vt1682_201a_sp_segment_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_201a_sp_segment_7_0_w writing: %02x\n", machine().describe_context(), data); m_201a_sp_segment_7_0 = data; @@ -1961,14 +1961,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201a_sp_segment_7_0_w) 0x01 - SP SEGMENT:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_201b_sp_segment_11_8_r) +uint8_t vt_vt1682_state::vt1682_201b_sp_segment_11_8_r() { uint8_t ret = m_201b_sp_segment_11_8; LOGMASKED(LOG_OTHER, "%s: vt1682_201b_sp_segment_11_8_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_201b_sp_segment_11_8_w) +void vt_vt1682_state::vt1682_201b_sp_segment_11_8_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_201b_sp_segment_11_8_w writing: %02x\n", machine().describe_context(), data); m_201b_sp_segment_11_8 = data & 0x0f; @@ -1988,14 +1988,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201b_sp_segment_11_8_w) 0x01 - BK1 SEGMENT:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_201c_bk1_segment_7_0_r) +uint8_t vt_vt1682_state::vt1682_201c_bk1_segment_7_0_r() { uint8_t ret = m_segment_7_0_bk[0]; LOGMASKED(LOG_OTHER, "%s: vt1682_201c_bk1_segment_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_201c_bk1_segment_7_0_w) +void vt_vt1682_state::vt1682_201c_bk1_segment_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_201c_bk1_segment_7_0_w writing: %02x\n", machine().describe_context(), data); m_segment_7_0_bk[0] = data; @@ -2014,14 +2014,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201c_bk1_segment_7_0_w) 0x01 - BK1 SEGMENT:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_201d_bk1_segment_11_8_r) +uint8_t vt_vt1682_state::vt1682_201d_bk1_segment_11_8_r() { uint8_t ret = m_segment_11_8_bk[0]; LOGMASKED(LOG_OTHER, "%s: vt1682_201d_bk1_segment_11_8_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_201d_bk1_segment_11_8_w) +void vt_vt1682_state::vt1682_201d_bk1_segment_11_8_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_201d_bk1_segment_11_8_w writing: %02x\n", machine().describe_context(), data); m_segment_11_8_bk[0] = data & 0x0f; @@ -2041,14 +2041,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201d_bk1_segment_11_8_w) 0x01 - BK2 SEGMENT:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_201e_bk2_segment_7_0_r) +uint8_t vt_vt1682_state::vt1682_201e_bk2_segment_7_0_r() { uint8_t ret = m_segment_7_0_bk[1]; LOGMASKED(LOG_OTHER, "%s: vt1682_201e_bk2_segment_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_201e_bk2_segment_7_0_w) +void vt_vt1682_state::vt1682_201e_bk2_segment_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_201e_bk2_segment_7_0_w writing: %02x\n", machine().describe_context(), data); m_segment_7_0_bk[1] = data; @@ -2067,14 +2067,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201e_bk2_segment_7_0_w) 0x01 - BK2 SEGMENT:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_201f_bk2_segment_11_8_r) +uint8_t vt_vt1682_state::vt1682_201f_bk2_segment_11_8_r() { uint8_t ret = m_segment_11_8_bk[1]; LOGMASKED(LOG_OTHER, "%s: vt1682_201f_bk2_segment_11_8_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_201f_bk2_segment_11_8_w) +void vt_vt1682_state::vt1682_201f_bk2_segment_11_8_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_201f_bk2_segment_11_8_w writing: %02x\n", machine().describe_context(), data); m_segment_11_8_bk[1] = data & 0x0f; @@ -2093,14 +2093,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201f_bk2_segment_11_8_w) 0x01 - Scroll Bank */ -READ8_MEMBER(vt_vt1682_state::vt1682_2020_bk_linescroll_r) +uint8_t vt_vt1682_state::vt1682_2020_bk_linescroll_r() { uint8_t ret = m_2020_bk_linescroll; LOGMASKED(LOG_OTHER, "%s: vt1682_2020_bk_linescroll_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2020_bk_linescroll_w) +void vt_vt1682_state::vt1682_2020_bk_linescroll_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2020_bk_linescroll_w writing: %02x\n", machine().describe_context(), data); m_2020_bk_linescroll = data; @@ -2122,14 +2122,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2020_bk_linescroll_w) 0x01 - Luminance_offset */ -READ8_MEMBER(vt_vt1682_state::vt1682_2021_lum_offset_r) +uint8_t vt_vt1682_state::vt1682_2021_lum_offset_r() { uint8_t ret = m_2021_lum_offset; LOGMASKED(LOG_OTHER, "%s: vt1682_2021_lum_offset_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2021_lum_offset_w) +void vt_vt1682_state::vt1682_2021_lum_offset_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2021_lum_offset_w writing: %02x\n", machine().describe_context(), data); m_2021_lum_offset = data; @@ -2149,14 +2149,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2021_lum_offset_w) 0x01 - Saturation */ -READ8_MEMBER(vt_vt1682_state::vt1682_2022_saturation_misc_r) +uint8_t vt_vt1682_state::vt1682_2022_saturation_misc_r() { uint8_t ret = m_2022_saturation_misc; LOGMASKED(LOG_OTHER, "%s: vt1682_2022_saturation_misc_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2022_saturation_misc_w) +void vt_vt1682_state::vt1682_2022_saturation_misc_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2022_saturation_misc_w writing: %02x\n", machine().describe_context(), data); m_2022_saturation_misc = data; @@ -2175,14 +2175,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2022_saturation_misc_w) 0x01 - Light Gun Reset */ -READ8_MEMBER(vt_vt1682_state::vt1682_2023_lightgun_reset_r) +uint8_t vt_vt1682_state::vt1682_2023_lightgun_reset_r() { uint8_t ret = m_2023_lightgun_reset; LOGMASKED(LOG_OTHER, "%s: vt1682_2023_lightgun_reset_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2023_lightgun_reset_w) +void vt_vt1682_state::vt1682_2023_lightgun_reset_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2023_lightgun_reset_w writing: %02x\n", machine().describe_context(), data); m_2023_lightgun_reset = data; @@ -2201,14 +2201,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2023_lightgun_reset_w) 0x01 - Light Gun 1 Y */ -READ8_MEMBER(vt_vt1682_state::vt1682_2024_lightgun1_y_r) +uint8_t vt_vt1682_state::vt1682_2024_lightgun1_y_r() { uint8_t ret = m_2024_lightgun1_y; LOGMASKED(LOG_OTHER, "%s: vt1682_2024_lightgun1_y_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2024_lightgun1_y_w) +void vt_vt1682_state::vt1682_2024_lightgun1_y_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2024_lightgun1_y_w writing: %02x\n", machine().describe_context(), data); m_2024_lightgun1_y = data; @@ -2227,14 +2227,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2024_lightgun1_y_w) 0x01 - Light Gun 1 X */ -READ8_MEMBER(vt_vt1682_state::vt1682_2025_lightgun1_x_r) +uint8_t vt_vt1682_state::vt1682_2025_lightgun1_x_r() { uint8_t ret = m_2025_lightgun1_x; LOGMASKED(LOG_OTHER, "%s: vt1682_2025_lightgun1_x_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2025_lightgun1_x_w) +void vt_vt1682_state::vt1682_2025_lightgun1_x_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2025_lightgun1_x_w writing: %02x\n", machine().describe_context(), data); m_2025_lightgun1_x = data; @@ -2253,14 +2253,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2025_lightgun1_x_w) 0x01 - Light Gun 2 Y */ -READ8_MEMBER(vt_vt1682_state::vt1682_2026_lightgun2_y_r) +uint8_t vt_vt1682_state::vt1682_2026_lightgun2_y_r() { uint8_t ret = m_2026_lightgun2_y; LOGMASKED(LOG_OTHER, "%s: vt1682_2026_lightgun2_y_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2026_lightgun2_y_w) +void vt_vt1682_state::vt1682_2026_lightgun2_y_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2026_lightgun2_y_w writing: %02x\n", machine().describe_context(), data); m_2026_lightgun2_y = data; @@ -2280,14 +2280,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2026_lightgun2_y_w) 0x01 - Light Gun 2 X */ -READ8_MEMBER(vt_vt1682_state::vt1682_2027_lightgun2_x_r) +uint8_t vt_vt1682_state::vt1682_2027_lightgun2_x_r() { uint8_t ret = m_2027_lightgun2_x; LOGMASKED(LOG_OTHER, "%s: vt1682_2027_lightgun2_x_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2027_lightgun2_x_w) +void vt_vt1682_state::vt1682_2027_lightgun2_x_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2027_lightgun2_x_w writing: %02x\n", machine().describe_context(), data); m_2027_lightgun2_x = data; @@ -2307,14 +2307,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2027_lightgun2_x_w) 0x01 - CCIR Y */ -READ8_MEMBER(vt_vt1682_state::vt1682_2028_r) +uint8_t vt_vt1682_state::vt1682_2028_r() { uint8_t ret = m_2028; LOGMASKED(LOG_OTHER, "%s: vt1682_2028_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2028_w) +void vt_vt1682_state::vt1682_2028_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2028_w writing: %02x\n", machine().describe_context(), data); m_2028 = data; @@ -2333,14 +2333,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2028_w) 0x01 - CCIR X */ -READ8_MEMBER(vt_vt1682_state::vt1682_2029_r) +uint8_t vt_vt1682_state::vt1682_2029_r() { uint8_t ret = m_2029; LOGMASKED(LOG_OTHER, "%s: vt1682_2029_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2029_w) +void vt_vt1682_state::vt1682_2029_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2029_w writing: %02x\n", machine().describe_context(), data); m_2029 = data; @@ -2361,14 +2361,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2029_w) */ -READ8_MEMBER(vt_vt1682_state::vt1682_202a_r) +uint8_t vt_vt1682_state::vt1682_202a_r() { uint8_t ret = m_202a; LOGMASKED(LOG_OTHER, "%s: vt1682_202a_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_202a_w) +void vt_vt1682_state::vt1682_202a_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_202a_w writing: %02x\n", machine().describe_context(), data); m_202a = data; @@ -2389,14 +2389,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_202a_w) */ -READ8_MEMBER(vt_vt1682_state::vt1682_202b_r) +uint8_t vt_vt1682_state::vt1682_202b_r() { uint8_t ret = m_202b; LOGMASKED(LOG_OTHER, "%s: vt1682_202b_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_202b_w) +void vt_vt1682_state::vt1682_202b_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_202b_w writing: %02x\n", machine().describe_context(), data); m_202b = data; @@ -2420,14 +2420,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_202b_w) */ -READ8_MEMBER(vt_vt1682_state::vt1682_202e_r) +uint8_t vt_vt1682_state::vt1682_202e_r() { uint8_t ret = m_202e; LOGMASKED(LOG_OTHER, "%s: vt1682_202e_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_202e_w) +void vt_vt1682_state::vt1682_202e_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_202e_w writing: %02x\n", machine().describe_context(), data); m_202e = data; @@ -2450,14 +2450,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_202e_w) */ -READ8_MEMBER(vt_vt1682_state::vt1682_2030_r) +uint8_t vt_vt1682_state::vt1682_2030_r() { uint8_t ret = m_2030; LOGMASKED(LOG_OTHER, "%s: vt1682_2030_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2030_w) +void vt_vt1682_state::vt1682_2030_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2030_w writing: %02x\n", machine().describe_context(), data); m_2030 = data; @@ -2477,14 +2477,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2030_w) 0x01 - R DAC OUT:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2031_red_dac_r) +uint8_t vt_vt1682_state::vt1682_2031_red_dac_r() { uint8_t ret = m_2031_red_dac; LOGMASKED(LOG_OTHER, "%s: vt1682_2031_red_dac_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2031_red_dac_w) +void vt_vt1682_state::vt1682_2031_red_dac_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2031_red_dac_w writing: %02x\n", machine().describe_context(), data); m_2031_red_dac = data; @@ -2503,14 +2503,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2031_red_dac_w) 0x01 - G DAC OUT:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2032_green_dac_r) +uint8_t vt_vt1682_state::vt1682_2032_green_dac_r() { uint8_t ret = m_2032_green_dac; LOGMASKED(LOG_OTHER, "%s: vt1682_2032_green_dac_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2032_green_dac_w) +void vt_vt1682_state::vt1682_2032_green_dac_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2032_green_dac_w writing: %02x\n", machine().describe_context(), data); m_2032_green_dac = data; @@ -2529,14 +2529,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2032_green_dac_w) 0x01 - B DAC OUT:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2033_blue_dac_r) +uint8_t vt_vt1682_state::vt1682_2033_blue_dac_r() { uint8_t ret = m_2033_blue_dac; LOGMASKED(LOG_OTHER, "%s: vt1682_2033_blue_dac_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2033_blue_dac_w) +void vt_vt1682_state::vt1682_2033_blue_dac_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2033_blue_dac_w writing: %02x\n", machine().describe_context(), data); m_2033_blue_dac = data; @@ -2560,14 +2560,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2033_blue_dac_w) 0x01 - Program Bank 1 Register 3 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2100_prgbank1_r3_r) +uint8_t vt_vt1682_state::vt1682_2100_prgbank1_r3_r() { uint8_t ret = m_2100_prgbank1_r3; LOGMASKED(LOG_OTHER, "%s: vt1682_2100_prgbank1_r3_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2100_prgbank1_r3_w) +void vt_vt1682_state::vt1682_2100_prgbank1_r3_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2100_prgbank1_r3_w writing: %02x (4-bits)\n", machine().describe_context(), data); m_2100_prgbank1_r3 = data; @@ -2595,7 +2595,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2100_prgbank1_r3_w) */ -WRITE8_MEMBER(vt_vt1682_state::vt1682_2105_comr6_tvmodes_w) +void vt_vt1682_state::vt1682_2105_comr6_tvmodes_w(uint8_t data) { // COMR6 is used for banking LOGMASKED(LOG_OTHER, "%s: vt1682_2105_comr6_tvmodes_w writing: %02x\n", machine().describe_context(), data); @@ -2617,14 +2617,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2105_comr6_tvmodes_w) 0x01 - LCD ON (LCD display controller enable) */ -READ8_MEMBER(vt_vt1682_state::vt1682_2106_enable_regs_r) +uint8_t vt_vt1682_state::vt1682_2106_enable_regs_r() { uint8_t ret = m_2106_enable_reg; LOGMASKED(LOG_OTHER, "%s: vt1682_2106_enable_regs_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2106_enable_regs_w) +void vt_vt1682_state::vt1682_2106_enable_regs_w(uint8_t data) { // COMR6 is used for banking LOGMASKED(LOG_OTHER, "%s: vt1682_2106_enable_regs_w writing: %02x (scpurn:%1x scpuon:%1x spion:%1x uarton:%1x tvon:%1x lcdon:%1x)\n", machine().describe_context().c_str(), data, @@ -2657,14 +2657,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2106_enable_regs_w) 0x01 - Program Bank 0 Register 0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2107_prgbank0_r0_r) +uint8_t vt_vt1682_state::vt1682_2107_prgbank0_r0_r() { uint8_t ret = m_2107_prgbank0_r0; LOGMASKED(LOG_OTHER, "%s: vt1682_2107_prgbank0_r0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2107_prgbank0_r0_w) +void vt_vt1682_state::vt1682_2107_prgbank0_r0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2107_prgbank0_r0_w writing: %02x\n", machine().describe_context(), data); m_2107_prgbank0_r0 = data; @@ -2684,14 +2684,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2107_prgbank0_r0_w) 0x01 - Program Bank 0 Register 1 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2108_prgbank0_r1_r) +uint8_t vt_vt1682_state::vt1682_2108_prgbank0_r1_r() { uint8_t ret = m_2108_prgbank0_r1; LOGMASKED(LOG_OTHER, "%s: vt1682_2108_prgbank0_r1_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2108_prgbank0_r1_w) +void vt_vt1682_state::vt1682_2108_prgbank0_r1_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2108_prgbank0_r1_w writing: %02x\n", machine().describe_context(), data); m_2108_prgbank0_r1 = data; @@ -2713,14 +2713,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2108_prgbank0_r1_w) */ -READ8_MEMBER(vt_vt1682_state::vt1682_2109_prgbank0_r2_r) +uint8_t vt_vt1682_state::vt1682_2109_prgbank0_r2_r() { uint8_t ret = m_2109_prgbank0_r2; LOGMASKED(LOG_OTHER, "%s: vt1682_2109_prgbank0_r2_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2109_prgbank0_r2_w) +void vt_vt1682_state::vt1682_2109_prgbank0_r2_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2109_prgbank0_r2_w writing: %02x\n", machine().describe_context(), data); m_2109_prgbank0_r2 = data; @@ -2740,14 +2740,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2109_prgbank0_r2_w) 0x01 - Program Bank 0 Register 3 */ -READ8_MEMBER(vt_vt1682_state::vt1682_210a_prgbank0_r3_r) +uint8_t vt_vt1682_state::vt1682_210a_prgbank0_r3_r() { uint8_t ret = m_210a_prgbank0_r3; LOGMASKED(LOG_OTHER, "%s: vt1682_210a_prgbank0_r3_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_210a_prgbank0_r3_w) +void vt_vt1682_state::vt1682_210a_prgbank0_r3_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_210a_prgbank0_r3_w writing: %02x\n", machine().describe_context(), data); m_210a_prgbank0_r3 = data; @@ -2767,14 +2767,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_210a_prgbank0_r3_w) 0x01 - Program Bank 0 Select */ -READ8_MEMBER(vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_r) +uint8_t vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_r() { uint8_t ret = m_210b_misc_cs_prg0_bank_sel; LOGMASKED(LOG_OTHER, "%s: vt1682_210b_misc_cs_prg0_bank_sel_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_w) +void vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_w(uint8_t data) { // PQ2 Enable is also used for ROM banking along with Program Bank 0 select uint32_t clock = m_maincpu->clock(); @@ -2818,14 +2818,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_w) 0x01 - Program Bank 1 Register 2 */ -READ8_MEMBER(vt_vt1682_state::vt1682_210c_prgbank1_r2_r) +uint8_t vt_vt1682_state::vt1682_210c_prgbank1_r2_r() { uint8_t ret = m_210c_prgbank1_r2; LOGMASKED(LOG_OTHER, "%s: vt1682_210c_prgbank1_r2_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_210c_prgbank1_r2_w) +void vt_vt1682_state::vt1682_210c_prgbank1_r2_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_210c_prgbank1_r2_w writing: %02x (4-bits)\n", machine().describe_context(), data); m_210c_prgbank1_r2 = data; @@ -2862,14 +2862,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_210c_prgbank1_r2_w) 0x01 - Program Bank 1 Register 0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r4_r) +uint8_t vt_vt1682_state::vt1682_prgbank0_r4_r() { uint8_t ret = m_prgbank0_r4; LOGMASKED(LOG_OTHER, "%s: (2110) vt1682_prgbank0_r4_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r0_w) +void vt_vt1682_state::vt1682_prgbank1_r0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: (2110) vt1682_prgbank1_r0_w writing: %02x (4-bits)\n", machine().describe_context(), data); m_prgbank1_r0 = data; @@ -2900,7 +2900,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r0_w) 0x01 - Program Bank 1 Register 1 */ -READ8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r5_r) +uint8_t vt_vt1682_state::vt1682_prgbank0_r5_r() { uint8_t ret = m_prgbank0_r5; LOGMASKED(LOG_OTHER, "%s: (2111) vt1682_prgbank0_r5_r returning: %02x\n", machine().describe_context(), ret); @@ -2908,7 +2908,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r5_r) } -WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r1_w) +void vt_vt1682_state::vt1682_prgbank1_r1_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: (2111) vt1682_prgbank1_r1_w writing: %02x (4-bits)\n", machine().describe_context(), data); m_prgbank1_r1 = data; @@ -2940,7 +2940,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r1_w) 0x01 - Program Bank 0 Register 4 */ -READ8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r0_r) +uint8_t vt_vt1682_state::vt1682_prgbank1_r0_r() { uint8_t ret = m_prgbank1_r0; LOGMASKED(LOG_OTHER, "%s: (2112) vt1682_prgbank1_r0_r returning: %02x\n", machine().describe_context(), ret); @@ -2948,7 +2948,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r0_r) } -WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r4_w) +void vt_vt1682_state::vt1682_prgbank0_r4_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: (2112) vt1682_prgbank0_r4_w writing: %02x (8-bits)\n", machine().describe_context(), data); m_prgbank0_r4 = data; @@ -2980,14 +2980,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r4_w) 0x01 - Program Bank 0 Register 5 */ -READ8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r1_r) +uint8_t vt_vt1682_state::vt1682_prgbank1_r1_r() { uint8_t ret = m_prgbank1_r1; LOGMASKED(LOG_OTHER, "%s: (2113) vt1682_prgbank1_r1_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r5_w) +void vt_vt1682_state::vt1682_prgbank0_r5_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: (2113) vt1682_prgbank0_r5_w writing: %02x (8-bits)\n", machine().describe_context(), data); m_prgbank0_r5 = data; @@ -3070,14 +3070,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r5_w) 0x01 - Program Bank 1 Register 4 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_r) +uint8_t vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_r() { uint8_t ret = m_2118_prgbank1_r4_r5; LOGMASKED(LOG_OTHER, "%s: vt1682_2118_prgbank1_r4_r5_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_w) +void vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2118_prgbank1_r4_r5_w writing: %02x (2x 4-bits)\n", machine().describe_context(), data); m_2118_prgbank1_r4_r5 = data; @@ -3170,7 +3170,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_w) 0x01 - Clear_SCPU_IRQ */ -WRITE8_MEMBER(vt_vt1682_state::vt1682_211c_regs_ext2421_w) +void vt_vt1682_state::vt1682_211c_regs_ext2421_w(uint8_t data) { // EXT2421EN is used for ROM banking LOGMASKED(LOG_OTHER, "%s: vt1682_211c_regs_ext2421_w writing: %02x\n", machine().describe_context(), data); @@ -3296,14 +3296,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_211c_regs_ext2421_w) 0x01 - DMA DT ADDR:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_r) +uint8_t vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_r() { uint8_t ret = m_2122_dma_dt_addr_7_0; LOGMASKED(LOG_OTHER, "%s: vt1682_2122_dma_dt_addr_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_w) +void vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2122_dma_dt_addr_7_0_w writing: %02x\n", machine().describe_context(), data); m_2122_dma_dt_addr_7_0 = data; @@ -3323,14 +3323,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_w) 0x01 - DMA DT ADDR:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_r) +uint8_t vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_r() { uint8_t ret = m_2123_dma_dt_addr_15_8; LOGMASKED(LOG_OTHER, "%s: vt1682_2123_dma_dt_addr_15_8_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_w) +void vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2123_dma_dt_addr_15_8_w writing: %02x\n", machine().describe_context(), data); m_2123_dma_dt_addr_15_8 = data; @@ -3350,14 +3350,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_w) 0x01 - DMA SR ADDR:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_r) +uint8_t vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_r() { uint8_t ret = m_2124_dma_sr_addr_7_0; LOGMASKED(LOG_OTHER, "%s: vt1682_2124_dma_sr_addr_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_w) +void vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2124_dma_sr_addr_7_0_w writing: %02x\n", machine().describe_context(), data); m_2124_dma_sr_addr_7_0 = data; @@ -3377,14 +3377,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_w) 0x01 - DMA SR ADDR:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_r) +uint8_t vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_r() { uint8_t ret = m_2125_dma_sr_addr_15_8; LOGMASKED(LOG_OTHER, "%s: vt1682_2125_dma_sr_addr_15_8_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_w) +void vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2125_dma_sr_addr_15_8_w writing: %02x\n", machine().describe_context(), data); m_2125_dma_sr_addr_15_8 = data; @@ -3405,14 +3405,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_w) 0x01 - DMA SR BANK:15 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_r) +uint8_t vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_r() { uint8_t ret = m_2126_dma_sr_bank_addr_22_15; LOGMASKED(LOG_OTHER, "%s: vt1682_2126_dma_sr_bank_addr_22_15_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_w) +void vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2126_dma_sr_bank_addr_22_15_w writing: %02x\n", machine().describe_context(), data); m_2126_dma_sr_bank_addr_22_15 = data; @@ -3442,7 +3442,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_w) 0x01 - DMA Status */ -READ8_MEMBER(vt_vt1682_state::vt1682_2127_dma_status_r) +uint8_t vt_vt1682_state::vt1682_2127_dma_status_r() { uint8_t ret = 0x00; @@ -3523,7 +3523,7 @@ void vt_vt1682_state::do_dma_internal_to_internal(int data, bool is_video) -WRITE8_MEMBER(vt_vt1682_state::vt1682_2127_dma_size_trigger_w) +void vt_vt1682_state::vt1682_2127_dma_size_trigger_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2127_dma_size_trigger_w writing: %02x\n", machine().describe_context(), data); @@ -3612,14 +3612,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2127_dma_size_trigger_w) 0x01 - DMA SR BANK:23 */ -READ8_MEMBER(vt_vt1682_state::vt1682_2128_dma_sr_bank_addr_24_23_r) +uint8_t vt_vt1682_state::vt1682_2128_dma_sr_bank_addr_24_23_r() { uint8_t ret = m_2128_dma_sr_bank_addr_24_23; LOGMASKED(LOG_OTHER, "%s: vt1682_2128_dma_sr_bank_addr_24_23_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_2128_dma_sr_bank_addr_24_23_w) +void vt_vt1682_state::vt1682_2128_dma_sr_bank_addr_24_23_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_2128_dma_sr_bank_addr_24_23_w writing: %02x\n", machine().describe_context(), data); m_2128_dma_sr_bank_addr_24_23 = data & 0x03; @@ -3679,9 +3679,9 @@ void vt_vt1682_state::clock_joy2() { } -READ8_MEMBER(vt_vt1682_state::inteact_212a_send_joy_clock2_r) +uint8_t vt_vt1682_state::inteact_212a_send_joy_clock2_r() { - uint8_t ret = m_uio->inteact_212a_uio_a_direction_r(space,offset); + uint8_t ret = m_uio->inteact_212a_uio_a_direction_r(); clock_joy2(); return ret; } @@ -3723,14 +3723,14 @@ READ8_MEMBER(vt_vt1682_state::inteact_212a_send_joy_clock2_r) 0x01 - Pseudo Random Number Seed */ -READ8_MEMBER(vt_vt1682_state::vt1682_212c_prng_r) +uint8_t vt_vt1682_state::vt1682_212c_prng_r() { uint8_t ret = machine().rand(); LOGMASKED(LOG_OTHER, "%s: vt1682_212c_prng_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_212c_prng_seed_w) +void vt_vt1682_state::vt1682_212c_prng_seed_w(uint8_t data) { LOGMASKED(LOG_OTHER, "%s: vt1682_212c_prng_seed_w writing: %02x\n", machine().describe_context(), data); // don't know the algorithm @@ -3952,14 +3952,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_212c_prng_seed_w) actually 12 bits precision so only 15 to 4 are used */ -READ8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_r) +uint8_t vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_r() { uint8_t ret = m_soundcpu_2118_dacleft_7_0; //LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_2118_dacleft_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_w) +void vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_w(uint8_t data) { //LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_2118_dacleft_7_0_r writing: %02x\n", machine().describe_context(), data); m_soundcpu_2118_dacleft_7_0 = data; @@ -3978,14 +3978,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_w) 0x01 - Audio DAC Left:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_r) +uint8_t vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_r() { uint8_t ret = m_soundcpu_2119_dacleft_15_8; //LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_2119_dacleft_15_8_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_w) +void vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_w(uint8_t data) { //LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_2119_dacleft_15_8_r writing: %02x\n", machine().describe_context(), data); m_soundcpu_2119_dacleft_15_8 = data; @@ -4007,14 +4007,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_w) 0x01 - Audio DAC Right:0 */ -READ8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_r) +uint8_t vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_r() { uint8_t ret = m_soundcpu_211a_dacright_7_0; //LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211a_dacright_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_w) +void vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_w(uint8_t data) { //LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211a_dacright_7_0_r writing: %02x\n", machine().describe_context(), data); m_soundcpu_211a_dacright_7_0 = data; @@ -4033,14 +4033,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_w) 0x01 - Audio DAC Right:8 */ -READ8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_r) +uint8_t vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_r() { uint8_t ret = m_soundcpu_211b_dacright_15_8; //LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211b_dacright_15_8_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_w) +void vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_w(uint8_t data) { //LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211b_dacright_15_8_r writing: %02x\n", machine().describe_context(), data); m_soundcpu_211b_dacright_15_8 = data; @@ -4074,7 +4074,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_w) 0x01 - Clear_CPU_IRQ */ -WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211c_reg_irqctrl_w) +void vt_vt1682_state::vt1682_soundcpu_211c_reg_irqctrl_w(uint8_t data) { // EXT2421EN is used for ROM banking LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211c_reg_irqctrl_w writing: %02x\n", machine().describe_context(), data); @@ -5282,21 +5282,21 @@ Ext IRQ 0x0ffe - 0x0fff */ -READ8_MEMBER(vt_vt1682_state::soundcpu_irq_vector_hack_r) +uint8_t vt_vt1682_state::soundcpu_irq_vector_hack_r(offs_t offset) { // redirect to Timer IRQ! return m_sound_share[0x0ff8 + offset]; } -READ8_MEMBER(vt_vt1682_state::maincpu_irq_vector_hack_r) +uint8_t vt_vt1682_state::maincpu_irq_vector_hack_r(offs_t offset) { // redirect to Timer IRQ! - return rom_8000_to_ffff_r(space, (0xfff8 - 0x8000)+offset); + return rom_8000_to_ffff_r((0xfff8 - 0x8000)+offset); } // intg5410 writes a new program without resetting the CPU when selecting from the 'arcade' game main menu, this is problematic // it does appear to rewrite the vectors first, so maybe there is some hardware side-effect of this putting the CPU in reset state?? -WRITE8_MEMBER(vt_vt1682_state::vt1682_sound_reset_hack_w) +void vt_vt1682_state::vt1682_sound_reset_hack_w(offs_t offset, uint8_t data) { m_sound_share[0x0ff4 + offset] = data; m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); diff --git a/src/mame/drivers/vt240.cpp b/src/mame/drivers/vt240.cpp index 924dc90a65c..b8a29a08829 100644 --- a/src/mame/drivers/vt240.cpp +++ b/src/mame/drivers/vt240.cpp @@ -68,33 +68,33 @@ private: DECLARE_WRITE_LINE_MEMBER(tx_w); DECLARE_WRITE_LINE_MEMBER(t11_reset_w); DECLARE_READ_LINE_MEMBER(i8085_sid_r); - DECLARE_READ8_MEMBER(i8085_comm_r); - DECLARE_WRITE8_MEMBER(i8085_comm_w); - DECLARE_READ8_MEMBER(t11_comm_r); - DECLARE_WRITE8_MEMBER(t11_comm_w); - DECLARE_READ8_MEMBER(duart_r); - DECLARE_WRITE8_MEMBER(duart_w); + uint8_t i8085_comm_r(offs_t offset); + void i8085_comm_w(offs_t offset, uint8_t data); + uint8_t t11_comm_r(); + void t11_comm_w(uint8_t data); + uint8_t duart_r(offs_t offset); + void duart_w(offs_t offset, uint8_t data); void duartout_w(uint8_t data); - DECLARE_READ8_MEMBER(mem_map_cs_r); - DECLARE_WRITE8_MEMBER(mem_map_cs_w); - DECLARE_READ8_MEMBER(ctrl_r); - DECLARE_WRITE8_MEMBER(mem_map_sel_w); - DECLARE_READ8_MEMBER(char_buf_r); - DECLARE_WRITE8_MEMBER(char_buf_w); - DECLARE_WRITE8_MEMBER(patmult_w); - DECLARE_WRITE8_MEMBER(vpat_w); - DECLARE_READ16_MEMBER(vram_r); + uint8_t mem_map_cs_r(offs_t offset); + void mem_map_cs_w(offs_t offset, uint8_t data); + uint8_t ctrl_r(); + void mem_map_sel_w(uint8_t data); + uint8_t char_buf_r(); + void char_buf_w(uint8_t data); + void patmult_w(uint8_t data); + void vpat_w(uint8_t data); + uint16_t vram_r(offs_t offset); void vram_w(offs_t offset, uint16_t data); - DECLARE_READ8_MEMBER(vom_r); - DECLARE_WRITE8_MEMBER(vom_w); - DECLARE_READ8_MEMBER(nvr_store_r); - DECLARE_WRITE8_MEMBER(nvr_store_w); - DECLARE_WRITE8_MEMBER(mask_w); - DECLARE_WRITE8_MEMBER(reg0_w); - DECLARE_WRITE8_MEMBER(reg1_w); - DECLARE_WRITE8_MEMBER(lu_w); - DECLARE_WRITE8_MEMBER(hbscrl_w); - DECLARE_WRITE8_MEMBER(lbscrl_w); + uint8_t vom_r(offs_t offset); + void vom_w(offs_t offset, uint8_t data); + uint8_t nvr_store_r(); + void nvr_store_w(uint8_t data); + void mask_w(uint8_t data); + void reg0_w(uint8_t data); + void reg1_w(uint8_t data); + void lu_w(uint8_t data); + void hbscrl_w(uint8_t data); + void lbscrl_w(uint8_t data); uint16_t mem_r(offs_t offset, uint16_t mem_mask); void mem_w(offs_t offset, uint16_t data, uint16_t mem_mask); @@ -223,19 +223,19 @@ UPD7220_DISPLAY_PIXELS_MEMBER( vt240_state::hgdc_draw ) } } -READ8_MEMBER(vt240_state::t11_comm_r) +uint8_t vt240_state::t11_comm_r() { m_t11 = 1; m_i8085->set_input_line(I8085_RST65_LINE, CLEAR_LINE); return m_t11_out; } -WRITE8_MEMBER(vt240_state::t11_comm_w) +void vt240_state::t11_comm_w(uint8_t data) { m_i8085_out = data; } -READ8_MEMBER(vt240_state::i8085_comm_r) +uint8_t vt240_state::i8085_comm_r(offs_t offset) { switch(offset) { @@ -250,7 +250,7 @@ READ8_MEMBER(vt240_state::i8085_comm_r) return 0xff; } -WRITE8_MEMBER(vt240_state::i8085_comm_w) +void vt240_state::i8085_comm_w(offs_t offset, uint8_t data) { switch(offset) { @@ -267,14 +267,14 @@ WRITE8_MEMBER(vt240_state::i8085_comm_w) } } -READ8_MEMBER(vt240_state::duart_r) +uint8_t vt240_state::duart_r(offs_t offset) { if(!(offset & 1)) return m_duart->read(offset >> 1); return 0; } -WRITE8_MEMBER(vt240_state::duart_w) +void vt240_state::duart_w(offs_t offset, uint8_t data) { if(offset & 1) m_duart->write(offset >> 1, data); @@ -290,22 +290,22 @@ void vt240_state::duartout_w(uint8_t data) irq_encoder(10, BIT(data, 7) ? CLEAR_LINE : ASSERT_LINE); } -READ8_MEMBER(vt240_state::mem_map_cs_r) +uint8_t vt240_state::mem_map_cs_r(offs_t offset) { return ~m_mem_map[offset]; } -WRITE8_MEMBER(vt240_state::mem_map_cs_w) +void vt240_state::mem_map_cs_w(offs_t offset, uint8_t data) { m_mem_map[offset] = ~data; } -READ8_MEMBER(vt240_state::ctrl_r) +uint8_t vt240_state::ctrl_r() { return m_mem_map_sel | ((m_lb ? 0 : 1) << 3) | (m_i8085_rdy << 6) | (m_t11 << 7) | (1<<5); // no modem } -WRITE8_MEMBER(vt240_state::mem_map_sel_w) +void vt240_state::mem_map_sel_w(uint8_t data) { m_mem_map_sel = data & 1; } @@ -330,31 +330,31 @@ void vt240_state::mem_w(offs_t offset, uint16_t data, uint16_t mem_mask) } } -READ8_MEMBER(vt240_state::char_buf_r) +uint8_t vt240_state::char_buf_r() { m_char_idx = 0; return 0xff; } -WRITE8_MEMBER(vt240_state::char_buf_w) +void vt240_state::char_buf_w(uint8_t data) { m_char_buf[m_char_idx++] = bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7); m_char_idx &= 0xf; } -WRITE8_MEMBER(vt240_state::patmult_w) +void vt240_state::patmult_w(uint8_t data) { m_patmult = data & 0xf; } -WRITE8_MEMBER(vt240_state::vpat_w) +void vt240_state::vpat_w(uint8_t data) { m_vpat = data; m_patcnt = m_patmult; m_patidx = 7; } -READ8_MEMBER(vt240_state::vom_r) +uint8_t vt240_state::vom_r(offs_t offset) { if(!BIT(m_reg0, 2)) return m_vom[offset]; @@ -365,7 +365,7 @@ READ8_MEMBER(vt240_state::vom_r) return m_vom[((m_reg0 & 3) << 2) + 3]; } -WRITE8_MEMBER(vt240_state::vom_w) +void vt240_state::vom_w(offs_t offset, uint8_t data) { if(!BIT(m_reg0, 2)) { @@ -376,7 +376,7 @@ WRITE8_MEMBER(vt240_state::vom_w) } } -READ16_MEMBER(vt240_state::vram_r) +uint16_t vt240_state::vram_r(offs_t offset) { if(!BIT(m_reg0, 3) || machine().side_effects_disabled()) { @@ -492,45 +492,45 @@ void vt240_state::vram_w(offs_t offset, uint16_t data) video_ram[offset] = data; } -WRITE8_MEMBER(vt240_state::mask_w) +void vt240_state::mask_w(uint8_t data) { m_mask = bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7); } -READ8_MEMBER(vt240_state::nvr_store_r) +uint8_t vt240_state::nvr_store_r() { m_nvram->store(ASSERT_LINE); m_nvram->store(CLEAR_LINE); return 0; } -WRITE8_MEMBER(vt240_state::nvr_store_w) +void vt240_state::nvr_store_w(uint8_t data) { m_nvram->store(ASSERT_LINE); m_nvram->store(CLEAR_LINE); } -WRITE8_MEMBER(vt240_state::reg0_w) +void vt240_state::reg0_w(uint8_t data) { m_reg0 = data; } -WRITE8_MEMBER(vt240_state::reg1_w) +void vt240_state::reg1_w(uint8_t data) { m_reg1 = data; } -WRITE8_MEMBER(vt240_state::lu_w) +void vt240_state::lu_w(uint8_t data) { m_lu = data; } -WRITE8_MEMBER(vt240_state::lbscrl_w) +void vt240_state::lbscrl_w(uint8_t data) { m_scrl = (m_scrl & 0xff00) | data; } -WRITE8_MEMBER(vt240_state::hbscrl_w) +void vt240_state::hbscrl_w(uint8_t data) { m_scrl = (m_scrl & 0xff) | ((data & 0x3f) << 8); } diff --git a/src/mame/drivers/vt520.cpp b/src/mame/drivers/vt520.cpp index 5d0d853938e..ae03e19ff5b 100644 --- a/src/mame/drivers/vt520.cpp +++ b/src/mame/drivers/vt520.cpp @@ -29,7 +29,7 @@ public: void vt420(machine_config &config); private: - DECLARE_READ8_MEMBER(vt520_some_r); + uint8_t vt520_some_r(); virtual void machine_reset() override; virtual void video_start() override; uint32_t screen_update_vt520(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -51,7 +51,7 @@ void vt520_state::vt520_mem(address_map &map) there is 43.320MHz xtal near by */ -READ8_MEMBER( vt520_state::vt520_some_r ) +uint8_t vt520_state::vt520_some_r() { //bit 5 0 //bit 6 1 diff --git a/src/mame/drivers/vta2000.cpp b/src/mame/drivers/vta2000.cpp index 4c5fa46565e..8850e90af1a 100644 --- a/src/mame/drivers/vta2000.cpp +++ b/src/mame/drivers/vta2000.cpp @@ -43,7 +43,7 @@ public: void vta2000(machine_config &config); private: - DECLARE_WRITE8_MEMBER(output_00); + void output_00(uint8_t data); DECLARE_WRITE_LINE_MEMBER(speaker_w); uint32_t screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -59,7 +59,7 @@ private: required_region_ptr<u8> m_p_chargen; }; -WRITE8_MEMBER(vta2000_state::output_00) +void vta2000_state::output_00(uint8_t data) { m_mainpit->write_gate0(BIT(data, 4)); } diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp index 212273322ea..d9e1f6226b1 100644 --- a/src/mame/drivers/vtech1.cpp +++ b/src/mame/drivers/vtech1.cpp @@ -85,11 +85,11 @@ public: void init_vtech1h(); private: - DECLARE_READ8_MEMBER(vtech1_lightpen_r); - DECLARE_READ8_MEMBER(vtech1_keyboard_r); - DECLARE_WRITE8_MEMBER(vtech1_latch_w); + uint8_t vtech1_lightpen_r(offs_t offset); + uint8_t vtech1_keyboard_r(offs_t offset); + void vtech1_latch_w(uint8_t data); - DECLARE_WRITE8_MEMBER(vtech1_video_bank_w); + void vtech1_video_bank_w(uint8_t data); uint8_t mc6847_videoram_r(offs_t offset); DECLARE_SNAPSHOT_LOAD_MEMBER(snapshot_cb); @@ -191,13 +191,13 @@ SNAPSHOT_LOAD_MEMBER(vtech1_state::snapshot_cb) INPUTS ***************************************************************************/ -READ8_MEMBER( vtech1_state::vtech1_lightpen_r ) +uint8_t vtech1_state::vtech1_lightpen_r(offs_t offset) { logerror("vtech1_lightpen_r(%d)\n", offset); return 0xff; } -READ8_MEMBER( vtech1_state::vtech1_keyboard_r ) +uint8_t vtech1_state::vtech1_keyboard_r(offs_t offset) { uint8_t result = 0x3f; @@ -225,7 +225,7 @@ READ8_MEMBER( vtech1_state::vtech1_keyboard_r ) I/O LATCH ***************************************************************************/ -WRITE8_MEMBER( vtech1_state::vtech1_latch_w ) +void vtech1_state::vtech1_latch_w(uint8_t data) { if (LOG_VTECH1_LATCH) logerror("vtech1_latch_w $%02X\n", data); @@ -253,7 +253,7 @@ WRITE8_MEMBER( vtech1_state::vtech1_latch_w ) MEMORY BANKING ***************************************************************************/ -WRITE8_MEMBER( vtech1_state::vtech1_video_bank_w ) +void vtech1_state::vtech1_video_bank_w(uint8_t data) { membank("bank4")->set_entry(data & 0x03); } diff --git a/src/mame/drivers/wacky_gator.cpp b/src/mame/drivers/wacky_gator.cpp index ce819679c9e..578a009b8b6 100644 --- a/src/mame/drivers/wacky_gator.cpp +++ b/src/mame/drivers/wacky_gator.cpp @@ -55,7 +55,7 @@ private: virtual void machine_reset() override; DECLARE_WRITE_LINE_MEMBER(adpcm_int); - DECLARE_WRITE8_MEMBER(sample_ctrl_w); + void sample_ctrl_w(uint8_t data); void alligators_ctrl1_w(uint8_t data); void alligators_ctrl2_w(uint8_t data); @@ -69,8 +69,8 @@ private: void pmm8713_ck(int i, int state); template <unsigned N> DECLARE_WRITE_LINE_MEMBER(alligator_ck) { pmm8713_ck(N, state); } - DECLARE_WRITE8_MEMBER(irq_ack_w) { m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); } - DECLARE_WRITE8_MEMBER(firq_ack_w) { m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); } + void irq_ack_w(uint8_t data) { m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); } + void firq_ack_w(uint8_t data) { m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); } TIMER_DEVICE_CALLBACK_MEMBER(nmi_timer) { m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } @@ -109,7 +109,7 @@ void wackygtr_state::status_lamps_w(uint8_t data) m_ticket->motor_w(BIT(data, 7)); } -WRITE8_MEMBER(wackygtr_state::sample_ctrl_w) +void wackygtr_state::sample_ctrl_w(uint8_t data) { /* --xx xxxx sample index diff --git a/src/mame/drivers/wallc.cpp b/src/mame/drivers/wallc.cpp index b2b98ca0d59..f0304ee9c67 100644 --- a/src/mame/drivers/wallc.cpp +++ b/src/mame/drivers/wallc.cpp @@ -96,11 +96,11 @@ private: bool m_bookkeeping_mode; - DECLARE_WRITE8_MEMBER(videoram_w); - DECLARE_WRITE8_MEMBER(wallc_coin_counter_w); - DECLARE_WRITE8_MEMBER(unkitpkr_out0_w); - DECLARE_WRITE8_MEMBER(unkitpkr_out1_w); - DECLARE_WRITE8_MEMBER(unkitpkr_out2_w); + void videoram_w(offs_t offset, uint8_t data); + void wallc_coin_counter_w(uint8_t data); + void unkitpkr_out0_w(uint8_t data); + void unkitpkr_out1_w(uint8_t data); + void unkitpkr_out2_w(uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info_unkitpkr); @@ -214,7 +214,7 @@ void wallc_state::unkitpkr_palette(palette_device &palette) const } } -WRITE8_MEMBER(wallc_state::videoram_w) +void wallc_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); @@ -263,22 +263,22 @@ uint32_t wallc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, } -WRITE8_MEMBER(wallc_state::wallc_coin_counter_w) +void wallc_state::wallc_coin_counter_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, data & 2); } -WRITE8_MEMBER(wallc_state::unkitpkr_out0_w) +void wallc_state::unkitpkr_out0_w(uint8_t data) { } -WRITE8_MEMBER(wallc_state::unkitpkr_out1_w) +void wallc_state::unkitpkr_out1_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, BIT(data, 4)); } -WRITE8_MEMBER(wallc_state::unkitpkr_out2_w) +void wallc_state::unkitpkr_out2_w(uint8_t data) { if (m_bookkeeping_mode != BIT(data, 0)) { diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp index 5c04a0b4299..c8a02e3554e 100644 --- a/src/mame/drivers/wangpc.cpp +++ b/src/mame/drivers/wangpc.cpp @@ -122,45 +122,45 @@ private: void update_fdc_drq(); void update_fdc_tc(); - DECLARE_WRITE8_MEMBER( fdc_ctrl_w ); - DECLARE_READ8_MEMBER( deselect_drive1_r ); - DECLARE_WRITE8_MEMBER( deselect_drive1_w ); - DECLARE_READ8_MEMBER( select_drive1_r ); - DECLARE_WRITE8_MEMBER( select_drive1_w ); - DECLARE_READ8_MEMBER( deselect_drive2_r ); - DECLARE_WRITE8_MEMBER( deselect_drive2_w ); - DECLARE_READ8_MEMBER( select_drive2_r ); - DECLARE_WRITE8_MEMBER( select_drive2_w ); - DECLARE_READ8_MEMBER( motor1_off_r ); - DECLARE_WRITE8_MEMBER( motor1_off_w ); - DECLARE_READ8_MEMBER( motor1_on_r ); - DECLARE_WRITE8_MEMBER( motor1_on_w ); - DECLARE_READ8_MEMBER( motor2_off_r ); - DECLARE_WRITE8_MEMBER( motor2_off_w ); - DECLARE_READ8_MEMBER( motor2_on_r ); - DECLARE_WRITE8_MEMBER( motor2_on_w ); - DECLARE_READ8_MEMBER( fdc_reset_r ); - DECLARE_WRITE8_MEMBER( fdc_reset_w ); - DECLARE_READ8_MEMBER( fdc_tc_r ); - DECLARE_WRITE8_MEMBER( fdc_tc_w ); - DECLARE_WRITE8_MEMBER( dma_page_w ); - DECLARE_READ8_MEMBER( status_r ); - DECLARE_WRITE8_MEMBER( timer0_irq_clr_w ); - DECLARE_READ8_MEMBER( timer2_irq_clr_r ); - DECLARE_WRITE8_MEMBER( nmi_mask_w ); - DECLARE_READ8_MEMBER( led_on_r ); - DECLARE_WRITE8_MEMBER( fpu_mask_w ); - DECLARE_READ8_MEMBER( dma_eop_clr_r ); - DECLARE_WRITE8_MEMBER( uart_tbre_clr_w ); - DECLARE_READ8_MEMBER( uart_r ); - DECLARE_WRITE8_MEMBER( uart_w ); - DECLARE_READ8_MEMBER( centronics_r ); - DECLARE_WRITE8_MEMBER( centronics_w ); - DECLARE_READ8_MEMBER( busy_clr_r ); - DECLARE_WRITE8_MEMBER( acknlg_clr_w ); - DECLARE_READ8_MEMBER( led_off_r ); - DECLARE_WRITE8_MEMBER( parity_nmi_clr_w ); - DECLARE_READ8_MEMBER( option_id_r ); + void fdc_ctrl_w(uint8_t data); + uint8_t deselect_drive1_r(); + void deselect_drive1_w(uint8_t data); + uint8_t select_drive1_r(); + void select_drive1_w(uint8_t data); + uint8_t deselect_drive2_r(); + void deselect_drive2_w(uint8_t data); + uint8_t select_drive2_r(); + void select_drive2_w(uint8_t data); + uint8_t motor1_off_r(); + void motor1_off_w(uint8_t data); + uint8_t motor1_on_r(); + void motor1_on_w(uint8_t data); + uint8_t motor2_off_r(); + void motor2_off_w(uint8_t data); + uint8_t motor2_on_r(); + void motor2_on_w(uint8_t data); + uint8_t fdc_reset_r(); + void fdc_reset_w(uint8_t data); + uint8_t fdc_tc_r(); + void fdc_tc_w(uint8_t data); + void dma_page_w(offs_t offset, uint8_t data); + uint8_t status_r(); + void timer0_irq_clr_w(uint8_t data); + uint8_t timer2_irq_clr_r(); + void nmi_mask_w(uint8_t data); + uint8_t led_on_r(); + void fpu_mask_w(uint8_t data); + uint8_t dma_eop_clr_r(); + void uart_tbre_clr_w(uint8_t data); + uint8_t uart_r(); + void uart_w(uint8_t data); + uint8_t centronics_r(); + void centronics_w(uint8_t data); + uint8_t busy_clr_r(); + void acknlg_clr_w(uint8_t data); + uint8_t led_off_r(); + void parity_nmi_clr_w(uint8_t data); + uint8_t option_id_r(); DECLARE_WRITE_LINE_MEMBER( hrq_w ); DECLARE_WRITE_LINE_MEMBER( eop_w ); @@ -250,7 +250,7 @@ void wangpc_state::select_drive() m_fdc->set_floppy(floppy); } -WRITE8_MEMBER( wangpc_state::fdc_ctrl_w ) +void wangpc_state::fdc_ctrl_w(uint8_t data) { /* @@ -284,7 +284,7 @@ WRITE8_MEMBER( wangpc_state::fdc_ctrl_w ) } -READ8_MEMBER( wangpc_state::deselect_drive1_r ) +uint8_t wangpc_state::deselect_drive1_r() { m_ds1 = false; select_drive(); @@ -292,12 +292,12 @@ READ8_MEMBER( wangpc_state::deselect_drive1_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::deselect_drive1_w ) +void wangpc_state::deselect_drive1_w(uint8_t data) { - deselect_drive1_r(space, offset); + deselect_drive1_r(); } -READ8_MEMBER( wangpc_state::select_drive1_r ) +uint8_t wangpc_state::select_drive1_r() { m_ds1 = true; select_drive(); @@ -305,12 +305,12 @@ READ8_MEMBER( wangpc_state::select_drive1_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::select_drive1_w ) +void wangpc_state::select_drive1_w(uint8_t data) { - select_drive1_r(space, offset); + select_drive1_r(); } -READ8_MEMBER( wangpc_state::deselect_drive2_r ) +uint8_t wangpc_state::deselect_drive2_r() { m_ds2 = false; select_drive(); @@ -318,12 +318,12 @@ READ8_MEMBER( wangpc_state::deselect_drive2_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::deselect_drive2_w ) +void wangpc_state::deselect_drive2_w(uint8_t data) { - deselect_drive2_r(space, offset); + deselect_drive2_r(); } -READ8_MEMBER( wangpc_state::select_drive2_r ) +uint8_t wangpc_state::select_drive2_r() { m_ds2 = true; select_drive(); @@ -331,12 +331,12 @@ READ8_MEMBER( wangpc_state::select_drive2_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::select_drive2_w ) +void wangpc_state::select_drive2_w(uint8_t data) { - select_drive2_r(space, offset); + select_drive2_r(); } -READ8_MEMBER( wangpc_state::motor1_off_r ) +uint8_t wangpc_state::motor1_off_r() { if (LOG) logerror("%s: Drive 1 motor OFF\n", machine().describe_context()); @@ -345,12 +345,12 @@ READ8_MEMBER( wangpc_state::motor1_off_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::motor1_off_w ) +void wangpc_state::motor1_off_w(uint8_t data) { - motor1_off_r(space, offset); + motor1_off_r(); } -READ8_MEMBER( wangpc_state::motor1_on_r ) +uint8_t wangpc_state::motor1_on_r() { if (LOG) logerror("%s: Drive 1 motor ON\n", machine().describe_context()); @@ -359,12 +359,12 @@ READ8_MEMBER( wangpc_state::motor1_on_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::motor1_on_w ) +void wangpc_state::motor1_on_w(uint8_t data) { - motor1_on_r(space, offset); + motor1_on_r(); } -READ8_MEMBER( wangpc_state::motor2_off_r ) +uint8_t wangpc_state::motor2_off_r() { if (LOG) logerror("%s: Drive 2 motor OFF\n", machine().describe_context()); @@ -373,12 +373,12 @@ READ8_MEMBER( wangpc_state::motor2_off_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::motor2_off_w ) +void wangpc_state::motor2_off_w(uint8_t data) { - motor2_off_r(space, offset); + motor2_off_r(); } -READ8_MEMBER( wangpc_state::motor2_on_r ) +uint8_t wangpc_state::motor2_on_r() { if (LOG) logerror("%s: Drive 2 motor ON\n", machine().describe_context()); @@ -387,12 +387,12 @@ READ8_MEMBER( wangpc_state::motor2_on_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::motor2_on_w ) +void wangpc_state::motor2_on_w(uint8_t data) { - motor2_on_r(space, offset); + motor2_on_r(); } -READ8_MEMBER( wangpc_state::fdc_reset_r ) +uint8_t wangpc_state::fdc_reset_r() { if (LOG) logerror("%s: FDC reset\n", machine().describe_context()); @@ -401,12 +401,12 @@ READ8_MEMBER( wangpc_state::fdc_reset_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::fdc_reset_w ) +void wangpc_state::fdc_reset_w(uint8_t data) { - fdc_reset_r(space, offset); + fdc_reset_r(); } -READ8_MEMBER( wangpc_state::fdc_tc_r ) +uint8_t wangpc_state::fdc_tc_r() { if (LOG) logerror("%s: FDC TC\n", machine().describe_context()); @@ -416,9 +416,9 @@ READ8_MEMBER( wangpc_state::fdc_tc_r ) return 0xff; } -WRITE8_MEMBER( wangpc_state::fdc_tc_w ) +void wangpc_state::fdc_tc_w(uint8_t data) { - fdc_tc_r(space, offset); + fdc_tc_r(); } @@ -426,7 +426,7 @@ WRITE8_MEMBER( wangpc_state::fdc_tc_w ) // dma_page_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::dma_page_w ) +void wangpc_state::dma_page_w(offs_t offset, uint8_t data) { if (LOG) logerror("%s: DMA page %u: %06x\n", machine().describe_context(), offset + 1, (data & 0x0f) << 16); @@ -438,7 +438,7 @@ WRITE8_MEMBER( wangpc_state::dma_page_w ) // status_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::status_r ) +uint8_t wangpc_state::status_r() { /* @@ -472,7 +472,7 @@ READ8_MEMBER( wangpc_state::status_r ) // timer0_int_clr_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::timer0_irq_clr_w ) +void wangpc_state::timer0_irq_clr_w(uint8_t data) { //if (LOG) logerror("%s: Timer 0 IRQ clear\n", machine().describe_context()); @@ -484,7 +484,7 @@ WRITE8_MEMBER( wangpc_state::timer0_irq_clr_w ) // timer2_irq_clr_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::timer2_irq_clr_r ) +uint8_t wangpc_state::timer2_irq_clr_r() { //if (LOG) logerror("%s: Timer 2 IRQ clear\n", machine().describe_context()); @@ -499,7 +499,7 @@ READ8_MEMBER( wangpc_state::timer2_irq_clr_r ) // nmi_mask_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::nmi_mask_w ) +void wangpc_state::nmi_mask_w(uint8_t data) { if (LOG) logerror("%s: NMI mask %02x\n", machine().describe_context(), data); } @@ -509,7 +509,7 @@ WRITE8_MEMBER( wangpc_state::nmi_mask_w ) // led_on_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::led_on_r ) +uint8_t wangpc_state::led_on_r() { if (LOG) logerror("%s: Diagnostic LED on\n", machine().describe_context()); @@ -523,7 +523,7 @@ READ8_MEMBER( wangpc_state::led_on_r ) // fpu_mask_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::fpu_mask_w ) +void wangpc_state::fpu_mask_w(uint8_t data) { if (LOG) logerror("%s: FPU mask %02x\n", machine().describe_context(), data); } @@ -533,7 +533,7 @@ WRITE8_MEMBER( wangpc_state::fpu_mask_w ) // dma_eop_clr_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::dma_eop_clr_r ) +uint8_t wangpc_state::dma_eop_clr_r() { if (LOG) logerror("%s: EOP clear\n", machine().describe_context()); @@ -549,7 +549,7 @@ READ8_MEMBER( wangpc_state::dma_eop_clr_r ) // uart_tbre_clr_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::uart_tbre_clr_w ) +void wangpc_state::uart_tbre_clr_w(uint8_t data) { if (LOG) logerror("%s: TBRE clear\n", machine().describe_context()); @@ -563,7 +563,7 @@ WRITE8_MEMBER( wangpc_state::uart_tbre_clr_w ) // uart_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::uart_r ) +uint8_t wangpc_state::uart_r() { m_uart_dr = 0; @@ -581,7 +581,7 @@ READ8_MEMBER( wangpc_state::uart_r ) // uart_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::uart_w ) +void wangpc_state::uart_w(uint8_t data) { if (LOG) logerror("%s: UART write %02x\n", machine().describe_context(), data); @@ -616,7 +616,7 @@ WRITE8_MEMBER( wangpc_state::uart_w ) // centronics_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::centronics_r ) +uint8_t wangpc_state::centronics_r() { m_dav = 1; check_level1_interrupts(); @@ -629,7 +629,7 @@ READ8_MEMBER( wangpc_state::centronics_r ) // centronics_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::centronics_w ) +void wangpc_state::centronics_w(uint8_t data) { m_centronics_ack = 1; check_level1_interrupts(); @@ -645,7 +645,7 @@ WRITE8_MEMBER( wangpc_state::centronics_w ) // busy_clr_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::busy_clr_r ) +uint8_t wangpc_state::busy_clr_r() { if (LOG) logerror("%s: BUSY clear\n", machine().describe_context()); @@ -660,7 +660,7 @@ READ8_MEMBER( wangpc_state::busy_clr_r ) // acknlg_clr_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::acknlg_clr_w ) +void wangpc_state::acknlg_clr_w(uint8_t data) { if (LOG) logerror("%s: ACKNLG clear\n", machine().describe_context()); @@ -673,7 +673,7 @@ WRITE8_MEMBER( wangpc_state::acknlg_clr_w ) // led_off_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::led_off_r ) +uint8_t wangpc_state::led_off_r() { if (LOG) logerror("%s: Diagnostic LED off\n", machine().describe_context()); @@ -687,7 +687,7 @@ READ8_MEMBER( wangpc_state::led_off_r ) // parity_nmi_clr_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_state::parity_nmi_clr_w ) +void wangpc_state::parity_nmi_clr_w(uint8_t data) { if (LOG) logerror("%s: Parity NMI clear\n", machine().describe_context()); } @@ -697,7 +697,7 @@ WRITE8_MEMBER( wangpc_state::parity_nmi_clr_w ) // option_id_r - //------------------------------------------------- -READ8_MEMBER( wangpc_state::option_id_r ) +uint8_t wangpc_state::option_id_r() { /* diff --git a/src/mame/drivers/wardner.cpp b/src/mame/drivers/wardner.cpp index 95efd91bf72..bc94e9abfa1 100644 --- a/src/mame/drivers/wardner.cpp +++ b/src/mame/drivers/wardner.cpp @@ -158,7 +158,7 @@ protected: private: required_device<address_map_bank_device> m_membank; - DECLARE_WRITE8_MEMBER(wardner_bank_w); + void wardner_bank_w(uint8_t data); void dsp_io_map(address_map &map); void dsp_program_map(address_map &map); @@ -172,7 +172,7 @@ private: /***************************** Z80 Main Memory Map **************************/ -WRITE8_MEMBER(wardner_state::wardner_bank_w) +void wardner_state::wardner_bank_w(uint8_t data) { m_membank->set_bank(data & 7); } diff --git a/src/mame/drivers/warpsped.cpp b/src/mame/drivers/warpsped.cpp index 36416f9d642..53c6360c58d 100644 --- a/src/mame/drivers/warpsped.cpp +++ b/src/mame/drivers/warpsped.cpp @@ -115,8 +115,8 @@ private: tilemap_t *m_starfield_tilemap; uint8_t m_regs[0x28]; - DECLARE_WRITE8_MEMBER(hardware_w); - DECLARE_WRITE8_MEMBER(vidram_w); + void hardware_w(offs_t offset, uint8_t data); + void vidram_w(offs_t offset, uint8_t data); TILE_GET_INFO_MEMBER(get_text_tile_info); TILE_GET_INFO_MEMBER(get_starfield_tile_info); @@ -130,7 +130,7 @@ private: void warpspeed_map(address_map &map); }; -WRITE8_MEMBER(warpspeed_state::hardware_w) +void warpspeed_state::hardware_w(offs_t offset, uint8_t data) { m_regs[offset] = data; } @@ -151,7 +151,7 @@ TILE_GET_INFO_MEMBER(warpspeed_state::get_starfield_tile_info) tileinfo.set(1, code, 0, 0); } -WRITE8_MEMBER(warpspeed_state::vidram_w) +void warpspeed_state::vidram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_text_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp index aaafc6179fa..0a462c9f937 100644 --- a/src/mame/drivers/wheelfir.cpp +++ b/src/mame/drivers/wheelfir.cpp @@ -248,13 +248,11 @@ private: } return 0; } - DECLARE_WRITE16_MEMBER(wheelfir_scanline_cnt_w); - DECLARE_WRITE16_MEMBER(wheelfir_blit_w); - DECLARE_WRITE16_MEMBER(wheelfir_7c0000_w); - DECLARE_READ16_MEMBER(wheelfir_7c0000_r); - DECLARE_WRITE16_MEMBER(wheelfir_snd_w); - DECLARE_READ16_MEMBER(wheelfir_snd_r); - DECLARE_WRITE16_MEMBER(coin_cnt_w); + void wheelfir_scanline_cnt_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void wheelfir_blit_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void wheelfir_7c0000_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t wheelfir_7c0000_r(offs_t offset, uint16_t mem_mask = ~0); + void coin_cnt_w(uint16_t data); DECLARE_WRITE_LINE_MEMBER(adc_eoc_w); uint32_t screen_update_wheelfir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(screen_vblank_wheelfir); @@ -266,13 +264,13 @@ private: }; -WRITE16_MEMBER(wheelfir_state::wheelfir_scanline_cnt_w) +void wheelfir_state::wheelfir_scanline_cnt_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_scanline_cnt); } -WRITE16_MEMBER(wheelfir_state::wheelfir_blit_w) +void wheelfir_state::wheelfir_blit_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_blitter_data[offset]); @@ -535,7 +533,7 @@ WRITE_LINE_MEMBER(wheelfir_state::screen_vblank_wheelfir) } -WRITE16_MEMBER(wheelfir_state::wheelfir_7c0000_w) +void wheelfir_state::wheelfir_7c0000_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_8_15) { @@ -554,7 +552,7 @@ WRITE16_MEMBER(wheelfir_state::wheelfir_7c0000_w) } } -READ16_MEMBER(wheelfir_state::wheelfir_7c0000_r) +uint16_t wheelfir_state::wheelfir_7c0000_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0; @@ -573,7 +571,7 @@ READ16_MEMBER(wheelfir_state::wheelfir_7c0000_r) return data; } -WRITE16_MEMBER(wheelfir_state::coin_cnt_w) +void wheelfir_state::coin_cnt_w(uint16_t data) { /* bits 0/1 coin counters */ machine().bookkeeping().coin_counter_w(0, data & 0x01); diff --git a/src/mame/drivers/whitestar.cpp b/src/mame/drivers/whitestar.cpp index 22e687d854c..948093f1b8d 100644 --- a/src/mame/drivers/whitestar.cpp +++ b/src/mame/drivers/whitestar.cpp @@ -31,11 +31,11 @@ private: optional_device<decobsmt_device> m_decobsmt; required_device<decodmd_type2_device> m_decodmd; - DECLARE_WRITE8_MEMBER(bank_w); - DECLARE_WRITE8_MEMBER(dmddata_w); + void bank_w(uint8_t data); + void dmddata_w(uint8_t data); - DECLARE_READ8_MEMBER(switch_r); - DECLARE_WRITE8_MEMBER(switch_w); + uint8_t switch_r(); + void switch_w(uint8_t data); virtual void machine_start() override; INTERRUPT_GEN_MEMBER(whitestar_firq_interrupt); @@ -95,22 +95,22 @@ void whitestar_state::whitestarm_map(address_map &map) // TODO: sound writes } -READ8_MEMBER(whitestar_state::switch_r) +uint8_t whitestar_state::switch_r() { return 0; } -WRITE8_MEMBER(whitestar_state::switch_w) +void whitestar_state::switch_w(uint8_t data) { } -WRITE8_MEMBER(whitestar_state::bank_w) +void whitestar_state::bank_w(uint8_t data) { membank("bank1")->set_entry(data & 0x1f); } // Whitestar automatically pulses the DMD IRQ line? DE hardware doesn't do that... -WRITE8_MEMBER(whitestar_state::dmddata_w) +void whitestar_state::dmddata_w(uint8_t data) { m_decodmd->data_w(data); m_decodmd->ctrl_w(1); diff --git a/src/mame/drivers/wicat.cpp b/src/mame/drivers/wicat.cpp index eb39e74398c..7c273fc5b04 100644 --- a/src/mame/drivers/wicat.cpp +++ b/src/mame/drivers/wicat.cpp @@ -65,30 +65,30 @@ public: void wicat(machine_config &config); private: - DECLARE_READ16_MEMBER(invalid_r); - DECLARE_WRITE16_MEMBER(invalid_w); - DECLARE_READ16_MEMBER(memmap_r); - DECLARE_WRITE16_MEMBER(memmap_w); + uint16_t invalid_r(offs_t offset); + void invalid_w(offs_t offset, uint16_t data); + uint16_t memmap_r(); + void memmap_w(uint16_t data); DECLARE_WRITE_LINE_MEMBER(adir_w); DECLARE_WRITE_LINE_MEMBER(bdir_w); void via_a_w(uint8_t data); void via_b_w(uint8_t data); - DECLARE_WRITE8_MEMBER(videosram_store_w); - DECLARE_WRITE8_MEMBER(videosram_recall_w); - DECLARE_READ8_MEMBER(video_timer_r); - DECLARE_WRITE8_MEMBER(video_timer_w); + void videosram_store_w(uint8_t data); + void videosram_recall_w(uint8_t data); + uint8_t video_timer_r(offs_t offset); + void video_timer_w(offs_t offset, uint8_t data); uint8_t vram_r(offs_t offset); void vram_w(offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER(video_status_r); + uint8_t video_status_r(); DECLARE_WRITE_LINE_MEMBER(dma_hrq_w); DECLARE_WRITE_LINE_MEMBER(crtc_irq_w); DECLARE_WRITE_LINE_MEMBER(crtc_irq_clear_w); - DECLARE_READ8_MEMBER(hdc_r); - DECLARE_WRITE8_MEMBER(hdc_w); - DECLARE_READ8_MEMBER(fdc_r); - DECLARE_WRITE8_MEMBER(fdc_w); - DECLARE_READ16_MEMBER(via_r); - DECLARE_WRITE16_MEMBER(via_w); + uint8_t hdc_r(offs_t offset); + void hdc_w(offs_t offset, uint8_t data); + uint8_t fdc_r(offs_t offset); + void fdc_w(offs_t offset, uint8_t data); + uint16_t via_r(offs_t offset, uint16_t mem_mask = ~0); + void via_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); I8275_DRAW_CHARACTER_MEMBER(wicat_display_pixels); required_device<m68000_device> m_maincpu; @@ -378,7 +378,7 @@ void wicat_state::via_b_w(uint8_t data) logerror("VIA: write %02x to port B\n",data); } -READ16_MEMBER( wicat_state::invalid_r ) +uint16_t wicat_state::invalid_r(offs_t offset) { if(!machine().side_effects_disabled()) { @@ -389,7 +389,7 @@ READ16_MEMBER( wicat_state::invalid_r ) return 0xff; } -WRITE16_MEMBER( wicat_state::invalid_w ) +void wicat_state::invalid_w(offs_t offset, uint16_t data) { if(!machine().side_effects_disabled()) { @@ -400,20 +400,20 @@ WRITE16_MEMBER( wicat_state::invalid_w ) } // TODO -READ16_MEMBER(wicat_state::memmap_r) +uint16_t wicat_state::memmap_r() { popmessage("Memory mapping register EFFC01 read!"); return 0xff; } -WRITE16_MEMBER(wicat_state::memmap_w) +void wicat_state::memmap_w(uint16_t data) { popmessage("Memory mapping register EFFC01 written!"); } // WD1000 Winchester Disk controller (10MB 5 1/4" HD) // for now, we'll just try to tell the system there is no HD -READ8_MEMBER(wicat_state::hdc_r) +uint8_t wicat_state::hdc_r(offs_t offset) { switch(offset) { @@ -425,7 +425,7 @@ READ8_MEMBER(wicat_state::hdc_r) return 0x00; } -WRITE8_MEMBER(wicat_state::hdc_w) +void wicat_state::hdc_w(offs_t offset, uint8_t data) { switch(offset) { @@ -471,7 +471,7 @@ WRITE8_MEMBER(wicat_state::hdc_w) } } -READ8_MEMBER(wicat_state::fdc_r) +uint8_t wicat_state::fdc_r(offs_t offset) { uint8_t ret = 0x00; @@ -497,7 +497,7 @@ READ8_MEMBER(wicat_state::fdc_r) return ret; } -WRITE8_MEMBER(wicat_state::fdc_w) +void wicat_state::fdc_w(offs_t offset, uint8_t data) { popmessage("FDC: write offset %02x data %02x",offset,data); switch(offset) @@ -520,14 +520,14 @@ WRITE8_MEMBER(wicat_state::fdc_w) } } -READ16_MEMBER(wicat_state::via_r) +uint16_t wicat_state::via_r(offs_t offset, uint16_t mem_mask) { if(ACCESSING_BITS_0_7) return m_via->read(offset); return 0x00; } -WRITE16_MEMBER(wicat_state::via_w) +void wicat_state::via_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if(ACCESSING_BITS_0_7) m_via->write(offset,data); @@ -545,7 +545,7 @@ void wicat_state::vram_w(offs_t offset, uint8_t data) m_videocpu->space(AS_IO).write_byte(offset*2,data); } -WRITE8_MEMBER(wicat_state::videosram_store_w) +void wicat_state::videosram_store_w(uint8_t data) { if(data & 0x01) // unsure of the actual bit checked, the terminal code just writes 0xff { @@ -555,7 +555,7 @@ WRITE8_MEMBER(wicat_state::videosram_store_w) } } -WRITE8_MEMBER(wicat_state::videosram_recall_w) +void wicat_state::videosram_recall_w(uint8_t data) { if(data & 0x01) // unsure of the actual bit checked, the terminal code just writes 0xff { @@ -565,7 +565,7 @@ WRITE8_MEMBER(wicat_state::videosram_recall_w) } } -READ8_MEMBER(wicat_state::video_timer_r) +uint8_t wicat_state::video_timer_r(offs_t offset) { uint8_t ret = 0x00; @@ -583,14 +583,14 @@ READ8_MEMBER(wicat_state::video_timer_r) return ret; } -WRITE8_MEMBER(wicat_state::video_timer_w) +void wicat_state::video_timer_w(offs_t offset, uint8_t data) { logerror("I/O port 0x%04x write %02x\n",offset,data); if(offset == 0x01) m_videouart->write(data); } -READ8_MEMBER(wicat_state::video_status_r) +uint8_t wicat_state::video_status_r() { // this port is read in the NVI IRQ routine, which if bit 2 is set, will unmask DMA channel 0. But no idea what triggers it... return m_crtc_irq ? 0x04 : 0x00; diff --git a/src/mame/drivers/wico.cpp b/src/mame/drivers/wico.cpp index 71377155aaa..c898ab72e99 100644 --- a/src/mame/drivers/wico.cpp +++ b/src/mame/drivers/wico.cpp @@ -63,17 +63,17 @@ public: void wico(machine_config &config); private: - DECLARE_READ8_MEMBER(lampst_r); - DECLARE_READ8_MEMBER(switch_r); - DECLARE_WRITE8_MEMBER(muxen_w); - DECLARE_WRITE8_MEMBER(muxld_w); - DECLARE_WRITE8_MEMBER(csols_w); - DECLARE_WRITE8_MEMBER(msols_w); - DECLARE_WRITE8_MEMBER(dled0_w); - DECLARE_WRITE8_MEMBER(dled1_w); - DECLARE_WRITE8_MEMBER(zcres_w); - DECLARE_WRITE8_MEMBER(wdogcl_w); - DECLARE_READ8_MEMBER(gentmrcl_r); + uint8_t lampst_r(); + uint8_t switch_r(offs_t offset); + void muxen_w(uint8_t data); + void muxld_w(uint8_t data); + void csols_w(uint8_t data); + void msols_w(uint8_t data); + void dled0_w(uint8_t data); + void dled1_w(uint8_t data); + void zcres_w(uint8_t data); + void wdogcl_w(uint8_t data); + uint8_t gentmrcl_r(); TIMER_DEVICE_CALLBACK_MEMBER(irq_housekeeping); TIMER_DEVICE_CALLBACK_MEMBER(firq_housekeeping); void ccpu_map(address_map &map); @@ -113,7 +113,7 @@ void wico_state::hcpu_map(address_map &map) //map(0x1fed, 0x1fed).r(FUNC(wico_state::solst1_r)); //map(0x1fee, 0x1fee).r(FUNC(wico_state::solst0_r)); map(0x1fef, 0x1fef).r(FUNC(wico_state::switch_r)); - map(0xf000, 0xffff).rom(); + map(0xf000, 0xffff).rom().region("hcpu", 0); } // command cpu @@ -137,8 +137,8 @@ void wico_state::ccpu_map(address_map &map) //map(0x1fee, 0x1fee).r(FUNC(wico_state::solst0_r)); // switches //map(0x1fef, 0x1fef).r(FUNC(wico_state::switch_r)); // switches map(0x4000, 0x40ff).ram().share("nvram"); // X2212 4bit x 256 NVRAM, stores only when store_w is active - map(0x8000, 0x9fff).rom(); - map(0xe000, 0xffff).rom(); + map(0x8000, 0x9fff).rom().region("ccpu", 0); + map(0xe000, 0xffff).rom().region("ccpu", 0x2000); } static INPUT_PORTS_START( wico ) @@ -315,29 +315,29 @@ static INPUT_PORTS_START( wico ) INPUT_PORTS_END // diagnostic display off -WRITE8_MEMBER( wico_state::dled0_w ) +void wico_state::dled0_w(uint8_t data) { m_diag_on = 0; m_digits[9] = 0; } // diagnostic display on -WRITE8_MEMBER( wico_state::dled1_w ) +void wico_state::dled1_w(uint8_t data) { m_diag_on = 1; m_digits[9] = m_diag_segments; } -WRITE8_MEMBER( wico_state::csols_w ) +void wico_state::csols_w(uint8_t data) { } -WRITE8_MEMBER( wico_state::msols_w ) +void wico_state::msols_w(uint8_t data) { } // write to diagnostic display -WRITE8_MEMBER( wico_state::muxen_w ) +void wico_state::muxen_w(uint8_t data) { static const uint8_t patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 }; // MC14495 @@ -352,25 +352,25 @@ WRITE8_MEMBER( wico_state::muxen_w ) } // reset digit/scan counter -WRITE8_MEMBER( wico_state::muxld_w ) +void wico_state::muxld_w(uint8_t data) { } // enable zero-crossing interrupt -WRITE8_MEMBER( wico_state::zcres_w ) +void wico_state::zcres_w(uint8_t data) { m_zcen = 1; } // enable firq -READ8_MEMBER( wico_state::gentmrcl_r ) +uint8_t wico_state::gentmrcl_r() { m_gten = 1; return 0xff; } // read a switch row -READ8_MEMBER( wico_state::switch_r ) +uint8_t wico_state::switch_r(offs_t offset) { char kbdrow[8]; offset = m_shared_ram[0x95]; @@ -388,7 +388,7 @@ READ8_MEMBER( wico_state::switch_r ) } // write digits in main display -READ8_MEMBER( wico_state::lampst_r ) +uint8_t wico_state::lampst_r() { int i, j; for (i = 0; i < 5; i++) @@ -403,7 +403,7 @@ READ8_MEMBER( wico_state::lampst_r ) } // reset watchdog and enable housekeeping cpu -WRITE8_MEMBER( wico_state::wdogcl_w ) +void wico_state::wdogcl_w(uint8_t data) { m_hcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); } @@ -466,12 +466,12 @@ void wico_state::wico(machine_config &config) / Af-Tor (1984) /-------------------------------------------------------------------*/ ROM_START(aftor) - ROM_REGION(0x10000, "hcpu", 0) - ROM_LOAD("u25.bin", 0xf000, 0x1000, CRC(d66e95ff) SHA1(f7e8c51f1b37e7ef560406f1968c12a2043646c5)) + ROM_REGION(0x1000, "hcpu", 0) + ROM_LOAD("u25.bin", 0x0000, 0x1000, CRC(d66e95ff) SHA1(f7e8c51f1b37e7ef560406f1968c12a2043646c5)) - ROM_REGION(0x10000, "ccpu", 0) - ROM_LOAD("u52.bin", 0x8000, 0x2000, CRC(8035b446) SHA1(3ec59015e259c315bf09f4e2046f9d98e2d7a732)) - ROM_LOAD("u48.bin", 0xe000, 0x2000, CRC(b4406563) SHA1(6d1a9086eb1f6f947eae3a92ccf7a9b7375d85d3)) + ROM_REGION(0x4000, "ccpu", 0) + ROM_LOAD("u52.bin", 0x0000, 0x2000, CRC(8035b446) SHA1(3ec59015e259c315bf09f4e2046f9d98e2d7a732)) + ROM_LOAD("u48.bin", 0x2000, 0x2000, CRC(b4406563) SHA1(6d1a9086eb1f6f947eae3a92ccf7a9b7375d85d3)) ROM_END /*------------------------------------------------------------------- diff --git a/src/mame/drivers/wildpkr.cpp b/src/mame/drivers/wildpkr.cpp index a5f75a822f6..9f77a554c81 100644 --- a/src/mame/drivers/wildpkr.cpp +++ b/src/mame/drivers/wildpkr.cpp @@ -213,17 +213,17 @@ private: u16 m_clock_rate; void wildpkr_palette(palette_device &palette) const; - DECLARE_READ8_MEMBER(unknown_read8); - DECLARE_WRITE8_MEMBER(unknown_write8); - DECLARE_WRITE16_MEMBER(nvram_w); - DECLARE_READ16_MEMBER(id_serial_r); - DECLARE_WRITE16_MEMBER(id_serial_w); - DECLARE_WRITE16_MEMBER(out0_w); - DECLARE_WRITE16_MEMBER(out1_w); - DECLARE_WRITE8_MEMBER(dac_w); - DECLARE_WRITE16_MEMBER(clock_start_w); - DECLARE_WRITE16_MEMBER(clock_rate_w); - DECLARE_WRITE16_MEMBER(unknown_trigger_w); + u8 unknown_read8(); + void unknown_write8(u8 data); + void nvram_w(offs_t offset, u16 data); + u16 id_serial_r(); + void id_serial_w(u16 data); + void out0_w(u16 data); + void out1_w(u16 data); + void dac_w(u8 data); + void clock_start_w(u16 data); + void clock_rate_w(u16 data); + void unknown_trigger_w(u16 data); u16 tabpkr_irq_ack(offs_t offset); void cpu_space_map(address_map &map); void hd63484_map(address_map &map); @@ -255,44 +255,44 @@ void wildpkr_state::wildpkr_palette(palette_device &palette) const * Misc Handlers * *************************/ -READ8_MEMBER(wildpkr_state::unknown_read8) +u8 wildpkr_state::unknown_read8() { return 0xff; } -WRITE8_MEMBER(wildpkr_state::unknown_write8) +void wildpkr_state::unknown_write8(u8 data) { } -WRITE16_MEMBER(wildpkr_state::nvram_w) +void wildpkr_state::nvram_w(offs_t offset, u16 data) { m_nvram[offset] = data | 0xff00; } -READ16_MEMBER(wildpkr_state::id_serial_r) +u16 wildpkr_state::id_serial_r() { return m_id->read(); } -WRITE16_MEMBER(wildpkr_state::id_serial_w) +void wildpkr_state::id_serial_w(u16 data) { m_id->write(data & 1); } -WRITE16_MEMBER(wildpkr_state::out0_w) +void wildpkr_state::out0_w(u16 data) { } -WRITE16_MEMBER(wildpkr_state::out1_w) +void wildpkr_state::out1_w(u16 data) { } -WRITE8_MEMBER(wildpkr_state::dac_w) +void wildpkr_state::dac_w(u8 data) { m_dac->write(data); } -WRITE16_MEMBER(wildpkr_state::clock_start_w) +void wildpkr_state::clock_start_w(u16 data) { if (data != 0 && m_clock_rate != 0) m_dac_clock->set_clock_scale(1.0 / m_clock_rate); @@ -300,12 +300,12 @@ WRITE16_MEMBER(wildpkr_state::clock_start_w) m_dac_clock->set_clock_scale(0.0); } -WRITE16_MEMBER(wildpkr_state::clock_rate_w) +void wildpkr_state::clock_rate_w(u16 data) { m_clock_rate = data; } -WRITE16_MEMBER(wildpkr_state::unknown_trigger_w) +void wildpkr_state::unknown_trigger_w(u16 data) { } diff --git a/src/mame/drivers/wink.cpp b/src/mame/drivers/wink.cpp index 8620839d388..95b42890ecc 100644 --- a/src/mame/drivers/wink.cpp +++ b/src/mame/drivers/wink.cpp @@ -52,17 +52,17 @@ private: bool m_nmi_enable; - DECLARE_WRITE8_MEMBER(bgram_w); + void bgram_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(nmi_clock_w); DECLARE_WRITE_LINE_MEMBER(nmi_enable_w); DECLARE_WRITE_LINE_MEMBER(player_mux_w); DECLARE_WRITE_LINE_MEMBER(tile_banking_w); template<int Player> DECLARE_WRITE_LINE_MEMBER(coin_counter_w); - DECLARE_READ8_MEMBER(analog_port_r); - DECLARE_READ8_MEMBER(player_inputs_r); - DECLARE_WRITE8_MEMBER(sound_irq_w); - DECLARE_READ8_MEMBER(prot_r); - DECLARE_WRITE8_MEMBER(prot_w); + uint8_t analog_port_r(); + uint8_t player_inputs_r(); + void sound_irq_w(uint8_t data); + uint8_t prot_r(); + void prot_w(uint8_t data); uint8_t sound_r(); TILE_GET_INFO_MEMBER(get_bg_tile_info); @@ -107,10 +107,9 @@ uint32_t wink_state::screen_update_wink(screen_device &screen, bitmap_ind16 &bit return 0; } -WRITE8_MEMBER(wink_state::bgram_w) +void wink_state::bgram_w(offs_t offset, uint8_t data) { - uint8_t *videoram = m_videoram; - videoram[offset] = data; + m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } @@ -145,17 +144,17 @@ WRITE_LINE_MEMBER(wink_state::coin_counter_w) machine().bookkeeping().coin_counter_w(Player, state); } -READ8_MEMBER(wink_state::analog_port_r) +uint8_t wink_state::analog_port_r() { return ioport(/* player_mux ? "DIAL2" : */ "DIAL1")->read(); } -READ8_MEMBER(wink_state::player_inputs_r) +uint8_t wink_state::player_inputs_r() { return ioport(/* player_mux ? "INPUTS2" : */ "INPUTS1")->read(); } -WRITE8_MEMBER(wink_state::sound_irq_w) +void wink_state::sound_irq_w(uint8_t data) { m_audiocpu->set_input_line(0, HOLD_LINE); //sync with sound cpu (but it still loses some soundlatches...) @@ -171,7 +170,7 @@ void wink_state::wink_map(address_map &map) } -READ8_MEMBER(wink_state::prot_r) +uint8_t wink_state::prot_r() { //take a0-a7 and do some math using the variable created from the upper address-lines, //put the result onto the databus. @@ -191,7 +190,7 @@ the 8bit result is placed on the databus. return 0x20; //hack to pass the jump calculated using this value } -WRITE8_MEMBER(wink_state::prot_w) +void wink_state::prot_w(uint8_t data) { //take a9-a15 and stuff them in a variable for later use. } diff --git a/src/mame/drivers/wms.cpp b/src/mame/drivers/wms.cpp index b06a92ef97b..369a81ccc2f 100644 --- a/src/mame/drivers/wms.cpp +++ b/src/mame/drivers/wms.cpp @@ -103,7 +103,7 @@ public: void init_wms(); private: - DECLARE_READ8_MEMBER(test_r); + uint8_t test_r(); uint32_t screen_update_wms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void adsp_data_map(address_map &map); @@ -130,7 +130,7 @@ void wms_state::wms_map(address_map &map) map(0x60000, 0xfffff).rom().region("maincpu", 0x60000); // TODO: fix me } -READ8_MEMBER(wms_state::test_r) +uint8_t wms_state::test_r() { return 1; } diff --git a/src/mame/drivers/wpc_95.cpp b/src/mame/drivers/wpc_95.cpp index 88d9706f205..30ea552fda9 100644 --- a/src/mame/drivers/wpc_95.cpp +++ b/src/mame/drivers/wpc_95.cpp @@ -49,16 +49,16 @@ public: void init_ttt(); private: - DECLARE_WRITE8_MEMBER(bank_w); - DECLARE_WRITE8_MEMBER(watchdog_w); - DECLARE_WRITE8_MEMBER(irq_ack_w); - DECLARE_READ8_MEMBER(firq_src_r); - DECLARE_READ8_MEMBER(zc_r); - DECLARE_READ8_MEMBER(dcs_data_r); - DECLARE_WRITE8_MEMBER(dcs_data_w); - DECLARE_READ8_MEMBER(dcs_ctrl_r); - DECLARE_WRITE8_MEMBER(dcs_reset_w); - DECLARE_READ8_MEMBER(rtc_r); + void bank_w(uint8_t data); + void watchdog_w(uint8_t data); + void irq_ack_w(uint8_t data); + uint8_t firq_src_r(); + uint8_t zc_r(); + uint8_t dcs_data_r(); + void dcs_data_w(uint8_t data); + uint8_t dcs_ctrl_r(); + void dcs_reset_w(uint8_t data); + uint8_t rtc_r(offs_t offset); DECLARE_WRITE_LINE_MEMBER(scanline_irq); TIMER_DEVICE_CALLBACK_MEMBER(zc_timer); @@ -161,28 +161,28 @@ void wpc_95_state::wpc_95_map(address_map &map) map(0x8000, 0xffff).rom().region("maincpu", 0xf8000); } -READ8_MEMBER(wpc_95_state::dcs_data_r) +uint8_t wpc_95_state::dcs_data_r() { return dcs->data_r(); } -WRITE8_MEMBER(wpc_95_state::dcs_data_w) +void wpc_95_state::dcs_data_w(uint8_t data) { dcs->data_w(data); } -READ8_MEMBER(wpc_95_state::dcs_ctrl_r) +uint8_t wpc_95_state::dcs_ctrl_r() { return dcs->control_r(); } -WRITE8_MEMBER(wpc_95_state::dcs_reset_w) +void wpc_95_state::dcs_reset_w(uint8_t data) { dcs->reset_w(0); dcs->reset_w(1); } -READ8_MEMBER(wpc_95_state::rtc_r) +uint8_t wpc_95_state::rtc_r(offs_t offset) { system_time systime; machine().base_datetime(systime); @@ -204,12 +204,12 @@ READ8_MEMBER(wpc_95_state::rtc_r) } } -READ8_MEMBER(wpc_95_state::firq_src_r) +uint8_t wpc_95_state::firq_src_r() { return firq_src; } -READ8_MEMBER(wpc_95_state::zc_r) +uint8_t wpc_95_state::zc_r() { uint8_t res = zc; zc &= 0x7f; @@ -221,12 +221,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(wpc_95_state::zc_timer) zc |= 0x80; } -WRITE8_MEMBER(wpc_95_state::bank_w) +void wpc_95_state::bank_w(uint8_t data) { rombank->set_entry(data & 0x3f); } -WRITE8_MEMBER(wpc_95_state::watchdog_w) +void wpc_95_state::watchdog_w(uint8_t data) { } @@ -236,7 +236,7 @@ WRITE_LINE_MEMBER(wpc_95_state::scanline_irq) maincpu->set_input_line(1, state); } -WRITE8_MEMBER(wpc_95_state::irq_ack_w) +void wpc_95_state::irq_ack_w(uint8_t data) { maincpu->set_input_line(0, CLEAR_LINE); maincpu->set_input_line(1, CLEAR_LINE); diff --git a/src/mame/drivers/wpc_an.cpp b/src/mame/drivers/wpc_an.cpp index b08bd08a8f2..94325baa4e3 100644 --- a/src/mame/drivers/wpc_an.cpp +++ b/src/mame/drivers/wpc_an.cpp @@ -55,8 +55,8 @@ private: static const device_timer_id TIMER_VBLANK = 0; static const device_timer_id TIMER_IRQ = 1; - DECLARE_READ8_MEMBER(ram_r); - DECLARE_WRITE8_MEMBER(ram_w); + uint8_t ram_r(offs_t offset); + void ram_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(wpcsnd_reply_w); DECLARE_WRITE_LINE_MEMBER(wpc_irq_w); DECLARE_WRITE_LINE_MEMBER(wpc_firq_w); @@ -288,12 +288,12 @@ void wpc_an_state::wpc_sound_s11_w(uint8_t data) } } -READ8_MEMBER(wpc_an_state::ram_r) +uint8_t wpc_an_state::ram_r(offs_t offset) { return m_ram[offset]; } -WRITE8_MEMBER(wpc_an_state::ram_w) +void wpc_an_state::ram_w(offs_t offset, uint8_t data) { if((!m_wpc->memprotect_active()) || ((offset & m_wpc->get_memprotect_mask()) != m_wpc->get_memprotect_mask())) m_ram[offset] = data; diff --git a/src/mame/drivers/wpc_dcs.cpp b/src/mame/drivers/wpc_dcs.cpp index 3c14a1f7fe4..89e2510feb5 100644 --- a/src/mame/drivers/wpc_dcs.cpp +++ b/src/mame/drivers/wpc_dcs.cpp @@ -39,18 +39,18 @@ public: void init_afv(); private: - DECLARE_WRITE8_MEMBER(bank_w); - DECLARE_WRITE8_MEMBER(watchdog_w); - DECLARE_WRITE8_MEMBER(irq_ack_w); - DECLARE_READ8_MEMBER(firq_src_r); - DECLARE_READ8_MEMBER(zc_r); - DECLARE_READ8_MEMBER(dcs_data_r); - DECLARE_WRITE8_MEMBER(dcs_data_w); - DECLARE_READ8_MEMBER(dcs_ctrl_r); - DECLARE_WRITE8_MEMBER(dcs_reset_w); - DECLARE_READ8_MEMBER(rtc_r); - DECLARE_READ8_MEMBER(switches_r); - DECLARE_WRITE8_MEMBER(switches_w); + void bank_w(uint8_t data); + void watchdog_w(uint8_t data); + void irq_ack_w(uint8_t data); + uint8_t firq_src_r(); + uint8_t zc_r(); + uint8_t dcs_data_r(); + void dcs_data_w(uint8_t data); + uint8_t dcs_ctrl_r(); + void dcs_reset_w(uint8_t data); + uint8_t rtc_r(offs_t offset); + uint8_t switches_r(); + void switches_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(scanline_irq); TIMER_DEVICE_CALLBACK_MEMBER(zc_timer); @@ -113,28 +113,28 @@ void wpc_dcs_state::wpc_dcs_map(address_map &map) map(0x8000, 0xffff).rom().region("maincpu", 0x78000); } -READ8_MEMBER(wpc_dcs_state::dcs_data_r) +uint8_t wpc_dcs_state::dcs_data_r() { return dcs->data_r(); } -WRITE8_MEMBER(wpc_dcs_state::dcs_data_w) +void wpc_dcs_state::dcs_data_w(uint8_t data) { dcs->data_w(data); } -READ8_MEMBER(wpc_dcs_state::dcs_ctrl_r) +uint8_t wpc_dcs_state::dcs_ctrl_r() { return dcs->control_r(); } -WRITE8_MEMBER(wpc_dcs_state::dcs_reset_w) +void wpc_dcs_state::dcs_reset_w(uint8_t data) { dcs->reset_w(0); dcs->reset_w(1); } -READ8_MEMBER(wpc_dcs_state::switches_r) +uint8_t wpc_dcs_state::switches_r() { uint8_t res = 0xff; for(int i=0; i<8; i++) @@ -143,12 +143,12 @@ READ8_MEMBER(wpc_dcs_state::switches_r) return res; } -WRITE8_MEMBER(wpc_dcs_state::switches_w) +void wpc_dcs_state::switches_w(uint8_t data) { switch_col = data; } -READ8_MEMBER(wpc_dcs_state::rtc_r) +uint8_t wpc_dcs_state::rtc_r(offs_t offset) { system_time systime; machine().base_datetime(systime); @@ -170,12 +170,12 @@ READ8_MEMBER(wpc_dcs_state::rtc_r) } } -READ8_MEMBER(wpc_dcs_state::firq_src_r) +uint8_t wpc_dcs_state::firq_src_r() { return firq_src; } -READ8_MEMBER(wpc_dcs_state::zc_r) +uint8_t wpc_dcs_state::zc_r() { uint8_t res = zc; zc &= 0x7f; @@ -187,12 +187,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(wpc_dcs_state::zc_timer) zc |= 0x80; } -WRITE8_MEMBER(wpc_dcs_state::bank_w) +void wpc_dcs_state::bank_w(uint8_t data) { rombank->set_entry(data & 0x1f); } -WRITE8_MEMBER(wpc_dcs_state::watchdog_w) +void wpc_dcs_state::watchdog_w(uint8_t data) { // Mhhh? Maybe it's not 3ff3, maybe it's going down by itself... maincpu->set_input_line(0, CLEAR_LINE); @@ -204,7 +204,7 @@ WRITE_LINE_MEMBER(wpc_dcs_state::scanline_irq) maincpu->set_input_line(1, state); } -WRITE8_MEMBER(wpc_dcs_state::irq_ack_w) +void wpc_dcs_state::irq_ack_w(uint8_t data) { maincpu->set_input_line(0, CLEAR_LINE); maincpu->set_input_line(1, CLEAR_LINE); diff --git a/src/mame/drivers/wpc_s.cpp b/src/mame/drivers/wpc_s.cpp index ee081c96ce1..5984e40739e 100644 --- a/src/mame/drivers/wpc_s.cpp +++ b/src/mame/drivers/wpc_s.cpp @@ -44,16 +44,16 @@ public: void init_tfs(); private: - DECLARE_WRITE8_MEMBER(bank_w); - DECLARE_WRITE8_MEMBER(watchdog_w); - DECLARE_WRITE8_MEMBER(irq_ack_w); - DECLARE_READ8_MEMBER(firq_src_r); - DECLARE_READ8_MEMBER(zc_r); - DECLARE_READ8_MEMBER(dcs_data_r); - DECLARE_WRITE8_MEMBER(dcs_data_w); - DECLARE_READ8_MEMBER(dcs_ctrl_r); - DECLARE_WRITE8_MEMBER(dcs_reset_w); - DECLARE_READ8_MEMBER(rtc_r); + void bank_w(uint8_t data); + void watchdog_w(uint8_t data); + void irq_ack_w(uint8_t data); + uint8_t firq_src_r(); + uint8_t zc_r(); + uint8_t dcs_data_r(); + void dcs_data_w(uint8_t data); + uint8_t dcs_ctrl_r(); + void dcs_reset_w(uint8_t data); + uint8_t rtc_r(offs_t offset); DECLARE_WRITE_LINE_MEMBER(scanline_irq); TIMER_DEVICE_CALLBACK_MEMBER(zc_timer); @@ -140,29 +140,29 @@ void wpc_s_state::wpc_s_map(address_map &map) map(0x8000, 0xffff).rom().region("maincpu", 0x78000); } -READ8_MEMBER(wpc_s_state::dcs_data_r) +uint8_t wpc_s_state::dcs_data_r() { return dcs->data_r(); } -WRITE8_MEMBER(wpc_s_state::dcs_data_w) +void wpc_s_state::dcs_data_w(uint8_t data) { dcs->data_w(data); } -READ8_MEMBER(wpc_s_state::dcs_ctrl_r) +uint8_t wpc_s_state::dcs_ctrl_r() { return dcs->control_r(); } -WRITE8_MEMBER(wpc_s_state::dcs_reset_w) +void wpc_s_state::dcs_reset_w(uint8_t data) { dcs->reset_w(0); dcs->reset_w(1); } -READ8_MEMBER(wpc_s_state::rtc_r) +uint8_t wpc_s_state::rtc_r(offs_t offset) { system_time systime; machine().base_datetime(systime); @@ -184,12 +184,12 @@ READ8_MEMBER(wpc_s_state::rtc_r) } } -READ8_MEMBER(wpc_s_state::firq_src_r) +uint8_t wpc_s_state::firq_src_r() { return firq_src; } -READ8_MEMBER(wpc_s_state::zc_r) +uint8_t wpc_s_state::zc_r() { uint8_t res = zc; zc &= 0x7f; @@ -201,12 +201,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(wpc_s_state::zc_timer) zc |= 0x80; } -WRITE8_MEMBER(wpc_s_state::bank_w) +void wpc_s_state::bank_w(uint8_t data) { rombank->set_entry(data & 0x1f); } -WRITE8_MEMBER(wpc_s_state::watchdog_w) +void wpc_s_state::watchdog_w(uint8_t data) { // Mhhh? Maybe it's not 3ff3, maybe it's going down by itself... maincpu->set_input_line(0, CLEAR_LINE); @@ -218,7 +218,7 @@ WRITE_LINE_MEMBER(wpc_s_state::scanline_irq) maincpu->set_input_line(1, state); } -WRITE8_MEMBER(wpc_s_state::irq_ack_w) +void wpc_s_state::irq_ack_w(uint8_t data) { maincpu->set_input_line(0, CLEAR_LINE); maincpu->set_input_line(1, CLEAR_LINE); diff --git a/src/mame/drivers/wxstar4000.cpp b/src/mame/drivers/wxstar4000.cpp index f81b5f68af5..dfa504814ce 100644 --- a/src/mame/drivers/wxstar4000.cpp +++ b/src/mame/drivers/wxstar4000.cpp @@ -106,7 +106,7 @@ private: optional_shared_ptr<uint16_t> m_mainram, m_extram, m_vram; required_device<icm7170_device> m_rtc; - DECLARE_READ16_MEMBER(buserr_r) + uint16_t buserr_r() { m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE); m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE); diff --git a/src/mame/drivers/wyvernf0.cpp b/src/mame/drivers/wyvernf0.cpp index 61c52b01ed9..56b724c5215 100644 --- a/src/mame/drivers/wyvernf0.cpp +++ b/src/mame/drivers/wyvernf0.cpp @@ -84,8 +84,8 @@ private: TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_fg_tile_info); - DECLARE_WRITE8_MEMBER(bgram_w); - DECLARE_WRITE8_MEMBER(fgram_w); + void bgram_w(offs_t offset, uint8_t data); + void fgram_w(offs_t offset, uint8_t data); uint32_t screen_update_wyvernf0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, bool is_foreground ); @@ -95,14 +95,14 @@ private: uint8_t m_rombank; uint8_t m_rambank; - DECLARE_WRITE8_MEMBER(rambank_w); - DECLARE_WRITE8_MEMBER(rombank_w); - DECLARE_WRITE8_MEMBER(sound_command_w); - DECLARE_WRITE8_MEMBER(nmi_disable_w); - DECLARE_WRITE8_MEMBER(nmi_enable_w); + void rambank_w(uint8_t data); + void rombank_w(uint8_t data); + void sound_command_w(uint8_t data); + void nmi_disable_w(uint8_t data); + void nmi_enable_w(uint8_t data); TIMER_CALLBACK_MEMBER(nmi_callback); - DECLARE_READ8_MEMBER(mcu_status_r); + uint8_t mcu_status_r(); // devices required_device<cpu_device> m_maincpu; @@ -132,13 +132,13 @@ private: ***************************************************************************/ -WRITE8_MEMBER(wyvernf0_state::bgram_w) +void wyvernf0_state::bgram_w(offs_t offset, uint8_t data) { m_bgram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset / 2); } -WRITE8_MEMBER(wyvernf0_state::fgram_w) +void wyvernf0_state::fgram_w(offs_t offset, uint8_t data) { m_fgram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset / 2); @@ -299,7 +299,7 @@ if (machine().input().code_pressed(KEYCODE_Z)) ***************************************************************************/ -READ8_MEMBER(wyvernf0_state::mcu_status_r) +uint8_t wyvernf0_state::mcu_status_r() { // bit 0 = when 1, MCU is ready to receive data from main CPU // bit 1 = when 1, MCU has sent data to the main CPU @@ -316,7 +316,7 @@ READ8_MEMBER(wyvernf0_state::mcu_status_r) ***************************************************************************/ // D100 -WRITE8_MEMBER(wyvernf0_state::rambank_w) +void wyvernf0_state::rambank_w(uint8_t data) { // bit 0 Flip X/Y // bit 1 Flip X/Y @@ -337,7 +337,7 @@ WRITE8_MEMBER(wyvernf0_state::rambank_w) } // D200 -WRITE8_MEMBER(wyvernf0_state::rombank_w) +void wyvernf0_state::rombank_w(uint8_t data) { // bit 0-2 ROM bank m_rombank = data; @@ -355,18 +355,18 @@ TIMER_CALLBACK_MEMBER(wyvernf0_state::nmi_callback) m_pending_nmi = 1; } -WRITE8_MEMBER(wyvernf0_state::sound_command_w) +void wyvernf0_state::sound_command_w(uint8_t data) { m_soundlatch->write(data); machine().scheduler().synchronize(timer_expired_delegate(FUNC(wyvernf0_state::nmi_callback),this), data); } -WRITE8_MEMBER(wyvernf0_state::nmi_disable_w) +void wyvernf0_state::nmi_disable_w(uint8_t data) { m_sound_nmi_enable = 0; } -WRITE8_MEMBER(wyvernf0_state::nmi_enable_w) +void wyvernf0_state::nmi_enable_w(uint8_t data) { m_sound_nmi_enable = 1; if (m_pending_nmi) diff --git a/src/mame/drivers/xtheball.cpp b/src/mame/drivers/xtheball.cpp index 91a7a11caf4..a1971a6f27f 100644 --- a/src/mame/drivers/xtheball.cpp +++ b/src/mame/drivers/xtheball.cpp @@ -52,8 +52,8 @@ private: required_ioport m_analog_y; DECLARE_WRITE_LINE_MEMBER(foreground_mode_w); - DECLARE_READ16_MEMBER(analogx_r); - DECLARE_READ16_MEMBER(analogy_watchdog_r); + uint16_t analogx_r(); + uint16_t analogy_watchdog_r(); virtual void machine_start() override; @@ -166,13 +166,13 @@ WRITE_LINE_MEMBER(xtheball_state::foreground_mode_w) * *************************************/ -READ16_MEMBER(xtheball_state::analogx_r) +uint16_t xtheball_state::analogx_r() { return (m_analog_x->read() << 8) | 0x00ff; } -READ16_MEMBER(xtheball_state::analogy_watchdog_r) +uint16_t xtheball_state::analogy_watchdog_r() { /* doubles as a watchdog address */ m_watchdog->watchdog_reset(); diff --git a/src/mame/drivers/xyonix.cpp b/src/mame/drivers/xyonix.cpp index 4f6e70ef612..80126638f8d 100644 --- a/src/mame/drivers/xyonix.cpp +++ b/src/mame/drivers/xyonix.cpp @@ -71,11 +71,11 @@ private: bool m_nmi_mask; DECLARE_WRITE_LINE_MEMBER(nmiclk_w); - DECLARE_WRITE8_MEMBER(irqack_w); - DECLARE_WRITE8_MEMBER(nmiack_w); - DECLARE_READ8_MEMBER(io_r); - DECLARE_WRITE8_MEMBER(io_w); - DECLARE_WRITE8_MEMBER(vidram_w); + void irqack_w(uint8_t data); + void nmiack_w(uint8_t data); + uint8_t io_r(); + void io_w(uint8_t data); + void vidram_w(offs_t offset, uint8_t data); TILE_GET_INFO_MEMBER(get_tile_info); void xyonix_palette(palette_device &palette) const; @@ -102,7 +102,7 @@ void xyonix_state::machine_reset() m_nmi_mask = false; } -WRITE8_MEMBER(xyonix_state::irqack_w) +void xyonix_state::irqack_w(uint8_t data) { m_maincpu->set_input_line(0, CLEAR_LINE); } @@ -113,7 +113,7 @@ WRITE_LINE_MEMBER(xyonix_state::nmiclk_w) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } -WRITE8_MEMBER(xyonix_state::nmiack_w) +void xyonix_state::nmiack_w(uint8_t data) { m_nmi_mask = BIT(data, 0); if (!m_nmi_mask) @@ -160,7 +160,7 @@ TILE_GET_INFO_MEMBER(xyonix_state::get_tile_info) tileinfo.set(0,tileno,attr >> 4,0); } -WRITE8_MEMBER(xyonix_state::vidram_w) +void xyonix_state::vidram_w(offs_t offset, uint8_t data) { m_vidram[offset] = data; m_tilemap->mark_tile_dirty((offset-1)&0x0fff); @@ -246,7 +246,7 @@ void xyonix_state::handle_coins(int coin) } -READ8_MEMBER(xyonix_state::io_r) +uint8_t xyonix_state::io_r() { int regPC = m_maincpu->pc(); @@ -297,7 +297,7 @@ READ8_MEMBER(xyonix_state::io_r) return 0xff; } -WRITE8_MEMBER(xyonix_state::io_w) +void xyonix_state::io_w(uint8_t data) { //logerror ("xyonix_port_e0_w %02x - PC = %04x\n", data, m_maincpu->pc()); m_e0_data = data; diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp index 9c08cd60b2c..df3a81a72b4 100644 --- a/src/mame/drivers/zr107.cpp +++ b/src/mame/drivers/zr107.cpp @@ -208,10 +208,12 @@ public: m_analog1(*this, "ANALOG1"), m_analog2(*this, "ANALOG2"), m_analog3(*this, "ANALOG3"), + m_pcb_digit(*this, "pcbdigit%u", 0U), m_screen(*this, "screen"), m_palette(*this, "palette"), m_generic_paletteram_32(*this, "paletteram"), - m_konppc(*this, "konppc") { } + m_konppc(*this, "konppc") + { } void zr107(machine_config &config); @@ -227,14 +229,13 @@ protected: required_device<k001005_device> m_k001005; required_device<k001006_device> m_k001006_1; required_ioport m_in0, m_in1, m_in2, m_in3, m_in4, m_out4, m_eepromout, m_analog1, m_analog2, m_analog3; + output_finder<2> m_pcb_digit; required_device<screen_device> m_screen; required_device<palette_device> m_palette; required_shared_ptr<uint32_t> m_generic_paletteram_32; required_device<konppc_device> m_konppc; std::unique_ptr<uint32_t[]> m_sharc_dataram; - uint8_t m_led_reg0; - uint8_t m_led_reg1; int m_ccu_vcth; int m_ccu_vctl; uint8_t m_sound_ctrl; @@ -312,8 +313,6 @@ uint32_t jetwave_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma m_k001005->draw(bitmap, cliprect); m_k001604->draw_front_layer(screen, bitmap, cliprect); - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } @@ -353,8 +352,6 @@ uint32_t midnrun_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma m_k001005->draw(bitmap, cliprect); m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } @@ -383,6 +380,8 @@ uint8_t zr107_state::sysreg_r(offs_t offset) break; case 5: /* Parallel data port */ break; + default: + break; } return r; } @@ -391,12 +390,9 @@ void zr107_state::sysreg_w(offs_t offset, uint8_t data) { switch (offset) { - case 0: /* LED Register 0 */ - m_led_reg0 = data; - break; - - case 1: /* LED Register 1 */ - m_led_reg1 = data; + case 0: /* 7seg LEDs on PCB */ + case 1: + m_pcb_digit[offset] = bitswap<8>(~data,7,0,1,2,3,4,5,6) & 0x7f; break; case 2: /* Parallel data register */ @@ -447,6 +443,8 @@ void zr107_state::sysreg_w(offs_t offset, uint8_t data) m_watchdog->watchdog_reset(); break; + default: + break; } } @@ -483,6 +481,8 @@ void zr107_state::ccu_w(uint32_t data) void zr107_state::machine_start() { + m_pcb_digit.resolve(); + /* set conservative DRC options */ m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); @@ -851,7 +851,6 @@ void jetwave_state::jetwave(machine_config &config) void zr107_state::driver_init() { m_sharc_dataram = std::make_unique<uint32_t[]>(0x100000/4); - m_led_reg0 = m_led_reg1 = 0x7f; m_ccu_vcth = m_ccu_vctl = 0; m_dsp->enable_recompiler(); diff --git a/src/mame/includes/abc1600.h b/src/mame/includes/abc1600.h index ecd4a238f19..0165a8e83b4 100644 --- a/src/mame/includes/abc1600.h +++ b/src/mame/includes/abc1600.h @@ -103,17 +103,17 @@ public: virtual void machine_start() override; virtual void machine_reset() override; - DECLARE_READ8_MEMBER( bus_r ); - DECLARE_WRITE8_MEMBER( bus_w ); - DECLARE_READ8_MEMBER( dart_r ); - DECLARE_WRITE8_MEMBER( dart_w ); - DECLARE_READ8_MEMBER( scc_r ); - DECLARE_WRITE8_MEMBER( scc_w ); - DECLARE_READ8_MEMBER( cio_r ); - DECLARE_WRITE8_MEMBER( cio_w ); - DECLARE_WRITE8_MEMBER( fw0_w ); - DECLARE_WRITE8_MEMBER( fw1_w ); - DECLARE_WRITE8_MEMBER( spec_contr_reg_w ); + uint8_t bus_r(offs_t offset); + void bus_w(offs_t offset, uint8_t data); + uint8_t dart_r(offs_t offset); + void dart_w(offs_t offset, uint8_t data); + uint8_t scc_r(offs_t offset); + void scc_w(offs_t offset, uint8_t data); + uint8_t cio_r(offs_t offset); + void cio_w(offs_t offset, uint8_t data); + void fw0_w(uint8_t data); + void fw1_w(uint8_t data); + void spec_contr_reg_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER( dbrq_w ); diff --git a/src/mame/includes/actfancr.h b/src/mame/includes/actfancr.h index d8b05b1d102..43640d7063e 100644 --- a/src/mame/includes/actfancr.h +++ b/src/mame/includes/actfancr.h @@ -40,7 +40,7 @@ public: void triothep_control_select_w(uint8_t data); uint8_t triothep_control_r(); - DECLARE_WRITE8_MEMBER(buffer_spriteram_w); + void buffer_spriteram_w(uint8_t data); DECLARE_MACHINE_START(triothep); DECLARE_MACHINE_RESET(triothep); virtual void video_start() override; diff --git a/src/mame/includes/adam.h b/src/mame/includes/adam.h index 7ccb8923f44..e4f74309486 100644 --- a/src/mame/includes/adam.h +++ b/src/mame/includes/adam.h @@ -69,15 +69,15 @@ public: virtual void machine_start() override; virtual void machine_reset() override; - DECLARE_READ8_MEMBER( mreq_r ); - DECLARE_WRITE8_MEMBER( mreq_w ); - DECLARE_READ8_MEMBER( iorq_r ); - DECLARE_WRITE8_MEMBER( iorq_w ); - - DECLARE_READ8_MEMBER( adamnet_r ); - DECLARE_WRITE8_MEMBER( adamnet_w ); - DECLARE_READ8_MEMBER( mioc_r ); - DECLARE_WRITE8_MEMBER( mioc_w ); + uint8_t mreq_r(offs_t offset); + void mreq_w(offs_t offset, uint8_t data); + uint8_t iorq_r(offs_t offset); + void iorq_w(offs_t offset, uint8_t data); + + uint8_t adamnet_r(); + void adamnet_w(uint8_t data); + uint8_t mioc_r(); + void mioc_w(uint8_t data); void m6801_p1_w(uint8_t data); uint8_t m6801_p2_r(); diff --git a/src/mame/includes/aeroboto.h b/src/mame/includes/aeroboto.h index b2a2e29453b..c5bf0c830a2 100644 --- a/src/mame/includes/aeroboto.h +++ b/src/mame/includes/aeroboto.h @@ -60,14 +60,14 @@ public: /* misc */ int m_count; int m_disable_irq; - DECLARE_READ8_MEMBER(aeroboto_201_r); - DECLARE_READ8_MEMBER(aeroboto_irq_ack_r); - DECLARE_READ8_MEMBER(aeroboto_2973_r); - DECLARE_WRITE8_MEMBER(aeroboto_1a2_w); - DECLARE_READ8_MEMBER(aeroboto_in0_r); - DECLARE_WRITE8_MEMBER(aeroboto_3000_w); - DECLARE_WRITE8_MEMBER(aeroboto_videoram_w); - DECLARE_WRITE8_MEMBER(aeroboto_tilecolor_w); + uint8_t aeroboto_201_r(); + uint8_t aeroboto_irq_ack_r(); + uint8_t aeroboto_2973_r(); + void aeroboto_1a2_w(uint8_t data); + uint8_t aeroboto_in0_r(); + void aeroboto_3000_w(uint8_t data); + void aeroboto_videoram_w(offs_t offset, uint8_t data); + void aeroboto_tilecolor_w(offs_t offset, uint8_t data); TILE_GET_INFO_MEMBER(get_tile_info); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h index 334f23ced1d..c444a3fa007 100644 --- a/src/mame/includes/aerofgt.h +++ b/src/mame/includes/aerofgt.h @@ -80,30 +80,30 @@ public: uint32_t spinbrk_tile_callback( uint32_t code ); /* handlers */ - DECLARE_WRITE8_MEMBER(karatblzbl_soundlatch_w); - DECLARE_READ8_MEMBER(pending_command_r); - DECLARE_WRITE8_MEMBER(aerofgt_sh_bankswitch_w); - DECLARE_WRITE8_MEMBER(spinlbrk_sh_bankswitch_w); - DECLARE_WRITE8_MEMBER(aerfboot_okim6295_banking_w); - template<int Layer> DECLARE_WRITE16_MEMBER(vram_w); - DECLARE_WRITE8_MEMBER(pspikes_gfxbank_w); - DECLARE_WRITE16_MEMBER(pspikesb_gfxbank_w); - DECLARE_WRITE16_MEMBER(spikes91_lookup_w); - DECLARE_WRITE8_MEMBER(karatblz_gfxbank_w); - DECLARE_WRITE8_MEMBER(spinlbrk_gfxbank_w); - DECLARE_WRITE8_MEMBER(kickball_gfxbank_w); - DECLARE_WRITE16_MEMBER(turbofrc_gfxbank_w); - DECLARE_WRITE16_MEMBER(aerofgt_gfxbank_w); - template<int Layer> DECLARE_WRITE16_MEMBER(scrollx_w); - template<int Layer> DECLARE_WRITE16_MEMBER(scrolly_w); - DECLARE_WRITE8_MEMBER(pspikes_palette_bank_w); - DECLARE_WRITE8_MEMBER(spinlbrk_flip_screen_w); - DECLARE_WRITE8_MEMBER(turbofrc_flip_screen_w); - DECLARE_WRITE16_MEMBER(wbbc97_bitmap_enable_w); - DECLARE_WRITE16_MEMBER(pspikesb_oki_banking_w); - DECLARE_WRITE16_MEMBER(aerfboo2_okim6295_banking_w); - DECLARE_WRITE8_MEMBER(karatblzbl_d7759_write_port_0_w); - DECLARE_WRITE8_MEMBER(karatblzbl_d7759_reset_w); + void karatblzbl_soundlatch_w(uint8_t data); + uint8_t pending_command_r(); + void aerofgt_sh_bankswitch_w(uint8_t data); + void spinlbrk_sh_bankswitch_w(uint8_t data); + void aerfboot_okim6295_banking_w(uint8_t data); + template<int Layer> void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void pspikes_gfxbank_w(uint8_t data); + void pspikesb_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void spikes91_lookup_w(uint16_t data); + void karatblz_gfxbank_w(uint8_t data); + void spinlbrk_gfxbank_w(uint8_t data); + void kickball_gfxbank_w(uint8_t data); + void turbofrc_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void aerofgt_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + template<int Layer> void scrollx_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + template<int Layer> void scrolly_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void pspikes_palette_bank_w(uint8_t data); + void spinlbrk_flip_screen_w(uint8_t data); + void turbofrc_flip_screen_w(uint8_t data); + void wbbc97_bitmap_enable_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void pspikesb_oki_banking_w(uint16_t data); + void aerfboo2_okim6295_banking_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void karatblzbl_d7759_write_port_0_w(uint8_t data); + void karatblzbl_d7759_reset_w(uint8_t data); TILE_GET_INFO_MEMBER(get_pspikes_tile_info); template<int Layer> TILE_GET_INFO_MEMBER(karatblz_tile_info); template<int Layer> TILE_GET_INFO_MEMBER(spinlbrk_tile_info); diff --git a/src/mame/includes/airbustr.h b/src/mame/includes/airbustr.h index b44e16d0fde..0deb971ef52 100644 --- a/src/mame/includes/airbustr.h +++ b/src/mame/includes/airbustr.h @@ -67,16 +67,16 @@ public: required_device<watchdog_timer_device> m_watchdog; required_device_array<generic_latch_8_device, 2> m_soundlatch; - DECLARE_READ8_MEMBER(devram_r); - DECLARE_WRITE8_MEMBER(master_nmi_trigger_w); - DECLARE_WRITE8_MEMBER(master_bankswitch_w); - DECLARE_WRITE8_MEMBER(slave_bankswitch_w); - DECLARE_WRITE8_MEMBER(sound_bankswitch_w); - DECLARE_READ8_MEMBER(soundcommand_status_r); - DECLARE_WRITE8_MEMBER(coin_counter_w); - template<int Layer> DECLARE_WRITE8_MEMBER(videoram_w); - template<int Layer> DECLARE_WRITE8_MEMBER(colorram_w); - DECLARE_WRITE8_MEMBER(scrollregs_w); + uint8_t devram_r(address_space &space, offs_t offset); + void master_nmi_trigger_w(uint8_t data); + void master_bankswitch_w(uint8_t data); + void slave_bankswitch_w(uint8_t data); + void sound_bankswitch_w(uint8_t data); + uint8_t soundcommand_status_r(); + void coin_counter_w(uint8_t data); + template<int Layer> void videoram_w(offs_t offset, uint8_t data); + template<int Layer> void colorram_w(offs_t offset, uint8_t data); + void scrollregs_w(offs_t offset, uint8_t data); void init_airbustr(); template<int Layer> TILE_GET_INFO_MEMBER(get_tile_info); virtual void machine_start() override; diff --git a/src/mame/includes/ajax.h b/src/mame/includes/ajax.h index 6dba7a9e698..105ad24ff37 100644 --- a/src/mame/includes/ajax.h +++ b/src/mame/includes/ajax.h @@ -33,13 +33,13 @@ public: m_lamps(*this, "lamp%u", 0U) { } - DECLARE_WRITE8_MEMBER(sound_bank_w); - DECLARE_READ8_MEMBER(ls138_f10_r); - DECLARE_WRITE8_MEMBER(ls138_f10_w); - DECLARE_WRITE8_MEMBER(bankswitch_2_w); - DECLARE_WRITE8_MEMBER(bankswitch_w); - DECLARE_WRITE8_MEMBER(lamps_w); - DECLARE_WRITE8_MEMBER(k007232_extvol_w); + void sound_bank_w(uint8_t data); + uint8_t ls138_f10_r(offs_t offset); + void ls138_f10_w(offs_t offset, uint8_t data); + void bankswitch_2_w(uint8_t data); + void bankswitch_w(uint8_t data); + void lamps_w(uint8_t data); + void k007232_extvol_w(uint8_t data); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void volume_callback0(uint8_t data); void volume_callback1(uint8_t data); diff --git a/src/mame/includes/aliens.h b/src/mame/includes/aliens.h index 48e8cc1a5e2..a02f6a10c68 100644 --- a/src/mame/includes/aliens.h +++ b/src/mame/includes/aliens.h @@ -42,10 +42,10 @@ public: required_device<generic_latch_8_device> m_soundlatch; required_memory_bank m_rombank; - DECLARE_WRITE8_MEMBER(aliens_coin_counter_w); - DECLARE_WRITE8_MEMBER(aliens_sh_irqtrigger_w); - DECLARE_READ8_MEMBER(k052109_051960_r); - DECLARE_WRITE8_MEMBER(k052109_051960_w); + void aliens_coin_counter_w(uint8_t data); + void aliens_sh_irqtrigger_w(uint8_t data); + uint8_t k052109_051960_r(offs_t offset); + void k052109_051960_w(offs_t offset, uint8_t data); void aliens_snd_bankswitch_w(uint8_t data); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/includes/amiga.h b/src/mame/includes/amiga.h index 65dcf561ee1..9400deb6bd1 100644 --- a/src/mame/includes/amiga.h +++ b/src/mame/includes/amiga.h @@ -433,9 +433,9 @@ public: DECLARE_WRITE_LINE_MEMBER( m68k_reset ); DECLARE_WRITE_LINE_MEMBER( kbreset_w ); - DECLARE_READ16_MEMBER( cia_r ); - DECLARE_WRITE16_MEMBER( cia_w ); - DECLARE_WRITE16_MEMBER( gayle_cia_w ); + uint16_t cia_r(offs_t offset, uint16_t mem_mask = ~0); + void cia_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void gayle_cia_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void cia_0_port_a_write(uint8_t data); DECLARE_WRITE_LINE_MEMBER( cia_0_irq ); uint8_t cia_1_port_a_read(); @@ -453,13 +453,13 @@ public: DECLARE_WRITE_LINE_MEMBER( centronics_perror_w ); DECLARE_WRITE_LINE_MEMBER( centronics_select_w ); - DECLARE_READ16_MEMBER( custom_chip_r ); + uint16_t custom_chip_r(offs_t offset); void custom_chip_w(offs_t offset, uint16_t data); DECLARE_WRITE_LINE_MEMBER( paula_int_w ); - DECLARE_READ16_MEMBER( rom_mirror_r ); - DECLARE_READ32_MEMBER( rom_mirror32_r ); + uint16_t rom_mirror_r(offs_t offset, uint16_t mem_mask = ~0); + uint32_t rom_mirror32_r(offs_t offset, uint32_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(fdc_dskblk_w); DECLARE_WRITE_LINE_MEMBER(fdc_dsksyn_w); diff --git a/src/mame/includes/ampoker2.h b/src/mame/includes/ampoker2.h index 45c1a4dbc56..66d1d7bbd62 100644 --- a/src/mame/includes/ampoker2.h +++ b/src/mame/includes/ampoker2.h @@ -31,15 +31,15 @@ protected: virtual void machine_start() override; private: - DECLARE_WRITE8_MEMBER(port30_w); - DECLARE_WRITE8_MEMBER(port31_w); - DECLARE_WRITE8_MEMBER(port32_w); - DECLARE_WRITE8_MEMBER(port33_w); - DECLARE_WRITE8_MEMBER(port34_w); - DECLARE_WRITE8_MEMBER(port35_w); - DECLARE_WRITE8_MEMBER(port36_w); - DECLARE_WRITE8_MEMBER(watchdog_reset_w); - DECLARE_WRITE8_MEMBER(videoram_w); + void port30_w(uint8_t data); + void port31_w(uint8_t data); + void port32_w(uint8_t data); + void port33_w(uint8_t data); + void port34_w(uint8_t data); + void port35_w(uint8_t data); + void port36_w(uint8_t data); + void watchdog_reset_w(uint8_t data); + void videoram_w(offs_t offset, uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(s2k_get_bg_tile_info); void ampoker2_palette(palette_device &palette) const; diff --git a/src/mame/includes/amspdwy.h b/src/mame/includes/amspdwy.h index cbd4bf74ef4..50346d8da64 100644 --- a/src/mame/includes/amspdwy.h +++ b/src/mame/includes/amspdwy.h @@ -63,12 +63,12 @@ private: uint8_t m_wheel_old[2]; uint8_t m_wheel_return[2]; - DECLARE_READ8_MEMBER(amspdwy_wheel_0_r); - DECLARE_READ8_MEMBER(amspdwy_wheel_1_r); - DECLARE_WRITE8_MEMBER(amspdwy_flipscreen_w); - DECLARE_WRITE8_MEMBER(amspdwy_videoram_w); - DECLARE_WRITE8_MEMBER(amspdwy_colorram_w); - DECLARE_READ8_MEMBER(amspdwy_sound_r); + uint8_t amspdwy_wheel_0_r(); + uint8_t amspdwy_wheel_1_r(); + void amspdwy_flipscreen_w(uint8_t data); + void amspdwy_videoram_w(offs_t offset, uint8_t data); + void amspdwy_colorram_w(offs_t offset, uint8_t data); + uint8_t amspdwy_sound_r(); TILE_GET_INFO_MEMBER(get_tile_info); TILEMAP_MAPPER_MEMBER(tilemap_scan_cols_back); diff --git a/src/mame/includes/angelkds.h b/src/mame/includes/angelkds.h index 473ad31203c..72787df8cd1 100644 --- a/src/mame/includes/angelkds.h +++ b/src/mame/includes/angelkds.h @@ -48,19 +48,19 @@ public: required_device<cpu_device> m_subcpu; uint8_t angeklds_ff_r() { return 0xff; }; void angelkds_cpu_bank_write(uint8_t data); - DECLARE_WRITE8_MEMBER(angelkds_main_sound_w); - DECLARE_READ8_MEMBER(angelkds_main_sound_r); - DECLARE_WRITE8_MEMBER(angelkds_sub_sound_w); - DECLARE_READ8_MEMBER(angelkds_sub_sound_r); - DECLARE_WRITE8_MEMBER(angelkds_txvideoram_w); - DECLARE_WRITE8_MEMBER(angelkds_txbank_write); - DECLARE_WRITE8_MEMBER(angelkds_bgtopvideoram_w); - DECLARE_WRITE8_MEMBER(angelkds_bgtopbank_write); - DECLARE_WRITE8_MEMBER(angelkds_bgtopscroll_write); - DECLARE_WRITE8_MEMBER(angelkds_bgbotvideoram_w); - DECLARE_WRITE8_MEMBER(angelkds_bgbotbank_write); - DECLARE_WRITE8_MEMBER(angelkds_bgbotscroll_write); - DECLARE_WRITE8_MEMBER(angelkds_layer_ctrl_write); + void angelkds_main_sound_w(offs_t offset, uint8_t data); + uint8_t angelkds_main_sound_r(offs_t offset); + void angelkds_sub_sound_w(offs_t offset, uint8_t data); + uint8_t angelkds_sub_sound_r(offs_t offset); + void angelkds_txvideoram_w(offs_t offset, uint8_t data); + void angelkds_txbank_write(uint8_t data); + void angelkds_bgtopvideoram_w(offs_t offset, uint8_t data); + void angelkds_bgtopbank_write(uint8_t data); + void angelkds_bgtopscroll_write(uint8_t data); + void angelkds_bgbotvideoram_w(offs_t offset, uint8_t data); + void angelkds_bgbotbank_write(uint8_t data); + void angelkds_bgbotscroll_write(uint8_t data); + void angelkds_layer_ctrl_write(uint8_t data); void init_angelkds(); TILE_GET_INFO_MEMBER(get_tx_tile_info); TILE_GET_INFO_MEMBER(get_bgtop_tile_info); diff --git a/src/mame/includes/apollo.h b/src/mame/includes/apollo.h index 352e02b9f69..ca852a59235 100644 --- a/src/mame/includes/apollo.h +++ b/src/mame/includes/apollo.h @@ -155,53 +155,53 @@ public: optional_device<apollo_graphics_15i> m_graphics; optional_device<apollo_kbd_device> m_keyboard; - DECLARE_WRITE16_MEMBER(apollo_csr_status_register_w); - DECLARE_READ16_MEMBER(apollo_csr_status_register_r); - DECLARE_WRITE16_MEMBER(apollo_csr_control_register_w); - DECLARE_READ16_MEMBER(apollo_csr_control_register_r); - DECLARE_WRITE8_MEMBER(apollo_dma_1_w); - DECLARE_READ8_MEMBER(apollo_dma_1_r); - DECLARE_WRITE8_MEMBER(apollo_dma_2_w); - DECLARE_READ8_MEMBER(apollo_dma_2_r); - DECLARE_WRITE8_MEMBER(apollo_dma_page_register_w); - DECLARE_READ8_MEMBER(apollo_dma_page_register_r); - DECLARE_WRITE16_MEMBER(apollo_address_translation_map_w); - DECLARE_READ16_MEMBER(apollo_address_translation_map_r); + void apollo_csr_status_register_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t apollo_csr_status_register_r(offs_t offset, uint16_t mem_mask = ~0); + void apollo_csr_control_register_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t apollo_csr_control_register_r(offs_t offset, uint16_t mem_mask = ~0); + void apollo_dma_1_w(offs_t offset, uint8_t data); + uint8_t apollo_dma_1_r(offs_t offset); + void apollo_dma_2_w(offs_t offset, uint8_t data); + uint8_t apollo_dma_2_r(offs_t offset); + void apollo_dma_page_register_w(offs_t offset, uint8_t data); + uint8_t apollo_dma_page_register_r(offs_t offset); + void apollo_address_translation_map_w(offs_t offset, uint16_t data); + uint16_t apollo_address_translation_map_r(offs_t offset); uint8_t apollo_dma_read_byte(offs_t offset); void apollo_dma_write_byte(offs_t offset, uint8_t data); uint8_t apollo_dma_read_word(offs_t offset); void apollo_dma_write_word(offs_t offset, uint8_t data); - DECLARE_WRITE8_MEMBER(apollo_rtc_w); - DECLARE_READ8_MEMBER(apollo_rtc_r); - DECLARE_WRITE8_MEMBER(cache_control_register_w); - DECLARE_READ8_MEMBER(cache_status_register_r); - DECLARE_WRITE8_MEMBER(task_alias_register_w); - DECLARE_READ8_MEMBER(task_alias_register_r); - DECLARE_WRITE16_MEMBER(latch_page_on_parity_error_register_w); - DECLARE_READ16_MEMBER(latch_page_on_parity_error_register_r); - DECLARE_WRITE8_MEMBER(master_req_register_w); - DECLARE_READ8_MEMBER(master_req_register_r); - DECLARE_WRITE16_MEMBER(selective_clear_locations_w); - DECLARE_READ16_MEMBER(selective_clear_locations_r); - DECLARE_READ32_MEMBER(ram_with_parity_r); - DECLARE_WRITE32_MEMBER(ram_with_parity_w); - DECLARE_READ32_MEMBER(apollo_unmapped_r); - DECLARE_WRITE32_MEMBER(apollo_unmapped_w); - DECLARE_WRITE32_MEMBER(apollo_rom_w); - DECLARE_READ16_MEMBER(apollo_atbus_io_r); - DECLARE_WRITE16_MEMBER(apollo_atbus_io_w); - DECLARE_READ16_MEMBER(apollo_atbus_memory_r); - DECLARE_WRITE16_MEMBER(apollo_atbus_memory_w); - DECLARE_READ16_MEMBER(apollo_atbus_unmap_io_r); - DECLARE_WRITE16_MEMBER(apollo_atbus_unmap_io_w); - DECLARE_READ8_MEMBER(apollo_atbus_unmap_r); - DECLARE_WRITE8_MEMBER(apollo_atbus_unmap_w); - DECLARE_WRITE8_MEMBER(dn5500_memory_present_register_w); - DECLARE_READ8_MEMBER(dn5500_memory_present_register_r); - DECLARE_WRITE8_MEMBER(dn5500_11500_w); - DECLARE_READ8_MEMBER(dn5500_11500_r); - DECLARE_WRITE8_MEMBER(dn5500_io_protection_map_w); - DECLARE_READ8_MEMBER(dn5500_io_protection_map_r); + void apollo_rtc_w(offs_t offset, uint8_t data); + uint8_t apollo_rtc_r(offs_t offset); + void cache_control_register_w(offs_t offset, uint8_t data); + uint8_t cache_status_register_r(offs_t offset); + void task_alias_register_w(offs_t offset, uint8_t data); + uint8_t task_alias_register_r(offs_t offset); + void latch_page_on_parity_error_register_w(offs_t offset, uint16_t data); + uint16_t latch_page_on_parity_error_register_r(offs_t offset); + void master_req_register_w(offs_t offset, uint8_t data); + uint8_t master_req_register_r(offs_t offset); + void selective_clear_locations_w(offs_t offset, uint16_t data); + uint16_t selective_clear_locations_r(offs_t offset); + uint32_t ram_with_parity_r(offs_t offset, uint32_t mem_mask = ~0); + void ram_with_parity_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint32_t apollo_unmapped_r(offs_t offset, uint32_t mem_mask = ~0); + void apollo_unmapped_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void apollo_rom_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint16_t apollo_atbus_io_r(offs_t offset, uint16_t mem_mask = ~0); + void apollo_atbus_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t apollo_atbus_memory_r(offs_t offset, uint16_t mem_mask = ~0); + void apollo_atbus_memory_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t apollo_atbus_unmap_io_r(offs_t offset, uint16_t mem_mask = ~0); + void apollo_atbus_unmap_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint8_t apollo_atbus_unmap_r(offs_t offset, uint8_t mem_mask = ~0); + void apollo_atbus_unmap_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0); + void dn5500_memory_present_register_w(offs_t offset, uint8_t data); + uint8_t dn5500_memory_present_register_r(offs_t offset); + void dn5500_11500_w(offs_t offset, uint8_t data); + uint8_t dn5500_11500_r(offs_t offset); + void dn5500_io_protection_map_w(offs_t offset, uint8_t data); + uint8_t dn5500_io_protection_map_r(offs_t offset); void init_dsp3000(); void init_dsp5500(); void init_dn3500(); @@ -384,8 +384,8 @@ public: virtual const char *custom_instance_name() const noexcept override { return "node_id"; } virtual const char *custom_brief_instance_name() const noexcept override { return "ni"; } - DECLARE_WRITE16_MEMBER(write); - DECLARE_READ16_MEMBER(read); + void write(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t read(offs_t offset, uint16_t mem_mask = ~0); void set_node_id_from_disk(); @@ -414,22 +414,22 @@ public: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); // monochrome control - DECLARE_READ8_MEMBER( apollo_mcr_r ); - DECLARE_WRITE8_MEMBER( apollo_mcr_w ); + uint8_t apollo_mcr_r(offs_t offset); + void apollo_mcr_w(offs_t offset, uint8_t data); // monochrome and color memory - DECLARE_READ16_MEMBER( apollo_mem_r ); - DECLARE_WRITE16_MEMBER( apollo_mem_w ); + uint16_t apollo_mem_r(offs_t offset, uint16_t mem_mask = ~0); + void apollo_mem_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); // color control - DECLARE_READ8_MEMBER( apollo_ccr_r ); - DECLARE_WRITE8_MEMBER( apollo_ccr_w ); + uint8_t apollo_ccr_r(offs_t offset); + void apollo_ccr_w(offs_t offset, uint8_t data); - DECLARE_READ16_MEMBER( apollo_mgm_r ); - DECLARE_WRITE16_MEMBER( apollo_mgm_w ); + uint16_t apollo_mgm_r(offs_t offset, uint16_t mem_mask = ~0); + void apollo_mgm_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - DECLARE_READ16_MEMBER( apollo_cgm_r ); - DECLARE_WRITE16_MEMBER( apollo_cgm_w ); + uint16_t apollo_cgm_r(offs_t offset, uint16_t mem_mask = ~0); + void apollo_cgm_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void vblank_state_changed(screen_device &screen, bool vblank_state); diff --git a/src/mame/includes/appoooh.h b/src/mame/includes/appoooh.h index 88673f98215..31f5c587605 100644 --- a/src/mame/includes/appoooh.h +++ b/src/mame/includes/appoooh.h @@ -33,13 +33,13 @@ public: void robowrese(machine_config &config); protected: - DECLARE_WRITE8_MEMBER(adpcm_w); - DECLARE_WRITE8_MEMBER(scroll_w); - DECLARE_WRITE8_MEMBER(fg_videoram_w); - DECLARE_WRITE8_MEMBER(fg_colorram_w); - DECLARE_WRITE8_MEMBER(bg_videoram_w); - DECLARE_WRITE8_MEMBER(bg_colorram_w); - DECLARE_WRITE8_MEMBER(out_w); + void adpcm_w(uint8_t data); + void scroll_w(uint8_t data); + void fg_videoram_w(offs_t offset, uint8_t data); + void fg_colorram_w(offs_t offset, uint8_t data); + void bg_videoram_w(offs_t offset, uint8_t data); + void bg_colorram_w(offs_t offset, uint8_t data); + void out_w(uint8_t data); TILE_GET_INFO_MEMBER(get_fg_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void machine_start() override; diff --git a/src/mame/includes/aquarius.h b/src/mame/includes/aquarius.h index 2d8ebfaa678..d1c8ea069d1 100644 --- a/src/mame/includes/aquarius.h +++ b/src/mame/includes/aquarius.h @@ -84,17 +84,17 @@ private: uint8_t m_scrambler; tilemap_t *m_tilemap; - DECLARE_WRITE8_MEMBER(aquarius_videoram_w); - DECLARE_WRITE8_MEMBER(aquarius_colorram_w); - DECLARE_READ8_MEMBER(cassette_r); - DECLARE_WRITE8_MEMBER(cassette_w); - DECLARE_READ8_MEMBER(vsync_r); - DECLARE_WRITE8_MEMBER(mapper_w); - DECLARE_READ8_MEMBER(printer_r); - DECLARE_WRITE8_MEMBER(printer_w); - DECLARE_READ8_MEMBER(keyboard_r); - DECLARE_WRITE8_MEMBER(scrambler_w); - DECLARE_READ8_MEMBER(cartridge_r); + void aquarius_videoram_w(offs_t offset, uint8_t data); + void aquarius_colorram_w(offs_t offset, uint8_t data); + uint8_t cassette_r(); + void cassette_w(uint8_t data); + uint8_t vsync_r(); + void mapper_w(uint8_t data); + uint8_t printer_r(); + void printer_w(uint8_t data); + uint8_t keyboard_r(offs_t offset); + void scrambler_w(uint8_t data); + uint8_t cartridge_r(offs_t offset); TILE_GET_INFO_MEMBER(aquarius_gettileinfo); void aquarius_palette(palette_device &palette) const; uint32_t screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); diff --git a/src/mame/includes/arabian.h b/src/mame/includes/arabian.h index 0455606a2b8..3142cf04773 100644 --- a/src/mame/includes/arabian.h +++ b/src/mame/includes/arabian.h @@ -49,8 +49,8 @@ private: uint8_t mcu_portk_r(); void mcu_port_o_w(uint8_t data); void mcu_port_p_w(uint8_t data); - DECLARE_WRITE8_MEMBER(arabian_blitter_w); - DECLARE_WRITE8_MEMBER(arabian_videoram_w); + void arabian_blitter_w(offs_t offset, uint8_t data); + void arabian_videoram_w(offs_t offset, uint8_t data); void ay8910_porta_w(uint8_t data); void ay8910_portb_w(uint8_t data); void arabian_palette(palette_device &palette) const; diff --git a/src/mame/includes/archimds.h b/src/mame/includes/archimds.h index e545d01f476..5cb53b4ff44 100644 --- a/src/mame/includes/archimds.h +++ b/src/mame/includes/archimds.h @@ -71,13 +71,13 @@ public: void archimedes_clear_irq_b(int mask); void archimedes_clear_fiq(int mask); - DECLARE_READ32_MEMBER(aristmk5_drame_memc_logical_r); - DECLARE_READ32_MEMBER(archimedes_memc_logical_r); - DECLARE_WRITE32_MEMBER(archimedes_memc_logical_w); - DECLARE_WRITE32_MEMBER(archimedes_memc_w); - DECLARE_WRITE32_MEMBER(archimedes_memc_page_w); - DECLARE_READ32_MEMBER(archimedes_ioc_r); - DECLARE_WRITE32_MEMBER(archimedes_ioc_w); + uint32_t aristmk5_drame_memc_logical_r(offs_t offset); + uint32_t archimedes_memc_logical_r(offs_t offset); + void archimedes_memc_logical_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void archimedes_memc_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void archimedes_memc_page_w(uint32_t data); + uint32_t archimedes_ioc_r(offs_t offset, uint32_t mem_mask = ~0); + void archimedes_ioc_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER( a310_kart_rx_w ); DECLARE_WRITE_LINE_MEMBER( a310_kart_tx_w ); @@ -112,8 +112,8 @@ private: void latch_timer_cnt(int tmr); void a310_set_timer(int tmr); - DECLARE_READ32_MEMBER(ioc_ctrl_r); - DECLARE_WRITE32_MEMBER(ioc_ctrl_w); + uint32_t ioc_ctrl_r(offs_t offset); + void ioc_ctrl_w(offs_t offset, uint32_t data); uint32_t *m_archimedes_memc_physmem; uint32_t m_memc_pagesize; diff --git a/src/mame/includes/arkanoid.h b/src/mame/includes/arkanoid.h index 82a62040406..491efd6ca03 100644 --- a/src/mame/includes/arkanoid.h +++ b/src/mame/includes/arkanoid.h @@ -66,19 +66,19 @@ public: required_device<palette_device> m_palette; - DECLARE_READ8_MEMBER(arkanoid_bootleg_f000_r); - DECLARE_READ8_MEMBER(arkanoid_bootleg_f002_r); - DECLARE_WRITE8_MEMBER(arkanoid_bootleg_d018_w); - DECLARE_READ8_MEMBER(arkanoid_bootleg_d008_r); - DECLARE_WRITE8_MEMBER(arkanoid_videoram_w); - DECLARE_WRITE8_MEMBER(arkanoid_d008_w); - DECLARE_WRITE8_MEMBER(tetrsark_d008_w); - DECLARE_WRITE8_MEMBER(brixian_d008_w); - DECLARE_WRITE8_MEMBER(hexa_d008_w); - DECLARE_READ8_MEMBER(hexaa_f000_r); - DECLARE_WRITE8_MEMBER(hexaa_f000_w); - DECLARE_WRITE8_MEMBER(hexaa_sub_80_w); - DECLARE_READ8_MEMBER(hexaa_sub_90_r); + uint8_t arkanoid_bootleg_f000_r(); + uint8_t arkanoid_bootleg_f002_r(); + void arkanoid_bootleg_d018_w(uint8_t data); + uint8_t arkanoid_bootleg_d008_r(); + void arkanoid_videoram_w(offs_t offset, uint8_t data); + void arkanoid_d008_w(uint8_t data); + void tetrsark_d008_w(uint8_t data); + void brixian_d008_w(uint8_t data); + void hexa_d008_w(uint8_t data); + uint8_t hexaa_f000_r(); + void hexaa_f000_w(uint8_t data); + void hexaa_sub_80_w(uint8_t data); + uint8_t hexaa_sub_90_r(); DECLARE_CUSTOM_INPUT_MEMBER(arkanoid_semaphore_input_r); uint8_t input_mux_r(); void init_block2(); diff --git a/src/mame/includes/artmagic.h b/src/mame/includes/artmagic.h index 2256d3ce787..cda9dc3195a 100644 --- a/src/mame/includes/artmagic.h +++ b/src/mame/includes/artmagic.h @@ -58,11 +58,11 @@ public: uint8_t m_blitter_page; attotime m_blitter_busy_until; emu_timer * m_irq_off_timer; - DECLARE_WRITE16_MEMBER(control_w); - DECLARE_READ16_MEMBER(ultennis_hack_r); - DECLARE_WRITE16_MEMBER(protection_bit_w); - DECLARE_READ16_MEMBER(blitter_r); - DECLARE_WRITE16_MEMBER(blitter_w); + void control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t ultennis_hack_r(); + void protection_bit_w(offs_t offset, uint16_t data); + uint16_t blitter_r(); + void blitter_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(m68k_gen_int); TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg); TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg); diff --git a/src/mame/includes/asterix.h b/src/mame/includes/asterix.h index 5bceb9f5c59..fd9dcd43459 100644 --- a/src/mame/includes/asterix.h +++ b/src/mame/includes/asterix.h @@ -50,11 +50,11 @@ public: required_device<k056832_device> m_k056832; required_device<k05324x_device> m_k053244; required_device<k053251_device> m_k053251; - DECLARE_WRITE16_MEMBER(control2_w); - DECLARE_WRITE8_MEMBER(sound_arm_nmi_w); - DECLARE_WRITE16_MEMBER(sound_irq_w); - DECLARE_WRITE16_MEMBER(protection_w); - DECLARE_WRITE16_MEMBER(asterix_spritebank_w); + void control2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void sound_arm_nmi_w(uint8_t data); + void sound_irq_w(uint16_t data); + void protection_w(address_space &space, offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void asterix_spritebank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void init_asterix(); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/includes/asteroid.h b/src/mame/includes/asteroid.h index 71081755291..56540eaa55c 100644 --- a/src/mame/includes/asteroid.h +++ b/src/mame/includes/asteroid.h @@ -43,18 +43,18 @@ public: DECLARE_WRITE_LINE_MEMBER(coin_counter_left_w); DECLARE_WRITE_LINE_MEMBER(coin_counter_center_w); DECLARE_WRITE_LINE_MEMBER(coin_counter_right_w); - DECLARE_READ8_MEMBER(asteroid_IN0_r); - DECLARE_READ8_MEMBER(asterock_IN0_r); - DECLARE_READ8_MEMBER(asteroid_IN1_r); - DECLARE_READ8_MEMBER(asteroid_DSW1_r); - DECLARE_WRITE8_MEMBER(asteroid_explode_w); - DECLARE_WRITE8_MEMBER(asteroid_thump_w); - DECLARE_WRITE8_MEMBER(asteroid_noise_reset_w); - DECLARE_WRITE8_MEMBER(llander_snd_reset_w); - DECLARE_WRITE8_MEMBER(llander_sounds_w); + uint8_t asteroid_IN0_r(offs_t offset); + uint8_t asterock_IN0_r(offs_t offset); + uint8_t asteroid_IN1_r(offs_t offset); + uint8_t asteroid_DSW1_r(offs_t offset); + void asteroid_explode_w(uint8_t data); + void asteroid_thump_w(uint8_t data); + void asteroid_noise_reset_w(uint8_t data); + void llander_snd_reset_w(uint8_t data); + void llander_sounds_w(uint8_t data); - DECLARE_READ8_MEMBER(earom_read); - DECLARE_WRITE8_MEMBER(earom_write); + uint8_t earom_read(); + void earom_write(offs_t offset, uint8_t data); void earom_control_w(uint8_t data); DECLARE_READ_LINE_MEMBER(clock_r); diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h index e37a6f80952..975e5258c8b 100644 --- a/src/mame/includes/astrocde.h +++ b/src/mame/includes/astrocde.h @@ -111,25 +111,25 @@ public: uint8_t m_profpac_writemode; uint16_t m_profpac_writemask; uint8_t m_profpac_vw; - DECLARE_WRITE8_MEMBER(protected_ram_enable_w); - DECLARE_READ8_MEMBER(protected_ram_r); - DECLARE_WRITE8_MEMBER(protected_ram_w); + void protected_ram_enable_w(uint8_t data); + uint8_t protected_ram_r(offs_t offset); + void protected_ram_w(offs_t offset, uint8_t data); uint8_t input_mux_r(offs_t offset); template<int Coin> DECLARE_WRITE_LINE_MEMBER(coin_counter_w); template<int Bit> DECLARE_WRITE_LINE_MEMBER(sparkle_w); DECLARE_WRITE_LINE_MEMBER(gorf_sound_switch_w); - DECLARE_WRITE8_MEMBER(profpac_banksw_w); - DECLARE_WRITE8_MEMBER(demndrgn_banksw_w); - DECLARE_READ8_MEMBER(video_register_r); - DECLARE_WRITE8_MEMBER(video_register_w); - DECLARE_WRITE8_MEMBER(astrocade_funcgen_w); - DECLARE_WRITE8_MEMBER(expand_register_w); - DECLARE_WRITE8_MEMBER(astrocade_pattern_board_w); - DECLARE_WRITE8_MEMBER(profpac_page_select_w); - DECLARE_READ8_MEMBER(profpac_intercept_r); - DECLARE_WRITE8_MEMBER(profpac_screenram_ctrl_w); - DECLARE_READ8_MEMBER(profpac_videoram_r); - DECLARE_WRITE8_MEMBER(profpac_videoram_w); + void profpac_banksw_w(uint8_t data); + void demndrgn_banksw_w(uint8_t data); + uint8_t video_register_r(offs_t offset); + void video_register_w(offs_t offset, uint8_t data); + void astrocade_funcgen_w(address_space &space, offs_t offset, uint8_t data); + void expand_register_w(uint8_t data); + void astrocade_pattern_board_w(offs_t offset, uint8_t data); + void profpac_page_select_w(uint8_t data); + uint8_t profpac_intercept_r(); + void profpac_screenram_ctrl_w(offs_t offset, uint8_t data); + uint8_t profpac_videoram_r(offs_t offset); + void profpac_videoram_w(offs_t offset, uint8_t data); DECLARE_INPUT_CHANGED_MEMBER(spacezap_monitor); DECLARE_WRITE_LINE_MEMBER(lightpen_trigger_w); void init_profpac(); @@ -197,8 +197,8 @@ public: void seawolf2(machine_config &config); private: - DECLARE_WRITE8_MEMBER(sound_1_w); - DECLARE_WRITE8_MEMBER(sound_2_w); + void sound_1_w(uint8_t data); + void sound_2_w(uint8_t data); void port_map_discrete(address_map &map); @@ -220,8 +220,8 @@ public: void ebases(machine_config &config); DECLARE_CUSTOM_INPUT_MEMBER(trackball_r); private: - DECLARE_WRITE8_MEMBER(trackball_select_w); - DECLARE_WRITE8_MEMBER(coin_w); + void trackball_select_w(uint8_t data); + void coin_w(uint8_t data); void ebases_map(address_map &map); void port_map_ebases(address_map &map); @@ -241,7 +241,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(joystick_r); private: DECLARE_WRITE_LINE_MEMBER(input_select_w); - DECLARE_WRITE8_MEMBER(sound_w); + void sound_w(uint8_t data); void port_map_16col_pattern_demndrgn(address_map &map); @@ -259,9 +259,9 @@ public: void tenpindx(machine_config &config); private: - DECLARE_WRITE8_MEMBER(lamp_w); - DECLARE_WRITE8_MEMBER(counter_w); - DECLARE_WRITE8_MEMBER(lights_w); + void lamp_w(offs_t offset, uint8_t data); + void counter_w(uint8_t data); + void lights_w(uint8_t data); virtual void machine_start() override; diff --git a/src/mame/includes/astrof.h b/src/mame/includes/astrof.h index 80b3c6a5029..e4bf8971d1f 100644 --- a/src/mame/includes/astrof.h +++ b/src/mame/includes/astrof.h @@ -51,24 +51,24 @@ public: optional_device<samples_device> m_samples; // astrof & abattle optional_device<sn76477_device> m_sn; // tomahawk required_device<screen_device> m_screen; - DECLARE_READ8_MEMBER(irq_clear_r); - DECLARE_WRITE8_MEMBER(astrof_videoram_w); - DECLARE_WRITE8_MEMBER(tomahawk_videoram_w); - DECLARE_WRITE8_MEMBER(video_control_1_w); - DECLARE_WRITE8_MEMBER(astrof_video_control_2_w); - DECLARE_WRITE8_MEMBER(spfghmk2_video_control_2_w); - DECLARE_WRITE8_MEMBER(tomahawk_video_control_2_w); - DECLARE_READ8_MEMBER(shoot_r); - DECLARE_READ8_MEMBER(abattle_coin_prot_r); - DECLARE_READ8_MEMBER(afire_coin_prot_r); - DECLARE_READ8_MEMBER(tomahawk_protection_r); + uint8_t irq_clear_r(); + void astrof_videoram_w(offs_t offset, uint8_t data); + void tomahawk_videoram_w(offs_t offset, uint8_t data); + void video_control_1_w(uint8_t data); + void astrof_video_control_2_w(uint8_t data); + void spfghmk2_video_control_2_w(uint8_t data); + void tomahawk_video_control_2_w(uint8_t data); + uint8_t shoot_r(); + uint8_t abattle_coin_prot_r(); + uint8_t afire_coin_prot_r(); + uint8_t tomahawk_protection_r(); DECLARE_CUSTOM_INPUT_MEMBER(astrof_p1_controls_r); DECLARE_CUSTOM_INPUT_MEMBER(astrof_p2_controls_r); DECLARE_CUSTOM_INPUT_MEMBER(tomahawk_controls_r); - DECLARE_WRITE8_MEMBER(astrof_audio_1_w); - DECLARE_WRITE8_MEMBER(astrof_audio_2_w); - DECLARE_WRITE8_MEMBER(spfghmk2_audio_w); - DECLARE_WRITE8_MEMBER(tomahawk_audio_w); + void astrof_audio_1_w(uint8_t data); + void astrof_audio_2_w(uint8_t data); + void spfghmk2_audio_w(uint8_t data); + void tomahawk_audio_w(uint8_t data); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(service_coin_inserted); void init_afire(); diff --git a/src/mame/includes/atarifb.h b/src/mame/includes/atarifb.h index d3d6ea9b31f..738fb508096 100644 --- a/src/mame/includes/atarifb.h +++ b/src/mame/includes/atarifb.h @@ -42,20 +42,20 @@ public: m_leds(*this, "led%u", 0U) { } - DECLARE_WRITE8_MEMBER(atarifb_out1_w); - DECLARE_WRITE8_MEMBER(atarifb4_out1_w); - DECLARE_WRITE8_MEMBER(abaseb_out1_w); - DECLARE_WRITE8_MEMBER(soccer_out1_w); - DECLARE_WRITE8_MEMBER(atarifb_out2_w); - DECLARE_WRITE8_MEMBER(soccer_out2_w); - DECLARE_WRITE8_MEMBER(atarifb_out3_w); - DECLARE_READ8_MEMBER(atarifb_in0_r); - DECLARE_READ8_MEMBER(atarifb_in2_r); - DECLARE_READ8_MEMBER(atarifb4_in0_r); - DECLARE_READ8_MEMBER(atarifb4_in2_r); - DECLARE_WRITE8_MEMBER(atarifb_alpha1_videoram_w); - DECLARE_WRITE8_MEMBER(atarifb_alpha2_videoram_w); - DECLARE_WRITE8_MEMBER(atarifb_field_videoram_w); + void atarifb_out1_w(uint8_t data); + void atarifb4_out1_w(uint8_t data); + void abaseb_out1_w(uint8_t data); + void soccer_out1_w(uint8_t data); + void atarifb_out2_w(uint8_t data); + void soccer_out2_w(uint8_t data); + void atarifb_out3_w(uint8_t data); + uint8_t atarifb_in0_r(); + uint8_t atarifb_in2_r(); + uint8_t atarifb4_in0_r(); + uint8_t atarifb4_in2_r(); + void atarifb_alpha1_videoram_w(offs_t offset, uint8_t data); + void atarifb_alpha2_videoram_w(offs_t offset, uint8_t data); + void atarifb_field_videoram_w(offs_t offset, uint8_t data); TILE_GET_INFO_MEMBER(alpha1_get_tile_info); TILE_GET_INFO_MEMBER(alpha2_get_tile_info); TILE_GET_INFO_MEMBER(field_get_tile_info); diff --git a/src/mame/includes/atarig1.h b/src/mame/includes/atarig1.h index a7073dcca7a..cf648105dc0 100644 --- a/src/mame/includes/atarig1.h +++ b/src/mame/includes/atarig1.h @@ -56,10 +56,10 @@ public: virtual void device_post_load() override; void video_int_ack_w(uint16_t data = 0); TIMER_DEVICE_CALLBACK_MEMBER(scanline_update); - DECLARE_WRITE16_MEMBER(mo_command_w); - DECLARE_WRITE16_MEMBER(a2d_select_w); - DECLARE_READ16_MEMBER(a2d_data_r); - DECLARE_READ16_MEMBER(pitfightb_cheap_slapstic_r); + void mo_command_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void a2d_select_w(offs_t offset, uint16_t data); + uint16_t a2d_data_r(); + uint16_t pitfightb_cheap_slapstic_r(offs_t offset); void update_bank(int bank); void init_hydrap(); void init_hydra(); diff --git a/src/mame/includes/atarig42.h b/src/mame/includes/atarig42.h index 92edd38aa69..155585e2d5e 100644 --- a/src/mame/includes/atarig42.h +++ b/src/mame/includes/atarig42.h @@ -37,10 +37,10 @@ protected: virtual void machine_start() override; void video_int_ack_w(uint16_t data = 0); TIMER_DEVICE_CALLBACK_MEMBER(scanline_update); - DECLARE_WRITE8_MEMBER(a2d_select_w); - DECLARE_READ8_MEMBER(a2d_data_r); - DECLARE_WRITE16_MEMBER(io_latch_w); - DECLARE_WRITE16_MEMBER(mo_command_w); + void a2d_select_w(offs_t offset, uint8_t data); + uint8_t a2d_data_r(offs_t offset); + void io_latch_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void mo_command_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); TILE_GET_INFO_MEMBER(get_alpha_tile_info); TILE_GET_INFO_MEMBER(get_playfield_tile_info); TILEMAP_MAPPER_MEMBER(atarig42_playfield_scan); @@ -84,8 +84,8 @@ public: void atarig42_0x200(machine_config &config); protected: - DECLARE_READ16_MEMBER(roadriot_sloop_data_r); - DECLARE_WRITE16_MEMBER(roadriot_sloop_data_w); + uint16_t roadriot_sloop_data_r(offs_t offset); + void roadriot_sloop_data_w(offs_t offset, uint16_t data); void roadriot_sloop_tweak(int offset); }; @@ -97,8 +97,8 @@ public: void atarig42_0x400(machine_config &config); protected: - DECLARE_READ16_MEMBER(guardians_sloop_data_r); - DECLARE_WRITE16_MEMBER(guardians_sloop_data_w); + uint16_t guardians_sloop_data_r(offs_t offset); + void guardians_sloop_data_w(offs_t offset, uint16_t data); void guardians_sloop_tweak(int offset); }; diff --git a/src/mame/includes/atarigt.h b/src/mame/includes/atarigt.h index b914be2cc18..3b37ca4a666 100644 --- a/src/mame/includes/atarigt.h +++ b/src/mame/includes/atarigt.h @@ -82,17 +82,17 @@ public: void scanline_int_ack_w(uint32_t data = 0); void video_int_ack_w(uint32_t data = 0); TIMER_DEVICE_CALLBACK_MEMBER(scanline_update); - DECLARE_READ32_MEMBER(special_port2_r); - DECLARE_READ32_MEMBER(special_port3_r); - DECLARE_READ8_MEMBER(analog_port_r); - DECLARE_WRITE32_MEMBER(latch_w); - DECLARE_WRITE32_MEMBER(mo_command_w); - DECLARE_WRITE32_MEMBER(led_w); - DECLARE_READ32_MEMBER(sound_data_r); - DECLARE_WRITE32_MEMBER(sound_data_w); - DECLARE_READ32_MEMBER(colorram_protection_r); - DECLARE_WRITE32_MEMBER(colorram_protection_w); - DECLARE_WRITE32_MEMBER(tmek_pf_w); + uint32_t special_port2_r(); + uint32_t special_port3_r(); + uint8_t analog_port_r(offs_t offset); + void latch_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void mo_command_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void led_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint32_t sound_data_r(offs_t offset, uint32_t mem_mask = ~0); + void sound_data_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint32_t colorram_protection_r(address_space &space, offs_t offset, uint32_t mem_mask = ~0); + void colorram_protection_w(address_space &space, offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void tmek_pf_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); void cage_irq_callback(uint8_t data); diff --git a/src/mame/includes/atarigx2.h b/src/mame/includes/atarigx2.h index 2ff617ae91e..0a7c65d2f98 100644 --- a/src/mame/includes/atarigx2.h +++ b/src/mame/includes/atarigx2.h @@ -43,19 +43,19 @@ protected: virtual void video_start() override; void video_int_ack_w(uint32_t data = 0); TIMER_DEVICE_CALLBACK_MEMBER(scanline_update); - DECLARE_READ32_MEMBER(special_port2_r); - DECLARE_READ32_MEMBER(special_port3_r); - DECLARE_READ8_MEMBER(a2d_data_r); - DECLARE_WRITE32_MEMBER(latch_w); - DECLARE_WRITE32_MEMBER(mo_command_w); - DECLARE_WRITE32_MEMBER(atarigx2_protection_w); - DECLARE_READ32_MEMBER(atarigx2_protection_r); - DECLARE_READ32_MEMBER(rrreveng_prot_r); + uint32_t special_port2_r(); + uint32_t special_port3_r(); + uint8_t a2d_data_r(offs_t offset); + void latch_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void mo_command_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void atarigx2_protection_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint32_t atarigx2_protection_r(offs_t offset, uint32_t mem_mask = ~0); + uint32_t rrreveng_prot_r(); TILE_GET_INFO_MEMBER(get_alpha_tile_info); TILE_GET_INFO_MEMBER(get_playfield_tile_info); TILEMAP_MAPPER_MEMBER(atarigx2_playfield_scan); uint32_t screen_update_atarigx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_WRITE16_MEMBER( atarigx2_mo_control_w ); + void atarigx2_mo_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void atarigx2(machine_config &config); void main_map(address_map &map); diff --git a/src/mame/includes/atarist.h b/src/mame/includes/atarist.h index 600939053f7..8b740f24b59 100644 --- a/src/mame/includes/atarist.h +++ b/src/mame/includes/atarist.h @@ -168,42 +168,42 @@ protected: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); // video - DECLARE_READ8_MEMBER( shifter_base_r ); - DECLARE_READ8_MEMBER( shifter_counter_r ); - DECLARE_READ8_MEMBER( shifter_sync_r ); - DECLARE_READ16_MEMBER( shifter_palette_r ); - DECLARE_READ8_MEMBER( shifter_mode_r ); - - DECLARE_WRITE8_MEMBER( shifter_base_w ); - DECLARE_WRITE8_MEMBER( shifter_sync_w ); - DECLARE_WRITE16_MEMBER( shifter_palette_w ); - DECLARE_WRITE8_MEMBER( shifter_mode_w ); - - DECLARE_READ16_MEMBER( blitter_halftone_r ); - DECLARE_READ16_MEMBER( blitter_src_inc_x_r ); - DECLARE_READ16_MEMBER( blitter_src_inc_y_r ); - DECLARE_READ16_MEMBER( blitter_src_r ); - DECLARE_READ16_MEMBER( blitter_end_mask_r ); - DECLARE_READ16_MEMBER( blitter_dst_inc_x_r ); - DECLARE_READ16_MEMBER( blitter_dst_inc_y_r ); - DECLARE_READ16_MEMBER( blitter_dst_r ); - DECLARE_READ16_MEMBER( blitter_count_x_r ); - DECLARE_READ16_MEMBER( blitter_count_y_r ); - DECLARE_READ16_MEMBER( blitter_op_r ); - DECLARE_READ16_MEMBER( blitter_ctrl_r ); - - DECLARE_WRITE16_MEMBER( blitter_halftone_w ); - DECLARE_WRITE16_MEMBER( blitter_src_inc_x_w ); - DECLARE_WRITE16_MEMBER( blitter_src_inc_y_w ); - DECLARE_WRITE16_MEMBER( blitter_src_w ); - DECLARE_WRITE16_MEMBER( blitter_end_mask_w ); - DECLARE_WRITE16_MEMBER( blitter_dst_inc_x_w ); - DECLARE_WRITE16_MEMBER( blitter_dst_inc_y_w ); - DECLARE_WRITE16_MEMBER( blitter_dst_w ); - DECLARE_WRITE16_MEMBER( blitter_count_x_w ); - DECLARE_WRITE16_MEMBER( blitter_count_y_w ); - DECLARE_WRITE16_MEMBER( blitter_op_w ); - DECLARE_WRITE16_MEMBER( blitter_ctrl_w ); + uint8_t shifter_base_r(offs_t offset); + uint8_t shifter_counter_r(offs_t offset); + uint8_t shifter_sync_r(); + uint16_t shifter_palette_r(offs_t offset); + uint8_t shifter_mode_r(); + + void shifter_base_w(offs_t offset, uint8_t data); + void shifter_sync_w(uint8_t data); + void shifter_palette_w(offs_t offset, uint16_t data); + void shifter_mode_w(uint8_t data); + + uint16_t blitter_halftone_r(offs_t offset); + uint16_t blitter_src_inc_x_r(); + uint16_t blitter_src_inc_y_r(); + uint16_t blitter_src_r(offs_t offset); + uint16_t blitter_end_mask_r(offs_t offset); + uint16_t blitter_dst_inc_x_r(); + uint16_t blitter_dst_inc_y_r(); + uint16_t blitter_dst_r(offs_t offset); + uint16_t blitter_count_x_r(); + uint16_t blitter_count_y_r(); + uint16_t blitter_op_r(offs_t offset, uint16_t mem_mask = ~0); + uint16_t blitter_ctrl_r(offs_t offset, uint16_t mem_mask = ~0); + + void blitter_halftone_w(offs_t offset, uint16_t data); + void blitter_src_inc_x_w(uint16_t data); + void blitter_src_inc_y_w(uint16_t data); + void blitter_src_w(offs_t offset, uint16_t data); + void blitter_end_mask_w(offs_t offset, uint16_t data); + void blitter_dst_inc_x_w(uint16_t data); + void blitter_dst_inc_y_w(uint16_t data); + void blitter_dst_w(offs_t offset, uint16_t data); + void blitter_count_x_w(uint16_t data); + void blitter_count_y_w(uint16_t data); + void blitter_op_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void blitter_ctrl_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void mouse_tick(); inline pen_t shift_mode_0(); @@ -220,16 +220,16 @@ protected: void blitter_tick(); // driver - DECLARE_READ16_MEMBER( fdc_data_r ); - DECLARE_WRITE16_MEMBER( fdc_data_w ); - DECLARE_READ16_MEMBER( dma_status_r ); - DECLARE_WRITE16_MEMBER( dma_mode_w ); - DECLARE_READ8_MEMBER( dma_counter_r ); - DECLARE_WRITE8_MEMBER( dma_base_w ); - DECLARE_READ8_MEMBER( mmu_r ); - DECLARE_WRITE8_MEMBER( mmu_w ); - DECLARE_READ16_MEMBER( berr_r ); - DECLARE_WRITE16_MEMBER( berr_w ); + uint16_t fdc_data_r(offs_t offset); + void fdc_data_w(offs_t offset, uint16_t data); + uint16_t dma_status_r(); + void dma_mode_w(uint16_t data); + uint8_t dma_counter_r(offs_t offset); + void dma_base_w(offs_t offset, uint8_t data); + uint8_t mmu_r(); + void mmu_w(uint8_t data); + uint16_t berr_r(); + void berr_w(uint16_t data); uint8_t ikbd_port1_r(); uint8_t ikbd_port2_r(); void ikbd_port2_w(uint8_t data); @@ -353,8 +353,8 @@ public: : st_state(mconfig, type, tag) { } - DECLARE_READ16_MEMBER( fpu_r ); - DECLARE_WRITE16_MEMBER( fpu_w ); + uint16_t fpu_r(); + void fpu_w(uint16_t data); void megast(machine_config &config); void megast_map(address_map &map); }; @@ -375,29 +375,29 @@ public: optional_device<lmc1992_device> m_lmc1992; - DECLARE_READ8_MEMBER( shifter_base_low_r ); - DECLARE_WRITE8_MEMBER( shifter_base_low_w ); - DECLARE_READ8_MEMBER( shifter_counter_r ); - DECLARE_WRITE8_MEMBER( shifter_counter_w ); - DECLARE_WRITE16_MEMBER( shifter_palette_w ); - DECLARE_READ8_MEMBER( shifter_lineofs_r ); - DECLARE_WRITE8_MEMBER( shifter_lineofs_w ); - DECLARE_READ8_MEMBER( shifter_pixelofs_r ); - DECLARE_WRITE8_MEMBER( shifter_pixelofs_w ); - - DECLARE_READ8_MEMBER( sound_dma_control_r ); - DECLARE_READ8_MEMBER( sound_dma_base_r ); - DECLARE_READ8_MEMBER( sound_dma_counter_r ); - DECLARE_READ8_MEMBER( sound_dma_end_r ); - DECLARE_READ8_MEMBER( sound_mode_r ); - DECLARE_WRITE8_MEMBER( sound_dma_control_w ); - DECLARE_WRITE8_MEMBER( sound_dma_base_w ); - DECLARE_WRITE8_MEMBER( sound_dma_end_w ); - DECLARE_WRITE8_MEMBER( sound_mode_w ); - DECLARE_READ16_MEMBER( microwire_data_r ); - DECLARE_WRITE16_MEMBER( microwire_data_w ); - DECLARE_READ16_MEMBER( microwire_mask_r ); - DECLARE_WRITE16_MEMBER( microwire_mask_w ); + uint8_t shifter_base_low_r(); + void shifter_base_low_w(uint8_t data); + uint8_t shifter_counter_r(offs_t offset); + void shifter_counter_w(offs_t offset, uint8_t data); + void shifter_palette_w(offs_t offset, uint16_t data); + uint8_t shifter_lineofs_r(); + void shifter_lineofs_w(uint8_t data); + uint8_t shifter_pixelofs_r(); + void shifter_pixelofs_w(uint8_t data); + + uint8_t sound_dma_control_r(); + uint8_t sound_dma_base_r(offs_t offset); + uint8_t sound_dma_counter_r(offs_t offset); + uint8_t sound_dma_end_r(offs_t offset); + uint8_t sound_mode_r(); + void sound_dma_control_w(uint8_t data); + void sound_dma_base_w(offs_t offset, uint8_t data); + void sound_dma_end_w(offs_t offset, uint8_t data); + void sound_mode_w(uint8_t data); + uint16_t microwire_data_r(); + void microwire_data_w(uint16_t data); + uint16_t microwire_mask_r(); + void microwire_mask_w(uint16_t data); DECLARE_WRITE_LINE_MEMBER( write_monochrome ); @@ -450,8 +450,8 @@ public: : ste_state(mconfig, type, tag) { } - DECLARE_READ16_MEMBER( cache_r ); - DECLARE_WRITE16_MEMBER( cache_w ); + uint16_t cache_r(); + void cache_w(uint16_t data); uint16_t m_cache; void megaste(machine_config &config); @@ -471,11 +471,11 @@ public: required_ioport m_sw400; - DECLARE_READ16_MEMBER( config_r ); - DECLARE_WRITE16_MEMBER( lcd_control_w ); + uint16_t config_r(); + void lcd_control_w(uint16_t data); void psg_pa_w(uint8_t data); - DECLARE_READ8_MEMBER( mfp_gpio_r ); + uint8_t mfp_gpio_r(); void stbook_map(address_map &map); protected: virtual void machine_start() override; diff --git a/src/mame/includes/atarisy1.h b/src/mame/includes/atarisy1.h index fd5eb7b9f43..aac95be7055 100644 --- a/src/mame/includes/atarisy1.h +++ b/src/mame/includes/atarisy1.h @@ -135,12 +135,12 @@ protected: virtual void update_timers(int scanline); void decode_gfx(uint16_t *pflookup, uint16_t *molookup); int get_bank(uint8_t prom1, uint8_t prom2, int bpp); - DECLARE_READ16_MEMBER( atarisy1_int3state_r ); - DECLARE_WRITE16_MEMBER( atarisy1_spriteram_w ); + uint16_t atarisy1_int3state_r(); + void atarisy1_spriteram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void bankselect_w(uint8_t data); - DECLARE_WRITE16_MEMBER( atarisy1_xscroll_w ); - DECLARE_WRITE16_MEMBER( atarisy1_yscroll_w ); - DECLARE_WRITE16_MEMBER( atarisy1_priority_w ); + void atarisy1_xscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void atarisy1_yscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void atarisy1_priority_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); static const atari_motion_objects_config s_mob_config; void add_adc(machine_config &config); diff --git a/src/mame/includes/atarisy2.h b/src/mame/includes/atarisy2.h index e0c171be570..d3e54ff346d 100644 --- a/src/mame/includes/atarisy2.h +++ b/src/mame/includes/atarisy2.h @@ -146,11 +146,11 @@ private: DECLARE_WRITE_LINE_MEMBER(vblank_int); TIMER_CALLBACK_MEMBER(delayed_int_enable_w); TIMER_CALLBACK_MEMBER(reset_yscroll_callback); - DECLARE_READ16_MEMBER(slapstic_r); - DECLARE_WRITE16_MEMBER(slapstic_w); - DECLARE_WRITE16_MEMBER(yscroll_w); - DECLARE_WRITE16_MEMBER(xscroll_w); - DECLARE_WRITE16_MEMBER(spriteram_w); + uint16_t slapstic_r(address_space &space, offs_t offset); + void slapstic_w(address_space &space, offs_t offset, uint16_t data); + void yscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void xscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void spriteram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); static rgb_t RRRRGGGGBBBBIIII(uint32_t raw); static const atari_motion_objects_config s_mob_config; diff --git a/src/mame/includes/atetris.h b/src/mame/includes/atetris.h index ad7c4da8c86..2a29c4b7325 100644 --- a/src/mame/includes/atetris.h +++ b/src/mame/includes/atetris.h @@ -54,10 +54,10 @@ protected: emu_timer *m_interrupt_timer; tilemap_t *m_bg_tilemap; - DECLARE_WRITE8_MEMBER(irq_ack_w); - DECLARE_READ8_MEMBER(slapstic_r); - DECLARE_WRITE8_MEMBER(coincount_w); - DECLARE_WRITE8_MEMBER(videoram_w); + void irq_ack_w(uint8_t data); + uint8_t slapstic_r(address_space &space, offs_t offset); + void coincount_w(uint8_t data); + void videoram_w(offs_t offset, uint8_t data); TILE_GET_INFO_MEMBER(get_tile_info); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(interrupt_gen); diff --git a/src/mame/includes/aussiebyte.h b/src/mame/includes/aussiebyte.h index 7974d53210c..488b8f249ff 100644 --- a/src/mame/includes/aussiebyte.h +++ b/src/mame/includes/aussiebyte.h @@ -75,23 +75,23 @@ protected: uint8_t io_read_byte(offs_t offset); void io_write_byte(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(write_centronics_busy); - DECLARE_WRITE8_MEMBER(port15_w); - DECLARE_WRITE8_MEMBER(port16_w); - DECLARE_WRITE8_MEMBER(port17_w); - DECLARE_WRITE8_MEMBER(port18_w); - DECLARE_READ8_MEMBER(port19_r); - DECLARE_WRITE8_MEMBER(port1a_w); - DECLARE_WRITE8_MEMBER(port1b_w); - DECLARE_WRITE8_MEMBER(port1c_w); + void port15_w(uint8_t data); + void port16_w(uint8_t data); + void port17_w(uint8_t data); + void port18_w(uint8_t data); + uint8_t port19_r(); + void port1a_w(uint8_t data); + void port1b_w(uint8_t data); + void port1c_w(uint8_t data); void port20_w(uint8_t data); - DECLARE_READ8_MEMBER(port28_r); - DECLARE_READ8_MEMBER(port33_r); - DECLARE_WRITE8_MEMBER(port34_w); - DECLARE_WRITE8_MEMBER(port35_w); - DECLARE_READ8_MEMBER(port36_r); - DECLARE_READ8_MEMBER(port37_r); - DECLARE_READ8_MEMBER(rtc_r); - DECLARE_WRITE8_MEMBER(rtc_w); + uint8_t port28_r(); + uint8_t port33_r(); + void port34_w(uint8_t data); + void port35_w(uint8_t data); + uint8_t port36_r(); + uint8_t port37_r(); + uint8_t rtc_r(offs_t offset); + void rtc_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w); DECLARE_WRITE_LINE_MEMBER(fdc_drq_w); DECLARE_WRITE_LINE_MEMBER(busreq_w); @@ -101,8 +101,8 @@ protected: DECLARE_WRITE_LINE_MEMBER(sio2_rdya_w); DECLARE_WRITE_LINE_MEMBER(sio2_rdyb_w); DECLARE_WRITE_LINE_MEMBER(ctc_z2_w); - DECLARE_WRITE8_MEMBER(address_w); - DECLARE_WRITE8_MEMBER(register_w); + void address_w(uint8_t data); + void register_w(uint8_t data); MC6845_UPDATE_ROW(crtc_update_row); MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr); diff --git a/src/mame/includes/avalnche.h b/src/mame/includes/avalnche.h index f32a56e5500..124fe10a1b2 100644 --- a/src/mame/includes/avalnche.h +++ b/src/mame/includes/avalnche.h @@ -27,13 +27,13 @@ public: uint8_t m_avalance_video_inverted; DECLARE_WRITE_LINE_MEMBER(video_invert_w); - DECLARE_WRITE8_MEMBER(catch_coin_counter_w); + void catch_coin_counter_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(credit_1_lamp_w); DECLARE_WRITE_LINE_MEMBER(credit_2_lamp_w); DECLARE_WRITE_LINE_MEMBER(start_lamp_w); virtual void machine_start() override; uint32_t screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - DECLARE_WRITE8_MEMBER(avalnche_noise_amplitude_w); + void avalnche_noise_amplitude_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(catch_aud0_w); DECLARE_WRITE_LINE_MEMBER(catch_aud1_w); DECLARE_WRITE_LINE_MEMBER(catch_aud2_w); diff --git a/src/mame/includes/avigo.h b/src/mame/includes/avigo.h index 3462ebd91cb..aa9390808a1 100644 --- a/src/mame/includes/avigo.h +++ b/src/mame/includes/avigo.h @@ -54,7 +54,7 @@ public: DECLARE_INPUT_CHANGED_MEMBER(power_down_irq); protected: - // defined in drivers/avigo.c + // defined in drivers/avigo.cpp virtual void machine_start() override; virtual void machine_reset() override; void refresh_ints(); @@ -63,26 +63,26 @@ protected: DECLARE_WRITE_LINE_MEMBER( tc8521_alarm_int ); DECLARE_WRITE_LINE_MEMBER( com_interrupt ); - DECLARE_READ8_MEMBER(key_data_read_r); - DECLARE_WRITE8_MEMBER(set_key_line_w); - DECLARE_WRITE8_MEMBER(port2_w); - DECLARE_READ8_MEMBER(irq_r); - DECLARE_WRITE8_MEMBER(irq_w); - DECLARE_READ8_MEMBER(bank1_r); - DECLARE_READ8_MEMBER(bank2_r); - DECLARE_WRITE8_MEMBER(bank1_w); - DECLARE_WRITE8_MEMBER(bank2_w); - DECLARE_READ8_MEMBER(ad_control_status_r); - DECLARE_WRITE8_MEMBER(ad_control_status_w); - DECLARE_READ8_MEMBER(ad_data_r); - DECLARE_WRITE8_MEMBER(speaker_w); - DECLARE_READ8_MEMBER(port_04_r); - - // defined in video/avigo.c + uint8_t key_data_read_r(); + void set_key_line_w(uint8_t data); + void port2_w(uint8_t data); + uint8_t irq_r(); + void irq_w(uint8_t data); + uint8_t bank1_r(offs_t offset); + uint8_t bank2_r(offs_t offset); + void bank1_w(offs_t offset, uint8_t data); + void bank2_w(offs_t offset, uint8_t data); + uint8_t ad_control_status_r(); + void ad_control_status_w(uint8_t data); + uint8_t ad_data_r(); + void speaker_w(uint8_t data); + uint8_t port_04_r(); + + // defined in video/avigo.cpp virtual void video_start() override; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_READ8_MEMBER(vid_memory_r); - DECLARE_WRITE8_MEMBER(vid_memory_w); + uint8_t vid_memory_r(offs_t offset); + void vid_memory_w(offs_t offset, uint8_t data); TIMER_DEVICE_CALLBACK_MEMBER(avigo_scan_timer); TIMER_DEVICE_CALLBACK_MEMBER(avigo_1hz_timer); diff --git a/src/mame/includes/aztarac.h b/src/mame/includes/aztarac.h index 116944048e0..53895de975f 100644 --- a/src/mame/includes/aztarac.h +++ b/src/mame/includes/aztarac.h @@ -39,13 +39,13 @@ public: int m_ycenter; void nvram_store_w(uint16_t data); - DECLARE_READ16_MEMBER(joystick_r); + uint16_t joystick_r(); void ubr_w(uint8_t data); - DECLARE_READ16_MEMBER(sound_r); - DECLARE_WRITE16_MEMBER(sound_w); - DECLARE_READ8_MEMBER(snd_command_r); - DECLARE_READ8_MEMBER(snd_status_r); - DECLARE_WRITE8_MEMBER(snd_status_w); + uint16_t sound_r(); + void sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint8_t snd_command_r(); + uint8_t snd_status_r(); + void snd_status_w(uint8_t data); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/includes/b2m.h b/src/mame/includes/b2m.h index 2961d4daa7d..520a569d9bb 100644 --- a/src/mame/includes/b2m.h +++ b/src/mame/includes/b2m.h @@ -35,11 +35,11 @@ public: , m_pic(*this, "pic8259") { } - DECLARE_READ8_MEMBER(b2m_keyboard_r); - DECLARE_WRITE8_MEMBER(b2m_palette_w); - DECLARE_READ8_MEMBER(b2m_palette_r); - DECLARE_WRITE8_MEMBER(b2m_localmachine_w); - DECLARE_READ8_MEMBER(b2m_localmachine_r); + uint8_t b2m_keyboard_r(offs_t offset); + void b2m_palette_w(offs_t offset, uint8_t data); + uint8_t b2m_palette_r(offs_t offset); + void b2m_localmachine_w(uint8_t data); + uint8_t b2m_localmachine_r(); void init_b2m(); void b2m_palette(palette_device &palette) const; diff --git a/src/mame/includes/badlands.h b/src/mame/includes/badlands.h index 2aa555dfa97..bcf7d47311f 100644 --- a/src/mame/includes/badlands.h +++ b/src/mame/includes/badlands.h @@ -74,9 +74,9 @@ public: DECLARE_VIDEO_START(badlands); uint32_t screen_update_badlands(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_int); - DECLARE_WRITE16_MEMBER(video_int_ack_w); + void video_int_ack_w(uint16_t data); TIMER_DEVICE_CALLBACK_MEMBER(sound_scanline); - DECLARE_WRITE16_MEMBER( badlands_pf_bank_w ); + void badlands_pf_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); static const atari_motion_objects_config s_mob_config; void badlands(machine_config &config); @@ -97,11 +97,11 @@ public: m_spriteram(*this, "spriteram") {} - DECLARE_READ8_MEMBER(bootleg_shared_r); - DECLARE_WRITE8_MEMBER(bootleg_shared_w); - DECLARE_WRITE8_MEMBER(bootleg_main_irq_w); - DECLARE_READ16_MEMBER(badlandsb_unk_r); - DECLARE_READ8_MEMBER(sound_response_r); + uint8_t bootleg_shared_r(offs_t offset); + void bootleg_shared_w(offs_t offset, uint8_t data); + void bootleg_main_irq_w(uint8_t data); + uint16_t badlandsb_unk_r(); + uint8_t sound_response_r(); TIMER_DEVICE_CALLBACK_MEMBER(bootleg_sound_scanline); void badlandsb(machine_config &config); diff --git a/src/mame/includes/bagman.h b/src/mame/includes/bagman.h index 1973072600b..8d1cba713d8 100644 --- a/src/mame/includes/bagman.h +++ b/src/mame/includes/bagman.h @@ -36,19 +36,19 @@ protected: // common DECLARE_WRITE_LINE_MEMBER(coin_counter_w); DECLARE_WRITE_LINE_MEMBER(irq_mask_w); - DECLARE_WRITE8_MEMBER(videoram_w); - DECLARE_WRITE8_MEMBER(colorram_w); + void videoram_w(offs_t offset, uint8_t data); + void colorram_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(flipscreen_x_w); DECLARE_WRITE_LINE_MEMBER(flipscreen_y_w); DECLARE_WRITE_LINE_MEMBER(video_enable_w); // bagman - DECLARE_WRITE8_MEMBER(ls259_w); + void ls259_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(tmsprom_bit_w); DECLARE_WRITE_LINE_MEMBER(tmsprom_csq0_w); DECLARE_WRITE_LINE_MEMBER(tmsprom_csq1_w); - DECLARE_WRITE8_MEMBER(pal16r6_w); - DECLARE_READ8_MEMBER(pal16r6_r); + void pal16r6_w(offs_t offset, uint8_t data); + uint8_t pal16r6_r(); TILE_GET_INFO_MEMBER(get_bg_tile_info); diff --git a/src/mame/includes/balsente.h b/src/mame/includes/balsente.h index 70405d7b53c..3de49567989 100644 --- a/src/mame/includes/balsente.h +++ b/src/mame/includes/balsente.h @@ -95,10 +95,10 @@ public: void init_gghost(); private: - DECLARE_WRITE8_MEMBER(random_reset_w); - DECLARE_READ8_MEMBER(random_num_r); - DECLARE_WRITE8_MEMBER(rombank_select_w); - DECLARE_WRITE8_MEMBER(rombank2_select_w); + void random_reset_w(uint8_t data); + uint8_t random_num_r(); + void rombank_select_w(uint8_t data); + void rombank2_select_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(out0_w); DECLARE_WRITE_LINE_MEMBER(out1_w); DECLARE_WRITE_LINE_MEMBER(out2_w); @@ -107,25 +107,25 @@ private: DECLARE_WRITE_LINE_MEMBER(out5_w); DECLARE_WRITE_LINE_MEMBER(out6_w); DECLARE_WRITE_LINE_MEMBER(nvrecall_w); - DECLARE_READ8_MEMBER(novram_8bit_r); - DECLARE_WRITE8_MEMBER(novram_8bit_w); - DECLARE_WRITE8_MEMBER(acia_w); - DECLARE_READ8_MEMBER(adc_data_r); - DECLARE_WRITE8_MEMBER(adc_select_w); - DECLARE_WRITE8_MEMBER(spiker_expand_w); - DECLARE_READ8_MEMBER(spiker_expand_r); - DECLARE_READ8_MEMBER(grudge_steering_r); - DECLARE_READ8_MEMBER(shrike_shared_6809_r); - DECLARE_WRITE8_MEMBER(shrike_shared_6809_w); - DECLARE_WRITE16_MEMBER(shrike_io_68k_w); - DECLARE_READ16_MEMBER(shrike_io_68k_r); - DECLARE_READ8_MEMBER(teamht_extra_r); - DECLARE_WRITE8_MEMBER(teamht_multiplex_select_w); - - DECLARE_WRITE8_MEMBER(videoram_w); - DECLARE_WRITE8_MEMBER(palette_select_w); - DECLARE_WRITE8_MEMBER(paletteram_w); - DECLARE_WRITE8_MEMBER(shrike_sprite_select_w); + uint8_t novram_8bit_r(address_space &space, offs_t offset); + void novram_8bit_w(offs_t offset, uint8_t data); + void acia_w(offs_t offset, uint8_t data); + uint8_t adc_data_r(); + void adc_select_w(offs_t offset, uint8_t data); + void spiker_expand_w(offs_t offset, uint8_t data); + uint8_t spiker_expand_r(); + uint8_t grudge_steering_r(); + uint8_t shrike_shared_6809_r(offs_t offset); + void shrike_shared_6809_w(offs_t offset, uint8_t data); + void shrike_io_68k_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t shrike_io_68k_r(offs_t offset, uint16_t mem_mask = ~0); + uint8_t teamht_extra_r(); + void teamht_multiplex_select_w(offs_t offset, uint8_t data); + + void videoram_w(offs_t offset, uint8_t data); + void palette_select_w(uint8_t data); + void paletteram_w(offs_t offset, uint8_t data); + void shrike_sprite_select_w(uint8_t data); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/includes/bankp.h b/src/mame/includes/bankp.h index bd716183e49..b1750f95f6b 100644 --- a/src/mame/includes/bankp.h +++ b/src/mame/includes/bankp.h @@ -40,12 +40,12 @@ public: int m_priority; uint8_t m_nmi_mask; - DECLARE_WRITE8_MEMBER(scroll_w); - DECLARE_WRITE8_MEMBER(videoram_w); - DECLARE_WRITE8_MEMBER(colorram_w); - DECLARE_WRITE8_MEMBER(videoram2_w); - DECLARE_WRITE8_MEMBER(colorram2_w); - DECLARE_WRITE8_MEMBER(out_w); + void scroll_w(uint8_t data); + void videoram_w(offs_t offset, uint8_t data); + void colorram_w(offs_t offset, uint8_t data); + void videoram2_w(offs_t offset, uint8_t data); + void colorram2_w(offs_t offset, uint8_t data); + void out_w(uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_fg_tile_info); virtual void machine_reset() override; diff --git a/src/mame/includes/baraduke.h b/src/mame/includes/baraduke.h index 8c3a1178ad0..4cd1216a85d 100644 --- a/src/mame/includes/baraduke.h +++ b/src/mame/includes/baraduke.h @@ -31,14 +31,14 @@ public: void baraduke_lamps_w(uint8_t data); void baraduke_irq_ack_w(uint8_t data); uint8_t soundkludge_r(); - DECLARE_READ8_MEMBER(baraduke_videoram_r); - DECLARE_WRITE8_MEMBER(baraduke_videoram_w); - DECLARE_READ8_MEMBER(baraduke_textram_r); - DECLARE_WRITE8_MEMBER(baraduke_textram_w); - DECLARE_WRITE8_MEMBER(baraduke_scroll0_w); - DECLARE_WRITE8_MEMBER(baraduke_scroll1_w); - DECLARE_READ8_MEMBER(baraduke_spriteram_r); - DECLARE_WRITE8_MEMBER(baraduke_spriteram_w); + uint8_t baraduke_videoram_r(offs_t offset); + void baraduke_videoram_w(offs_t offset, uint8_t data); + uint8_t baraduke_textram_r(offs_t offset); + void baraduke_textram_w(offs_t offset, uint8_t data); + void baraduke_scroll0_w(offs_t offset, uint8_t data); + void baraduke_scroll1_w(offs_t offset, uint8_t data); + uint8_t baraduke_spriteram_r(offs_t offset); + void baraduke_spriteram_w(offs_t offset, uint8_t data); void init_baraduke(); TILEMAP_MAPPER_MEMBER(tx_tilemap_scan); TILE_GET_INFO_MEMBER(tx_get_tile_info); @@ -48,7 +48,7 @@ public: void baraduke_palette(palette_device &palette) const; uint32_t screen_update_baraduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(screen_vblank_baraduke); - void scroll_w(address_space &space, int layer, int offset, int data); + void scroll_w(int layer, int offset, int data); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int sprite_priority); void set_scroll(int layer); void baraduke(machine_config &config); diff --git a/src/mame/includes/batman.h b/src/mame/includes/batman.h index 811d410c91b..219118a7e8a 100644 --- a/src/mame/includes/batman.h +++ b/src/mame/includes/batman.h @@ -33,7 +33,7 @@ public: protected: virtual void machine_start() override; - DECLARE_WRITE16_MEMBER(latch_w); + void latch_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); TILE_GET_INFO_MEMBER(get_alpha_tile_info); TILE_GET_INFO_MEMBER(get_playfield_tile_info); TILE_GET_INFO_MEMBER(get_playfield2_tile_info); diff --git a/src/mame/includes/battlane.h b/src/mame/includes/battlane.h index 25103c5057a..742e73e802b 100644 --- a/src/mame/includes/battlane.h +++ b/src/mame/includes/battlane.h @@ -37,14 +37,14 @@ public: required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; - DECLARE_WRITE8_MEMBER(battlane_cpu_command_w); - DECLARE_WRITE8_MEMBER(battlane_palette_w); - DECLARE_WRITE8_MEMBER(battlane_scrollx_w); - DECLARE_WRITE8_MEMBER(battlane_scrolly_w); - DECLARE_WRITE8_MEMBER(battlane_tileram_w); - DECLARE_WRITE8_MEMBER(battlane_spriteram_w); - DECLARE_WRITE8_MEMBER(battlane_bitmap_w); - DECLARE_WRITE8_MEMBER(battlane_video_ctrl_w); + void battlane_cpu_command_w(uint8_t data); + void battlane_palette_w(offs_t offset, uint8_t data); + void battlane_scrollx_w(uint8_t data); + void battlane_scrolly_w(uint8_t data); + void battlane_tileram_w(offs_t offset, uint8_t data); + void battlane_spriteram_w(offs_t offset, uint8_t data); + void battlane_bitmap_w(offs_t offset, uint8_t data); + void battlane_video_ctrl_w(uint8_t data); TILE_GET_INFO_MEMBER(get_tile_info_bg); TILEMAP_MAPPER_MEMBER(battlane_tilemap_scan_rows_2x2); virtual void machine_start() override; diff --git a/src/mame/includes/battlex.h b/src/mame/includes/battlex.h index f38fc2606a1..b8ac7a1dee9 100644 --- a/src/mame/includes/battlex.h +++ b/src/mame/includes/battlex.h @@ -31,12 +31,12 @@ public: uint8_t m_scroll_lsb; uint8_t m_scroll_msb; uint8_t m_starfield_enabled; - DECLARE_WRITE8_MEMBER(battlex_palette_w); - DECLARE_WRITE8_MEMBER(battlex_scroll_x_lsb_w); - DECLARE_WRITE8_MEMBER(battlex_scroll_x_msb_w); - DECLARE_WRITE8_MEMBER(battlex_scroll_starfield_w); - DECLARE_WRITE8_MEMBER(battlex_videoram_w); - DECLARE_WRITE8_MEMBER(battlex_flipscreen_w); + void battlex_palette_w(offs_t offset, uint8_t data); + void battlex_scroll_x_lsb_w(uint8_t data); + void battlex_scroll_x_msb_w(uint8_t data); + void battlex_scroll_starfield_w(uint8_t data); + void battlex_videoram_w(offs_t offset, uint8_t data); + void battlex_flipscreen_w(uint8_t data); DECLARE_CUSTOM_INPUT_MEMBER(battlex_in0_b4_r); void init_battlex(); TILE_GET_INFO_MEMBER(get_bg_tile_info); diff --git a/src/mame/includes/battlnts.h b/src/mame/includes/battlnts.h index 3d15885af5c..8580e7bf8f6 100644 --- a/src/mame/includes/battlnts.h +++ b/src/mame/includes/battlnts.h @@ -37,9 +37,9 @@ public: required_device<gfxdecode_device> m_gfxdecode; required_memory_bank m_rombank; - DECLARE_WRITE8_MEMBER(battlnts_sh_irqtrigger_w); - DECLARE_WRITE8_MEMBER(battlnts_bankswitch_w); - DECLARE_WRITE8_MEMBER(battlnts_spritebank_w); + void battlnts_sh_irqtrigger_w(uint8_t data); + void battlnts_bankswitch_w(uint8_t data); + void battlnts_spritebank_w(uint8_t data); virtual void machine_start() override; virtual void machine_reset() override; uint32_t screen_update_battlnts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); diff --git a/src/mame/includes/bbusters.h b/src/mame/includes/bbusters.h index e0e23fd988c..251888e4419 100644 --- a/src/mame/includes/bbusters.h +++ b/src/mame/includes/bbusters.h @@ -54,10 +54,10 @@ protected: TILE_GET_INFO_MEMBER(get_tile_info); template<int Layer, int Gfx> TILE_GET_INFO_MEMBER(get_pf_tile_info); - DECLARE_WRITE8_MEMBER(sound_cpu_w); - DECLARE_WRITE16_MEMBER(video_w); - template<int Layer> DECLARE_WRITE16_MEMBER(pf_w); - DECLARE_WRITE8_MEMBER(coin_counter_w); + void sound_cpu_w(uint8_t data); + void video_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + template<int Layer> void pf_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void coin_counter_w(uint8_t data); const uint8_t *get_source_ptr(gfx_element *gfx, uint32_t sprite, int dx, int dy, int block); void draw_block(screen_device &screen, bitmap_ind16 &dest,int x,int y,int size,int flipx,int flipy,uint32_t sprite,int color,int bank,int block,int priority); @@ -83,8 +83,8 @@ protected: private: required_shared_ptr<uint16_t> m_eprom_data; - DECLARE_READ16_MEMBER(eprom_r); - DECLARE_WRITE16_MEMBER(three_gun_output_w); + uint16_t eprom_r(offs_t offset); + void three_gun_output_w(uint16_t data); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void bbusters_map(address_map &map); @@ -104,8 +104,8 @@ protected: virtual void video_start() override; private: - DECLARE_WRITE16_MEMBER(two_gun_output_w); - DECLARE_READ16_MEMBER(mechatt_gun_r); + void two_gun_output_w(uint16_t data); + uint16_t mechatt_gun_r(offs_t offset); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void mechatt_map(address_map &map); diff --git a/src/mame/includes/beathead.h b/src/mame/includes/beathead.h index 639f23c5480..1eaf5d5f7d3 100644 --- a/src/mame/includes/beathead.h +++ b/src/mame/includes/beathead.h @@ -36,23 +36,21 @@ public: void beathead(machine_config &config); protected: - // in drivers/beathead.c + // in drivers/beathead.cpp void update_interrupts(); - DECLARE_WRITE32_MEMBER( interrupt_control_w ); - DECLARE_READ32_MEMBER( interrupt_control_r ); - DECLARE_WRITE32_MEMBER( sound_reset_w ); - DECLARE_WRITE32_MEMBER( coin_count_w ); - DECLARE_READ32_MEMBER( speedup_r ); - DECLARE_READ32_MEMBER( movie_speedup_r ); - - // in video/beathead.c - DECLARE_WRITE32_MEMBER( vram_transparent_w ); - DECLARE_WRITE32_MEMBER( vram_bulk_w ); - DECLARE_WRITE32_MEMBER( vram_latch_w ); - DECLARE_WRITE32_MEMBER( vram_copy_w ); - DECLARE_WRITE32_MEMBER( finescroll_w ); - DECLARE_READ32_MEMBER( hsync_ram_r ); - DECLARE_WRITE32_MEMBER( hsync_ram_w ); + void interrupt_control_w(offs_t offset, uint32_t data); + uint32_t interrupt_control_r(); + void sound_reset_w(offs_t offset, uint32_t data); + void coin_count_w(offs_t offset, uint32_t data); + + // in video/beathead.cpp + void vram_transparent_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void vram_bulk_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void vram_latch_w(offs_t offset, uint32_t data); + void vram_copy_w(offs_t offset, uint32_t data); + void finescroll_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint32_t hsync_ram_r(offs_t offset); + void hsync_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); TIMER_DEVICE_CALLBACK_MEMBER(scanline_callback); virtual void machine_reset() override; diff --git a/src/mame/includes/bebox.h b/src/mame/includes/bebox.h index 542b2b99c44..aa2bbc60d8f 100644 --- a/src/mame/includes/bebox.h +++ b/src/mame/includes/bebox.h @@ -80,29 +80,29 @@ public: DECLARE_WRITE_LINE_MEMBER(pc_dack2_w); DECLARE_WRITE_LINE_MEMBER(pc_dack3_w); DECLARE_WRITE_LINE_MEMBER(bebox_timer0_w); - DECLARE_READ64_MEMBER(bebox_cpu0_imask_r); - DECLARE_READ64_MEMBER(bebox_cpu1_imask_r); - DECLARE_READ64_MEMBER(bebox_interrupt_sources_r); - DECLARE_READ64_MEMBER(bebox_crossproc_interrupts_r); - DECLARE_READ64_MEMBER(bebox_interrupt_ack_r); - DECLARE_READ8_MEMBER(bebox_page_r); - DECLARE_READ8_MEMBER(bebox_80000480_r); - DECLARE_READ8_MEMBER(bebox_flash_r); - - DECLARE_WRITE64_MEMBER(bebox_cpu0_imask_w); - DECLARE_WRITE64_MEMBER(bebox_cpu1_imask_w); - DECLARE_WRITE64_MEMBER(bebox_crossproc_interrupts_w); - DECLARE_WRITE64_MEMBER(bebox_processor_resets_w); - DECLARE_WRITE8_MEMBER(bebox_page_w); - DECLARE_WRITE8_MEMBER(bebox_80000480_w); - DECLARE_WRITE8_MEMBER(bebox_flash_w); - DECLARE_READ8_MEMBER(at_dma8237_1_r); - DECLARE_WRITE8_MEMBER(at_dma8237_1_w); + uint64_t bebox_cpu0_imask_r(); + uint64_t bebox_cpu1_imask_r(); + uint64_t bebox_interrupt_sources_r(); + uint64_t bebox_crossproc_interrupts_r(address_space &space); + uint64_t bebox_interrupt_ack_r(); + uint8_t bebox_page_r(offs_t offset); + uint8_t bebox_80000480_r(); + uint8_t bebox_flash_r(offs_t offset); + + void bebox_cpu0_imask_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void bebox_cpu1_imask_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void bebox_crossproc_interrupts_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + void bebox_processor_resets_w(uint64_t data); + void bebox_page_w(offs_t offset, uint8_t data); + void bebox_80000480_w(offs_t offset, uint8_t data); + void bebox_flash_w(offs_t offset, uint8_t data); + uint8_t at_dma8237_1_r(offs_t offset); + void at_dma8237_1_w(offs_t offset, uint8_t data); uint8_t bebox_dma_read_byte(offs_t offset); void bebox_dma_write_byte(offs_t offset, uint8_t data); - DECLARE_READ64_MEMBER(scsi53c810_r); - DECLARE_WRITE64_MEMBER(scsi53c810_w); - DECLARE_READ64_MEMBER(bb_slave_64be_r); + uint64_t scsi53c810_r(offs_t offset, uint64_t mem_mask = ~0); + void scsi53c810_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0); + uint64_t bb_slave_64be_r(offs_t offset, uint64_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(bebox_ide_interrupt); diff --git a/src/mame/includes/bfm_sc4.h b/src/mame/includes/bfm_sc4.h index 8a80b640a3d..1c722adfaa1 100644 --- a/src/mame/includes/bfm_sc4.h +++ b/src/mame/includes/bfm_sc4.h @@ -120,8 +120,8 @@ protected: virtual void machine_start() override; - DECLARE_WRITE8_MEMBER(mux_output_w); - DECLARE_WRITE8_MEMBER(mux_output2_w); + void mux_output_w(offs_t offset, uint8_t data); + void mux_output2_w(offs_t offset, uint8_t data); void bfm_sc4_reset_serial_vfd(); void bfm_sc45_write_serial_vfd(bool cs, bool clock, bool data); }; @@ -175,10 +175,10 @@ public: DECLARE_WRITE_LINE_MEMBER(bfmdm01_busy); - DECLARE_READ16_MEMBER(sc4_mem_r); - DECLARE_WRITE16_MEMBER(sc4_mem_w); + uint16_t sc4_mem_r(offs_t offset, uint16_t mem_mask = ~0); + void sc4_mem_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - DECLARE_READ16_MEMBER(sc4_cs1_r); + uint16_t sc4_cs1_r(offs_t offset, uint16_t mem_mask = ~0); DECLARE_WRITE_LINE_MEMBER(bfm_sc4_duart_irq_handler); DECLARE_WRITE_LINE_MEMBER(bfm_sc4_duart_txa); @@ -605,8 +605,8 @@ public: virtual void machine_reset() override; void bfm_sc4_68307_porta_w(address_space &space, bool dedicated, uint8_t data, uint8_t line_mask); - DECLARE_WRITE8_MEMBER( bfm_sc4_reel3_w ); - DECLARE_WRITE8_MEMBER( bfm_sc4_reel4_w ); + void bfm_sc4_reel3_w(uint8_t data); + void bfm_sc4_reel4_w(uint8_t data); void bfm_sc4_68307_portb_w(address_space &space, bool dedicated, uint16_t data, uint16_t line_mask); uint8_t bfm_sc4_68307_porta_r(address_space &space, bool dedicated, uint8_t line_mask); uint16_t bfm_sc4_68307_portb_r(address_space &space, bool dedicated, uint16_t line_mask); @@ -656,8 +656,8 @@ public: required_region_ptr<uint32_t> m_adder4cpuregion; std::unique_ptr<uint32_t[]> m_adder4ram; - DECLARE_READ32_MEMBER(adder4_mem_r); - DECLARE_WRITE32_MEMBER(adder4_mem_w); + uint32_t adder4_mem_r(offs_t offset, uint32_t mem_mask = ~0); + void adder4_mem_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); virtual void machine_start() override; // devices diff --git a/src/mame/includes/bfm_sc5.h b/src/mame/includes/bfm_sc5.h index 1a59bb8b572..2f461a33fcd 100644 --- a/src/mame/includes/bfm_sc5.h +++ b/src/mame/includes/bfm_sc5.h @@ -25,13 +25,13 @@ protected: required_device<m68000_base_device> m_maincpu; - DECLARE_READ8_MEMBER( sc5_10202F0_r ); - DECLARE_WRITE8_MEMBER( sc5_10202F0_w ); - DECLARE_WRITE16_MEMBER( sc5_duart_w ); + uint8_t sc5_10202F0_r(offs_t offset); + void sc5_10202F0_w(offs_t offset, uint8_t data); + void sc5_duart_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - DECLARE_READ8_MEMBER( sc5_mux1_r ); - DECLARE_WRITE8_MEMBER( sc5_mux1_w ); - DECLARE_WRITE8_MEMBER( sc5_mux2_w ); + uint8_t sc5_mux1_r(offs_t offset); + void sc5_mux1_w(offs_t offset, uint8_t data); + void sc5_mux2_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(bfm_sc5_duart_irq_handler); DECLARE_WRITE_LINE_MEMBER(bfm_sc5_duart_txa); diff --git a/src/mame/includes/bigevglf.h b/src/mame/includes/bigevglf.h index b5e56b13393..727d2a51e1a 100644 --- a/src/mame/includes/bigevglf.h +++ b/src/mame/includes/bigevglf.h @@ -46,22 +46,22 @@ public: /* devices */ required_device<cpu_device> m_audiocpu; optional_device<taito68705_mcu_device> m_bmcu; - DECLARE_WRITE8_MEMBER(beg_banking_w); - DECLARE_READ8_MEMBER(soundstate_r); - DECLARE_WRITE8_MEMBER(beg13_a_clr_w); - DECLARE_WRITE8_MEMBER(beg13_b_clr_w); - DECLARE_WRITE8_MEMBER(beg13_a_set_w); - DECLARE_WRITE8_MEMBER(beg13_b_set_w); - DECLARE_READ8_MEMBER(beg_status_r); - DECLARE_READ8_MEMBER(beg_trackball_x_r); - DECLARE_READ8_MEMBER(beg_trackball_y_r); - DECLARE_WRITE8_MEMBER(beg_port08_w); - DECLARE_READ8_MEMBER(sub_cpu_mcu_coin_port_r); - DECLARE_WRITE8_MEMBER(bigevglf_palette_w); - DECLARE_WRITE8_MEMBER(bigevglf_gfxcontrol_w); - DECLARE_WRITE8_MEMBER(bigevglf_vidram_addr_w); - DECLARE_WRITE8_MEMBER(bigevglf_vidram_w); - DECLARE_READ8_MEMBER(bigevglf_vidram_r); + void beg_banking_w(uint8_t data); + uint8_t soundstate_r(); + void beg13_a_clr_w(uint8_t data); + void beg13_b_clr_w(uint8_t data); + void beg13_a_set_w(uint8_t data); + void beg13_b_set_w(uint8_t data); + uint8_t beg_status_r(); + uint8_t beg_trackball_x_r(); + uint8_t beg_trackball_y_r(); + void beg_port08_w(uint8_t data); + uint8_t sub_cpu_mcu_coin_port_r(); + void bigevglf_palette_w(offs_t offset, uint8_t data); + void bigevglf_gfxcontrol_w(uint8_t data); + void bigevglf_vidram_addr_w(uint8_t data); + void bigevglf_vidram_w(offs_t offset, uint8_t data); + uint8_t bigevglf_vidram_r(offs_t offset); void init_bigevglf(); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/includes/bigstrkb.h b/src/mame/includes/bigstrkb.h index 27aedc05d4b..2339443675d 100644 --- a/src/mame/includes/bigstrkb.h +++ b/src/mame/includes/bigstrkb.h @@ -39,9 +39,9 @@ public: tilemap_t *m_tilemap2; tilemap_t *m_tilemap3; - DECLARE_WRITE16_MEMBER(videoram_w); - DECLARE_WRITE16_MEMBER(videoram2_w); - DECLARE_WRITE16_MEMBER(videoram3_w); + void videoram_w(offs_t offset, uint16_t data); + void videoram2_w(offs_t offset, uint16_t data); + void videoram3_w(offs_t offset, uint16_t data); TILEMAP_MAPPER_MEMBER(bg_scan); TILE_GET_INFO_MEMBER(get_tile_info); diff --git a/src/mame/includes/bishi.h b/src/mame/includes/bishi.h index 7fc4b1b1ef0..b58de249bfa 100644 --- a/src/mame/includes/bishi.h +++ b/src/mame/includes/bishi.h @@ -35,11 +35,11 @@ public: m_screen(*this, "screen") { } - DECLARE_READ16_MEMBER(control_r); - DECLARE_WRITE16_MEMBER(control_w); - DECLARE_WRITE16_MEMBER(control2_w); - DECLARE_READ16_MEMBER(bishi_mirror_r); - DECLARE_READ16_MEMBER(bishi_K056832_rom_r); + uint16_t control_r(); + void control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void control2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t bishi_mirror_r(offs_t offset); + uint16_t bishi_K056832_rom_r(offs_t offset); uint32_t screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(bishi_scanline); K056832_CB_MEMBER(tile_callback); diff --git a/src/mame/includes/bk.h b/src/mame/includes/bk.h index 91e7a4463d9..702f983989b 100644 --- a/src/mame/includes/bk.h +++ b/src/mame/includes/bk.h @@ -36,17 +36,17 @@ private: uint16_t m_key_irq_vector; uint16_t m_drive; emu_timer *m_kbd_timer; - DECLARE_READ16_MEMBER(bk_key_state_r); - DECLARE_READ16_MEMBER(bk_key_code_r); - DECLARE_READ16_MEMBER(bk_vid_scrool_r); - DECLARE_READ16_MEMBER(bk_key_press_r); - DECLARE_WRITE16_MEMBER(bk_key_state_w); - DECLARE_WRITE16_MEMBER(bk_vid_scrool_w); - DECLARE_WRITE16_MEMBER(bk_key_press_w); - DECLARE_READ16_MEMBER(bk_floppy_cmd_r); - DECLARE_WRITE16_MEMBER(bk_floppy_cmd_w); - DECLARE_READ16_MEMBER(bk_floppy_data_r); - DECLARE_WRITE16_MEMBER(bk_floppy_data_w); + uint16_t bk_key_state_r(); + uint16_t bk_key_code_r(); + uint16_t bk_vid_scrool_r(); + uint16_t bk_key_press_r(); + void bk_key_state_w(uint16_t data); + void bk_vid_scrool_w(uint16_t data); + void bk_key_press_w(uint16_t data); + uint16_t bk_floppy_cmd_r(); + void bk_floppy_cmd_w(uint16_t data); + uint16_t bk_floppy_data_r(); + void bk_floppy_data_w(uint16_t data); virtual void machine_start() override; virtual void machine_reset() override; virtual void video_start() override; diff --git a/src/mame/includes/bking.h b/src/mame/includes/bking.h index ebb1c5495f4..4b35e8e0265 100644 --- a/src/mame/includes/bking.h +++ b/src/mame/includes/bking.h @@ -64,30 +64,30 @@ public: required_device<generic_latch_8_device> m_soundlatch; required_device<input_merger_device> m_soundnmi; - DECLARE_READ8_MEMBER(bking_sndnmi_disable_r); - DECLARE_WRITE8_MEMBER(bking_sndnmi_enable_w); - DECLARE_WRITE8_MEMBER(bking_soundlatch_w); - DECLARE_WRITE8_MEMBER(bking3_addr_l_w); - DECLARE_WRITE8_MEMBER(bking3_addr_h_w); - DECLARE_READ8_MEMBER(bking3_extrarom_r); - DECLARE_READ8_MEMBER(bking3_ext_check_r); - DECLARE_READ8_MEMBER(bking3_mcu_status_r); - DECLARE_WRITE8_MEMBER(bking_xld1_w); - DECLARE_WRITE8_MEMBER(bking_yld1_w); - DECLARE_WRITE8_MEMBER(bking_xld2_w); - DECLARE_WRITE8_MEMBER(bking_yld2_w); - DECLARE_WRITE8_MEMBER(bking_xld3_w); - DECLARE_WRITE8_MEMBER(bking_yld3_w); - DECLARE_WRITE8_MEMBER(bking_cont1_w); - DECLARE_WRITE8_MEMBER(bking_cont2_w); - DECLARE_WRITE8_MEMBER(bking_cont3_w); - DECLARE_WRITE8_MEMBER(bking_msk_w); - DECLARE_WRITE8_MEMBER(bking_hitclr_w); - DECLARE_WRITE8_MEMBER(bking_playfield_w); - DECLARE_READ8_MEMBER(bking_input_port_5_r); - DECLARE_READ8_MEMBER(bking_input_port_6_r); - DECLARE_READ8_MEMBER(bking_pos_r); - DECLARE_WRITE8_MEMBER(unk_w); + uint8_t bking_sndnmi_disable_r(); + void bking_sndnmi_enable_w(uint8_t data); + void bking_soundlatch_w(uint8_t data); + void bking3_addr_l_w(uint8_t data); + void bking3_addr_h_w(uint8_t data); + uint8_t bking3_extrarom_r(); + uint8_t bking3_ext_check_r(); + uint8_t bking3_mcu_status_r(); + void bking_xld1_w(uint8_t data); + void bking_yld1_w(uint8_t data); + void bking_xld2_w(uint8_t data); + void bking_yld2_w(uint8_t data); + void bking_xld3_w(uint8_t data); + void bking_yld3_w(uint8_t data); + void bking_cont1_w(uint8_t data); + void bking_cont2_w(uint8_t data); + void bking_cont3_w(uint8_t data); + void bking_msk_w(uint8_t data); + void bking_hitclr_w(uint8_t data); + void bking_playfield_w(offs_t offset, uint8_t data); + uint8_t bking_input_port_5_r(); + uint8_t bking_input_port_6_r(); + uint8_t bking_pos_r(offs_t offset); + void unk_w(uint8_t data); void port_b_w(uint8_t data); TILE_GET_INFO_MEMBER(get_tile_info); virtual void machine_start() override; diff --git a/src/mame/includes/bladestl.h b/src/mame/includes/bladestl.h index 89709fcbeed..8bbb13efc93 100644 --- a/src/mame/includes/bladestl.h +++ b/src/mame/includes/bladestl.h @@ -40,11 +40,11 @@ public: { } /* devices */ - DECLARE_READ8_MEMBER(trackball_r); - DECLARE_WRITE8_MEMBER(bladestl_bankswitch_w); + uint8_t trackball_r(offs_t offset); + void bladestl_bankswitch_w(uint8_t data); void bladestl_port_B_w(uint8_t data); - DECLARE_READ8_MEMBER(bladestl_speech_busy_r); - DECLARE_WRITE8_MEMBER(bladestl_speech_ctrl_w); + uint8_t bladestl_speech_busy_r(); + void bladestl_speech_ctrl_w(uint8_t data); void bladestl_palette(palette_device &palette) const; uint32_t screen_update_bladestl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(bladestl_scanline); diff --git a/src/mame/includes/blktiger.h b/src/mame/includes/blktiger.h index abac0a027b0..0c3b92bd972 100644 --- a/src/mame/includes/blktiger.h +++ b/src/mame/includes/blktiger.h @@ -53,21 +53,21 @@ public: /* devices */ optional_device<i8751_device> m_mcu; required_device<cpu_device> m_audiocpu; - DECLARE_READ8_MEMBER(blktiger_from_mcu_r); - DECLARE_WRITE8_MEMBER(blktiger_to_mcu_w); + uint8_t blktiger_from_mcu_r(); + void blktiger_to_mcu_w(uint8_t data); uint8_t blktiger_from_main_r(); void blktiger_to_main_w(uint8_t data); - DECLARE_WRITE8_MEMBER(blktiger_bankswitch_w); - DECLARE_WRITE8_MEMBER(blktiger_coinlockout_w); - DECLARE_WRITE8_MEMBER(blktiger_txvideoram_w); - DECLARE_READ8_MEMBER(blktiger_bgvideoram_r); - DECLARE_WRITE8_MEMBER(blktiger_bgvideoram_w); - DECLARE_WRITE8_MEMBER(blktiger_bgvideoram_bank_w); - DECLARE_WRITE8_MEMBER(blktiger_scrolly_w); - DECLARE_WRITE8_MEMBER(blktiger_scrollx_w); - DECLARE_WRITE8_MEMBER(blktiger_video_control_w); - DECLARE_WRITE8_MEMBER(blktiger_video_enable_w); - DECLARE_WRITE8_MEMBER(blktiger_screen_layout_w); + void blktiger_bankswitch_w(uint8_t data); + void blktiger_coinlockout_w(uint8_t data); + void blktiger_txvideoram_w(offs_t offset, uint8_t data); + uint8_t blktiger_bgvideoram_r(offs_t offset); + void blktiger_bgvideoram_w(offs_t offset, uint8_t data); + void blktiger_bgvideoram_bank_w(uint8_t data); + void blktiger_scrolly_w(offs_t offset, uint8_t data); + void blktiger_scrollx_w(offs_t offset, uint8_t data); + void blktiger_video_control_w(uint8_t data); + void blktiger_video_enable_w(uint8_t data); + void blktiger_screen_layout_w(uint8_t data); TILEMAP_MAPPER_MEMBER(bg8x4_scan); TILEMAP_MAPPER_MEMBER(bg4x8_scan); TILE_GET_INFO_MEMBER(get_bg_tile_info); diff --git a/src/mame/includes/blmbycar.h b/src/mame/includes/blmbycar.h index cb8735713a9..f324137c431 100644 --- a/src/mame/includes/blmbycar.h +++ b/src/mame/includes/blmbycar.h @@ -58,17 +58,17 @@ private: int m_retvalue; // waterball // common - DECLARE_WRITE8_MEMBER(okibank_w); - template<int Layer> DECLARE_WRITE16_MEMBER(vram_w); + void okibank_w(uint8_t data); + template<int Layer> void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); // blmbycar - DECLARE_WRITE8_MEMBER(blmbycar_pot_wheel_reset_w); - DECLARE_WRITE8_MEMBER(blmbycar_pot_wheel_shift_w); - DECLARE_READ16_MEMBER(blmbycar_pot_wheel_r); - DECLARE_READ16_MEMBER(blmbycar_opt_wheel_r); + void blmbycar_pot_wheel_reset_w(uint8_t data); + void blmbycar_pot_wheel_shift_w(uint8_t data); + uint16_t blmbycar_pot_wheel_r(); + uint16_t blmbycar_opt_wheel_r(); // waterball - DECLARE_READ16_MEMBER(waterball_unk_r); + uint16_t waterball_unk_r(); template<int Layer> TILE_GET_INFO_MEMBER(get_tile_info); diff --git a/src/mame/includes/blockout.h b/src/mame/includes/blockout.h index b29e177f1ae..5e86bc1bd39 100644 --- a/src/mame/includes/blockout.h +++ b/src/mame/includes/blockout.h @@ -41,8 +41,8 @@ public: required_device<generic_latch_8_device> m_soundlatch; DECLARE_WRITE_LINE_MEMBER(irq_handler); - DECLARE_WRITE16_MEMBER(blockout_irq6_ack_w); - DECLARE_WRITE16_MEMBER(blockout_irq5_ack_w); + void blockout_irq6_ack_w(uint16_t data); + void blockout_irq5_ack_w(uint16_t data); void frontcolor_w(offs_t offset, u16 data, u16 mem_mask = ~0); u8 videoram_r(offs_t offset); void videoram_w(offs_t offset, u8 data); diff --git a/src/mame/includes/bloodbro.h b/src/mame/includes/bloodbro.h index 27faffcb43b..c0528c9c6bf 100644 --- a/src/mame/includes/bloodbro.h +++ b/src/mame/includes/bloodbro.h @@ -62,12 +62,12 @@ private: bool m_weststry_opl_irq; bool m_weststry_soundnmi_mask; - DECLARE_WRITE16_MEMBER(bgvideoram_w); - DECLARE_WRITE16_MEMBER(fgvideoram_w); - DECLARE_WRITE16_MEMBER(txvideoram_w); + void bgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void fgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void txvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void layer_en_w(uint16_t data); void layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - DECLARE_WRITE16_MEMBER(weststry_layer_scroll_w); + void weststry_layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void weststry_soundlatch_w(offs_t offset, u8 data); DECLARE_WRITE_LINE_MEMBER(weststry_opl_irq_w); void weststry_opl_w(offs_t offset, uint8_t data); diff --git a/src/mame/includes/blueprnt.h b/src/mame/includes/blueprnt.h index c4a798c41ae..ffaf731db18 100644 --- a/src/mame/includes/blueprnt.h +++ b/src/mame/includes/blueprnt.h @@ -48,13 +48,13 @@ public: /* misc */ int m_dipsw; - DECLARE_READ8_MEMBER(blueprnt_sh_dipsw_r); - DECLARE_READ8_MEMBER(grasspin_sh_dipsw_r); - DECLARE_WRITE8_MEMBER(blueprnt_sound_command_w); - DECLARE_WRITE8_MEMBER(blueprnt_coin_counter_w); - DECLARE_WRITE8_MEMBER(blueprnt_videoram_w); - DECLARE_WRITE8_MEMBER(blueprnt_colorram_w); - DECLARE_WRITE8_MEMBER(blueprnt_flipscreen_w); + uint8_t blueprnt_sh_dipsw_r(); + uint8_t grasspin_sh_dipsw_r(); + void blueprnt_sound_command_w(uint8_t data); + void blueprnt_coin_counter_w(uint8_t data); + void blueprnt_videoram_w(offs_t offset, uint8_t data); + void blueprnt_colorram_w(offs_t offset, uint8_t data); + void blueprnt_flipscreen_w(uint8_t data); void dipsw_w(uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void machine_start() override; diff --git a/src/mame/includes/bogeyman.h b/src/mame/includes/bogeyman.h index 38bf922346c..647c5a77a24 100644 --- a/src/mame/includes/bogeyman.h +++ b/src/mame/includes/bogeyman.h @@ -62,12 +62,12 @@ private: int m_last_write; int m_colbank; - DECLARE_WRITE8_MEMBER(ay8910_latch_w); - DECLARE_WRITE8_MEMBER(ay8910_control_w); - DECLARE_WRITE8_MEMBER(videoram_w); - DECLARE_WRITE8_MEMBER(colorram_w); - DECLARE_WRITE8_MEMBER(videoram2_w); - DECLARE_WRITE8_MEMBER(colorram2_w); + void ay8910_latch_w(uint8_t data); + void ay8910_control_w(uint8_t data); + void videoram_w(offs_t offset, uint8_t data); + void colorram_w(offs_t offset, uint8_t data); + void videoram2_w(offs_t offset, uint8_t data); + void colorram2_w(offs_t offset, uint8_t data); void colbank_w(uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); diff --git a/src/mame/includes/bombjack.h b/src/mame/includes/bombjack.h index 3ce4bbaaf3e..8234037c5f2 100644 --- a/src/mame/includes/bombjack.h +++ b/src/mame/includes/bombjack.h @@ -36,12 +36,12 @@ protected: virtual void video_start() override; private: - DECLARE_READ8_MEMBER(soundlatch_read_and_clear); - DECLARE_WRITE8_MEMBER(irq_mask_w); - DECLARE_WRITE8_MEMBER(bombjack_videoram_w); - DECLARE_WRITE8_MEMBER(bombjack_colorram_w); - DECLARE_WRITE8_MEMBER(bombjack_background_w); - DECLARE_WRITE8_MEMBER(bombjack_flipscreen_w); + uint8_t soundlatch_read_and_clear(); + void irq_mask_w(uint8_t data); + void bombjack_videoram_w(offs_t offset, uint8_t data); + void bombjack_colorram_w(offs_t offset, uint8_t data); + void bombjack_background_w(uint8_t data); + void bombjack_flipscreen_w(uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_fg_tile_info); uint32_t screen_update_bombjack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); diff --git a/src/mame/includes/boogwing.h b/src/mame/includes/boogwing.h index fc1411b2b63..dc28c12ee82 100644 --- a/src/mame/includes/boogwing.h +++ b/src/mame/includes/boogwing.h @@ -52,14 +52,14 @@ public: bitmap_ind16 m_alpha_tmap_bitmap; void sound_bankswitch_w(uint8_t data); - DECLARE_WRITE16_MEMBER(priority_w); + void priority_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void init_boogwing(); virtual void machine_reset() override; virtual void video_start() override; uint32_t screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void mix_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - DECLARE_READ16_MEMBER( boogwing_protection_region_0_104_r ); - DECLARE_WRITE16_MEMBER( boogwing_protection_region_0_104_w ); + uint16_t boogwing_protection_region_0_104_r(offs_t offset); + void boogwing_protection_region_0_104_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); DECO16IC_BANK_CB_MEMBER(bank_callback); DECO16IC_BANK_CB_MEMBER(bank_callback2); diff --git a/src/mame/includes/bosco.h b/src/mame/includes/bosco.h index efab2b90bad..439e142dcd2 100644 --- a/src/mame/includes/bosco.h +++ b/src/mame/includes/bosco.h @@ -42,10 +42,10 @@ public: void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip); void draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip); void draw_stars(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip); - DECLARE_WRITE8_MEMBER( bosco_videoram_w ); - DECLARE_WRITE8_MEMBER( bosco_scrollx_w ); - DECLARE_WRITE8_MEMBER( bosco_scrolly_w ); - DECLARE_WRITE8_MEMBER( bosco_starclr_w ); + void bosco_videoram_w(offs_t offset, uint8_t data); + void bosco_scrollx_w(uint8_t data); + void bosco_scrolly_w(uint8_t data); + void bosco_starclr_w(uint8_t data); void bosco(machine_config &config); void bosco_map(address_map &map); }; diff --git a/src/mame/includes/bottom9.h b/src/mame/includes/bottom9.h index 4c43831bb46..7f912617590 100644 --- a/src/mame/includes/bottom9.h +++ b/src/mame/includes/bottom9.h @@ -47,17 +47,17 @@ public: required_device<k051960_device> m_k051960; required_device<k051316_device> m_k051316; required_device<palette_device> m_palette; - DECLARE_READ8_MEMBER(k052109_051960_r); - DECLARE_WRITE8_MEMBER(k052109_051960_w); - DECLARE_READ8_MEMBER(bottom9_bankedram1_r); - DECLARE_WRITE8_MEMBER(bottom9_bankedram1_w); - DECLARE_READ8_MEMBER(bottom9_bankedram2_r); - DECLARE_WRITE8_MEMBER(bottom9_bankedram2_w); - DECLARE_WRITE8_MEMBER(bankswitch_w); - DECLARE_WRITE8_MEMBER(bottom9_1f90_w); - DECLARE_WRITE8_MEMBER(bottom9_sh_irqtrigger_w); - DECLARE_WRITE8_MEMBER(nmi_enable_w); - DECLARE_WRITE8_MEMBER(sound_bank_w); + uint8_t k052109_051960_r(offs_t offset); + void k052109_051960_w(offs_t offset, uint8_t data); + uint8_t bottom9_bankedram1_r(offs_t offset); + void bottom9_bankedram1_w(offs_t offset, uint8_t data); + uint8_t bottom9_bankedram2_r(offs_t offset); + void bottom9_bankedram2_w(offs_t offset, uint8_t data); + void bankswitch_w(uint8_t data); + void bottom9_1f90_w(uint8_t data); + void bottom9_sh_irqtrigger_w(uint8_t data); + void nmi_enable_w(uint8_t data); + void sound_bank_w(uint8_t data); virtual void machine_start() override; virtual void machine_reset() override; uint32_t screen_update_bottom9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); diff --git a/src/mame/includes/brkthru.h b/src/mame/includes/brkthru.h index c8fcc491ba0..41754832569 100644 --- a/src/mame/includes/brkthru.h +++ b/src/mame/includes/brkthru.h @@ -49,11 +49,11 @@ public: required_device<generic_latch_8_device> m_soundlatch; uint8_t m_nmi_mask; - DECLARE_WRITE8_MEMBER(brkthru_1803_w); - DECLARE_WRITE8_MEMBER(darwin_0803_w); - DECLARE_WRITE8_MEMBER(brkthru_bgram_w); - DECLARE_WRITE8_MEMBER(brkthru_fgram_w); - DECLARE_WRITE8_MEMBER(brkthru_1800_w); + void brkthru_1803_w(uint8_t data); + void darwin_0803_w(uint8_t data); + void brkthru_bgram_w(offs_t offset, uint8_t data); + void brkthru_fgram_w(offs_t offset, uint8_t data); + void brkthru_1800_w(offs_t offset, uint8_t data); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); void init_brkthru(); TILE_GET_INFO_MEMBER(get_bg_tile_info); diff --git a/src/mame/includes/bsktball.h b/src/mame/includes/bsktball.h index 975be60d772..bcd301bc07a 100644 --- a/src/mame/includes/bsktball.h +++ b/src/mame/includes/bsktball.h @@ -41,14 +41,14 @@ protected: DECLARE_WRITE_LINE_MEMBER(nmion_w); DECLARE_WRITE_LINE_MEMBER(ld1_w); DECLARE_WRITE_LINE_MEMBER(ld2_w); - DECLARE_READ8_MEMBER(bsktball_in0_r); - DECLARE_WRITE8_MEMBER(bsktball_videoram_w); + uint8_t bsktball_in0_r(); + void bsktball_videoram_w(offs_t offset, uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); void bsktball_palette(palette_device &palette) const; uint32_t screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(bsktball_scanline); - DECLARE_WRITE8_MEMBER(bsktball_bounce_w); - DECLARE_WRITE8_MEMBER(bsktball_note_w); + void bsktball_bounce_w(uint8_t data); + void bsktball_note_w(uint8_t data); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); protected: diff --git a/src/mame/includes/btime.h b/src/mame/includes/btime.h index 40fa11d8ddd..4a744791185 100644 --- a/src/mame/includes/btime.h +++ b/src/mame/includes/btime.h @@ -79,25 +79,25 @@ public: optional_device<generic_latch_8_device> m_soundlatch; optional_memory_region m_prom_region; - DECLARE_WRITE8_MEMBER(audio_nmi_enable_w); - DECLARE_READ8_MEMBER(zoar_dsw1_read); - DECLARE_READ8_MEMBER(wtennis_reset_hack_r); - DECLARE_READ8_MEMBER(mmonkey_protection_r); - DECLARE_WRITE8_MEMBER(mmonkey_protection_w); - DECLARE_WRITE8_MEMBER(lnc_videoram_w); - DECLARE_READ8_MEMBER(btime_mirrorvideoram_r); - DECLARE_READ8_MEMBER(btime_mirrorcolorram_r); - DECLARE_WRITE8_MEMBER(btime_mirrorvideoram_w); - DECLARE_WRITE8_MEMBER(lnc_mirrorvideoram_w); - DECLARE_WRITE8_MEMBER(btime_mirrorcolorram_w); - DECLARE_WRITE8_MEMBER(deco_charram_w); - DECLARE_WRITE8_MEMBER(bnj_background_w); - DECLARE_WRITE8_MEMBER(bnj_scroll1_w); - DECLARE_WRITE8_MEMBER(bnj_scroll2_w); - DECLARE_WRITE8_MEMBER(btime_video_control_w); - DECLARE_WRITE8_MEMBER(bnj_video_control_w); - DECLARE_WRITE8_MEMBER(zoar_video_control_w); - DECLARE_WRITE8_MEMBER(disco_video_control_w); + void audio_nmi_enable_w(uint8_t data); + uint8_t zoar_dsw1_read(); + uint8_t wtennis_reset_hack_r(); + uint8_t mmonkey_protection_r(offs_t offset); + void mmonkey_protection_w(offs_t offset, uint8_t data); + void lnc_videoram_w(offs_t offset, uint8_t data); + uint8_t btime_mirrorvideoram_r(offs_t offset); + uint8_t btime_mirrorcolorram_r(offs_t offset); + void btime_mirrorvideoram_w(offs_t offset, uint8_t data); + void lnc_mirrorvideoram_w(offs_t offset, uint8_t data); + void btime_mirrorcolorram_w(offs_t offset, uint8_t data); + void deco_charram_w(offs_t offset, uint8_t data); + void bnj_background_w(offs_t offset, uint8_t data); + void bnj_scroll1_w(uint8_t data); + void bnj_scroll2_w(uint8_t data); + void btime_video_control_w(uint8_t data); + void bnj_video_control_w(uint8_t data); + void zoar_video_control_w(uint8_t data); + void disco_video_control_w(uint8_t data); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_irq_hi); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_irq_lo); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_nmi_lo); diff --git a/src/mame/includes/btoads.h b/src/mame/includes/btoads.h index f52d244c833..c8b51de940c 100644 --- a/src/mame/includes/btoads.h +++ b/src/mame/includes/btoads.h @@ -84,31 +84,31 @@ private: int m_xcount; // in drivers/btoads - DECLARE_WRITE16_MEMBER( main_sound_w ); - DECLARE_READ16_MEMBER( main_sound_r ); - DECLARE_WRITE8_MEMBER( sound_data_w ); - DECLARE_READ8_MEMBER( sound_data_r ); - DECLARE_READ8_MEMBER( sound_ready_to_send_r ); - DECLARE_READ8_MEMBER( sound_data_ready_r ); - DECLARE_WRITE8_MEMBER( sound_int_state_w ); - DECLARE_READ8_MEMBER( bsmt_ready_r ); - DECLARE_WRITE8_MEMBER( bsmt2000_port_w ); + void main_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t main_sound_r(); + void sound_data_w(uint8_t data); + uint8_t sound_data_r(); + uint8_t sound_ready_to_send_r(); + uint8_t sound_data_ready_r(); + void sound_int_state_w(uint8_t data); + uint8_t bsmt_ready_r(); + void bsmt2000_port_w(offs_t offset, uint8_t data); // in video/btoads - DECLARE_WRITE16_MEMBER( misc_control_w ); - DECLARE_WRITE16_MEMBER( display_control_w ); - DECLARE_WRITE16_MEMBER( scroll0_w ); - DECLARE_WRITE16_MEMBER( scroll1_w ); - DECLARE_WRITE16_MEMBER( paletteram_w ); - DECLARE_READ16_MEMBER( paletteram_r ); - DECLARE_WRITE16_MEMBER( vram_bg0_w ); - DECLARE_WRITE16_MEMBER( vram_bg1_w ); - DECLARE_READ16_MEMBER( vram_bg0_r ); - DECLARE_READ16_MEMBER( vram_bg1_r ); - DECLARE_WRITE16_MEMBER( vram_fg_display_w ); - DECLARE_WRITE16_MEMBER( vram_fg_draw_w ); - DECLARE_READ16_MEMBER( vram_fg_display_r ); - DECLARE_READ16_MEMBER( vram_fg_draw_r ); + void misc_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void display_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void scroll0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void scroll1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void paletteram_w(offs_t offset, uint16_t data); + uint16_t paletteram_r(offs_t offset); + void vram_bg0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void vram_bg1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t vram_bg0_r(offs_t offset); + uint16_t vram_bg1_r(offs_t offset); + void vram_fg_display_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void vram_fg_draw_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t vram_fg_display_r(offs_t offset); + uint16_t vram_fg_draw_r(offs_t offset); void render_sprite_row(uint16_t *sprite_source, uint32_t address); TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg); TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg); diff --git a/src/mame/includes/bublbobl.h b/src/mame/includes/bublbobl.h index c698c7bca3c..2dfb75c3fd9 100644 --- a/src/mame/includes/bublbobl.h +++ b/src/mame/includes/bublbobl.h @@ -94,30 +94,30 @@ public: void bublbobl_bankswitch_w(uint8_t data); void tokio_bankswitch_w(uint8_t data); void tokio_videoctrl_w(uint8_t data); - DECLARE_WRITE8_MEMBER(bublbobl_nmitrigger_w); - DECLARE_READ8_MEMBER(tokiob_mcu_r); - DECLARE_WRITE8_MEMBER(bublbobl_soundcpu_reset_w); - DECLARE_READ8_MEMBER(common_sound_semaphores_r); - DECLARE_READ8_MEMBER(bublbobl_mcu_ddr1_r); - DECLARE_WRITE8_MEMBER(bublbobl_mcu_ddr1_w); - DECLARE_READ8_MEMBER(bublbobl_mcu_ddr2_r); - DECLARE_WRITE8_MEMBER(bublbobl_mcu_ddr2_w); - DECLARE_READ8_MEMBER(bublbobl_mcu_ddr3_r); - DECLARE_WRITE8_MEMBER(bublbobl_mcu_ddr3_w); - DECLARE_READ8_MEMBER(bublbobl_mcu_ddr4_r); - DECLARE_WRITE8_MEMBER(bublbobl_mcu_ddr4_w); - DECLARE_READ8_MEMBER(bublbobl_mcu_port1_r); - DECLARE_WRITE8_MEMBER(bublbobl_mcu_port1_w); - DECLARE_READ8_MEMBER(bublbobl_mcu_port2_r); - DECLARE_WRITE8_MEMBER(bublbobl_mcu_port2_w); - DECLARE_READ8_MEMBER(bublbobl_mcu_port3_r); - DECLARE_WRITE8_MEMBER(bublbobl_mcu_port3_w); - DECLARE_READ8_MEMBER(bublbobl_mcu_port4_r); - DECLARE_WRITE8_MEMBER(bublbobl_mcu_port4_w); - DECLARE_READ8_MEMBER(boblbobl_ic43_a_r); - DECLARE_WRITE8_MEMBER(boblbobl_ic43_a_w); - DECLARE_WRITE8_MEMBER(boblbobl_ic43_b_w); - DECLARE_READ8_MEMBER(boblbobl_ic43_b_r); + void bublbobl_nmitrigger_w(uint8_t data); + uint8_t tokiob_mcu_r(); + void bublbobl_soundcpu_reset_w(uint8_t data); + uint8_t common_sound_semaphores_r(); + uint8_t bublbobl_mcu_ddr1_r(); + void bublbobl_mcu_ddr1_w(uint8_t data); + uint8_t bublbobl_mcu_ddr2_r(); + void bublbobl_mcu_ddr2_w(uint8_t data); + uint8_t bublbobl_mcu_ddr3_r(); + void bublbobl_mcu_ddr3_w(uint8_t data); + uint8_t bublbobl_mcu_ddr4_r(); + void bublbobl_mcu_ddr4_w(uint8_t data); + uint8_t bublbobl_mcu_port1_r(); + void bublbobl_mcu_port1_w(uint8_t data); + uint8_t bublbobl_mcu_port2_r(); + void bublbobl_mcu_port2_w(uint8_t data); + uint8_t bublbobl_mcu_port3_r(); + void bublbobl_mcu_port3_w(uint8_t data); + uint8_t bublbobl_mcu_port4_r(); + void bublbobl_mcu_port4_w(uint8_t data); + uint8_t boblbobl_ic43_a_r(offs_t offset); + void boblbobl_ic43_a_w(offs_t offset, uint8_t data); + void boblbobl_ic43_b_w(offs_t offset, uint8_t data); + uint8_t boblbobl_ic43_b_r(offs_t offset); void init_dland(); void init_common(); diff --git a/src/mame/includes/buggychl.h b/src/mame/includes/buggychl.h index 123e3543811..15b5e5febcb 100644 --- a/src/mame/includes/buggychl.h +++ b/src/mame/includes/buggychl.h @@ -69,21 +69,21 @@ public: output_finder<1> m_led; - DECLARE_WRITE8_MEMBER(bankswitch_w); - DECLARE_WRITE8_MEMBER(sound_enable_w); - DECLARE_READ8_MEMBER(mcu_status_r); - DECLARE_READ8_MEMBER(sound_status_main_r); - DECLARE_READ8_MEMBER(sound_status_sound_r); - DECLARE_WRITE8_MEMBER(buggychl_chargen_w); - DECLARE_WRITE8_MEMBER(buggychl_sprite_lookup_bank_w); - DECLARE_WRITE8_MEMBER(buggychl_sprite_lookup_w); - DECLARE_WRITE8_MEMBER(buggychl_ctrl_w); - DECLARE_WRITE8_MEMBER(buggychl_bg_scrollx_w); + void bankswitch_w(uint8_t data); + void sound_enable_w(uint8_t data); + uint8_t mcu_status_r(); + uint8_t sound_status_main_r(); + uint8_t sound_status_sound_r(); + void buggychl_chargen_w(offs_t offset, uint8_t data); + void buggychl_sprite_lookup_bank_w(uint8_t data); + void buggychl_sprite_lookup_w(offs_t offset, uint8_t data); + void buggychl_ctrl_w(uint8_t data); + void buggychl_bg_scrollx_w(uint8_t data); void ta7630_volbal_ay1_w(uint8_t data); void port_b_0_w(uint8_t data); void ta7630_volbal_ay2_w(uint8_t data); void port_b_1_w(uint8_t data); - DECLARE_WRITE8_MEMBER(ta7630_volbal_msm_w); + void ta7630_volbal_msm_w(uint8_t data); virtual void machine_start() override; virtual void machine_reset() override; virtual void video_start() override; diff --git a/src/mame/includes/bullet.h b/src/mame/includes/bullet.h index 3f93f37023e..ca3f3e4c705 100644 --- a/src/mame/includes/bullet.h +++ b/src/mame/includes/bullet.h @@ -57,17 +57,17 @@ public: { } - DECLARE_READ8_MEMBER( mreq_r ); - DECLARE_WRITE8_MEMBER( mreq_w ); - DECLARE_READ8_MEMBER( info_r ); - DECLARE_READ8_MEMBER( brom_r ); - DECLARE_WRITE8_MEMBER( brom_w ); - DECLARE_READ8_MEMBER( win_r ); - DECLARE_WRITE8_MEMBER( wstrobe_w ); - DECLARE_WRITE8_MEMBER( exdsk_w ); - DECLARE_WRITE8_MEMBER( exdma_w ); - DECLARE_WRITE8_MEMBER( hdcon_w ); - DECLARE_WRITE8_MEMBER( segst_w ); + uint8_t mreq_r(offs_t offset); + void mreq_w(offs_t offset, uint8_t data); + uint8_t info_r(); + uint8_t brom_r(); + void brom_w(uint8_t data); + uint8_t win_r(); + void wstrobe_w(uint8_t data); + void exdsk_w(uint8_t data); + void exdma_w(uint8_t data); + void hdcon_w(uint8_t data); + void segst_w(uint8_t data); uint8_t dma_mreq_r(offs_t offset); void dma_mreq_w(offs_t offset, uint8_t data); uint8_t pio_pb_r(); @@ -148,14 +148,14 @@ public: { } - DECLARE_READ8_MEMBER( mreq_r ); - DECLARE_WRITE8_MEMBER( mreq_w ); - DECLARE_WRITE8_MEMBER( xdma0_w ); - DECLARE_WRITE8_MEMBER( xfdc_w ); - DECLARE_WRITE8_MEMBER( mbank_w ); - DECLARE_READ8_MEMBER( hwsts_r ); - DECLARE_READ8_MEMBER( scsi_r ); - DECLARE_WRITE8_MEMBER( scsi_w ); + uint8_t mreq_r(offs_t offset); + void mreq_w(offs_t offset, uint8_t data); + void xdma0_w(uint8_t data); + void xfdc_w(uint8_t data); + void mbank_w(uint8_t data); + uint8_t hwsts_r(); + uint8_t scsi_r(); + void scsi_w(uint8_t data); uint8_t dma_mreq_r(offs_t offset); void dma_mreq_w(offs_t offset, uint8_t data); diff --git a/src/mame/includes/busicom.h b/src/mame/includes/busicom.h index 2a61b4d42f5..5b999e7e838 100644 --- a/src/mame/includes/busicom.h +++ b/src/mame/includes/busicom.h @@ -34,12 +34,12 @@ protected: virtual void video_start() override; private: - DECLARE_READ8_MEMBER(keyboard_r); - DECLARE_READ8_MEMBER(printer_r); - DECLARE_WRITE8_MEMBER(shifter_w); - DECLARE_WRITE8_MEMBER(printer_w); - DECLARE_WRITE8_MEMBER(status_w); - DECLARE_WRITE8_MEMBER(printer_ctrl_w); + uint8_t keyboard_r(); + uint8_t printer_r(); + void shifter_w(uint8_t data); + void printer_w(uint8_t data); + void status_w(uint8_t data); + void printer_ctrl_w(uint8_t data); void busicom_palette(palette_device &palette) const; uint32_t screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(timer_callback); diff --git a/src/mame/includes/bwidow.h b/src/mame/includes/bwidow.h index 5bdea57a1eb..4bcbb74868e 100644 --- a/src/mame/includes/bwidow.h +++ b/src/mame/includes/bwidow.h @@ -34,13 +34,13 @@ public: DECLARE_READ_LINE_MEMBER(clock_r); protected: - DECLARE_READ8_MEMBER(spacduel_IN3_r); - DECLARE_READ8_MEMBER(bwidowp_in_r); - DECLARE_WRITE8_MEMBER(bwidow_misc_w); - DECLARE_WRITE8_MEMBER(spacduel_coin_counter_w); - DECLARE_WRITE8_MEMBER(irq_ack_w); - DECLARE_READ8_MEMBER(earom_read); - DECLARE_WRITE8_MEMBER(earom_write); + uint8_t spacduel_IN3_r(offs_t offset); + uint8_t bwidowp_in_r(); + void bwidow_misc_w(uint8_t data); + void spacduel_coin_counter_w(uint8_t data); + void irq_ack_w(uint8_t data); + uint8_t earom_read(); + void earom_write(offs_t offset, uint8_t data); void earom_control_w(uint8_t data); void bwidow_map(address_map &map); diff --git a/src/mame/includes/bwing.h b/src/mame/includes/bwing.h index 9c017d299e2..6675aca703a 100644 --- a/src/mame/includes/bwing.h +++ b/src/mame/includes/bwing.h @@ -61,17 +61,17 @@ public: int m_bwp3_nmimask; int m_bwp3_u8F_d; - DECLARE_WRITE8_MEMBER(bwp3_u8F_w); - DECLARE_WRITE8_MEMBER(bwp3_nmimask_w); - DECLARE_WRITE8_MEMBER(bwp3_nmiack_w); - DECLARE_WRITE8_MEMBER(bwp1_ctrl_w); - DECLARE_WRITE8_MEMBER(bwp2_ctrl_w); - DECLARE_WRITE8_MEMBER(videoram_w); - DECLARE_WRITE8_MEMBER(fgscrollram_w); - DECLARE_WRITE8_MEMBER(bgscrollram_w); - DECLARE_WRITE8_MEMBER(gfxram_w); - DECLARE_WRITE8_MEMBER(scrollreg_w); - DECLARE_WRITE8_MEMBER(paletteram_w); + void bwp3_u8F_w(uint8_t data); + void bwp3_nmimask_w(uint8_t data); + void bwp3_nmiack_w(uint8_t data); + void bwp1_ctrl_w(offs_t offset, uint8_t data); + void bwp2_ctrl_w(offs_t offset, uint8_t data); + void videoram_w(offs_t offset, uint8_t data); + void fgscrollram_w(offs_t offset, uint8_t data); + void bgscrollram_w(offs_t offset, uint8_t data); + void gfxram_w(offs_t offset, uint8_t data); + void scrollreg_w(offs_t offset, uint8_t data); + void paletteram_w(offs_t offset, uint8_t data); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(tilt_pressed); diff --git a/src/mame/includes/macpci.h b/src/mame/includes/macpci.h index ae953dc627b..505fd224b04 100644 --- a/src/mame/includes/macpci.h +++ b/src/mame/includes/macpci.h @@ -145,6 +145,7 @@ private: void init_pippin(); void pippin_mem(address_map &map); + void cdmcu_mem(address_map &map); // wait states for accessing the VIA int m_via_cycles; diff --git a/src/mame/includes/namcos22.h b/src/mame/includes/namcos22.h index c1f791b439c..b1a70010567 100644 --- a/src/mame/includes/namcos22.h +++ b/src/mame/includes/namcos22.h @@ -267,16 +267,16 @@ protected: virtual void video_start() override; virtual void device_post_load() override; - void namcos22_textram_w(offs_t offset, u32 data, u32 mem_mask); + void namcos22_textram_w(offs_t offset, u32 data, u32 mem_mask = ~0); u16 namcos22_tilemapattr_r(offs_t offset); - void namcos22_tilemapattr_w(offs_t offset, u16 data, u16 mem_mask); + void namcos22_tilemapattr_w(offs_t offset, u16 data, u16 mem_mask = ~0); u32 namcos22_dspram_r(offs_t offset); - void namcos22_dspram_w(offs_t offset, u32 data, u32 mem_mask); - void namcos22_cgram_w(offs_t offset, u32 data, u32 mem_mask); - void namcos22_paletteram_w(offs_t offset, u32 data, u32 mem_mask); - void namcos22_dspram16_bank_w(offs_t offset, u16 data, u16 mem_mask); + void namcos22_dspram_w(offs_t offset, u32 data, u32 mem_mask = ~0); + void namcos22_cgram_w(offs_t offset, u32 data, u32 mem_mask = ~0); + void namcos22_paletteram_w(offs_t offset, u32 data, u32 mem_mask = ~0); + void namcos22_dspram16_bank_w(offs_t offset, u16 data, u16 mem_mask = ~0); u16 namcos22_dspram16_r(offs_t offset); - void namcos22_dspram16_w(offs_t offset, u16 data, u16 mem_mask); + void namcos22_dspram16_w(offs_t offset, u16 data, u16 mem_mask = ~0); u16 pdp_status_r(); u16 pdp_begin_r(); u16 dsp_hold_signal_r(); @@ -311,12 +311,12 @@ protected: DECLARE_READ32_MEMBER(namcos22_sci_r); DECLARE_WRITE32_MEMBER(namcos22_sci_w); u16 namcos22_shared_r(offs_t offset); - void namcos22_shared_w(offs_t offset, u16 data, u16 mem_mask); + void namcos22_shared_w(offs_t offset, u16 data, u16 mem_mask = ~0); u16 namcos22_keycus_r(offs_t offset); - void namcos22_keycus_w(offs_t offset, u16 data, u16 mem_mask); + void namcos22_keycus_w(offs_t offset, u16 data, u16 mem_mask = ~0); DECLARE_READ16_MEMBER(namcos22_portbit_r); DECLARE_WRITE16_MEMBER(namcos22_portbit_w); - void namcos22_cpuleds_w(offs_t offset, u32 data, u32 mem_mask); + void namcos22_cpuleds_w(offs_t offset, u32 data, u32 mem_mask = ~0); u8 mcu_port4_s22_r(); u8 iomcu_port4_s22_r(); DECLARE_READ16_MEMBER(mcuc74_speedup_r); @@ -550,7 +550,7 @@ private: DECLARE_WRITE16_MEMBER(namcos22s_czattr_w); DECLARE_READ16_MEMBER(namcos22s_czattr_r); - void namcos22s_czram_w(offs_t offset, u32 data, u32 mem_mask); + void namcos22s_czram_w(offs_t offset, u32 data, u32 mem_mask = ~0); u32 namcos22s_czram_r(offs_t offset); DECLARE_READ32_MEMBER(namcos22s_vics_control_r); DECLARE_WRITE32_MEMBER(namcos22s_vics_control_w); diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h index 1269920f4af..ed6ed589ec2 100644 --- a/src/mame/includes/neogeo.h +++ b/src/mame/includes/neogeo.h @@ -86,7 +86,7 @@ protected: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - virtual DECLARE_WRITE8_MEMBER(io_control_w); + virtual void io_control_w(offs_t offset, uint8_t data); DECLARE_WRITE8_MEMBER(audio_command_w); DECLARE_WRITE_LINE_MEMBER(set_use_cart_vectors); DECLARE_WRITE_LINE_MEMBER(set_use_cart_audio); @@ -227,7 +227,7 @@ protected: virtual void machine_start() override; virtual void machine_reset() override; - virtual DECLARE_WRITE8_MEMBER(io_control_w) override; + virtual void io_control_w(offs_t offset, uint8_t data) override; DECLARE_WRITE_LINE_MEMBER(set_save_ram_unlock); DECLARE_WRITE16_MEMBER(save_ram_w); DECLARE_READ16_MEMBER(in0_edge_r); diff --git a/src/mame/includes/snes.h b/src/mame/includes/snes.h index 5577d0d0d9c..13f73509bd7 100644 --- a/src/mame/includes/snes.h +++ b/src/mame/includes/snes.h @@ -420,14 +420,14 @@ protected: virtual uint8_t oldjoy1_read(int latched); virtual uint8_t oldjoy2_read(int latched); - DECLARE_READ8_MEMBER(snes_r_io); - DECLARE_WRITE8_MEMBER(snes_w_io); - DECLARE_READ8_MEMBER(snes_io_dma_r); - DECLARE_WRITE8_MEMBER(snes_io_dma_w); - DECLARE_READ8_MEMBER(snes_r_bank1); - DECLARE_READ8_MEMBER(snes_r_bank2); - DECLARE_WRITE8_MEMBER(snes_w_bank1); - DECLARE_WRITE8_MEMBER(snes_w_bank2); + uint8_t snes_r_io(offs_t offset); + void snes_w_io(address_space &space, offs_t offset, uint8_t data); + uint8_t snes_io_dma_r(offs_t offset); + void snes_io_dma_w(offs_t offset, uint8_t data); + uint8_t snes_r_bank1(offs_t offset); + uint8_t snes_r_bank2(offs_t offset); + void snes_w_bank1(address_space &space, offs_t offset, uint8_t data); + void snes_w_bank2(offs_t offset, uint8_t data); uint8_t snes_open_bus_r(); TIMER_CALLBACK_MEMBER(snes_nmi_tick); TIMER_CALLBACK_MEMBER(snes_hirq_tick_callback); diff --git a/src/mame/layout/dotrikun.lay b/src/mame/layout/dotrikun.lay deleted file mode 100644 index 8218ee7ca4c..00000000000 --- a/src/mame/layout/dotrikun.lay +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0"?> -<!-- -license:CC0 ---> -<mamelayout version="2"> - <view name="Square (1:1)"> - <screen index="0"> - <bounds left="0" top="0" right="1" bottom="1" /> - </screen> - </view> -</mamelayout> diff --git a/src/mame/machine/abc1600mac.cpp b/src/mame/machine/abc1600mac.cpp index 59136727141..37c70a11433 100644 --- a/src/mame/machine/abc1600mac.cpp +++ b/src/mame/machine/abc1600mac.cpp @@ -275,24 +275,24 @@ void abc1600_mac_device::write_user_memory(offs_t offset, uint8_t data) // read_supervisor_memory - //------------------------------------------------- -uint8_t abc1600_mac_device::read_supervisor_memory(address_space &space, offs_t offset) +uint8_t abc1600_mac_device::read_supervisor_memory(offs_t offset) { uint8_t data = 0; if (!A2 && !A1) { // _EP - data = page_r(space, offset); + data = page_r(offset); } else if (!A2 && A1 && A0) { // _ES - data = segment_r(space, offset); + data = segment_r(offset); } else if (A2 && A1 && A0) { // _CAUSE - data = cause_r(space, offset); + data = cause_r(); } return data; @@ -303,22 +303,22 @@ uint8_t abc1600_mac_device::read_supervisor_memory(address_space &space, offs_t // write_supervisor_memory - //------------------------------------------------- -void abc1600_mac_device::write_supervisor_memory(address_space &space, offs_t offset, uint8_t data) +void abc1600_mac_device::write_supervisor_memory(offs_t offset, uint8_t data) { if (!A2 && !A1) { // _WEP - page_w(space, offset, data); + page_w(offset, data); } else if (!A2 && A1 && A0) { // _WES - segment_w(space, offset, data); + segment_w(offset, data); } else if (A2 && !A1 && A0) { // W(C) - task_w(space, offset, data); + task_w(offset, data); } } @@ -341,7 +341,7 @@ int abc1600_mac_device::get_fc() // read - //------------------------------------------------- -READ8_MEMBER( abc1600_mac_device::read ) +uint8_t abc1600_mac_device::read(offs_t offset) { int fc = get_fc(); @@ -354,7 +354,7 @@ READ8_MEMBER( abc1600_mac_device::read ) } else if (A19 && !m_ifc2 && !FC1) { - data = read_supervisor_memory(space, offset); + data = read_supervisor_memory(offset); } else { @@ -369,13 +369,13 @@ READ8_MEMBER( abc1600_mac_device::read ) // write - //------------------------------------------------- -WRITE8_MEMBER( abc1600_mac_device::write ) +void abc1600_mac_device::write(offs_t offset, uint8_t data) { int fc = get_fc(); if (A19 && !m_ifc2 && !FC1) { - write_supervisor_memory(space, offset, data); + write_supervisor_memory(offset, data); } else { @@ -388,7 +388,7 @@ WRITE8_MEMBER( abc1600_mac_device::write ) // cause_r - //------------------------------------------------- -READ8_MEMBER( abc1600_mac_device::cause_r ) +uint8_t abc1600_mac_device::cause_r() { /* @@ -420,7 +420,7 @@ READ8_MEMBER( abc1600_mac_device::cause_r ) // task_w - //------------------------------------------------- -WRITE8_MEMBER( abc1600_mac_device::task_w ) +void abc1600_mac_device::task_w(offs_t offset, uint8_t data) { /* @@ -447,7 +447,7 @@ WRITE8_MEMBER( abc1600_mac_device::task_w ) // segment_r - //------------------------------------------------- -READ8_MEMBER( abc1600_mac_device::segment_r ) +uint8_t abc1600_mac_device::segment_r(offs_t offset) { /* @@ -475,7 +475,7 @@ READ8_MEMBER( abc1600_mac_device::segment_r ) // segment_w - //------------------------------------------------- -WRITE8_MEMBER( abc1600_mac_device::segment_w ) +void abc1600_mac_device::segment_w(offs_t offset, uint8_t data) { /* @@ -504,7 +504,7 @@ WRITE8_MEMBER( abc1600_mac_device::segment_w ) // page_r - //------------------------------------------------- -READ8_MEMBER( abc1600_mac_device::page_r ) +uint8_t abc1600_mac_device::page_r(offs_t offset) { /* @@ -559,7 +559,7 @@ READ8_MEMBER( abc1600_mac_device::page_r ) // page_w - //------------------------------------------------- -WRITE8_MEMBER( abc1600_mac_device::page_w ) +void abc1600_mac_device::page_w(offs_t offset, uint8_t data) { /* @@ -681,7 +681,7 @@ void abc1600_mac_device::dma_iorq_w(int index, uint16_t offset, uint8_t data) // dmamap_w - DMA map write //------------------------------------------------- -WRITE8_MEMBER( abc1600_mac_device::dmamap_w ) +void abc1600_mac_device::dmamap_w(offs_t offset, uint8_t data) { /* diff --git a/src/mame/machine/abc1600mac.h b/src/mame/machine/abc1600mac.h index 47cdef8a7ec..a0b1a4c0097 100644 --- a/src/mame/machine/abc1600mac.h +++ b/src/mame/machine/abc1600mac.h @@ -39,13 +39,13 @@ public: virtual void map(address_map &map); - DECLARE_READ8_MEMBER( cause_r ); - DECLARE_WRITE8_MEMBER( task_w ); - DECLARE_READ8_MEMBER( segment_r ); - DECLARE_WRITE8_MEMBER( segment_w ); - DECLARE_READ8_MEMBER( page_r ); - DECLARE_WRITE8_MEMBER( page_w ); - DECLARE_WRITE8_MEMBER( dmamap_w ); + uint8_t cause_r(); + void task_w(offs_t offset, uint8_t data); + uint8_t segment_r(offs_t offset); + void segment_w(offs_t offset, uint8_t data); + uint8_t page_r(offs_t offset); + void page_w(offs_t offset, uint8_t data); + void dmamap_w(offs_t offset, uint8_t data); uint8_t dma0_mreq_r(offs_t offset) { return dma_mreq_r(DMAMAP_R0_LO, offset); } void dma0_mreq_w(offs_t offset, uint8_t data) { dma_mreq_w(DMAMAP_R0_LO, offset, data); } @@ -84,8 +84,8 @@ private: DMAMAP_R0_HI }; - DECLARE_READ8_MEMBER( read ); - DECLARE_WRITE8_MEMBER( write ); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); int get_current_task(offs_t offset); offs_t get_segment_address(offs_t offset); @@ -94,8 +94,8 @@ private: uint8_t read_user_memory(offs_t offset); void write_user_memory(offs_t offset, uint8_t data); int get_fc(); - uint8_t read_supervisor_memory(address_space &space, offs_t offset); - void write_supervisor_memory(address_space &space, offs_t offset, uint8_t data); + uint8_t read_supervisor_memory(offs_t offset); + void write_supervisor_memory(offs_t offset, uint8_t data); offs_t get_dma_address(int index, uint16_t offset); uint8_t dma_mreq_r(int index, uint16_t offset); void dma_mreq_w(int index, uint16_t offset, uint8_t data); diff --git a/src/mame/machine/ajax.cpp b/src/mame/machine/ajax.cpp index e8a78eca2e9..e7e2b57571c 100644 --- a/src/mame/machine/ajax.cpp +++ b/src/mame/machine/ajax.cpp @@ -33,7 +33,7 @@ (*) The Coin Counters are handled by the Konami Custom 051550 */ -WRITE8_MEMBER(ajax_state::bankswitch_w) +void ajax_state::bankswitch_w(uint8_t data) { int bank = 0; @@ -77,7 +77,7 @@ WRITE8_MEMBER(ajax_state::bankswitch_w) LS393 C20 Dual -ve edge trigger 4-bit Binary Ripple Counter with Resets */ -WRITE8_MEMBER(ajax_state::lamps_w) +void ajax_state::lamps_w(uint8_t data) { m_lamps[1] = BIT(data, 1); /* super weapon lamp */ m_lamps[2] = BIT(data, 2); /* power up lamps */ @@ -106,7 +106,7 @@ WRITE8_MEMBER(ajax_state::lamps_w) 0x01c0 (r) MIO2 Enables DIPSW #3 reading */ -READ8_MEMBER(ajax_state::ls138_f10_r) +uint8_t ajax_state::ls138_f10_r(offs_t offset) { int data = 0, index; static const char *const portnames[] = { "SYSTEM", "P1", "DSW1", "DSW2" }; @@ -134,7 +134,7 @@ READ8_MEMBER(ajax_state::ls138_f10_r) return data; } -WRITE8_MEMBER(ajax_state::ls138_f10_w) +void ajax_state::ls138_f10_w(offs_t offset, uint8_t data) { switch ((offset & 0x01c0) >> 6) { @@ -153,10 +153,10 @@ WRITE8_MEMBER(ajax_state::ls138_f10_w) m_soundlatch->write(data); break; case 0x03: /* Bankswitch + coin counters + priority*/ - bankswitch_w(space, 0, data); + bankswitch_w(data); break; case 0x05: /* Lamps + Joystick vibration + Control panel quaking */ - lamps_w(space, 0, data); + lamps_w(data); break; default: @@ -179,7 +179,7 @@ WRITE8_MEMBER(ajax_state::ls138_f10_w) 0 SRB0 / */ -WRITE8_MEMBER(ajax_state::bankswitch_2_w) +void ajax_state::bankswitch_2_w(uint8_t data) { /* enable char ROM reading through the video RAM */ m_k052109->set_rmrd_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); diff --git a/src/mame/machine/amiga.cpp b/src/mame/machine/amiga.cpp index afb7e5ebb6f..2db6151d286 100644 --- a/src/mame/machine/amiga.cpp +++ b/src/mame/machine/amiga.cpp @@ -217,12 +217,12 @@ WRITE_LINE_MEMBER( amiga_state::kbreset_w ) } // simple mirror of region 0xf80000 to 0xfbffff -READ16_MEMBER( amiga_state::rom_mirror_r ) +uint16_t amiga_state::rom_mirror_r(offs_t offset, uint16_t mem_mask) { return m_maincpu->space(AS_PROGRAM).read_word(offset + 0xf80000, mem_mask); } -READ32_MEMBER( amiga_state::rom_mirror32_r ) +uint32_t amiga_state::rom_mirror32_r(offs_t offset, uint32_t mem_mask) { return m_maincpu->space(AS_PROGRAM).read_dword(offset + 0xf80000, mem_mask); } @@ -1027,7 +1027,7 @@ WRITE_LINE_MEMBER( amiga_state::centronics_select_w ) // CIA-A access: 101x xxxx xxx0 oooo xxxx xxx1 // CIA-B access: 101x xxxx xx0x oooo xxxx xxx0 -READ16_MEMBER( amiga_state::cia_r ) +uint16_t amiga_state::cia_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0; @@ -1043,7 +1043,7 @@ READ16_MEMBER( amiga_state::cia_r ) return data; } -WRITE16_MEMBER( amiga_state::cia_w ) +void amiga_state::cia_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (LOG_CIA) logerror("%s: cia_w(%06x) = %04x & %04x\n", machine().describe_context(), offset, data, mem_mask); @@ -1055,7 +1055,7 @@ WRITE16_MEMBER( amiga_state::cia_w ) m_cia_1->write(offset >> 7, data >> 8); } -WRITE16_MEMBER( amiga_state::gayle_cia_w ) +void amiga_state::gayle_cia_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // the first write to cia 0 after a reset switches in chip ram if (m_gayle_reset && (offset & 0x1000/2) == 0 && ACCESSING_BITS_0_7) @@ -1065,7 +1065,7 @@ WRITE16_MEMBER( amiga_state::gayle_cia_w ) } // hand down to the standard cia handler - cia_w(space, offset, data, mem_mask); + cia_w(offset, data, mem_mask); } CUSTOM_INPUT_MEMBER( amiga_state::floppy_drive_status ) @@ -1143,7 +1143,7 @@ void amiga_state::custom_chip_reset() CUSTOM_REG(REG_BEAMCON0) = (m_agnus_id & 0x10) ? 0x0000 : 0x0020; } -READ16_MEMBER( amiga_state::custom_chip_r ) +uint16_t amiga_state::custom_chip_r(offs_t offset) { uint16_t temp; diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp index f01699170ff..4d6e1f29afe 100644 --- a/src/mame/machine/apollo.cpp +++ b/src/mame/machine/apollo.cpp @@ -217,7 +217,7 @@ void apollo_csr_set_status_register(uint16_t mask, uint16_t data) DN3000/DN3500 CPU Status Register at 0x8000/0x10000 -------------------------------------------------*/ -WRITE16_MEMBER(apollo_state::apollo_csr_status_register_w){ +void apollo_state::apollo_csr_status_register_w(offs_t offset, uint16_t data, uint16_t mem_mask){ // To clear bus timeouts or parity conditions from status register, // write to the status register. This register is readonly. // in DN3500 bit 15 is always set (undocumented !?) @@ -225,7 +225,7 @@ WRITE16_MEMBER(apollo_state::apollo_csr_status_register_w){ SLOG1(("writing CPU Status Register at offset %X = %04x & %04x (%04x)", offset, data, mem_mask, cpu_status_register)); } -READ16_MEMBER(apollo_state::apollo_csr_status_register_r){ +uint16_t apollo_state::apollo_csr_status_register_r(offs_t offset, uint16_t mem_mask){ SLOG2(("reading CPU Status Register at offset %X = %04x & %04x", offset, cpu_status_register, mem_mask)); return cpu_status_register & mem_mask; } @@ -234,7 +234,7 @@ READ16_MEMBER(apollo_state::apollo_csr_status_register_r){ DN3000/DN3500 CPU Control Register at 0x8100/0x10100 -------------------------------------------------*/ -WRITE16_MEMBER(apollo_state::apollo_csr_control_register_w) +void apollo_state::apollo_csr_control_register_w(offs_t offset, uint16_t data, uint16_t mem_mask) { int leds; @@ -288,7 +288,7 @@ WRITE16_MEMBER(apollo_state::apollo_csr_control_register_w) } } -READ16_MEMBER(apollo_state::apollo_csr_control_register_r) +uint16_t apollo_state::apollo_csr_control_register_r(offs_t offset, uint16_t mem_mask) { SLOG1(("reading CPU Control Register at offset %X = %04x & %04x", offset, cpu_control_register, mem_mask)); return cpu_control_register & mem_mask; @@ -315,12 +315,12 @@ static uint8_t dn3000_dma_channel2 = 5; // 5 = memory dma channel DN3000/DN3500 DMA Controller 1 at 0x9000/0x10c00 -------------------------------------------------*/ -WRITE8_MEMBER(apollo_state::apollo_dma_1_w){ +void apollo_state::apollo_dma_1_w(offs_t offset, uint8_t data){ SLOG1(("apollo_dma_1_w: writing DMA Controller 1 at offset %02x = %02x", offset, data)); m_dma8237_1->write(offset, data); } -READ8_MEMBER(apollo_state::apollo_dma_1_r){ +uint8_t apollo_state::apollo_dma_1_r(offs_t offset){ uint8_t data = m_dma8237_1->read(offset); SLOG1(("apollo_dma_1_r: reading DMA Controller 1 at offset %02x = %02x", offset, data)); return data; @@ -330,12 +330,12 @@ READ8_MEMBER(apollo_state::apollo_dma_1_r){ DN3000/DN3500 DMA Controller 2 at 0x9100/0x10d00 -------------------------------------------------*/ -WRITE8_MEMBER(apollo_state::apollo_dma_2_w){ +void apollo_state::apollo_dma_2_w(offs_t offset, uint8_t data){ SLOG1(("apollo_dma_2_w: writing DMA Controller 2 at offset %02x = %02x", offset/2, data)); m_dma8237_2->write(offset / 2, data); } -READ8_MEMBER(apollo_state::apollo_dma_2_r){ +uint8_t apollo_state::apollo_dma_2_r(offs_t offset){ // Nasty hack (13-06-15 - ost): // MD self_test will test wrong DMA register and // mem-to-mem DMA in am9517a.c is often starting much too late (for MD self_test) @@ -360,12 +360,12 @@ READ8_MEMBER(apollo_state::apollo_dma_2_r){ DN3000 DMA Page Register at 0x9200 ***************************************************************************/ -WRITE8_MEMBER(apollo_state::apollo_dma_page_register_w){ +void apollo_state::apollo_dma_page_register_w(offs_t offset, uint8_t data){ dma_page_register[offset & 0x0f] = data; SLOG1(("writing DMA Page Register at offset %02x = %02x", offset, data)); } -READ8_MEMBER(apollo_state::apollo_dma_page_register_r){ +uint8_t apollo_state::apollo_dma_page_register_r(offs_t offset){ uint8_t data = dma_page_register[offset & 0x0f]; SLOG1(("reading DMA Page Register at offset %02x = %02x", offset, data)); return data; @@ -375,12 +375,12 @@ READ8_MEMBER(apollo_state::apollo_dma_page_register_r){ DN3500 Address Translation Map at 0x017000 -------------------------------------------------*/ -WRITE16_MEMBER(apollo_state::apollo_address_translation_map_w){ +void apollo_state::apollo_address_translation_map_w(offs_t offset, uint16_t data){ address_translation_map[offset & 0x3ff] = data; SLOG2(("writing Address Translation Map at offset %02x = %04x", offset, data)); } -READ16_MEMBER(apollo_state::apollo_address_translation_map_r){ +uint16_t apollo_state::apollo_address_translation_map_r(offs_t offset){ uint16_t data = address_translation_map[offset & 0x3ff]; SLOG2(("reading Address Translation Map at offset %02x = %04x", offset, data)); return data; @@ -672,7 +672,7 @@ WRITE_LINE_MEMBER(apollo_state::apollo_ptm_irq_function) DN3000/DN3500 Realtime Calendar MC146818 at 0x8900/0x10900 ***************************************************************************/ -WRITE8_MEMBER(apollo_state::apollo_rtc_w) +void apollo_state::apollo_rtc_w(offs_t offset, uint8_t data) { m_rtc->write_direct(offset, data); if (offset >= 0x0b && offset <= 0x0c) @@ -681,7 +681,7 @@ WRITE8_MEMBER(apollo_state::apollo_rtc_w) } } -READ8_MEMBER(apollo_state::apollo_rtc_r) +uint8_t apollo_state::apollo_rtc_r(offs_t offset) { uint8_t data; data = m_rtc->read_direct(offset); @@ -899,12 +899,12 @@ void apollo_ni::set_node_id(uint32_t node_id) // read/write //------------------------------------------------- -WRITE16_MEMBER(apollo_ni::write) +void apollo_ni::write(offs_t offset, uint16_t data, uint16_t mem_mask) { CLOG1(("Error: writing node id ROM at offset %02x = %04x & %04x", offset, data, mem_mask)); } -READ16_MEMBER(apollo_ni::read) +uint16_t apollo_ni::read(offs_t offset, uint16_t mem_mask) { uint16_t data = 0; switch (offset & 0x0f) @@ -1207,8 +1207,7 @@ MACHINE_START_MEMBER(apollo_state,apollo) MACHINE_RESET_MEMBER(apollo_state,apollo) { - address_space &space = m_maincpu->space(AS_PROGRAM); - uint8_t year = apollo_rtc_r(space, 9); + uint8_t year = apollo_rtc_r(9); MLOG1(("machine_reset_apollo")); @@ -1219,18 +1218,18 @@ MACHINE_RESET_MEMBER(apollo_state,apollo) if (year < 25 && apollo_config(APOLLO_CONF_25_YEARS_AGO)) { year += 75; - apollo_rtc_w(space, 9, year); + apollo_rtc_w(9, year); } else if (year < 20 && apollo_config(APOLLO_CONF_20_YEARS_AGO)) { year += 80; - apollo_rtc_w(space, 9, year); + apollo_rtc_w(9, year); } else if (year >= 80 && !apollo_config(APOLLO_CONF_20_YEARS_AGO) && !apollo_config(APOLLO_CONF_25_YEARS_AGO)) { year -= 80; - apollo_rtc_w(space, 9, year); + apollo_rtc_w(9, year); } ptm_counter = 0; diff --git a/src/mame/machine/archimds.cpp b/src/mame/machine/archimds.cpp index 86f8cc67ac3..d940cb4a11c 100644 --- a/src/mame/machine/archimds.cpp +++ b/src/mame/machine/archimds.cpp @@ -260,7 +260,7 @@ void archimedes_state::archimedes_init() m_timer[3]->adjust(attotime::never); } -READ32_MEMBER(archimedes_state::archimedes_memc_logical_r) +uint32_t archimedes_state::archimedes_memc_logical_r(offs_t offset) { uint32_t page, poffs; @@ -298,7 +298,7 @@ READ32_MEMBER(archimedes_state::archimedes_memc_logical_r) -WRITE32_MEMBER(archimedes_state::archimedes_memc_logical_w) +void archimedes_state::archimedes_memc_logical_w(offs_t offset, uint32_t data, uint32_t mem_mask) { uint32_t page, poffs; @@ -327,7 +327,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_memc_logical_w) } /* Aristocrat Mark 5 - same as normal AA except with Dram emulator */ -READ32_MEMBER(archimedes_state::aristmk5_drame_memc_logical_r) +uint32_t archimedes_state::aristmk5_drame_memc_logical_r(offs_t offset) { uint32_t page, poffs; @@ -448,7 +448,7 @@ bool archimedes_state::check_floppy_ready() } /* TODO: should be a 8-bit handler */ -READ32_MEMBER( archimedes_state::ioc_ctrl_r ) +uint32_t archimedes_state::ioc_ctrl_r(offs_t offset) { if(IOC_LOG) logerror("IOC: R %s = %02x (PC=%x) %02x\n", ioc_regnames[offset&0x1f], m_ioc_regs[offset&0x1f], m_maincpu->pc(),offset & 0x1f); @@ -521,7 +521,7 @@ READ32_MEMBER( archimedes_state::ioc_ctrl_r ) } /* TODO: should be a 8-bit handler */ -WRITE32_MEMBER( archimedes_state::ioc_ctrl_w ) +void archimedes_state::ioc_ctrl_w(offs_t offset, uint32_t data) { if(IOC_LOG) logerror("IOC: W %02x @ reg %s (PC=%x)\n", data&0xff, ioc_regnames[offset&0x1f], m_maincpu->pc()); @@ -651,7 +651,7 @@ WRITE32_MEMBER( archimedes_state::ioc_ctrl_w ) } } -READ32_MEMBER(archimedes_state::archimedes_ioc_r) +uint32_t archimedes_state::archimedes_ioc_r(offs_t offset, uint32_t mem_mask) { uint32_t ioc_addr; @@ -668,7 +668,7 @@ READ32_MEMBER(archimedes_state::archimedes_ioc_r) { switch((ioc_addr & 0x70000) >> 16) { - case 0: return ioc_ctrl_r(space,offset,mem_mask); + case 0: return ioc_ctrl_r(offset); case 1: if (m_fdc) { @@ -732,7 +732,7 @@ READ32_MEMBER(archimedes_state::archimedes_ioc_r) return 0; } -WRITE32_MEMBER(archimedes_state::archimedes_ioc_w) +void archimedes_state::archimedes_ioc_w(offs_t offset, uint32_t data, uint32_t mem_mask) { uint32_t ioc_addr; @@ -749,7 +749,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_ioc_w) { switch((ioc_addr & 0x70000) >> 16) { - case 0: ioc_ctrl_w(space,offset,data,mem_mask); return; + case 0: ioc_ctrl_w(offset,data); return; case 1: if (m_fdc) { @@ -852,7 +852,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_ioc_w) logerror("(PC=%08x) I/O: W %x @ %x (mask %08x)\n", m_maincpu->pc(), data, (offset*4)+0x3000000, mem_mask); } -WRITE32_MEMBER(archimedes_state::archimedes_memc_w) +void archimedes_state::archimedes_memc_w(offs_t offset, uint32_t data, uint32_t mem_mask) { // is it a register? if ((data & 0x0fe00000) == 0x03600000) @@ -970,7 +970,7 @@ The physical page is encoded differently depending on the page size : 1 being bit 6 */ -WRITE32_MEMBER(archimedes_state::archimedes_memc_page_w) +void archimedes_state::archimedes_memc_page_w(uint32_t data) { uint32_t log, phys, memc; diff --git a/src/mame/machine/arkanoid.cpp b/src/mame/machine/arkanoid.cpp index a6762df998a..19a3776fd23 100644 --- a/src/mame/machine/arkanoid.cpp +++ b/src/mame/machine/arkanoid.cpp @@ -91,7 +91,7 @@ TO DO (2006.09.12) : /* Kludge for some bootlegs that read this address */ -READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f000_r) +uint8_t arkanoid_state::arkanoid_bootleg_f000_r() { uint8_t arkanoid_bootleg_val = 0x00; @@ -133,7 +133,7 @@ READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f000_r) } /* Kludge for some bootlegs that read this address */ -READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f002_r) +uint8_t arkanoid_state::arkanoid_bootleg_f002_r() { uint8_t arkanoid_bootleg_val = 0x00; @@ -220,7 +220,7 @@ READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f002_r) } /* Kludge for some bootlegs that write this address */ -WRITE8_MEMBER(arkanoid_state::arkanoid_bootleg_d018_w) +void arkanoid_state::arkanoid_bootleg_d018_w(uint8_t data) { m_bootleg_cmd = 0x00; @@ -475,14 +475,14 @@ WRITE8_MEMBER(arkanoid_state::arkanoid_bootleg_d018_w) } #ifdef UNUSED_CODE -READ8_MEMBER(arkanoid_state::block2_bootleg_f000_r) +uint8_t arkanoid_state::block2_bootleg_f000_r() { return m_bootleg_cmd; } #endif /* Kludge for some bootlegs that read this address */ -READ8_MEMBER(arkanoid_state::arkanoid_bootleg_d008_r) +uint8_t arkanoid_state::arkanoid_bootleg_d008_r() { uint8_t arkanoid_bootleg_d008_bit[8]; uint8_t arkanoid_bootleg_d008_val; diff --git a/src/mame/machine/asteroid.cpp b/src/mame/machine/asteroid.cpp index 69c8818de1c..1f629d4917c 100644 --- a/src/mame/machine/asteroid.cpp +++ b/src/mame/machine/asteroid.cpp @@ -43,7 +43,7 @@ WRITE_LINE_MEMBER(asteroid_state::cocktail_inv_w) m_dvg->set_flip_y(flip); } -READ8_MEMBER(asteroid_state::asteroid_IN0_r) +uint8_t asteroid_state::asteroid_IN0_r(offs_t offset) { int res = ioport("IN0")->read(); int bitmask = (1 << offset); @@ -57,7 +57,7 @@ READ8_MEMBER(asteroid_state::asteroid_IN0_r) } -READ8_MEMBER(asteroid_state::asterock_IN0_r) +uint8_t asteroid_state::asterock_IN0_r(offs_t offset) { int res = ioport("IN0")->read(); int bitmask = (1 << offset); @@ -75,7 +75,7 @@ READ8_MEMBER(asteroid_state::asterock_IN0_r) * Typically, only the high bit is used. This is handled by one input port. */ -READ8_MEMBER(asteroid_state::asteroid_IN1_r) +uint8_t asteroid_state::asteroid_IN1_r(offs_t offset) { int res = ioport("IN1")->read(); int bitmask = (1 << (offset & 0x7)); @@ -89,7 +89,7 @@ READ8_MEMBER(asteroid_state::asteroid_IN1_r) } -READ8_MEMBER(asteroid_state::asteroid_DSW1_r) +uint8_t asteroid_state::asteroid_DSW1_r(offs_t offset) { // 765432-- not used // ------1- ls253 dsw selector 2y diff --git a/src/mame/machine/atarifb.cpp b/src/mame/machine/atarifb.cpp index 91cc61ce55a..74a5e59aa79 100644 --- a/src/mame/machine/atarifb.cpp +++ b/src/mame/machine/atarifb.cpp @@ -11,7 +11,7 @@ #include "sound/discrete.h" -WRITE8_MEMBER(atarifb_state::atarifb_out1_w) +void atarifb_state::atarifb_out1_w(uint8_t data) { m_CTRLD = data; @@ -22,7 +22,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out1_w) } -WRITE8_MEMBER(atarifb_state::atarifb4_out1_w) +void atarifb_state::atarifb4_out1_w(uint8_t data) { m_CTRLD = data; @@ -35,7 +35,7 @@ WRITE8_MEMBER(atarifb_state::atarifb4_out1_w) } -WRITE8_MEMBER(atarifb_state::abaseb_out1_w) +void atarifb_state::abaseb_out1_w(uint8_t data) { m_CTRLD = data; @@ -59,7 +59,7 @@ WRITE8_MEMBER(atarifb_state::abaseb_out1_w) } -WRITE8_MEMBER(atarifb_state::soccer_out1_w) +void atarifb_state::soccer_out1_w(uint8_t data) { m_CTRLD = data; @@ -81,7 +81,7 @@ WRITE8_MEMBER(atarifb_state::soccer_out1_w) } -WRITE8_MEMBER(atarifb_state::atarifb_out2_w) +void atarifb_state::atarifb_out2_w(uint8_t data) { m_discrete->write(ATARIFB_CROWD_DATA, data & 0x0f); // Crowd @@ -89,7 +89,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out2_w) } -WRITE8_MEMBER(atarifb_state::soccer_out2_w) +void atarifb_state::soccer_out2_w(uint8_t data) { m_discrete->write(ATARIFB_CROWD_DATA, data & 0x0f); // Crowd @@ -107,7 +107,7 @@ WRITE8_MEMBER(atarifb_state::soccer_out2_w) *************************************/ /* FIXME: almost surely not tied with screen vertical position */ -WRITE8_MEMBER(atarifb_state::atarifb_out3_w) +void atarifb_state::atarifb_out3_w(uint8_t data) { int loop = m_screen->vpos() >= 123; @@ -134,7 +134,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out3_w) } -READ8_MEMBER(atarifb_state::atarifb_in0_r) +uint8_t atarifb_state::atarifb_in0_r() { if ((m_CTRLD & 0x20) == 0x00) { @@ -171,7 +171,7 @@ READ8_MEMBER(atarifb_state::atarifb_in0_r) } -READ8_MEMBER(atarifb_state::atarifb_in2_r) +uint8_t atarifb_state::atarifb_in2_r() { if ((m_CTRLD & 0x20) == 0x00) { @@ -200,7 +200,7 @@ READ8_MEMBER(atarifb_state::atarifb_in2_r) } } -READ8_MEMBER(atarifb_state::atarifb4_in0_r) +uint8_t atarifb_state::atarifb4_in0_r() { /* LD1 and LD2 low, return sign bits */ if ((m_CTRLD & 0x60) == 0x00) @@ -266,7 +266,7 @@ READ8_MEMBER(atarifb_state::atarifb4_in0_r) } -READ8_MEMBER(atarifb_state::atarifb4_in2_r) +uint8_t atarifb_state::atarifb4_in2_r() { if ((m_CTRLD & 0x40) == 0x00) { diff --git a/src/mame/machine/atarixga.cpp b/src/mame/machine/atarixga.cpp index 119d8c42acd..9e17b6018b6 100644 --- a/src/mame/machine/atarixga.cpp +++ b/src/mame/machine/atarixga.cpp @@ -189,7 +189,7 @@ uint16_t atari_136094_0072_device::decipher(uint8_t k, uint16_t c) * *************************************/ -WRITE32_MEMBER(atari_136094_0072_device::write) +void atari_136094_0072_device::write(offs_t offset, uint32_t data, uint32_t mem_mask) { switch (m_mode) { @@ -221,7 +221,7 @@ WRITE32_MEMBER(atari_136094_0072_device::write) } } -READ32_MEMBER(atari_136094_0072_device::read) +uint32_t atari_136094_0072_device::read(offs_t offset, uint32_t mem_mask) { switch (offset << 2) { @@ -392,13 +392,13 @@ uint16_t atari_136095_0072_device::decipher(uint8_t k, uint16_t c) return p; } -WRITE32_MEMBER(atari_136095_0072_device::polylsb_write) +void atari_136095_0072_device::polylsb_write(offs_t offset, uint32_t data) { m_update.addr = offset; m_update.data[offset] = data; } -READ32_MEMBER(atari_136095_0072_device::polylsb_read) +uint32_t atari_136095_0072_device::polylsb_read(offs_t offset, uint32_t mem_mask) { if (m_update.addr == offset) { @@ -414,7 +414,7 @@ READ32_MEMBER(atari_136095_0072_device::polylsb_read) return m_update.data[offset]; } -WRITE32_MEMBER(atari_136095_0072_device::write) +void atari_136095_0072_device::write(offs_t offset, uint32_t data, uint32_t mem_mask) { uint16_t address, value = 0; @@ -471,7 +471,7 @@ WRITE32_MEMBER(atari_136095_0072_device::write) } } -READ32_MEMBER(atari_136095_0072_device::read) +uint32_t atari_136095_0072_device::read(offs_t offset, uint32_t mem_mask) { uint16_t address; uint32_t reply = 0; diff --git a/src/mame/machine/atarixga.h b/src/mame/machine/atarixga.h index 6f1ab1c52ad..4b199c2a730 100644 --- a/src/mame/machine/atarixga.h +++ b/src/mame/machine/atarixga.h @@ -17,8 +17,8 @@ DECLARE_DEVICE_TYPE(ATARI_136095_0072, atari_136095_0072_device) class atari_xga_device : public device_t { public: - virtual DECLARE_WRITE32_MEMBER(write) = 0; - virtual DECLARE_READ32_MEMBER(read) = 0; + virtual void write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) = 0; + virtual uint32_t read(offs_t offset, uint32_t mem_mask = ~0) = 0; protected: // construction/destruction @@ -38,8 +38,8 @@ class atari_136094_0072_device : public atari_xga_device public: atari_136094_0072_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE32_MEMBER(write) override; - virtual DECLARE_READ32_MEMBER(read) override; + virtual void write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) override; + virtual uint32_t read(offs_t offset, uint32_t mem_mask = ~0) override; protected: virtual void device_start() override; @@ -70,11 +70,11 @@ class atari_136095_0072_device : public atari_xga_device public: atari_136095_0072_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE32_MEMBER(polylsb_write); - DECLARE_READ32_MEMBER(polylsb_read); + void polylsb_write(offs_t offset, uint32_t data); + uint32_t polylsb_read(offs_t offset, uint32_t mem_mask = ~0); - virtual DECLARE_WRITE32_MEMBER(write) override; - virtual DECLARE_READ32_MEMBER(read) override; + virtual void write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) override; + virtual uint32_t read(offs_t offset, uint32_t mem_mask = ~0) override; protected: virtual void device_start() override; diff --git a/src/mame/machine/awboard.cpp b/src/mame/machine/awboard.cpp index 3ff85c137de..bc2146640e2 100644 --- a/src/mame/machine/awboard.cpp +++ b/src/mame/machine/awboard.cpp @@ -294,7 +294,7 @@ void aw_rom_board::device_reset() dma_limit = 0; } -READ16_MEMBER(aw_rom_board::pio_r) +uint16_t aw_rom_board::pio_r() { uint32_t roffset = epr_offset & 0x3ffffff; if (roffset >= (mpr_offset / 2)) @@ -303,44 +303,44 @@ READ16_MEMBER(aw_rom_board::pio_r) return retval; } -WRITE16_MEMBER(aw_rom_board::pio_w) +void aw_rom_board::pio_w(uint16_t data) { // write to ROM board address space, including FlashROM programming using CFI (TODO) if (epr_offset == 0x7fffff) mpr_bank = data & 3; } -WRITE16_MEMBER(aw_rom_board::epr_offsetl_w) +void aw_rom_board::epr_offsetl_w(uint16_t data) { epr_offset = (epr_offset & 0xffff0000) | data; recalc_dma_offset(EPR); } -WRITE16_MEMBER(aw_rom_board::epr_offseth_w) +void aw_rom_board::epr_offseth_w(uint16_t data) { epr_offset = (epr_offset & 0x0000ffff) | (data << 16); recalc_dma_offset(EPR); } -WRITE16_MEMBER(aw_rom_board::mpr_record_index_w) +void aw_rom_board::mpr_record_index_w(uint16_t data) { mpr_record_index = data; recalc_dma_offset(MPR_RECORD); } -WRITE16_MEMBER(aw_rom_board::mpr_first_file_index_w) +void aw_rom_board::mpr_first_file_index_w(uint16_t data) { mpr_first_file_index = data; recalc_dma_offset(MPR_FILE); } -WRITE16_MEMBER(aw_rom_board::mpr_file_offsetl_w) +void aw_rom_board::mpr_file_offsetl_w(uint16_t data) { mpr_file_offset = (mpr_file_offset & 0xffff0000) | data; recalc_dma_offset(MPR_FILE); } -WRITE16_MEMBER(aw_rom_board::mpr_file_offseth_w) +void aw_rom_board::mpr_file_offseth_w(uint16_t data) { mpr_file_offset = (mpr_file_offset & 0x0000ffff) | (data << 16); diff --git a/src/mame/machine/awboard.h b/src/mame/machine/awboard.h index 7164f646948..274b1d364cd 100644 --- a/src/mame/machine/awboard.h +++ b/src/mame/machine/awboard.h @@ -15,14 +15,14 @@ public: virtual void submap(address_map &map) override; - DECLARE_WRITE16_MEMBER(epr_offsetl_w); // 5f7000 - DECLARE_WRITE16_MEMBER(epr_offseth_w); // 5f7004 - DECLARE_WRITE16_MEMBER(mpr_record_index_w); // 5f700c - DECLARE_WRITE16_MEMBER(mpr_first_file_index_w); // 5f7010 - DECLARE_WRITE16_MEMBER(mpr_file_offsetl_w); // 5f7014 - DECLARE_WRITE16_MEMBER(mpr_file_offseth_w); // 5f7018 - DECLARE_READ16_MEMBER(pio_r); // 5f7080 - DECLARE_WRITE16_MEMBER(pio_w); // 5f7080 + void epr_offsetl_w(uint16_t data); // 5f7000 + void epr_offseth_w(uint16_t data); // 5f7004 + void mpr_record_index_w(uint16_t data); // 5f700c + void mpr_first_file_index_w(uint16_t data); // 5f7010 + void mpr_file_offsetl_w(uint16_t data); // 5f7014 + void mpr_file_offseth_w(uint16_t data); // 5f7018 + uint16_t pio_r(); // 5f7080 + void pio_w(uint16_t data); // 5f7080 protected: virtual void device_start() override; diff --git a/src/mame/machine/b2m.cpp b/src/mame/machine/b2m.cpp index 0ae0242c9ad..511dfed6fbb 100644 --- a/src/mame/machine/b2m.cpp +++ b/src/mame/machine/b2m.cpp @@ -18,7 +18,7 @@ #include "includes/b2m.h" #include "machine/ram.h" -READ8_MEMBER(b2m_state::b2m_keyboard_r) +uint8_t b2m_state::b2m_keyboard_r(offs_t offset) { uint8_t key = 0x00; if (offset < 0x100) { @@ -80,7 +80,7 @@ void b2m_state::b2m_set_bank(int bank) space.unmap_write(0xe000, 0xffff); membank("bank1")->set_base(ram); - space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r))); + space.install_read_handler(0x2800, 0x2fff, read8sm_delegate(*this, FUNC(b2m_state::b2m_keyboard_r))); membank("bank3")->set_base(ram + 0x10000); membank("bank4")->set_base(ram + 0x7000); membank("bank5")->set_base(rom + 0x10000); @@ -90,7 +90,7 @@ void b2m_state::b2m_set_bank(int bank) space.unmap_write(0xe000, 0xffff); membank("bank1")->set_base(ram); - space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r))); + space.install_read_handler(0x2800, 0x2fff, read8sm_delegate(*this, FUNC(b2m_state::b2m_keyboard_r))); membank("bank3")->set_base(ram + 0x14000); membank("bank4")->set_base(ram + 0x7000); membank("bank5")->set_base(rom + 0x10000); @@ -100,7 +100,7 @@ void b2m_state::b2m_set_bank(int bank) space.unmap_write(0xe000, 0xffff); membank("bank1")->set_base(ram); - space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r))); + space.install_read_handler(0x2800, 0x2fff, read8sm_delegate(*this, FUNC(b2m_state::b2m_keyboard_r))); membank("bank3")->set_base(ram + 0x18000); membank("bank4")->set_base(ram + 0x7000); membank("bank5")->set_base(rom + 0x10000); @@ -111,7 +111,7 @@ void b2m_state::b2m_set_bank(int bank) space.unmap_write(0xe000, 0xffff); membank("bank1")->set_base(ram); - space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r))); + space.install_read_handler(0x2800, 0x2fff, read8sm_delegate(*this, FUNC(b2m_state::b2m_keyboard_r))); membank("bank3")->set_base(ram + 0x1c000); membank("bank4")->set_base(ram + 0x7000); membank("bank5")->set_base(rom + 0x10000); @@ -229,7 +229,7 @@ void b2m_state::init_b2m() m_vblank_state = 0; } -WRITE8_MEMBER(b2m_state::b2m_palette_w) +void b2m_state::b2m_palette_w(offs_t offset, uint8_t data) { uint8_t b = (3 - ((data >> 6) & 3)) * 0x55; uint8_t g = (3 - ((data >> 4) & 3)) * 0x55; @@ -246,17 +246,17 @@ WRITE8_MEMBER(b2m_state::b2m_palette_w) } } -READ8_MEMBER(b2m_state::b2m_palette_r) +uint8_t b2m_state::b2m_palette_r(offs_t offset) { return m_b2m_color[offset]; } -WRITE8_MEMBER(b2m_state::b2m_localmachine_w) +void b2m_state::b2m_localmachine_w(uint8_t data) { m_b2m_localmachine = data; } -READ8_MEMBER(b2m_state::b2m_localmachine_r) +uint8_t b2m_state::b2m_localmachine_r() { return m_b2m_localmachine; } diff --git a/src/mame/machine/bagman.cpp b/src/mame/machine/bagman.cpp index 1b51fbb35a1..da0158aa1a9 100644 --- a/src/mame/machine/bagman.cpp +++ b/src/mame/machine/bagman.cpp @@ -201,30 +201,27 @@ uint8_t row, column, val; } -WRITE8_MEMBER(bagman_state::pal16r6_w) +void bagman_state::pal16r6_w(offs_t offset, uint8_t data) { -uint8_t line; - - line = offset * 4; + uint8_t line = offset * 4; m_columnvalue[line ] = data & 1; m_columnvalue[line + 1] = 1 - (data & 1); } void bagman_state::machine_reset() { - address_space &space = m_maincpu->space(AS_PROGRAM); - pal16r6_w(space, 0, 1); /*pin 2*/ - pal16r6_w(space, 1, 1); /*pin 3*/ - pal16r6_w(space, 2, 1); /*pin 4*/ - pal16r6_w(space, 3, 1); /*pin 5*/ - pal16r6_w(space, 4, 1); /*pin 6*/ - pal16r6_w(space, 5, 1); /*pin 7*/ - pal16r6_w(space, 6, 1); /*pin 8*/ - pal16r6_w(space, 7, 1); /*pin 9*/ + pal16r6_w(0, 1); /*pin 2*/ + pal16r6_w(1, 1); /*pin 3*/ + pal16r6_w(2, 1); /*pin 4*/ + pal16r6_w(3, 1); /*pin 5*/ + pal16r6_w(4, 1); /*pin 6*/ + pal16r6_w(5, 1); /*pin 7*/ + pal16r6_w(6, 1); /*pin 8*/ + pal16r6_w(7, 1); /*pin 9*/ update_pal(); } -READ8_MEMBER(bagman_state::pal16r6_r) +uint8_t bagman_state::pal16r6_r() { update_pal(); return (m_outvalue[6]) + (m_outvalue[5] << 1) + (m_outvalue[4] << 2) + diff --git a/src/mame/machine/balsente.cpp b/src/mame/machine/balsente.cpp index af750998a90..c22e849ad72 100644 --- a/src/mame/machine/balsente.cpp +++ b/src/mame/machine/balsente.cpp @@ -132,18 +132,16 @@ void balsente_state::poly17_init() } } -WRITE8_MEMBER(balsente_state::random_reset_w) +void balsente_state::random_reset_w(uint8_t data) { /* reset random number generator */ } -READ8_MEMBER(balsente_state::random_num_r) +uint8_t balsente_state::random_num_r() { - uint32_t cc; - /* CPU runs at 1.25MHz, noise source at 100kHz --> multiply by 12.5 */ - cc = m_maincpu->total_cycles(); + uint32_t cc = m_maincpu->total_cycles(); /* 12.5 = 8 + 4 + 0.5 */ cc = (cc << 3) + (cc << 2) + (cc >> 1); @@ -158,7 +156,7 @@ READ8_MEMBER(balsente_state::random_num_r) * *************************************/ -WRITE8_MEMBER(balsente_state::rombank_select_w) +void balsente_state::rombank_select_w(uint8_t data) { /* the bank number comes from bits 4-6 */ m_bankab->set_entry((data >> 4) & 7); @@ -167,7 +165,7 @@ WRITE8_MEMBER(balsente_state::rombank_select_w) } -WRITE8_MEMBER(balsente_state::rombank2_select_w) +void balsente_state::rombank2_select_w(uint8_t data) { /* Night Stocker and Name that Tune only so far.... */ int bank = data & 7; @@ -241,12 +239,12 @@ WRITE_LINE_MEMBER(balsente_state::nvrecall_w) m_novram[1]->recall(!state); } -READ8_MEMBER(balsente_state::novram_8bit_r) +uint8_t balsente_state::novram_8bit_r(address_space &space, offs_t offset) { return (m_novram[0]->read(space, offset) & 0x0f) | (m_novram[1]->read(space, offset) << 4); } -WRITE8_MEMBER(balsente_state::novram_8bit_w) +void balsente_state::novram_8bit_w(offs_t offset, uint8_t data) { m_novram[0]->write(offset, data & 0x0f); m_novram[1]->write(offset, data >> 4); @@ -260,7 +258,7 @@ WRITE8_MEMBER(balsente_state::novram_8bit_w) * *************************************/ -WRITE8_MEMBER(balsente_state::acia_w) +void balsente_state::acia_w(offs_t offset, uint8_t data) { // Ugly workaround: suppress soft reset command in order to avert race condition m_acia->write(offset, (BIT(offset, 0) && data == 0xe0) ? 0 : data); @@ -322,14 +320,14 @@ TIMER_CALLBACK_MEMBER(balsente_state::adc_finished) } -READ8_MEMBER(balsente_state::adc_data_r) +uint8_t balsente_state::adc_data_r() { /* just return the last value read */ return m_adc_value; } -WRITE8_MEMBER(balsente_state::adc_select_w) +void balsente_state::adc_select_w(offs_t offset, uint8_t data) { /* set a timer to go off and read the value after 50us */ /* it's important that we do this for Mini Golf */ @@ -337,13 +335,13 @@ WRITE8_MEMBER(balsente_state::adc_select_w) machine().scheduler().timer_set(attotime::from_usec(50), timer_expired_delegate(FUNC(balsente_state::adc_finished),this), offset & 7); } -READ8_MEMBER(balsente_state::teamht_extra_r) +uint8_t balsente_state::teamht_extra_r() { return m_teamht_input; } -WRITE8_MEMBER(balsente_state::teamht_multiplex_select_w) +void balsente_state::teamht_multiplex_select_w(offs_t offset, uint8_t data) { logerror("multiplex_select %d\n", offset & 7); switch (offset & 7) @@ -376,7 +374,7 @@ CUSTOM_INPUT_MEMBER(balsente_state::nstocker_bits_r) } -WRITE8_MEMBER(balsente_state::spiker_expand_w) +void balsente_state::spiker_expand_w(offs_t offset, uint8_t data) { /* offset 0 is the bit pattern */ if (offset == 0) @@ -391,7 +389,7 @@ WRITE8_MEMBER(balsente_state::spiker_expand_w) m_spiker_expand_color = data; } -READ8_MEMBER(balsente_state::spiker_expand_r) +uint8_t balsente_state::spiker_expand_r() { uint8_t left, right; @@ -451,7 +449,7 @@ void balsente_state::update_grudge_steering() } -READ8_MEMBER(balsente_state::grudge_steering_r) +uint8_t balsente_state::grudge_steering_r() { logerror("%s:grudge_steering_r(@%d)\n", machine().describe_context(), m_screen->vpos()); m_grudge_steering_result |= 0x80; @@ -466,7 +464,7 @@ READ8_MEMBER(balsente_state::grudge_steering_r) * *************************************/ -READ8_MEMBER(balsente_state::shrike_shared_6809_r) +uint8_t balsente_state::shrike_shared_6809_r(offs_t offset) { uint16_t mem_mask_int = offset & 1 ? 0xff00 : 0x00ff; @@ -480,7 +478,7 @@ READ8_MEMBER(balsente_state::shrike_shared_6809_r) } -WRITE8_MEMBER(balsente_state::shrike_shared_6809_w) +void balsente_state::shrike_shared_6809_w(offs_t offset, uint8_t data) { uint16_t mem_mask_int = offset & 1 ? 0xff00 : 0x00ff; m_shrike_shared[offset >> 1] = ( m_shrike_shared[offset >> 1] & mem_mask_int ) | ( data << ( mem_mask_int & 0x8 ) ); @@ -488,12 +486,12 @@ WRITE8_MEMBER(balsente_state::shrike_shared_6809_w) // uses movep, so writes even 8 bit addresses to odd 16 bit addresses, reads as 16 bit from odd addresses // i.e. write 0xdeadbeef to 10000, read 0xde from 10001, 0xad from 10003, 0xbe from 10005... -WRITE16_MEMBER(balsente_state::shrike_io_68k_w) +void balsente_state::shrike_io_68k_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA( &m_shrike_io[offset] ); } -READ16_MEMBER(balsente_state::shrike_io_68k_r) +uint16_t balsente_state::shrike_io_68k_r(offs_t offset, uint16_t mem_mask) { return ( m_shrike_io[offset] & mem_mask ) >> ( 8 & ~mem_mask ); } diff --git a/src/mame/machine/bebox.cpp b/src/mame/machine/bebox.cpp index e8bb4eecf71..ea64354a1f4 100644 --- a/src/mame/machine/bebox.cpp +++ b/src/mame/machine/bebox.cpp @@ -128,22 +128,22 @@ static void bebox_mbreg32_w(uint32_t *target, uint64_t data, uint64_t mem_mask) } -READ64_MEMBER(bebox_state::bebox_cpu0_imask_r ) +uint64_t bebox_state::bebox_cpu0_imask_r() { return ((uint64_t) m_cpu_imask[0]) << 32; } -READ64_MEMBER(bebox_state::bebox_cpu1_imask_r ) +uint64_t bebox_state::bebox_cpu1_imask_r() { return ((uint64_t) m_cpu_imask[1]) << 32; } -READ64_MEMBER(bebox_state::bebox_interrupt_sources_r ) +uint64_t bebox_state::bebox_interrupt_sources_r() { return ((uint64_t) m_interrupts) << 32; } -WRITE64_MEMBER(bebox_state::bebox_cpu0_imask_w ) +void bebox_state::bebox_cpu0_imask_w(offs_t offset, uint64_t data, uint64_t mem_mask) { uint32_t old_imask = m_cpu_imask[0]; @@ -160,7 +160,7 @@ WRITE64_MEMBER(bebox_state::bebox_cpu0_imask_w ) } } -WRITE64_MEMBER(bebox_state::bebox_cpu1_imask_w ) +void bebox_state::bebox_cpu1_imask_w(offs_t offset, uint64_t data, uint64_t mem_mask) { uint32_t old_imask = m_cpu_imask[1]; @@ -177,7 +177,7 @@ WRITE64_MEMBER(bebox_state::bebox_cpu1_imask_w ) } } -READ64_MEMBER(bebox_state::bebox_crossproc_interrupts_r ) +uint64_t bebox_state::bebox_crossproc_interrupts_r(address_space &space) { uint32_t result; result = m_crossproc_interrupts; @@ -191,7 +191,7 @@ READ64_MEMBER(bebox_state::bebox_crossproc_interrupts_r ) return ((uint64_t) result) << 32; } -WRITE64_MEMBER(bebox_state::bebox_crossproc_interrupts_w ) +void bebox_state::bebox_crossproc_interrupts_w(offs_t offset, uint64_t data, uint64_t mem_mask) { static const struct { @@ -234,7 +234,7 @@ WRITE64_MEMBER(bebox_state::bebox_crossproc_interrupts_w ) } } -WRITE64_MEMBER(bebox_state::bebox_processor_resets_w ) +void bebox_state::bebox_processor_resets_w(uint64_t data) { uint8_t b = (uint8_t) (data >> 56); @@ -345,7 +345,7 @@ WRITE_LINE_MEMBER( bebox_state::fdc_interrupt ) * *************************************/ -READ64_MEMBER(bebox_state::bebox_interrupt_ack_r ) +uint64_t bebox_state::bebox_interrupt_ack_r() { uint32_t result; result = m_pic8259[0]->acknowledge(); @@ -389,50 +389,50 @@ WRITE_LINE_MEMBER(bebox_state::bebox_ide_interrupt) * *************************************/ /* -static READ64_MEMBER(bebox_state::bebox_video_r ) +uint64_t bebox_state::bebox_video_r(offs_t offset, uint64_t mem_mask) { uint64_t result = 0; mem_mask = FLIPENDIAN_INT64(mem_mask); if (ACCESSING_BITS_0_7) - result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 0, mem_mask >> 0) << 0; + result |= (uint64_t)vga_mem_linear_r(offset * 8 + 0, mem_mask >> 0) << 0; if (ACCESSING_BITS_8_15) - result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 1, mem_mask >> 8) << 8; + result |= (uint64_t)vga_mem_linear_r(offset * 8 + 1, mem_mask >> 8) << 8; if (ACCESSING_BITS_16_23) - result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 2, mem_mask >> 16) << 16; + result |= (uint64_t)vga_mem_linear_r(offset * 8 + 2, mem_mask >> 16) << 16; if (ACCESSING_BITS_24_31) - result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 3, mem_mask >> 24) << 24; + result |= (uint64_t)vga_mem_linear_r(offset * 8 + 3, mem_mask >> 24) << 24; if (ACCESSING_BITS_32_39) - result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 4, mem_mask >> 32) << 32; + result |= (uint64_t)vga_mem_linear_r(offset * 8 + 4, mem_mask >> 32) << 32; if (ACCESSING_BITS_40_47) - result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 5, mem_mask >> 40) << 40; + result |= (uint64_t)vga_mem_linear_r(offset * 8 + 5, mem_mask >> 40) << 40; if (ACCESSING_BITS_48_55) - result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 6, mem_mask >> 48) << 48; + result |= (uint64_t)vga_mem_linear_r(offset * 8 + 6, mem_mask >> 48) << 48; if (ACCESSING_BITS_56_63) - result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 7, mem_mask >> 56) << 56; + result |= (uint64_t)vga_mem_linear_r(offset * 8 + 7, mem_mask >> 56) << 56; return FLIPENDIAN_INT64(result); } -static WRITE64_MEMBER(bebox_state::bebox_video_w ) +void bebox_state::bebox_video_w(offs_t offset, uint64_t data, uint64_t mem_mask) { data = FLIPENDIAN_INT64(data); mem_mask = FLIPENDIAN_INT64(mem_mask); if (ACCESSING_BITS_0_7) - vga_mem_linear_w(space, offset * 8 + 0, data >> 0 , mem_mask >> 0); + vga_mem_linear_w(offset * 8 + 0, data >> 0 , mem_mask >> 0); if (ACCESSING_BITS_8_15) - vga_mem_linear_w(space, offset * 8 + 1, data >> 8 , mem_mask >> 8); + vga_mem_linear_w(offset * 8 + 1, data >> 8 , mem_mask >> 8); if (ACCESSING_BITS_16_23) - vga_mem_linear_w(space, offset * 8 + 2, data >> 16, mem_mask >> 16); + vga_mem_linear_w(offset * 8 + 2, data >> 16, mem_mask >> 16); if (ACCESSING_BITS_24_31) - vga_mem_linear_w(space, offset * 8 + 3, data >> 24, mem_mask >> 24); + vga_mem_linear_w(offset * 8 + 3, data >> 24, mem_mask >> 24); if (ACCESSING_BITS_32_39) - vga_mem_linear_w(space, offset * 8 + 4, data >> 32, mem_mask >> 32); + vga_mem_linear_w(offset * 8 + 4, data >> 32, mem_mask >> 32); if (ACCESSING_BITS_40_47) - vga_mem_linear_w(space, offset * 8 + 5, data >> 40, mem_mask >> 40); + vga_mem_linear_w(offset * 8 + 5, data >> 40, mem_mask >> 40); if (ACCESSING_BITS_48_55) - vga_mem_linear_w(space, offset * 8 + 6, data >> 48, mem_mask >> 48); + vga_mem_linear_w(offset * 8 + 6, data >> 48, mem_mask >> 48); if (ACCESSING_BITS_56_63) - vga_mem_linear_w(space, offset * 8 + 7, data >> 56, mem_mask >> 56); + vga_mem_linear_w(offset * 8 + 7, data >> 56, mem_mask >> 56); } */ /************************************* @@ -442,7 +442,7 @@ static WRITE64_MEMBER(bebox_state::bebox_video_w ) *************************************/ -READ8_MEMBER(bebox_state::bebox_page_r) +uint8_t bebox_state::bebox_page_r(offs_t offset) { uint8_t data = m_at_pages[offset % 0x10]; @@ -465,7 +465,7 @@ READ8_MEMBER(bebox_state::bebox_page_r) } -WRITE8_MEMBER(bebox_state::bebox_page_w) +void bebox_state::bebox_page_w(offs_t offset, uint8_t data) { m_at_pages[offset % 0x10] = data; @@ -491,7 +491,7 @@ WRITE8_MEMBER(bebox_state::bebox_page_w) } -WRITE8_MEMBER(bebox_state::bebox_80000480_w) +void bebox_state::bebox_80000480_w(offs_t offset, uint8_t data) { switch(offset % 8) { @@ -515,7 +515,7 @@ WRITE8_MEMBER(bebox_state::bebox_80000480_w) } -READ8_MEMBER(bebox_state::bebox_80000480_r) +uint8_t bebox_state::bebox_80000480_r() { fatalerror("NYI\n"); } @@ -580,14 +580,14 @@ WRITE_LINE_MEMBER(bebox_state::bebox_timer0_w) * *************************************/ -READ8_MEMBER(bebox_state::bebox_flash_r) +uint8_t bebox_state::bebox_flash_r(offs_t offset) { offset = (offset & ~7) | (7 - (offset & 7)); return m_flash->read(offset); } -WRITE8_MEMBER(bebox_state::bebox_flash_w) +void bebox_state::bebox_flash_w(offs_t offset, uint8_t data) { offset = (offset & ~7) | (7 - (offset & 7)); m_flash->write(offset, data); @@ -600,7 +600,7 @@ WRITE8_MEMBER(bebox_state::bebox_flash_w) *************************************/ -READ64_MEMBER(bebox_state::scsi53c810_r ) +uint64_t bebox_state::scsi53c810_r(offs_t offset, uint64_t mem_mask) { int reg = offset*8; uint64_t r = 0; @@ -633,7 +633,7 @@ READ64_MEMBER(bebox_state::scsi53c810_r ) } -WRITE64_MEMBER(bebox_state::scsi53c810_w ) +void bebox_state::scsi53c810_w(offs_t offset, uint64_t data, uint64_t mem_mask) { int reg = offset*8; if (!ACCESSING_BITS_56_63) { diff --git a/src/mame/machine/bk.cpp b/src/mame/machine/bk.cpp index 7fa379cfbd7..c1c077d278c 100644 --- a/src/mame/machine/bk.cpp +++ b/src/mame/machine/bk.cpp @@ -74,22 +74,22 @@ void bk_state::machine_reset() m_scrool = 01330; } -READ16_MEMBER(bk_state::bk_key_state_r) +uint16_t bk_state::bk_key_state_r() { return m_kbd_state; } -READ16_MEMBER(bk_state::bk_key_code_r) +uint16_t bk_state::bk_key_code_r() { m_kbd_state &= ~0x80; // mark reading done m_key_pressed = 0; return m_key_code; } -READ16_MEMBER(bk_state::bk_vid_scrool_r) +uint16_t bk_state::bk_vid_scrool_r() { return m_scrool; } -READ16_MEMBER(bk_state::bk_key_press_r) +uint16_t bk_state::bk_key_press_r() { double level = m_cassette->input(); uint16_t cas = (level < 0) ? 0 : 0x20; @@ -97,27 +97,27 @@ READ16_MEMBER(bk_state::bk_key_press_r) return 0x8080 | m_key_pressed | cas; } -WRITE16_MEMBER(bk_state::bk_key_state_w) +void bk_state::bk_key_state_w(uint16_t data) { m_kbd_state = (m_kbd_state & ~0x40) | (data & 0x40); } -WRITE16_MEMBER(bk_state::bk_vid_scrool_w) +void bk_state::bk_vid_scrool_w(uint16_t data) { m_scrool = data; } -WRITE16_MEMBER(bk_state::bk_key_press_w) +void bk_state::bk_key_press_w(uint16_t data) { m_cassette->output(BIT(data, 6) ? 1.0 : -1.0); } -READ16_MEMBER(bk_state::bk_floppy_cmd_r) +uint16_t bk_state::bk_floppy_cmd_r() { return 0; } -WRITE16_MEMBER(bk_state::bk_floppy_cmd_w) +void bk_state::bk_floppy_cmd_w(uint16_t data) { if (BIT(data, 0)) m_drive = 0; @@ -135,11 +135,11 @@ WRITE16_MEMBER(bk_state::bk_floppy_cmd_w) m_drive = -1; } -READ16_MEMBER(bk_state::bk_floppy_data_r) +uint16_t bk_state::bk_floppy_data_r() { return 0; } -WRITE16_MEMBER(bk_state::bk_floppy_data_w) +void bk_state::bk_floppy_data_w(uint16_t data) { } diff --git a/src/mame/machine/bsktball.cpp b/src/mame/machine/bsktball.cpp index e6c6e904e14..5f3877d840c 100644 --- a/src/mame/machine/bsktball.cpp +++ b/src/mame/machine/bsktball.cpp @@ -52,7 +52,7 @@ WRITE_LINE_MEMBER(bsktball_state::ld2_w) bsktball_in0_r ***************************************************************************/ -READ8_MEMBER(bsktball_state::bsktball_in0_r) +uint8_t bsktball_state::bsktball_in0_r() { int p1_horiz; int p1_vert; diff --git a/src/mame/machine/btime.cpp b/src/mame/machine/btime.cpp index 7eaffda5e26..8d3df4633dd 100644 --- a/src/mame/machine/btime.cpp +++ b/src/mame/machine/btime.cpp @@ -6,7 +6,7 @@ #define BASE 0xb000 -READ8_MEMBER(btime_state::mmonkey_protection_r) +uint8_t btime_state::mmonkey_protection_r(offs_t offset) { uint8_t *RAM = memregion("maincpu")->base(); int ret = 0; @@ -23,7 +23,7 @@ READ8_MEMBER(btime_state::mmonkey_protection_r) return ret; } -WRITE8_MEMBER(btime_state::mmonkey_protection_w) +void btime_state::mmonkey_protection_w(offs_t offset, uint8_t data) { uint8_t *RAM = memregion("maincpu")->base(); diff --git a/src/mame/machine/bublbobl.cpp b/src/mame/machine/bublbobl.cpp index 8a55e1538de..2af8ab904bd 100644 --- a/src/mame/machine/bublbobl.cpp +++ b/src/mame/machine/bublbobl.cpp @@ -113,12 +113,12 @@ void bublbobl_state::tokio_videoctrl_w(uint8_t data) flip_screen_set(data & 0x80); } -WRITE8_MEMBER(bublbobl_state::bublbobl_nmitrigger_w) +void bublbobl_state::bublbobl_nmitrigger_w(uint8_t data) { m_subcpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -READ8_MEMBER(bublbobl_state::tokiob_mcu_r) +uint8_t bublbobl_state::tokiob_mcu_r() { /* This return value is literally set by a resistor on the bootleg tokio pcb; the MCU footprint is unpopulated but for a resistor tying what would be the @@ -139,13 +139,13 @@ void bublbobl_state::device_timer(emu_timer &timer, device_timer_id id, int para } } -WRITE8_MEMBER(bublbobl_state::bublbobl_soundcpu_reset_w) +void bublbobl_state::bublbobl_soundcpu_reset_w(uint8_t data) { //logerror("soundcpu_reset_w called with data of %d\n", data); common_sreset(data ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER(bublbobl_state::common_sound_semaphores_r) +uint8_t bublbobl_state::common_sound_semaphores_r() { uint8_t ret = 0xfc; ret |= m_main_to_sound->pending_r() ? 0x2 : 0x0; @@ -161,54 +161,54 @@ Bubble Bobble MCU ***************************************************************************/ -READ8_MEMBER(bublbobl_state::bublbobl_mcu_ddr1_r) +uint8_t bublbobl_state::bublbobl_mcu_ddr1_r() { return m_ddr1; } -WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_ddr1_w) +void bublbobl_state::bublbobl_mcu_ddr1_w(uint8_t data) { m_ddr1 = data; } -READ8_MEMBER(bublbobl_state::bublbobl_mcu_ddr2_r) +uint8_t bublbobl_state::bublbobl_mcu_ddr2_r() { return m_ddr2; } -WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_ddr2_w) +void bublbobl_state::bublbobl_mcu_ddr2_w(uint8_t data) { m_ddr2 = data; } -READ8_MEMBER(bublbobl_state::bublbobl_mcu_ddr3_r) +uint8_t bublbobl_state::bublbobl_mcu_ddr3_r() { return m_ddr3; } -WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_ddr3_w) +void bublbobl_state::bublbobl_mcu_ddr3_w(uint8_t data) { m_ddr3 = data; } -READ8_MEMBER(bublbobl_state::bublbobl_mcu_ddr4_r) +uint8_t bublbobl_state::bublbobl_mcu_ddr4_r() { return m_ddr4; } -WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_ddr4_w) +void bublbobl_state::bublbobl_mcu_ddr4_w(uint8_t data) { m_ddr4 = data; } -READ8_MEMBER(bublbobl_state::bublbobl_mcu_port1_r) +uint8_t bublbobl_state::bublbobl_mcu_port1_r() { //logerror("%04x: 6801U4 port 1 read\n", m_mcu->pc()); m_port1_in = ioport("IN0")->read(); return (m_port1_out & m_ddr1) | (m_port1_in & ~m_ddr1); } -WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port1_w) +void bublbobl_state::bublbobl_mcu_port1_w(uint8_t data) { //logerror("%04x: 6801U4 port 1 write %02x\n", m_mcu->pc(), data); @@ -231,13 +231,13 @@ WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port1_w) m_port1_out = data; } -READ8_MEMBER(bublbobl_state::bublbobl_mcu_port2_r) +uint8_t bublbobl_state::bublbobl_mcu_port2_r() { //logerror("%04x: 6801U4 port 2 read\n", m_mcu->pc()); return (m_port2_out & m_ddr2) | (m_port2_in & ~m_ddr2); } -WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port2_w) +void bublbobl_state::bublbobl_mcu_port2_w(uint8_t data) { //logerror("%04x: 6801U4 port 2 write %02x\n", m_mcu->pc(), data); static const char *const portnames[] = { "DSW0", "DSW1", "IN1", "IN2" }; @@ -271,25 +271,25 @@ WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port2_w) m_port2_out = data; } -READ8_MEMBER(bublbobl_state::bublbobl_mcu_port3_r) +uint8_t bublbobl_state::bublbobl_mcu_port3_r() { //logerror("%04x: 6801U4 port 3 read\n", m_mcu->pc()); return (m_port3_out & m_ddr3) | (m_port3_in & ~m_ddr3); } -WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port3_w) +void bublbobl_state::bublbobl_mcu_port3_w(uint8_t data) { //logerror("%04x: 6801U4 port 3 write %02x\n", m_mcu->pc(), data); m_port3_out = data; } -READ8_MEMBER(bublbobl_state::bublbobl_mcu_port4_r) +uint8_t bublbobl_state::bublbobl_mcu_port4_r() { //logerror("%04x: 6801U4 port 4 read\n", m_mcu->pc()); return (m_port4_out & m_ddr4) | (m_port4_in & ~m_ddr4); } -WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port4_w) +void bublbobl_state::bublbobl_mcu_port4_w(uint8_t data) { //logerror("%04x: 6801U4 port 4 write %02x\n", m_mcu->pc(), data); @@ -307,7 +307,7 @@ in boblbobl, so they don't matter. All checks are patched out in sboblbob. ***************************************************************************/ -READ8_MEMBER(bublbobl_state::boblbobl_ic43_a_r) +uint8_t bublbobl_state::boblbobl_ic43_a_r(offs_t offset) { // if (offset >= 2) // logerror("%04x: ic43_a_r (offs %d) res = %02x\n", m_mcu->pc(), offset, res); @@ -318,7 +318,7 @@ READ8_MEMBER(bublbobl_state::boblbobl_ic43_a_r) return machine().rand() & 0xff; } -WRITE8_MEMBER(bublbobl_state::boblbobl_ic43_a_w) +void bublbobl_state::boblbobl_ic43_a_w(offs_t offset, uint8_t data) { int res = 0; @@ -356,7 +356,7 @@ WRITE8_MEMBER(bublbobl_state::boblbobl_ic43_a_w) m_ic43_a = res; } -WRITE8_MEMBER(bublbobl_state::boblbobl_ic43_b_w) +void bublbobl_state::boblbobl_ic43_b_w(offs_t offset, uint8_t data) { static const int xorval[4] = { 4, 1, 8, 2 }; @@ -364,7 +364,7 @@ WRITE8_MEMBER(bublbobl_state::boblbobl_ic43_b_w) m_ic43_b = (data >> 4) ^ xorval[offset]; } -READ8_MEMBER(bublbobl_state::boblbobl_ic43_b_r) +uint8_t bublbobl_state::boblbobl_ic43_b_r(offs_t offset) { // logerror("%04x: ic43_b_r (offs %d)\n", m_mcu->pc(), offset); if (offset == 0) diff --git a/src/mame/machine/interpro_ioga.cpp b/src/mame/machine/interpro_ioga.cpp index 74e02917bd4..97207d52960 100644 --- a/src/mame/machine/interpro_ioga.cpp +++ b/src/mame/machine/interpro_ioga.cpp @@ -139,6 +139,8 @@ interpro_ioga_device::interpro_ioga_device(const machine_config &mconfig, device , m_out_irq_vector_func(*this) , m_fdc_tc_func(*this) , m_eth_ca_func(*this) + , m_force_state(0) + , m_softint(0) , m_dma_channel{ { 0,0,0,0,CLEAR_LINE, {*this}, {*this}, ARBCTL_BGR_PLOT, DMA_PLOTTER, "plotter" }, { 0,0,0,0,CLEAR_LINE, {*this}, {*this}, ARBCTL_BGR_SCSI, DMA_SCSI, "scsi" }, @@ -163,6 +165,7 @@ turquoise_ioga_device::turquoise_ioga_device(const machine_config &mconfig, cons sapphire_ioga_device::sapphire_ioga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : interpro_ioga_device(mconfig, SAPPHIRE_IOGA, tag, owner, clock) { + std::fill(std::begin(m_swicr), std::end(m_swicr), 0); } void interpro_ioga_device::device_start() diff --git a/src/mame/machine/konppc.cpp b/src/mame/machine/konppc.cpp index 0b1225260f1..2ed065fdedd 100644 --- a/src/mame/machine/konppc.cpp +++ b/src/mame/machine/konppc.cpp @@ -498,46 +498,3 @@ WRITE32_MEMBER( konppc_device::nwk_voodoo_1_w) m_voodoo[1]->voodoo_w(offset, data, mem_mask); } } - -/*****************************************************************************/ - -#define LED_ON 0xff00ff00 - -void draw_7segment_led(bitmap_rgb32 &bitmap, int x, int y, uint8_t value) -{ - if ((value & 0x7f) == 0x7f) - { - return; - } - - bitmap.plot_box(x-1, y-1, 7, 11, 0x00000000); - - /* Top */ - if( (value & 0x40) == 0 ) { - bitmap.plot_box(x+1, y+0, 3, 1, LED_ON); - } - /* Middle */ - if( (value & 0x01) == 0 ) { - bitmap.plot_box(x+1, y+4, 3, 1, LED_ON); - } - /* Bottom */ - if( (value & 0x08) == 0 ) { - bitmap.plot_box(x+1, y+8, 3, 1, LED_ON); - } - /* Top Left */ - if( (value & 0x02) == 0 ) { - bitmap.plot_box(x+0, y+1, 1, 3, LED_ON); - } - /* Top Right */ - if( (value & 0x20) == 0 ) { - bitmap.plot_box(x+4, y+1, 1, 3, LED_ON); - } - /* Bottom Left */ - if( (value & 0x04) == 0 ) { - bitmap.plot_box(x+0, y+5, 1, 3, LED_ON); - } - /* Bottom Right */ - if( (value & 0x10) == 0 ) { - bitmap.plot_box(x+4, y+5, 1, 3, LED_ON); - } -} diff --git a/src/mame/machine/konppc.h b/src/mame/machine/konppc.h index 7a158b3c573..e3862b23b9a 100644 --- a/src/mame/machine/konppc.h +++ b/src/mame/machine/konppc.h @@ -106,6 +106,4 @@ private: DECLARE_DEVICE_TYPE(KONPPC, konppc_device) -void draw_7segment_led(bitmap_rgb32 &bitmap, int x, int y, uint8_t value); - #endif // MAME_MACHINE_KONPPC_H diff --git a/src/mame/machine/nes_vt_soc.cpp b/src/mame/machine/nes_vt_soc.cpp index 446bddb966b..435c89abf71 100644 --- a/src/mame/machine/nes_vt_soc.cpp +++ b/src/mame/machine/nes_vt_soc.cpp @@ -230,7 +230,7 @@ void nes_vt_soc_device::device_start() //m_ppu->set_hblank_callback(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::hblank_irq))); //m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_r)), write8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_w))); - m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(nes_vt_soc_device::nt_r)), write8_delegate(*this, FUNC(nes_vt_soc_device::nt_w))); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*this, FUNC(nes_vt_soc_device::nt_r)), write8sm_delegate(*this, FUNC(nes_vt_soc_device::nt_w))); m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(*this, FUNC(nes_vt_soc_device::chr_r)), write8sm_delegate(*this, FUNC(nes_vt_soc_device::chr_w))); m_write_0_callback.resolve_safe(); @@ -347,12 +347,12 @@ uint16_t nes_vt_soc_device::decode_nt_addr(uint16_t addr) return ((vert_mirror ? a10 : a11) << 10) | base; } -WRITE8_MEMBER(nes_vt_soc_device::vt03_410x_w) +void nes_vt_soc_device::vt03_410x_w(offs_t offset, uint8_t data) { scrambled_410x_w(offset, data); } -READ8_MEMBER(nes_vt_soc_device::vt03_410x_r) +uint8_t nes_vt_soc_device::vt03_410x_r(offs_t offset) { return m_410x[offset]; } @@ -534,12 +534,12 @@ void nes_vt_soc_device::video_irq(bool hblank, int scanline, int vblank, int bla } /* todo, handle custom VT nametable stuff here */ -READ8_MEMBER(nes_vt_soc_device::nt_r) +uint8_t nes_vt_soc_device::nt_r(offs_t offset) { return m_ntram[decode_nt_addr(offset)]; } -WRITE8_MEMBER(nes_vt_soc_device::nt_w) +void nes_vt_soc_device::nt_w(offs_t offset, uint8_t data) { //logerror("nt wr %04x %02x", offset, data); m_ntram[decode_nt_addr(offset)] = data; @@ -768,7 +768,7 @@ int nes_vt_soc_device::calculate_real_video_address(int addr, int extended, int but then seems to be able to alter internal state of extended PPU registers, which is awkward */ -void nes_vt_soc_device::scrambled_8000_w(address_space& space, uint16_t offset, uint8_t data) +void nes_vt_soc_device::scrambled_8000_w(uint16_t offset, uint8_t data) { offset &= 0x7fff; @@ -868,22 +868,22 @@ void nes_vt_soc_device::scrambled_8000_w(address_space& space, uint16_t offset, else if ((addr >= 0xC000) && (addr < 0xE000) && !(addr & 0x01)) { // IRQ latch - vt03_410x_w(space, 1, data); + vt03_410x_w(1, data); } else if ((addr >= 0xC000) && (addr < 0xE000) && (addr & 0x01)) { // IRQ reload - vt03_410x_w(space, 2, data); + vt03_410x_w(2, data); } else if ((addr >= 0xE000) && !(addr & 0x01)) { // IRQ disable - vt03_410x_w(space, 3, data); + vt03_410x_w(3, data); } else if ((addr >= 0xE000) && (addr & 0x01)) { // IRQ enable - vt03_410x_w(space, 4, data); + vt03_410x_w(4, data); } else { @@ -912,37 +912,37 @@ void nes_vt_soc_device::set_410x_scramble(uint8_t reg0, uint8_t reg1) m_410x_scramble[1] = reg1; } -WRITE8_MEMBER(nes_vt_soc_device::vt03_8000_mapper_w) +void nes_vt_soc_device::vt03_8000_mapper_w(offs_t offset, uint8_t data) { - scrambled_8000_w(space, offset, data); + scrambled_8000_w(offset, data); //logerror("%s: vt03_8000_mapper_w (%04x) %02x\n", machine().describe_context(), offset+0x8000, data ); } /* APU plumbing, this is because we have a plain M6502 core in the VT03, otherwise this is handled in the core */ -READ8_MEMBER(nes_vt_soc_device::psg1_4014_r) +uint8_t nes_vt_soc_device::psg1_4014_r() { //return m_apu->read(0x14); return 0x00; } -READ8_MEMBER(nes_vt_soc_device::psg1_4015_r) +uint8_t nes_vt_soc_device::psg1_4015_r() { return m_apu->read(0x15); } -WRITE8_MEMBER(nes_vt_soc_device::psg1_4015_w) +void nes_vt_soc_device::psg1_4015_w(uint8_t data) { m_apu->write(0x15, data); } -WRITE8_MEMBER(nes_vt_soc_device::psg1_4017_w) +void nes_vt_soc_device::psg1_4017_w(uint8_t data) { m_apu->write(0x17, data); } // early units (VT03?) have a DMA bug in NTSC mode -WRITE8_MEMBER(nes_vt_soc_device::vt_dma_w) +void nes_vt_soc_device::vt_dma_w(uint8_t data) { if (!m_force_baddma) do_dma(data, true); @@ -1012,28 +1012,28 @@ void nes_vt_soc_device::do_dma(uint8_t data, bool has_ntsc_bug) } -WRITE8_MEMBER(nes_vt_soc_device::vt03_4034_w) +void nes_vt_soc_device::vt03_4034_w(uint8_t data) { logerror("vt03_4034_w %02x\n", data); m_vdma_ctrl = data; } -READ8_MEMBER(nes_vt_soc_device::in0_r) +uint8_t nes_vt_soc_device::in0_r() { return m_read_0_callback(); } -READ8_MEMBER(nes_vt_soc_device::in1_r) +uint8_t nes_vt_soc_device::in1_r() { return m_read_1_callback(); } -WRITE8_MEMBER(nes_vt_soc_device::in0_w) +void nes_vt_soc_device::in0_w(offs_t offset, uint8_t data) { m_write_0_callback(offset, data); } -WRITE8_MEMBER(nes_vt_soc_device::extra_io_control_w) +void nes_vt_soc_device::extra_io_control_w(uint8_t data) { /* 410d Extra I/O control @@ -1051,7 +1051,7 @@ WRITE8_MEMBER(nes_vt_soc_device::extra_io_control_w) logerror("%s: extra_io_control_w %02x\n", machine().describe_context(), data); } -READ8_MEMBER(nes_vt_soc_device::extrain_01_r) +uint8_t nes_vt_soc_device::extrain_01_r() { // TODO: check status of 410d port to make sure we only read from enabled ports uint8_t in0 = 0x00, in1 = 0x00; @@ -1062,7 +1062,7 @@ READ8_MEMBER(nes_vt_soc_device::extrain_01_r) return in0 | (in1<<4); } -READ8_MEMBER(nes_vt_soc_device::extrain_23_r) +uint8_t nes_vt_soc_device::extrain_23_r() { // TODO: check status of 410d port to make sure we only read from enabled ports uint8_t in2 = 0x00, in3 = 0x00; @@ -1073,19 +1073,19 @@ READ8_MEMBER(nes_vt_soc_device::extrain_23_r) return in2 | (in3<<4); } -WRITE8_MEMBER(nes_vt_soc_device::extraout_01_w) +void nes_vt_soc_device::extraout_01_w(uint8_t data) { // TODO: use callbacks for this as output can be hooked up to anything logerror("%s: extraout_01_w %02x\n", machine().describe_context(), data); } -WRITE8_MEMBER(nes_vt_soc_device::extraout_23_w) +void nes_vt_soc_device::extraout_23_w(uint8_t data) { // TODO: use callbacks for this as output can be hooked up to anything logerror("%s: extraout_23_w %02x\n", machine().describe_context(), data); } -READ8_MEMBER(nes_vt_soc_device::rs232flags_region_r) +uint8_t nes_vt_soc_device::rs232flags_region_r() { /* 0x4119 RS232 Flags + Region @@ -1111,7 +1111,7 @@ READ8_MEMBER(nes_vt_soc_device::rs232flags_region_r) } -READ8_MEMBER(nes_vt_soc_device::external_space_read) +uint8_t nes_vt_soc_device::external_space_read(offs_t offset) { address_space& spc = this->space(AS_PROGRAM); int bank = (offset & 0x6000) >> 13; @@ -1120,7 +1120,7 @@ READ8_MEMBER(nes_vt_soc_device::external_space_read) return spc.read_byte(address); } -WRITE8_MEMBER(nes_vt_soc_device::external_space_write) +void nes_vt_soc_device::external_space_write(offs_t offset, uint8_t data) { address_space& spc = this->space(AS_PROGRAM); int bank = (offset & 0x6000) >> 13; @@ -1321,7 +1321,7 @@ void nes_vt_soc_4kram_cy_device::device_start() } -READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_41bx_r) +uint8_t nes_vt_soc_4kram_cy_device::vt03_41bx_r(offs_t offset) { switch (offset) { @@ -1332,18 +1332,18 @@ READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_41bx_r) } } -WRITE8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_41bx_w) +void nes_vt_soc_4kram_cy_device::vt03_41bx_w(offs_t offset, uint8_t data) { logerror("vt03_41bx_w %02x %02x\n", offset, data); } -READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_413x_r) +uint8_t nes_vt_soc_4kram_cy_device::vt03_413x_r(offs_t offset) { logerror("vt03_413x_r %02x\n", offset); return m_413x[offset]; } -WRITE8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_413x_w) +void nes_vt_soc_4kram_cy_device::vt03_413x_w(offs_t offset, uint8_t data) { logerror("vt03_413x_w %02x %02x\n", offset, data); // VT168 style ALU ?? @@ -1369,23 +1369,23 @@ WRITE8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_413x_w) } } -READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_414f_r) +uint8_t nes_vt_soc_4kram_cy_device::vt03_414f_r() { return 0xff; } -READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_415c_r) +uint8_t nes_vt_soc_4kram_cy_device::vt03_415c_r() { return 0xff; } -WRITE8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_48ax_w) +void nes_vt_soc_4kram_cy_device::vt03_48ax_w(offs_t offset, uint8_t data) { logerror("vt03_48ax_w %02x %02x\n", offset, data); } -READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_48ax_r) +uint8_t nes_vt_soc_4kram_cy_device::vt03_48ax_r(offs_t offset) { switch (offset) { @@ -1414,7 +1414,7 @@ void nes_vt_soc_4kram_bt_device::nes_vt_bt_map(address_map &map) map(0x412c, 0x412c).w(FUNC(nes_vt_soc_4kram_bt_device::vt03_412c_extbank_w)); } -WRITE8_MEMBER(nes_vt_soc_4kram_bt_device::vt03_412c_extbank_w) +void nes_vt_soc_4kram_bt_device::vt03_412c_extbank_w(uint8_t data) { m_upper_write_412c_callback(data); } @@ -1430,7 +1430,7 @@ void nes_vt_soc_4kram_hh_device::device_add_mconfig(machine_config& config) m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_soc_4kram_hh_device::nes_vt_hh_map); } -WRITE8_MEMBER(nes_vt_soc_4kram_hh_device::vtfp_411d_w) +void nes_vt_soc_4kram_hh_device::vtfp_411d_w(uint8_t data) { // controls chram access and mapper emulation modes in later models logerror("vtfp_411d_w %02x\n", data); @@ -1438,7 +1438,7 @@ WRITE8_MEMBER(nes_vt_soc_4kram_hh_device::vtfp_411d_w) update_banks(); } -READ8_MEMBER(nes_vt_soc_4kram_hh_device::vthh_414a_r) +uint8_t nes_vt_soc_4kram_hh_device::vthh_414a_r() { return 0x80; } @@ -1466,13 +1466,13 @@ void nes_vt_soc_4kram_fp_device::device_add_mconfig(machine_config& config) } -READ8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_4119_r) +uint8_t nes_vt_soc_4kram_fp_device::vtfp_4119_r() { // would be PAL/NTSC etc. in base system, maybe different here? return 0x00; } -WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_411e_w) +void nes_vt_soc_4kram_fp_device::vtfp_411e_w(uint8_t data) { logerror("411e_w %02x\n", data); if (data == 0x05) @@ -1481,7 +1481,7 @@ WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_411e_w) dynamic_cast<m6502_vtscr&>(*m_maincpu).set_next_scramble(false); } -WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_4a00_w) +void nes_vt_soc_4kram_fp_device::vtfp_4a00_w(uint8_t data) { logerror("4a00_w %02x\n", data); //if(data == 0x80) @@ -1489,17 +1489,17 @@ WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_4a00_w) } -WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_412c_extbank_w) +void nes_vt_soc_4kram_fp_device::vtfp_412c_extbank_w(uint8_t data) { m_upper_write_412c_callback(data); } -READ8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_412d_r) +uint8_t nes_vt_soc_4kram_fp_device::vtfp_412d_r() { return m_upper_read_412d_callback(); } -WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_4242_w) +void nes_vt_soc_4kram_fp_device::vtfp_4242_w(uint8_t data) { logerror("vtfp_4242_w %02x\n", data); m_4242 = data; @@ -1536,7 +1536,7 @@ void nes_vt_soc_8kram_dg_device::device_add_mconfig(machine_config& config) m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_soc_8kram_dg_device::nes_vt_dg_map); } -WRITE8_MEMBER(nes_vt_soc_8kram_dg_device::vt03_411c_w) +void nes_vt_soc_8kram_dg_device::vt03_411c_w(uint8_t data) { logerror("vt03_411c_w %02x\n", data); m_411c = data; @@ -1561,18 +1561,18 @@ void nes_vt_soc_8kram_fa_device::device_add_mconfig(machine_config& config) m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_soc_8kram_fa_device::nes_vt_fa_map); } -READ8_MEMBER(nes_vt_soc_8kram_fa_device::vtfa_412c_r) +uint8_t nes_vt_soc_8kram_fa_device::vtfa_412c_r() { return m_upper_read_412c_callback(); } -WRITE8_MEMBER(nes_vt_soc_8kram_fa_device::vtfa_412c_extbank_w) +void nes_vt_soc_8kram_fa_device::vtfa_412c_extbank_w(uint8_t data) { m_upper_write_412c_callback(data); } -WRITE8_MEMBER(nes_vt_soc_8kram_fa_device::vtfp_4242_w) +void nes_vt_soc_8kram_fa_device::vtfp_4242_w(uint8_t data) { logerror("vtfp_4242_w %02x\n", data); m_4242 = data; diff --git a/src/mame/machine/nes_vt_soc.h b/src/mame/machine/nes_vt_soc.h index 05b595f8e9a..ebf3dd91142 100644 --- a/src/mame/machine/nes_vt_soc.h +++ b/src/mame/machine/nes_vt_soc.h @@ -20,7 +20,7 @@ public: void program_map(address_map &map); - DECLARE_WRITE8_MEMBER(vt03_8000_mapper_w); + void vt03_8000_mapper_w(offs_t offset, uint8_t data); // 8-bit ports auto write_0_callback() { return m_write_0_callback.bind(); } @@ -73,8 +73,8 @@ protected: uint32_t get_banks(uint8_t bnk); void update_banks(); uint16_t decode_nt_addr(uint16_t addr); - DECLARE_WRITE8_MEMBER(vt03_410x_w); - DECLARE_READ8_MEMBER(vt03_410x_r); + void vt03_410x_w(offs_t offset, uint8_t data); + uint8_t vt03_410x_r(offs_t offset); void scrambled_410x_w(uint16_t offset, uint8_t data); uint8_t spr_r(offs_t offset); uint8_t chr_r(offs_t offset); @@ -82,29 +82,29 @@ protected: void scanline_irq(int scanline, int vblank, int blanked); void hblank_irq(int scanline, int vblank, int blanked); void video_irq(bool hblank, int scanline, int vblank, int blanked); - DECLARE_READ8_MEMBER(nt_r); - DECLARE_WRITE8_MEMBER(nt_w); + uint8_t nt_r(offs_t offset); + void nt_w(offs_t offset, uint8_t data); int calculate_real_video_address(int addr, int extended, int readtype); - void scrambled_8000_w(address_space& space, uint16_t offset, uint8_t data); - DECLARE_READ8_MEMBER(psg1_4014_r); - DECLARE_READ8_MEMBER(psg1_4015_r); - DECLARE_WRITE8_MEMBER(psg1_4015_w); - DECLARE_WRITE8_MEMBER(psg1_4017_w); - DECLARE_WRITE8_MEMBER(vt_dma_w); - DECLARE_WRITE8_MEMBER(vt_fixed_dma_w); + void scrambled_8000_w(uint16_t offset, uint8_t data); + uint8_t psg1_4014_r(); + uint8_t psg1_4015_r(); + void psg1_4015_w(uint8_t data); + void psg1_4017_w(uint8_t data); + void vt_dma_w(uint8_t data); + void vt_fixed_dma_w(uint8_t data); void do_dma(uint8_t data, bool has_ntsc_bug); - DECLARE_WRITE8_MEMBER(vt03_4034_w); + void vt03_4034_w(uint8_t data); - DECLARE_READ8_MEMBER(in0_r); - DECLARE_READ8_MEMBER(in1_r); - DECLARE_WRITE8_MEMBER(in0_w); + uint8_t in0_r(); + uint8_t in1_r(); + void in0_w(offs_t offset, uint8_t data); - DECLARE_WRITE8_MEMBER(extra_io_control_w); - DECLARE_READ8_MEMBER(extrain_01_r); - DECLARE_READ8_MEMBER(extrain_23_r); - DECLARE_WRITE8_MEMBER(extraout_01_w); - DECLARE_WRITE8_MEMBER(extraout_23_w); - DECLARE_READ8_MEMBER(rs232flags_region_r); + void extra_io_control_w(uint8_t data); + uint8_t extrain_01_r(); + uint8_t extrain_23_r(); + void extraout_01_w(uint8_t data); + void extraout_23_w(uint8_t data); + uint8_t rs232flags_region_r(); uint32_t screen_update(screen_device& screen, bitmap_rgb32& bitmap, const rectangle& cliprect); @@ -132,8 +132,8 @@ protected: DECLARE_WRITE_LINE_MEMBER(apu_irq); uint8_t apu_read_mem(offs_t offset); - DECLARE_READ8_MEMBER(external_space_read); - DECLARE_WRITE8_MEMBER(external_space_write); + uint8_t external_space_read(offs_t offset); + void external_space_write(offs_t offset, uint8_t data); void do_pal_timings_and_ppu_replacement(machine_config& config); @@ -217,18 +217,18 @@ protected: void nes_vt_cy_map(address_map& map); - DECLARE_READ8_MEMBER(vt03_41bx_r); - DECLARE_WRITE8_MEMBER(vt03_41bx_w); + uint8_t vt03_41bx_r(offs_t offset); + void vt03_41bx_w(offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER(vt03_413x_r); - DECLARE_WRITE8_MEMBER(vt03_413x_w); + uint8_t vt03_413x_r(offs_t offset); + void vt03_413x_w(offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER(vt03_414f_r); + uint8_t vt03_414f_r(); - DECLARE_READ8_MEMBER(vt03_415c_r); + uint8_t vt03_415c_r(); - DECLARE_WRITE8_MEMBER(vt03_48ax_w); - DECLARE_READ8_MEMBER(vt03_48ax_r); + void vt03_48ax_w(offs_t offset, uint8_t data); + uint8_t vt03_48ax_r(offs_t offset); uint8_t m_413x[8]; // CY only? }; @@ -243,7 +243,7 @@ protected: void nes_vt_bt_map(address_map& map); - DECLARE_WRITE8_MEMBER(vt03_412c_extbank_w); + void vt03_412c_extbank_w(uint8_t data); }; class nes_vt_soc_4kram_hh_device : public nes_vt_soc_4kram_device @@ -258,8 +258,8 @@ protected: void nes_vt_hh_map(address_map& map); - DECLARE_READ8_MEMBER(vthh_414a_r); - DECLARE_WRITE8_MEMBER(vtfp_411d_w); + uint8_t vthh_414a_r(); + void vtfp_411d_w(uint8_t data); }; @@ -275,12 +275,12 @@ protected: void nes_vt_fp_map(address_map& map); - DECLARE_READ8_MEMBER(vtfp_4119_r); - DECLARE_WRITE8_MEMBER(vtfp_411e_w); - DECLARE_WRITE8_MEMBER(vtfp_412c_extbank_w); - DECLARE_READ8_MEMBER(vtfp_412d_r); - DECLARE_WRITE8_MEMBER(vtfp_4242_w); - DECLARE_WRITE8_MEMBER(vtfp_4a00_w); + uint8_t vtfp_4119_r(); + void vtfp_411e_w(uint8_t data); + void vtfp_412c_extbank_w(uint8_t data); + uint8_t vtfp_412d_r(); + void vtfp_4242_w(uint8_t data); + void vtfp_4a00_w(uint8_t data); }; class nes_vt_soc_4kram_fp_pal_device : public nes_vt_soc_4kram_fp_device @@ -305,7 +305,7 @@ protected: void nes_vt_dg_map(address_map& map); - DECLARE_WRITE8_MEMBER(vt03_411c_w); + void vt03_411c_w(uint8_t data); }; class nes_vt_soc_8kram_fa_device : public nes_vt_soc_8kram_dg_device @@ -319,9 +319,9 @@ protected: void nes_vt_fa_map(address_map& map); - DECLARE_READ8_MEMBER(vtfa_412c_r); - DECLARE_WRITE8_MEMBER(vtfa_412c_extbank_w); - DECLARE_WRITE8_MEMBER(vtfp_4242_w); + uint8_t vtfa_412c_r(); + void vtfa_412c_extbank_w(uint8_t data); + void vtfp_4242_w(uint8_t data); }; diff --git a/src/mame/machine/snes.cpp b/src/mame/machine/snes.cpp index 38658019db0..57be9b72db2 100644 --- a/src/mame/machine/snes.cpp +++ b/src/mame/machine/snes.cpp @@ -2,7 +2,7 @@ // copyright-holders:Angelo Salese, R. Belmont, Anthony Kruize, Fabio Priuli, Ryan Holtz /*************************************************************************** - snes.c + snes.cpp Machine file to handle emulation of the Nintendo Super NES @@ -267,7 +267,7 @@ uint8_t snes_state::snes_open_bus_r() } /* read & write to DMA addresses are defined separately, to be called by snessdd1 handlers */ -READ8_MEMBER( snes_state::snes_io_dma_r ) +uint8_t snes_state::snes_io_dma_r(offs_t offset) { switch (offset) { @@ -313,7 +313,7 @@ READ8_MEMBER( snes_state::snes_io_dma_r ) return snes_open_bus_r(); } -WRITE8_MEMBER( snes_state::snes_io_dma_w ) +void snes_state::snes_io_dma_w(offs_t offset, uint8_t data) { switch (offset) { @@ -377,7 +377,7 @@ WRITE8_MEMBER( snes_state::snes_io_dma_w ) * mid - This is the middle byte of a 24 bit value * high - This is the high byte of a 16 or 24 bit value */ -READ8_MEMBER( snes_state::snes_r_io ) +uint8_t snes_state::snes_r_io(offs_t offset) { uint8_t value = 0; @@ -396,7 +396,7 @@ READ8_MEMBER( snes_state::snes_r_io ) // DMA accesses are from 4300 to 437f if (offset >= DMAP0 && offset < 0x4380) { - return snes_io_dma_r(space, offset); + return snes_io_dma_r(offset); } @@ -467,7 +467,7 @@ READ8_MEMBER( snes_state::snes_r_io ) * mid - This is the middle byte of a 24 bit value * high - This is the high byte of a 16 or 24 bit value */ -WRITE8_MEMBER( snes_state::snes_w_io ) +void snes_state::snes_w_io(address_space &space, offs_t offset, uint8_t data) { // PPU accesses are from 2100 to 213f if (offset >= INIDISP && offset < APU00) @@ -488,7 +488,7 @@ WRITE8_MEMBER( snes_state::snes_w_io ) // DMA accesses are from 4300 to 437f if (offset >= DMAP0 && offset < 0x4380) { - snes_io_dma_w(space, offset, data); + snes_io_dma_w(offset, data); return; } @@ -712,7 +712,7 @@ inline uint8_t snes_state::snes_rom_access(uint32_t offset) } /* 0x000000 - 0x7dffff */ -READ8_MEMBER(snes_state::snes_r_bank1) +uint8_t snes_state::snes_r_bank1(offs_t offset) { uint8_t value = 0xff; uint16_t address = offset & 0xffff; @@ -722,7 +722,7 @@ READ8_MEMBER(snes_state::snes_r_bank1) if (address < 0x2000) /* Mirror of Low RAM */ value = m_wram[address]; else if (address < 0x6000) /* I/O */ - value = snes_r_io(space, address); + value = snes_r_io(address); else if (address < 0x8000) { if (offset >= 0x300000 && m_cart.mode == SNES_MODE_21 && m_cart.m_nvram_size > 0) @@ -776,7 +776,7 @@ READ8_MEMBER(snes_state::snes_r_bank1) /* 0x800000 - 0xffffff */ -READ8_MEMBER(snes_state::snes_r_bank2) +uint8_t snes_state::snes_r_bank2(offs_t offset) { uint8_t value = 0; uint16_t address = offset & 0xffff; @@ -824,7 +824,7 @@ READ8_MEMBER(snes_state::snes_r_bank2) /* 0x000000 - 0x7dffff */ -WRITE8_MEMBER(snes_state::snes_w_bank1) +void snes_state::snes_w_bank1(address_space &space, offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; @@ -881,7 +881,7 @@ WRITE8_MEMBER(snes_state::snes_w_bank1) } /* 0x800000 - 0xffffff */ -WRITE8_MEMBER(snes_state::snes_w_bank2) +void snes_state::snes_w_bank2(offs_t offset, uint8_t data) { uint16_t address = offset & 0xffff; diff --git a/src/mame/machine/vt1682_timer.cpp b/src/mame/machine/vt1682_timer.cpp index c7d27522e6b..afe5bdc2697 100644 --- a/src/mame/machine/vt1682_timer.cpp +++ b/src/mame/machine/vt1682_timer.cpp @@ -60,14 +60,14 @@ void vrt_vt1682_timer_device::device_reset() 0x01 - Timer xx Preload:0 */ -READ8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_7_0_r) +uint8_t vrt_vt1682_timer_device::vt1682_timer_preload_7_0_r() { uint8_t ret = m_timer_preload_7_0; if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_preload_7_0_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_7_0_w) +void vrt_vt1682_timer_device::vt1682_timer_preload_7_0_w(uint8_t data) { if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_preload_7_0_w writing: %02x\n", machine().describe_context(), data); m_timer_preload_7_0 = data; @@ -90,7 +90,7 @@ WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_7_0_w) 0x01 - Timer xx Preload:8 */ -READ8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_15_8_r) +uint8_t vrt_vt1682_timer_device::vt1682_timer_preload_15_8_r() { uint8_t ret = m_timer_preload_15_8; if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_preload_15_8_r returning: %02x\n", machine().describe_context(), ret); @@ -107,7 +107,7 @@ void vrt_vt1682_timer_device::update_timer() } } -WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_15_8_w) +void vrt_vt1682_timer_device::vt1682_timer_preload_15_8_w(uint8_t data) { if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_preload_15_8_w writing: %02x\n", machine().describe_context(), data); m_timer_preload_15_8 = data; @@ -135,14 +135,14 @@ WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_15_8_w) 0x01 - TMRxx EN */ -READ8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_enable_r) +uint8_t vrt_vt1682_timer_device::vt1682_timer_enable_r() { uint8_t ret = m_timer_enable; if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_enable_r returning: %02x\n", machine().describe_context(), ret); return ret; } -WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_enable_w) +void vrt_vt1682_timer_device::vt1682_timer_enable_w(uint8_t data) { // Timer A notes // For NTSC @@ -191,7 +191,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(vrt_vt1682_timer_device::timer_expired) */ -WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_irqclear_w) +void vrt_vt1682_timer_device::vt1682_timer_irqclear_w(uint8_t data) { //if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_irqclear_w writing: %02x\n", machine().describe_context(), data); m_irq_cb(false); diff --git a/src/mame/machine/vt1682_timer.h b/src/mame/machine/vt1682_timer.h index 97f6cc263c9..d2e35280a33 100644 --- a/src/mame/machine/vt1682_timer.h +++ b/src/mame/machine/vt1682_timer.h @@ -21,16 +21,16 @@ public: // so that we can filter logging, sound timer gets used hundreds of times a frame, so logging it is unwise void set_sound_timer() { m_is_sound_timer = true; } - DECLARE_READ8_MEMBER(vt1682_timer_preload_7_0_r); - DECLARE_WRITE8_MEMBER(vt1682_timer_preload_7_0_w); + uint8_t vt1682_timer_preload_7_0_r(); + void vt1682_timer_preload_7_0_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_timer_preload_15_8_r); - DECLARE_WRITE8_MEMBER(vt1682_timer_preload_15_8_w); + uint8_t vt1682_timer_preload_15_8_r(); + void vt1682_timer_preload_15_8_w(uint8_t data); - DECLARE_READ8_MEMBER(vt1682_timer_enable_r); - DECLARE_WRITE8_MEMBER(vt1682_timer_enable_w); + uint8_t vt1682_timer_enable_r(); + void vt1682_timer_enable_w(uint8_t data); - DECLARE_WRITE8_MEMBER(vt1682_timer_irqclear_w); + void vt1682_timer_irqclear_w(uint8_t data); void change_clock(); diff --git a/src/mame/machine/vt1682_uio.cpp b/src/mame/machine/vt1682_uio.cpp index d7c5591dfc1..557ed7e3646 100644 --- a/src/mame/machine/vt1682_uio.cpp +++ b/src/mame/machine/vt1682_uio.cpp @@ -25,7 +25,7 @@ vrt_vt1682_uio_device::vrt_vt1682_uio_device(const machine_config &mconfig, cons { } -READ8_MEMBER(vrt_vt1682_uio_device::inteact_2129_uio_a_data_r) +uint8_t vrt_vt1682_uio_device::inteact_2129_uio_a_data_r() { // TODO, use direction register etc. uint8_t dat = m_porta_in(); @@ -34,7 +34,7 @@ READ8_MEMBER(vrt_vt1682_uio_device::inteact_2129_uio_a_data_r) } -WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_2129_uio_a_data_w) +void vrt_vt1682_uio_device::inteact_2129_uio_a_data_w(uint8_t data) { // TODO, use direction register etc. @@ -43,30 +43,30 @@ WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_2129_uio_a_data_w) m_porta_out(m_2129_uio_a_data); } -READ8_MEMBER(vrt_vt1682_uio_device::inteact_212a_uio_a_direction_r) +uint8_t vrt_vt1682_uio_device::inteact_212a_uio_a_direction_r() { return m_212a_uio_a_direction; } -WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_212a_uio_a_direction_w) +void vrt_vt1682_uio_device::inteact_212a_uio_a_direction_w(uint8_t data) { LOGMASKED(LOG_UIO, "%s: inteact_212a_uio_a_direction_w %02x\n", machine().describe_context(), data); m_212a_uio_a_direction = data; } -READ8_MEMBER(vrt_vt1682_uio_device::inteact_212b_uio_a_attribute_r) +uint8_t vrt_vt1682_uio_device::inteact_212b_uio_a_attribute_r() { return m_212b_uio_a_attribute; } -WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_212b_uio_a_attribute_w) +void vrt_vt1682_uio_device::inteact_212b_uio_a_attribute_w(uint8_t data) { LOGMASKED(LOG_UIO, "%s: inteact_212b_uio_a_attribute_w %02x\n", machine().describe_context(), data); m_212b_uio_a_attribute = data; } -READ8_MEMBER(vrt_vt1682_uio_device::inteact_2149_uio_b_data_r) +uint8_t vrt_vt1682_uio_device::inteact_2149_uio_b_data_r() { // TODO, use direction register etc. uint8_t dat = m_portb_in(); @@ -75,7 +75,7 @@ READ8_MEMBER(vrt_vt1682_uio_device::inteact_2149_uio_b_data_r) } -WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_2149_uio_b_data_w) +void vrt_vt1682_uio_device::inteact_2149_uio_b_data_w(uint8_t data) { // TODO, use direction register etc. LOGMASKED(LOG_UIO, "%s: inteact_2149_uio_b_data_w %02x\n", machine().describe_context(), data); @@ -83,23 +83,23 @@ WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_2149_uio_b_data_w) m_portb_out(m_2149_uio_b_data); } -READ8_MEMBER(vrt_vt1682_uio_device::inteact_214a_uio_b_direction_r) +uint8_t vrt_vt1682_uio_device::inteact_214a_uio_b_direction_r() { return m_214a_uio_b_direction; } -WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_214a_uio_b_direction_w) +void vrt_vt1682_uio_device::inteact_214a_uio_b_direction_w(uint8_t data) { LOGMASKED(LOG_UIO, "%s: inteact_214a_uio_b_direction_w %02x\n", machine().describe_context(), data); m_214a_uio_b_direction = data; } -READ8_MEMBER(vrt_vt1682_uio_device::inteact_214b_uio_b_attribute_r) +uint8_t vrt_vt1682_uio_device::inteact_214b_uio_b_attribute_r() { return m_214b_uio_b_attribute; } -WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_214b_uio_b_attribute_w) +void vrt_vt1682_uio_device::inteact_214b_uio_b_attribute_w(uint8_t data) { LOGMASKED(LOG_UIO, "%s: inteact_214b_uio_b_attribute_w %02x\n", machine().describe_context(), data); m_214b_uio_b_attribute = data; diff --git a/src/mame/machine/vt1682_uio.h b/src/mame/machine/vt1682_uio.h index d3bfc87971c..ef86aaaa2f2 100644 --- a/src/mame/machine/vt1682_uio.h +++ b/src/mame/machine/vt1682_uio.h @@ -19,19 +19,19 @@ public: auto portb_out() { return m_portb_out.bind(); } auto portb_in() { return m_portb_in.bind(); } - DECLARE_READ8_MEMBER(inteact_2129_uio_a_data_r); - DECLARE_WRITE8_MEMBER(inteact_2129_uio_a_data_w); - DECLARE_READ8_MEMBER(inteact_212a_uio_a_direction_r); - DECLARE_WRITE8_MEMBER(inteact_212a_uio_a_direction_w); - DECLARE_READ8_MEMBER(inteact_212b_uio_a_attribute_r); - DECLARE_WRITE8_MEMBER(inteact_212b_uio_a_attribute_w); - - DECLARE_READ8_MEMBER(inteact_2149_uio_b_data_r); - DECLARE_WRITE8_MEMBER(inteact_2149_uio_b_data_w); - DECLARE_READ8_MEMBER(inteact_214a_uio_b_direction_r); - DECLARE_WRITE8_MEMBER(inteact_214a_uio_b_direction_w); - DECLARE_READ8_MEMBER(inteact_214b_uio_b_attribute_r); - DECLARE_WRITE8_MEMBER(inteact_214b_uio_b_attribute_w); + uint8_t inteact_2129_uio_a_data_r(); + void inteact_2129_uio_a_data_w(uint8_t data); + uint8_t inteact_212a_uio_a_direction_r(); + void inteact_212a_uio_a_direction_w(uint8_t data); + uint8_t inteact_212b_uio_a_attribute_r(); + void inteact_212b_uio_a_attribute_w(uint8_t data); + + uint8_t inteact_2149_uio_b_data_r(); + void inteact_2149_uio_b_data_w(uint8_t data); + uint8_t inteact_214a_uio_b_direction_r(); + void inteact_214a_uio_b_direction_w(uint8_t data); + uint8_t inteact_214b_uio_b_attribute_r(); + void inteact_214b_uio_b_attribute_w(uint8_t data); protected: virtual void device_start() override; diff --git a/src/mame/mame.lst b/src/mame/mame.lst index b9e8cc391c6..3047ca78adc 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -3214,6 +3214,10 @@ barbball // (proto) (c) 1983 basic31 // basic52 // +@source:basssta.cpp +bassstr // +sbasssta // + @source:batman.cpp batman // 136085 (c) 1991 @@ -11485,8 +11489,8 @@ skydest // PD0 (c) 1985 Taito Corporation @source:cz101.cpp cz101 // 1984 Casio -@source:czk80.cpp -czk80 // +@source:ckz80.cpp +ckz80 // @source:d400.cpp d461 // @@ -12363,6 +12367,9 @@ drmicro // (c) 1983 Sanritsu @source:drtomy.cpp drtomy // (c) 1993 no copyright message (1993 on pcb), some code taken from 'Big Karnak' +@source:drumsta.cpp +drumsta // + @source:drw80pkr.cpp drw80pk2 // (c) 1983 IGT drw80pkr // (c) 1982 IGT @@ -22257,6 +22264,7 @@ alm32 // 1988 Mephisto Almeria 32 Bit port16 // 1989 Mephisto Portorose 16 Bit port32 // 1989 Mephisto Portorose 32 Bit port32a // 1989 Mephisto Portorose 32 Bit +port32b // 1989 Mephisto Portorose 32 Bit lyon16 // 1990 Mephisto Lyon 16 Bit lyon32 // 1990 Mephisto Lyon 32 Bit van16 // 1991 Mephisto Vancouver 16 Bit @@ -42245,3 +42253,6 @@ gs6502 @source:gs6809.cpp gs6809 + +@source:ultim809.cpp +ultim809 diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 5dedf3d4efc..2476ccb83d1 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -103,6 +103,7 @@ babbage.cpp banctec.cpp bandai_design_master.cpp basic52.cpp +basssta.cpp bbc.cpp bbcbc.cpp bbl380.cpp @@ -164,6 +165,7 @@ cit101.cpp cit1500.cpp cit220.cpp cking_master.cpp +ckz80.cpp clcd.cpp clickstart.cpp clxvme186.cpp @@ -201,7 +203,6 @@ cxg_sphinx40.cpp cxhumax.cpp cybiko.cpp cz101.cpp -czk80.cpp d400.cpp d6800.cpp d6809.cpp @@ -232,6 +233,7 @@ dolphunk.cpp dpb7000.cpp dps1.cpp dragon.cpp +drumsta.cpp dsb46.cpp dual68.cpp duet16.cpp @@ -1011,6 +1013,7 @@ tvgame.cpp tx0.cpp uchroma68.cpp uknc.cpp +ultim809.cpp unichamp.cpp unior.cpp unistar.cpp diff --git a/src/mame/video/aeroboto.cpp b/src/mame/video/aeroboto.cpp index 8392d6239b1..50fb751fe95 100644 --- a/src/mame/video/aeroboto.cpp +++ b/src/mame/video/aeroboto.cpp @@ -74,12 +74,12 @@ void aeroboto_state::video_start() ***************************************************************************/ -READ8_MEMBER(aeroboto_state::aeroboto_in0_r) +uint8_t aeroboto_state::aeroboto_in0_r() { return ioport(flip_screen() ? "P2" : "P1")->read(); } -WRITE8_MEMBER(aeroboto_state::aeroboto_3000_w) +void aeroboto_state::aeroboto_3000_w(uint8_t data) { /* bit 0 selects both flip screen and player1/player2 controls */ flip_screen_set(data & 0x01); @@ -95,13 +95,13 @@ WRITE8_MEMBER(aeroboto_state::aeroboto_3000_w) m_starsoff = data & 0x4; } -WRITE8_MEMBER(aeroboto_state::aeroboto_videoram_w) +void aeroboto_state::aeroboto_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(aeroboto_state::aeroboto_tilecolor_w) +void aeroboto_state::aeroboto_tilecolor_w(offs_t offset, uint8_t data) { if (m_tilecolor[offset] != data) { diff --git a/src/mame/video/aerofgt.cpp b/src/mame/video/aerofgt.cpp index 673cd21bd8a..1fb4a2d8d5f 100644 --- a/src/mame/video/aerofgt.cpp +++ b/src/mame/video/aerofgt.cpp @@ -163,25 +163,25 @@ void aerofgt_state::setbank( int layer, int num, int bank ) } } -WRITE8_MEMBER(aerofgt_state::pspikes_gfxbank_w) +void aerofgt_state::pspikes_gfxbank_w(uint8_t data) { setbank(0, 0, (data & 0xf0) >> 4); setbank(0, 1, data & 0x0f); } -WRITE8_MEMBER(aerofgt_state::karatblz_gfxbank_w) +void aerofgt_state::karatblz_gfxbank_w(uint8_t data) { setbank(0, 0, (data & 0x01)); setbank(1, 1, (data & 0x08) >> 3); } -WRITE8_MEMBER(aerofgt_state::spinlbrk_gfxbank_w) +void aerofgt_state::spinlbrk_gfxbank_w(uint8_t data) { setbank(0, 0, (data & 0x07)); setbank(1, 1, (data & 0x38) >> 3); } -WRITE16_MEMBER(aerofgt_state::turbofrc_gfxbank_w) +void aerofgt_state::turbofrc_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask) { data = COMBINE_DATA(&m_bank[offset]); @@ -191,7 +191,7 @@ WRITE16_MEMBER(aerofgt_state::turbofrc_gfxbank_w) setbank(offset, 4 * offset + 3, (data >> 12) & 0x0f); } -WRITE16_MEMBER(aerofgt_state::aerofgt_gfxbank_w) +void aerofgt_state::aerofgt_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask) { data = COMBINE_DATA(&m_bank[offset]); @@ -199,14 +199,14 @@ WRITE16_MEMBER(aerofgt_state::aerofgt_gfxbank_w) setbank(offset >> 1, 2 * offset + 1, (data >> 0) & 0xff); } -WRITE8_MEMBER(aerofgt_state::kickball_gfxbank_w) +void aerofgt_state::kickball_gfxbank_w(uint8_t data) { // I strongly doubt this logic is correct setbank(0, 0, (data & 0x0f)&~0x01); setbank(0, 1, (data & 0x0f)); } -WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w) +void aerofgt_state::pspikes_palette_bank_w(uint8_t data) { m_spritepalettebank = data & 0x03; if (m_charpalettebank != (data & 0x1c) >> 2) @@ -219,14 +219,14 @@ WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w) m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); } -WRITE8_MEMBER(aerofgt_state::spinlbrk_flip_screen_w) +void aerofgt_state::spinlbrk_flip_screen_w(uint8_t data) { m_flip_screen = BIT(data, 7); m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); m_tilemap[1]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); } -WRITE8_MEMBER(aerofgt_state::turbofrc_flip_screen_w) +void aerofgt_state::turbofrc_flip_screen_w(uint8_t data) { m_flip_screen = BIT(data, 7); m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); @@ -380,7 +380,7 @@ VIDEO_START_MEMBER(aerofgt_state,wbbc97) } // BOOTLEG -WRITE16_MEMBER(aerofgt_state::pspikesb_gfxbank_w) +void aerofgt_state::pspikesb_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_rasterram[0x200 / 2]); @@ -389,13 +389,13 @@ WRITE16_MEMBER(aerofgt_state::pspikesb_gfxbank_w) } // BOOTLEG -WRITE16_MEMBER(aerofgt_state::spikes91_lookup_w) +void aerofgt_state::spikes91_lookup_w(uint16_t data) { m_spikes91_lookup = data & 1; } // BOOTLEG -WRITE16_MEMBER(aerofgt_state::wbbc97_bitmap_enable_w) +void aerofgt_state::wbbc97_bitmap_enable_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_wbbc97_bitmap_enable); } diff --git a/src/mame/video/airbustr.cpp b/src/mame/video/airbustr.cpp index 1cfc52505ea..e3a847d2247 100644 --- a/src/mame/video/airbustr.cpp +++ b/src/mame/video/airbustr.cpp @@ -47,7 +47,7 @@ Bg Y Bg X Fg Y Fg X <-Scroll High Bits (complemented!) */ -WRITE8_MEMBER(airbustr_state::scrollregs_w) +void airbustr_state::scrollregs_w(offs_t offset, uint8_t data) { switch (offset) // offset 0 <-> port 4 { diff --git a/src/mame/video/ampoker2.cpp b/src/mame/video/ampoker2.cpp index 7a91aa49eac..01c27166f82 100644 --- a/src/mame/video/ampoker2.cpp +++ b/src/mame/video/ampoker2.cpp @@ -117,7 +117,7 @@ void ampoker2_state::ampoker2_palette(palette_device &palette) const } } -WRITE8_MEMBER(ampoker2_state::videoram_w) +void ampoker2_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset / 2); diff --git a/src/mame/video/amspdwy.cpp b/src/mame/video/amspdwy.cpp index 4b3f56f3063..612d3703bd3 100644 --- a/src/mame/video/amspdwy.cpp +++ b/src/mame/video/amspdwy.cpp @@ -18,7 +18,7 @@ #include "includes/amspdwy.h" -WRITE8_MEMBER(amspdwy_state::amspdwy_flipscreen_w) +void amspdwy_state::amspdwy_flipscreen_w(uint8_t data) { m_flipscreen ^= 1; flip_screen_set(m_flipscreen); @@ -47,13 +47,13 @@ TILE_GET_INFO_MEMBER(amspdwy_state::get_tile_info) 0); } -WRITE8_MEMBER(amspdwy_state::amspdwy_videoram_w) +void amspdwy_state::amspdwy_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(amspdwy_state::amspdwy_colorram_w) +void amspdwy_state::amspdwy_colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/video/angelkds.cpp b/src/mame/video/angelkds.cpp index 95bf08aa7e7..13e72c78934 100644 --- a/src/mame/video/angelkds.cpp +++ b/src/mame/video/angelkds.cpp @@ -25,13 +25,13 @@ TILE_GET_INFO_MEMBER(angelkds_state::get_tx_tile_info) tileinfo.set(0, tileno, 0, 0); } -WRITE8_MEMBER(angelkds_state::angelkds_txvideoram_w) +void angelkds_state::angelkds_txvideoram_w(offs_t offset, uint8_t data) { m_txvideoram[offset] = data; m_tx_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(angelkds_state::angelkds_txbank_write) +void angelkds_state::angelkds_txbank_write(uint8_t data) { if (m_txbank != data) { @@ -54,13 +54,13 @@ TILE_GET_INFO_MEMBER(angelkds_state::get_bgtop_tile_info) tileinfo.set(1, tileno, 0, 0); } -WRITE8_MEMBER(angelkds_state::angelkds_bgtopvideoram_w) +void angelkds_state::angelkds_bgtopvideoram_w(offs_t offset, uint8_t data) { m_bgtopvideoram[offset] = data; m_bgtop_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(angelkds_state::angelkds_bgtopbank_write) +void angelkds_state::angelkds_bgtopbank_write(uint8_t data) { if (m_bgtopbank != data) { @@ -69,7 +69,7 @@ WRITE8_MEMBER(angelkds_state::angelkds_bgtopbank_write) } } -WRITE8_MEMBER(angelkds_state::angelkds_bgtopscroll_write) +void angelkds_state::angelkds_bgtopscroll_write(uint8_t data) { m_bgtop_tilemap->set_scrollx(0, data); } @@ -88,14 +88,14 @@ TILE_GET_INFO_MEMBER(angelkds_state::get_bgbot_tile_info) tileinfo.set(2, tileno, 1, 0); } -WRITE8_MEMBER(angelkds_state::angelkds_bgbotvideoram_w) +void angelkds_state::angelkds_bgbotvideoram_w(offs_t offset, uint8_t data) { m_bgbotvideoram[offset] = data; m_bgbot_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(angelkds_state::angelkds_bgbotbank_write) +void angelkds_state::angelkds_bgbotbank_write(uint8_t data) { if (m_bgbotbank != data) { @@ -104,13 +104,13 @@ WRITE8_MEMBER(angelkds_state::angelkds_bgbotbank_write) } } -WRITE8_MEMBER(angelkds_state::angelkds_bgbotscroll_write) +void angelkds_state::angelkds_bgbotscroll_write(uint8_t data) { m_bgbot_tilemap->set_scrollx(0, data); } -WRITE8_MEMBER(angelkds_state::angelkds_layer_ctrl_write) +void angelkds_state::angelkds_layer_ctrl_write(uint8_t data) { m_layer_ctrl = data; } diff --git a/src/mame/video/apollo.cpp b/src/mame/video/apollo.cpp index 5a24cda3962..e4124bab8cd 100644 --- a/src/mame/video/apollo.cpp +++ b/src/mame/video/apollo.cpp @@ -728,7 +728,7 @@ void apollo_graphics_15i::set_lut_cr(uint8_t data) } } -READ8_MEMBER( apollo_graphics_15i::apollo_mcr_r ) +uint8_t apollo_graphics_15i::apollo_mcr_r(offs_t offset) { uint8_t data; switch (offset & 0x407) @@ -773,7 +773,7 @@ READ8_MEMBER( apollo_graphics_15i::apollo_mcr_r ) return data; } -WRITE8_MEMBER( apollo_graphics_15i::apollo_mcr_w ) +void apollo_graphics_15i::apollo_mcr_w(offs_t offset, uint8_t data) { MLOG1(("writing Graphics Controller at offset %03x = %02x (%s)", offset, data, cr_text(offset, data, 0))); switch (offset & 0x407) @@ -999,7 +999,7 @@ void apollo_graphics_15i::blt(uint32_t dest_addr, uint16_t mem_mask) Color graphics memory space at A0000 - BFFFF ***************************************************************************/ -READ16_MEMBER( apollo_graphics_15i::apollo_mem_r ) +uint16_t apollo_graphics_15i::apollo_mem_r(offs_t offset, uint16_t mem_mask) { uint16_t data; uint32_t src_addr; @@ -1038,7 +1038,7 @@ READ16_MEMBER( apollo_graphics_15i::apollo_mem_r ) return data; } -WRITE16_MEMBER( apollo_graphics_15i::apollo_mem_w ) +void apollo_graphics_15i::apollo_mem_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint32_t dest_addr; uint32_t src_addr; @@ -1156,7 +1156,7 @@ WRITE16_MEMBER( apollo_graphics_15i::apollo_mem_w ) Color Screen ***************************************************************************/ -READ8_MEMBER( apollo_graphics_15i::apollo_ccr_r ) +uint8_t apollo_graphics_15i::apollo_ccr_r(offs_t offset) { uint8_t data; @@ -1171,7 +1171,7 @@ READ8_MEMBER( apollo_graphics_15i::apollo_ccr_r ) data = m_ad_result; break; default: - return apollo_mcr_r(space, offset, mem_mask); + return apollo_mcr_r(offset); } } else if (m_n_planes == 8) @@ -1230,7 +1230,7 @@ READ8_MEMBER( apollo_graphics_15i::apollo_ccr_r ) data = m_cr3b; break; default: - return apollo_mcr_r(space, offset, mem_mask); + return apollo_mcr_r(offset); } } else @@ -1398,7 +1398,7 @@ uint8_t apollo_graphics_15i::c8p_read_adc(uint8_t data) return value; } -WRITE8_MEMBER( apollo_graphics_15i::apollo_ccr_w ) +void apollo_graphics_15i::apollo_ccr_w(offs_t offset, uint8_t data) { static const uint8_t rgb_value[16] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, @@ -1439,7 +1439,7 @@ WRITE8_MEMBER( apollo_graphics_15i::apollo_ccr_w ) m_sr |= SR_DONE; break; default: - apollo_mcr_w(space, offset, data, mem_mask); + apollo_mcr_w(offset, data); return; } } @@ -1514,7 +1514,7 @@ WRITE8_MEMBER( apollo_graphics_15i::apollo_ccr_w ) set_cr3b(data); break; default: - apollo_mcr_w(space, offset, data, mem_mask); + apollo_mcr_w(offset, data); return; } } @@ -1522,11 +1522,11 @@ WRITE8_MEMBER( apollo_graphics_15i::apollo_ccr_w ) MLOG1(("writing Color Graphics Controller at offset %03x = %02x (%s)", offset, data, cr_text(offset, data, 0))); } -READ16_MEMBER( apollo_graphics_15i::apollo_cgm_r ) +uint16_t apollo_graphics_15i::apollo_cgm_r(offs_t offset, uint16_t mem_mask) { if (!is_mono()) { - return apollo_mem_r(space, offset, mem_mask); + return apollo_mem_r(offset, mem_mask); } else { @@ -1534,11 +1534,11 @@ READ16_MEMBER( apollo_graphics_15i::apollo_cgm_r ) } } -WRITE16_MEMBER( apollo_graphics_15i::apollo_cgm_w ) +void apollo_graphics_15i::apollo_cgm_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (!is_mono()) { - apollo_mem_w(space, offset, data, mem_mask); + apollo_mem_w(offset, data, mem_mask); } } @@ -1940,11 +1940,11 @@ void apollo_graphics_19i::device_reset() } -READ16_MEMBER( apollo_graphics_15i::apollo_mgm_r ) +uint16_t apollo_graphics_15i::apollo_mgm_r(offs_t offset, uint16_t mem_mask) { if (is_mono()) { - return apollo_mem_r(space, offset, mem_mask); + return apollo_mem_r(offset, mem_mask); } else { @@ -1952,10 +1952,10 @@ READ16_MEMBER( apollo_graphics_15i::apollo_mgm_r ) } } -WRITE16_MEMBER( apollo_graphics_15i::apollo_mgm_w ) +void apollo_graphics_15i::apollo_mgm_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (is_mono()) { - apollo_mem_w(space, offset, data, mem_mask); + apollo_mem_w(offset, data, mem_mask); } } diff --git a/src/mame/video/appoooh.cpp b/src/mame/video/appoooh.cpp index 655f2e25aad..59c1bfa62c6 100644 --- a/src/mame/video/appoooh.cpp +++ b/src/mame/video/appoooh.cpp @@ -135,37 +135,37 @@ void appoooh_state::video_start() save_item(NAME(m_priority)); } -WRITE8_MEMBER(appoooh_state::scroll_w) +void appoooh_state::scroll_w(uint8_t data) { m_scroll_x = data; } -WRITE8_MEMBER(appoooh_state::fg_videoram_w) +void appoooh_state::fg_videoram_w(offs_t offset, uint8_t data) { m_fg_videoram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(appoooh_state::fg_colorram_w) +void appoooh_state::fg_colorram_w(offs_t offset, uint8_t data) { m_fg_colorram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(appoooh_state::bg_videoram_w) +void appoooh_state::bg_videoram_w(offs_t offset, uint8_t data) { m_bg_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(appoooh_state::bg_colorram_w) +void appoooh_state::bg_colorram_w(offs_t offset, uint8_t data) { m_bg_colorram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(appoooh_state::out_w) +void appoooh_state::out_w(uint8_t data) { /* bit 0 controls NMI */ m_nmi_mask = data & 1; diff --git a/src/mame/video/aquarius.cpp b/src/mame/video/aquarius.cpp index 67b6a99bb2d..8241282c106 100644 --- a/src/mame/video/aquarius.cpp +++ b/src/mame/video/aquarius.cpp @@ -41,14 +41,13 @@ void aquarius_state::aquarius_palette(palette_device &palette) const palette.set_pen_indirect(i, aquarius_pens[i]); } -WRITE8_MEMBER(aquarius_state::aquarius_videoram_w) +void aquarius_state::aquarius_videoram_w(offs_t offset, uint8_t data) { - uint8_t *videoram = m_videoram; - videoram[offset] = data; + m_videoram[offset] = data; m_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(aquarius_state::aquarius_colorram_w) +void aquarius_state::aquarius_colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_tilemap->mark_tile_dirty(offset); @@ -56,9 +55,8 @@ WRITE8_MEMBER(aquarius_state::aquarius_colorram_w) TILE_GET_INFO_MEMBER(aquarius_state::aquarius_gettileinfo) { - uint8_t *videoram = m_videoram; int bank = 0; - int code = videoram[tile_index]; + int code = m_videoram[tile_index]; int color = m_colorram[tile_index]; int flags = 0; diff --git a/src/mame/video/arabian.cpp b/src/mame/video/arabian.cpp index 5e68b8cb240..79eba00ca0c 100644 --- a/src/mame/video/arabian.cpp +++ b/src/mame/video/arabian.cpp @@ -263,7 +263,7 @@ void arabian_state::blit_area( uint8_t plane, uint16_t src, uint8_t x, uint8_t y * *************************************/ -WRITE8_MEMBER(arabian_state::arabian_blitter_w) +void arabian_state::arabian_blitter_w(offs_t offset, uint8_t data) { /* write the data */ m_blitter[offset] = data; @@ -292,7 +292,7 @@ WRITE8_MEMBER(arabian_state::arabian_blitter_w) * *************************************/ -WRITE8_MEMBER(arabian_state::arabian_videoram_w) +void arabian_state::arabian_videoram_w(offs_t offset, uint8_t data) { uint8_t *base; uint8_t x, y; diff --git a/src/mame/video/arkanoid.cpp b/src/mame/video/arkanoid.cpp index 1dea7095915..df5984f9322 100644 --- a/src/mame/video/arkanoid.cpp +++ b/src/mame/video/arkanoid.cpp @@ -2,7 +2,7 @@ // copyright-holders:Brad Oliver /*************************************************************************** - video.c + arkanoid.cpp Functions to emulate the video hardware of the machine. @@ -12,13 +12,13 @@ #include "includes/arkanoid.h" -WRITE8_MEMBER(arkanoid_state::arkanoid_videoram_w) +void arkanoid_state::arkanoid_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset / 2); } -WRITE8_MEMBER(arkanoid_state::arkanoid_d008_w) +void arkanoid_state::arkanoid_d008_w(uint8_t data) { int bank; @@ -60,7 +60,7 @@ WRITE8_MEMBER(arkanoid_state::arkanoid_d008_w) } -WRITE8_MEMBER(arkanoid_state::brixian_d008_w) +void arkanoid_state::brixian_d008_w(uint8_t data) { int bank; @@ -100,7 +100,7 @@ WRITE8_MEMBER(arkanoid_state::brixian_d008_w) /* different hook-up, everything except for bits 0-1 and 7 aren't tested afaik. */ -WRITE8_MEMBER(arkanoid_state::tetrsark_d008_w) +void arkanoid_state::tetrsark_d008_w(uint8_t data) { int bank; @@ -137,7 +137,7 @@ WRITE8_MEMBER(arkanoid_state::tetrsark_d008_w) } -WRITE8_MEMBER(arkanoid_state::hexa_d008_w) +void arkanoid_state::hexa_d008_w(uint8_t data) { /* bits 0 and 1 flip X and Y */ flip_screen_x_set(data & 0x01); diff --git a/src/mame/video/artmagic.cpp b/src/mame/video/artmagic.cpp index 389ecc34091..1060e828688 100644 --- a/src/mame/video/artmagic.cpp +++ b/src/mame/video/artmagic.cpp @@ -294,7 +294,7 @@ void artmagic_state::execute_blit() } -READ16_MEMBER(artmagic_state::blitter_r) +uint16_t artmagic_state::blitter_r() { /* bit 1 is a busy flag; loops tightly if clear @@ -310,7 +310,7 @@ READ16_MEMBER(artmagic_state::blitter_r) } -WRITE16_MEMBER(artmagic_state::blitter_w) +void artmagic_state::blitter_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_blitter_data[offset]); diff --git a/src/mame/video/asterix.cpp b/src/mame/video/asterix.cpp index 77f904e3853..22f79e3ce5f 100644 --- a/src/mame/video/asterix.cpp +++ b/src/mame/video/asterix.cpp @@ -14,7 +14,7 @@ void asterix_state::reset_spritebank() m_spritebanks[3] = (m_spritebank << 3) & 0x7000; } -WRITE16_MEMBER(asterix_state::asterix_spritebank_w) +void asterix_state::asterix_spritebank_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_spritebank); reset_spritebank(); diff --git a/src/mame/video/astrocde.cpp b/src/mame/video/astrocde.cpp index 74a48a24821..43bb3cb1a97 100644 --- a/src/mame/video/astrocde.cpp +++ b/src/mame/video/astrocde.cpp @@ -484,7 +484,7 @@ TIMER_CALLBACK_MEMBER(astrocde_state::scanline_callback) * *************************************/ -READ8_MEMBER(astrocde_state::video_register_r) +uint8_t astrocde_state::video_register_r(offs_t offset) { uint8_t result = 0xff; @@ -509,7 +509,7 @@ READ8_MEMBER(astrocde_state::video_register_r) } -WRITE8_MEMBER(astrocde_state::video_register_w) +void astrocde_state::video_register_w(offs_t offset, uint8_t data) { /* these are the core registers */ switch (offset & 0xff) @@ -589,7 +589,7 @@ WRITE8_MEMBER(astrocde_state::video_register_w) * *************************************/ -WRITE8_MEMBER(astrocde_state::astrocade_funcgen_w) +void astrocde_state::astrocade_funcgen_w(address_space &space, offs_t offset, uint8_t data) { uint8_t prev_data; @@ -677,7 +677,7 @@ WRITE8_MEMBER(astrocde_state::astrocade_funcgen_w) } -WRITE8_MEMBER(astrocde_state::expand_register_w) +void astrocde_state::expand_register_w(uint8_t data) { m_funcgen_expand_color[0] = data & 0x03; m_funcgen_expand_color[1] = (data >> 2) & 0x03; @@ -818,7 +818,7 @@ void astrocde_state::execute_blit() } -WRITE8_MEMBER(astrocde_state::astrocade_pattern_board_w) +void astrocde_state::astrocade_pattern_board_w(offs_t offset, uint8_t data) { switch (offset) { @@ -933,7 +933,7 @@ void astrocde_state::init_sparklestar() * *************************************/ -WRITE8_MEMBER(astrocde_state::profpac_page_select_w) +void astrocde_state::profpac_page_select_w(uint8_t data) { m_profpac_readpage = data & 3; m_profpac_writepage = (data >> 2) & 3; @@ -941,13 +941,13 @@ WRITE8_MEMBER(astrocde_state::profpac_page_select_w) } -READ8_MEMBER(astrocde_state::profpac_intercept_r) +uint8_t astrocde_state::profpac_intercept_r() { return m_profpac_intercept; } -WRITE8_MEMBER(astrocde_state::profpac_screenram_ctrl_w) +void astrocde_state::profpac_screenram_ctrl_w(offs_t offset, uint8_t data) { switch (offset) { @@ -988,7 +988,7 @@ WRITE8_MEMBER(astrocde_state::profpac_screenram_ctrl_w) * *************************************/ -READ8_MEMBER(astrocde_state::profpac_videoram_r) +uint8_t astrocde_state::profpac_videoram_r(offs_t offset) { uint16_t temp = m_profpac_videoram[m_profpac_readpage * 0x4000 + offset] >> m_profpac_readshift; return ((temp >> 6) & 0xc0) | ((temp >> 4) & 0x30) | ((temp >> 2) & 0x0c) | ((temp >> 0) & 0x03); @@ -996,7 +996,7 @@ READ8_MEMBER(astrocde_state::profpac_videoram_r) /* All this information comes from decoding the PLA at U39 on the screen ram board */ -WRITE8_MEMBER(astrocde_state::profpac_videoram_w) +void astrocde_state::profpac_videoram_w(offs_t offset, uint8_t data) { uint16_t oldbits = m_profpac_videoram[m_profpac_writepage * 0x4000 + offset]; uint16_t newbits, result = 0; diff --git a/src/mame/video/atarifb.cpp b/src/mame/video/atarifb.cpp index 136efd8ef10..b773aa60c2d 100644 --- a/src/mame/video/atarifb.cpp +++ b/src/mame/video/atarifb.cpp @@ -58,21 +58,21 @@ TILE_GET_INFO_MEMBER(atarifb_state::field_get_tile_info) * *************************************/ -WRITE8_MEMBER(atarifb_state::atarifb_alpha1_videoram_w) +void atarifb_state::atarifb_alpha1_videoram_w(offs_t offset, uint8_t data) { m_alphap1_videoram[offset] = data; m_alpha1_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(atarifb_state::atarifb_alpha2_videoram_w) +void atarifb_state::atarifb_alpha2_videoram_w(offs_t offset, uint8_t data) { m_alphap2_videoram[offset] = data; m_alpha2_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(atarifb_state::atarifb_field_videoram_w) +void atarifb_state::atarifb_field_videoram_w(offs_t offset, uint8_t data) { m_field_videoram[offset] = data; m_field_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/video/atarigx2.cpp b/src/mame/video/atarigx2.cpp index aff4e83dfb6..870fbbe9b42 100644 --- a/src/mame/video/atarigx2.cpp +++ b/src/mame/video/atarigx2.cpp @@ -88,7 +88,7 @@ void atarigx2_state::video_start() * *************************************/ -WRITE16_MEMBER( atarigx2_state::atarigx2_mo_control_w ) +void atarigx2_state::atarigx2_mo_control_w(offs_t offset, uint16_t data, uint16_t mem_mask) { logerror("MOCONT = %d (scan = %d)\n", data, m_screen->vpos()); diff --git a/src/mame/video/atarist.cpp b/src/mame/video/atarist.cpp index 11285b4872e..89f0d060ece 100644 --- a/src/mame/video/atarist.cpp +++ b/src/mame/video/atarist.cpp @@ -317,7 +317,7 @@ void st_state::set_screen_parameters() // shifter_base_r - //------------------------------------------------- -READ8_MEMBER( st_state::shifter_base_r ) +uint8_t st_state::shifter_base_r(offs_t offset) { uint8_t data = 0; @@ -340,7 +340,7 @@ READ8_MEMBER( st_state::shifter_base_r ) // shifter_base_w - //------------------------------------------------- -WRITE8_MEMBER( st_state::shifter_base_w ) +void st_state::shifter_base_w(offs_t offset, uint8_t data) { switch (offset) { @@ -361,7 +361,7 @@ WRITE8_MEMBER( st_state::shifter_base_w ) // shifter_counter_r - //------------------------------------------------- -READ8_MEMBER( st_state::shifter_counter_r ) +uint8_t st_state::shifter_counter_r(offs_t offset) { uint8_t data = 0; @@ -388,7 +388,7 @@ READ8_MEMBER( st_state::shifter_counter_r ) // shifter_sync_r - //------------------------------------------------- -READ8_MEMBER( st_state::shifter_sync_r ) +uint8_t st_state::shifter_sync_r() { return m_shifter_sync; } @@ -398,7 +398,7 @@ READ8_MEMBER( st_state::shifter_sync_r ) // shifter_sync_w - //------------------------------------------------- -WRITE8_MEMBER( st_state::shifter_sync_w ) +void st_state::shifter_sync_w(uint8_t data) { m_shifter_sync = data; logerror("SHIFTER Sync %x\n", m_shifter_sync); @@ -410,7 +410,7 @@ WRITE8_MEMBER( st_state::shifter_sync_w ) // shifter_mode_r - //------------------------------------------------- -READ8_MEMBER( st_state::shifter_mode_r ) +uint8_t st_state::shifter_mode_r() { return m_shifter_mode; } @@ -420,7 +420,7 @@ READ8_MEMBER( st_state::shifter_mode_r ) // shifter_mode_w - //------------------------------------------------- -WRITE8_MEMBER( st_state::shifter_mode_w ) +void st_state::shifter_mode_w(uint8_t data) { m_shifter_mode = data; logerror("SHIFTER Mode %x\n", m_shifter_mode); @@ -431,7 +431,7 @@ WRITE8_MEMBER( st_state::shifter_mode_w ) // shifter_palette_r - //------------------------------------------------- -READ16_MEMBER( st_state::shifter_palette_r ) +uint16_t st_state::shifter_palette_r(offs_t offset) { return m_shifter_palette[offset] | 0xf888; } @@ -441,7 +441,7 @@ READ16_MEMBER( st_state::shifter_palette_r ) // shifter_palette_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::shifter_palette_w ) +void st_state::shifter_palette_w(offs_t offset, uint16_t data) { m_shifter_palette[offset] = data; // logerror("SHIFTER Palette[%x] = %x\n", offset, data); @@ -459,7 +459,7 @@ WRITE16_MEMBER( st_state::shifter_palette_w ) // shifter_base_low_r - //------------------------------------------------- -READ8_MEMBER( ste_state::shifter_base_low_r ) +uint8_t ste_state::shifter_base_low_r() { return m_shifter_base & 0xfe; } @@ -469,7 +469,7 @@ READ8_MEMBER( ste_state::shifter_base_low_r ) // shifter_base_low_w - //------------------------------------------------- -WRITE8_MEMBER( ste_state::shifter_base_low_w ) +void ste_state::shifter_base_low_w(uint8_t data) { m_shifter_base = (m_shifter_base & 0x3fff00) | (data & 0xfe); logerror("SHIFTER Video Base Address %06x\n", m_shifter_base); @@ -480,7 +480,7 @@ WRITE8_MEMBER( ste_state::shifter_base_low_w ) // shifter_counter_r - //------------------------------------------------- -READ8_MEMBER( ste_state::shifter_counter_r ) +uint8_t ste_state::shifter_counter_r(offs_t offset) { uint8_t data = 0; @@ -507,7 +507,7 @@ READ8_MEMBER( ste_state::shifter_counter_r ) // shifter_counter_w - //------------------------------------------------- -WRITE8_MEMBER( ste_state::shifter_counter_w ) +void ste_state::shifter_counter_w(offs_t offset, uint8_t data) { switch (offset) { @@ -533,7 +533,7 @@ WRITE8_MEMBER( ste_state::shifter_counter_w ) // shifter_palette_w - //------------------------------------------------- -WRITE16_MEMBER( ste_state::shifter_palette_w ) +void ste_state::shifter_palette_w(offs_t offset, uint16_t data) { int r = ((data >> 7) & 0x0e) | BIT(data, 11); int g = ((data >> 3) & 0x0e) | BIT(data, 7); @@ -550,7 +550,7 @@ WRITE16_MEMBER( ste_state::shifter_palette_w ) // shifter_lineofs_r - //------------------------------------------------- -READ8_MEMBER( ste_state::shifter_lineofs_r ) +uint8_t ste_state::shifter_lineofs_r() { return m_shifter_lineofs; } @@ -560,7 +560,7 @@ READ8_MEMBER( ste_state::shifter_lineofs_r ) // shifter_lineofs_w - //------------------------------------------------- -WRITE8_MEMBER( ste_state::shifter_lineofs_w ) +void ste_state::shifter_lineofs_w(uint8_t data) { m_shifter_lineofs = data; logerror("SHIFTER Line Offset %x\n", m_shifter_lineofs); @@ -571,7 +571,7 @@ WRITE8_MEMBER( ste_state::shifter_lineofs_w ) // shifter_pixelofs_r - //------------------------------------------------- -READ8_MEMBER( ste_state::shifter_pixelofs_r ) +uint8_t ste_state::shifter_pixelofs_r() { return m_shifter_pixelofs; } @@ -581,7 +581,7 @@ READ8_MEMBER( ste_state::shifter_pixelofs_r ) // shifter_pixelofs_w - //------------------------------------------------- -WRITE8_MEMBER( ste_state::shifter_pixelofs_w ) +void ste_state::shifter_pixelofs_w(uint8_t data) { m_shifter_pixelofs = data & 0x0f; logerror("SHIFTER Pixel Offset %x\n", m_shifter_pixelofs); @@ -731,7 +731,7 @@ void st_state::blitter_tick() // blitter_halftone_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_halftone_r ) +uint16_t st_state::blitter_halftone_r(offs_t offset) { return m_blitter_halftone[offset]; } @@ -741,7 +741,7 @@ READ16_MEMBER( st_state::blitter_halftone_r ) // blitter_src_inc_x_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_src_inc_x_r ) +uint16_t st_state::blitter_src_inc_x_r() { return m_blitter_src_inc_x; } @@ -751,7 +751,7 @@ READ16_MEMBER( st_state::blitter_src_inc_x_r ) // blitter_src_inc_y_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_src_inc_y_r ) +uint16_t st_state::blitter_src_inc_y_r() { return m_blitter_src_inc_y; } @@ -761,7 +761,7 @@ READ16_MEMBER( st_state::blitter_src_inc_y_r ) // blitter_src_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_src_r ) +uint16_t st_state::blitter_src_r(offs_t offset) { switch (offset) { @@ -779,7 +779,7 @@ READ16_MEMBER( st_state::blitter_src_r ) // blitter_end_mask_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_end_mask_r ) +uint16_t st_state::blitter_end_mask_r(offs_t offset) { switch (offset) { @@ -799,7 +799,7 @@ READ16_MEMBER( st_state::blitter_end_mask_r ) // blitter_dst_inc_x_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_dst_inc_x_r ) +uint16_t st_state::blitter_dst_inc_x_r() { return m_blitter_dst_inc_x; } @@ -809,7 +809,7 @@ READ16_MEMBER( st_state::blitter_dst_inc_x_r ) // blitter_dst_inc_y_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_dst_inc_y_r ) +uint16_t st_state::blitter_dst_inc_y_r() { return m_blitter_dst_inc_y; } @@ -819,7 +819,7 @@ READ16_MEMBER( st_state::blitter_dst_inc_y_r ) // blitter_dst_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_dst_r ) +uint16_t st_state::blitter_dst_r(offs_t offset) { switch (offset) { @@ -837,7 +837,7 @@ READ16_MEMBER( st_state::blitter_dst_r ) // blitter_count_x_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_count_x_r ) +uint16_t st_state::blitter_count_x_r() { return m_blitter_xcount; } @@ -847,7 +847,7 @@ READ16_MEMBER( st_state::blitter_count_x_r ) // blitter_count_y_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_count_y_r ) +uint16_t st_state::blitter_count_y_r() { return m_blitter_ycount; } @@ -857,7 +857,7 @@ READ16_MEMBER( st_state::blitter_count_y_r ) // blitter_op_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_op_r ) +uint16_t st_state::blitter_op_r(offs_t offset, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) { @@ -874,7 +874,7 @@ READ16_MEMBER( st_state::blitter_op_r ) // blitter_ctrl_r - //------------------------------------------------- -READ16_MEMBER( st_state::blitter_ctrl_r ) +uint16_t st_state::blitter_ctrl_r(offs_t offset, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) { @@ -891,7 +891,7 @@ READ16_MEMBER( st_state::blitter_ctrl_r ) // blitter_halftone_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_halftone_w ) +void st_state::blitter_halftone_w(offs_t offset, uint16_t data) { m_blitter_halftone[offset] = data; } @@ -901,7 +901,7 @@ WRITE16_MEMBER( st_state::blitter_halftone_w ) // blitter_src_inc_x_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_src_inc_x_w ) +void st_state::blitter_src_inc_x_w(uint16_t data) { m_blitter_src_inc_x = data & 0xfffe; } @@ -911,7 +911,7 @@ WRITE16_MEMBER( st_state::blitter_src_inc_x_w ) // blitter_src_inc_y_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_src_inc_y_w ) +void st_state::blitter_src_inc_y_w(uint16_t data) { m_blitter_src_inc_y = data & 0xfffe; } @@ -921,7 +921,7 @@ WRITE16_MEMBER( st_state::blitter_src_inc_y_w ) // blitter_src_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_src_w ) +void st_state::blitter_src_w(offs_t offset, uint16_t data) { switch (offset) { @@ -940,7 +940,7 @@ WRITE16_MEMBER( st_state::blitter_src_w ) // blitter_end_mask_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_end_mask_w ) +void st_state::blitter_end_mask_w(offs_t offset, uint16_t data) { switch (offset) { @@ -963,7 +963,7 @@ WRITE16_MEMBER( st_state::blitter_end_mask_w ) // blitter_dst_inc_x_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_dst_inc_x_w ) +void st_state::blitter_dst_inc_x_w(uint16_t data) { m_blitter_dst_inc_x = data & 0xfffe; } @@ -973,7 +973,7 @@ WRITE16_MEMBER( st_state::blitter_dst_inc_x_w ) // blitter_dst_inc_y_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_dst_inc_y_w ) +void st_state::blitter_dst_inc_y_w(uint16_t data) { m_blitter_dst_inc_y = data & 0xfffe; } @@ -983,7 +983,7 @@ WRITE16_MEMBER( st_state::blitter_dst_inc_y_w ) // blitter_dst_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_dst_w ) +void st_state::blitter_dst_w(offs_t offset, uint16_t data) { switch (offset) { @@ -1002,7 +1002,7 @@ WRITE16_MEMBER( st_state::blitter_dst_w ) // blitter_count_x_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_count_x_w ) +void st_state::blitter_count_x_w(uint16_t data) { m_blitter_xcount = data; } @@ -1012,7 +1012,7 @@ WRITE16_MEMBER( st_state::blitter_count_x_w ) // blitter_count_y_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_count_y_w ) +void st_state::blitter_count_y_w(uint16_t data) { m_blitter_ycount = data; } @@ -1022,7 +1022,7 @@ WRITE16_MEMBER( st_state::blitter_count_y_w ) // blitter_op_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_op_w ) +void st_state::blitter_op_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) { @@ -1039,7 +1039,7 @@ WRITE16_MEMBER( st_state::blitter_op_w ) // blitter_ctrl_w - //------------------------------------------------- -WRITE16_MEMBER( st_state::blitter_ctrl_w ) +void st_state::blitter_ctrl_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) { diff --git a/src/mame/video/atarisy1.cpp b/src/mame/video/atarisy1.cpp index ef579908e9c..44a7129aff6 100644 --- a/src/mame/video/atarisy1.cpp +++ b/src/mame/video/atarisy1.cpp @@ -235,7 +235,7 @@ void atarisy1_state::bankselect_w(uint8_t data) * *************************************/ -WRITE16_MEMBER( atarisy1_state::atarisy1_priority_w ) +void atarisy1_state::atarisy1_priority_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint16_t oldpens = m_playfield_priority_pens; uint16_t newpens = oldpens; @@ -255,7 +255,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_priority_w ) * *************************************/ -WRITE16_MEMBER( atarisy1_state::atarisy1_xscroll_w ) +void atarisy1_state::atarisy1_xscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint16_t oldscroll = *m_xscroll; uint16_t newscroll = oldscroll; @@ -286,7 +286,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(atarisy1_state::reset_yscroll_callback) } -WRITE16_MEMBER( atarisy1_state::atarisy1_yscroll_w ) +void atarisy1_state::atarisy1_yscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint16_t oldscroll = *m_yscroll; uint16_t newscroll = oldscroll; @@ -320,7 +320,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_yscroll_w ) * *************************************/ -WRITE16_MEMBER( atarisy1_state::atarisy1_spriteram_w ) +void atarisy1_state::atarisy1_spriteram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { int active_bank = m_mob->bank(); uint16_t *spriteram = m_mob->spriteram(); @@ -392,7 +392,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(atarisy1_state::int3_callback) * *************************************/ -READ16_MEMBER( atarisy1_state::atarisy1_int3state_r ) +uint16_t atarisy1_state::atarisy1_int3state_r() { return m_scanline_int_state ? 0x0080 : 0x0000; } diff --git a/src/mame/video/atarisy2.cpp b/src/mame/video/atarisy2.cpp index 93e0dc5f468..95c75cfee5b 100644 --- a/src/mame/video/atarisy2.cpp +++ b/src/mame/video/atarisy2.cpp @@ -92,7 +92,7 @@ void atarisy2_state::video_start() * *************************************/ -WRITE16_MEMBER( atarisy2_state::xscroll_w ) +void atarisy2_state::xscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint16_t oldscroll = *m_xscroll; uint16_t newscroll = oldscroll; @@ -123,7 +123,7 @@ TIMER_CALLBACK_MEMBER(atarisy2_state::reset_yscroll_callback) } -WRITE16_MEMBER( atarisy2_state::yscroll_w ) +void atarisy2_state::yscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask) { uint16_t oldscroll = *m_yscroll; uint16_t newscroll = oldscroll; @@ -187,7 +187,7 @@ rgb_t atarisy2_state::RRRRGGGGBBBBIIII(uint32_t raw) * *************************************/ -READ16_MEMBER( atarisy2_state::slapstic_r ) +uint16_t atarisy2_state::slapstic_r(address_space &space, offs_t offset) { int result = m_slapstic_base[offset]; m_slapstic->slapstic_tweak(space, offset); @@ -198,7 +198,7 @@ READ16_MEMBER( atarisy2_state::slapstic_r ) } -WRITE16_MEMBER( atarisy2_state::slapstic_w ) +void atarisy2_state::slapstic_w(address_space &space, offs_t offset, uint16_t data) { m_slapstic->slapstic_tweak(space, offset); @@ -213,7 +213,7 @@ WRITE16_MEMBER( atarisy2_state::slapstic_w ) * *************************************/ -WRITE16_MEMBER( atarisy2_state::spriteram_w ) +void atarisy2_state::spriteram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { /* force an update if the link of object 0 is about to change */ if (offset == 0x0003) diff --git a/src/mame/video/atetris.cpp b/src/mame/video/atetris.cpp index cddad9368eb..387bcc4e71e 100644 --- a/src/mame/video/atetris.cpp +++ b/src/mame/video/atetris.cpp @@ -18,9 +18,8 @@ TILE_GET_INFO_MEMBER(atetris_state::get_tile_info) { - uint8_t *videoram = m_videoram; - int code = videoram[tile_index * 2] | ((videoram[tile_index * 2 + 1] & 7) << 8); - int color = (videoram[tile_index * 2 + 1] & 0xf0) >> 4; + int code = m_videoram[tile_index * 2] | ((m_videoram[tile_index * 2 + 1] & 7) << 8); + int color = (m_videoram[tile_index * 2 + 1] & 0xf0) >> 4; tileinfo.set(0, code, color, 0); } @@ -33,11 +32,9 @@ TILE_GET_INFO_MEMBER(atetris_state::get_tile_info) * *************************************/ -WRITE8_MEMBER(atetris_state::videoram_w) +void atetris_state::videoram_w(offs_t offset, uint8_t data) { - uint8_t *videoram = m_videoram; - - videoram[offset] = data; + m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset / 2); } diff --git a/src/mame/video/aussiebyte.cpp b/src/mame/video/aussiebyte.cpp index da24476a701..5a24027e773 100644 --- a/src/mame/video/aussiebyte.cpp +++ b/src/mame/video/aussiebyte.cpp @@ -21,7 +21,7 @@ ************************************************************/ // dummy read port, forces requested action to happen -READ8_MEMBER( aussiebyte_state::port33_r ) +uint8_t aussiebyte_state::port33_r() { return 0xff; } @@ -34,17 +34,17 @@ d5 - /SRRD - controls write of data to either vram or aram (1=vram, 0=aram) d6 - /VWR - 0 = enable write vdata to vram, read from aram to vdata ; 1 = enable write to aram from vdata d7 - OE on port 35 */ -WRITE8_MEMBER( aussiebyte_state::port34_w ) +void aussiebyte_state::port34_w(uint8_t data) { m_port34 = data; } -WRITE8_MEMBER( aussiebyte_state::port35_w ) +void aussiebyte_state::port35_w(uint8_t data) { m_port35 = data; } -READ8_MEMBER( aussiebyte_state::port36_r ) +uint8_t aussiebyte_state::port36_r() { if (BIT(m_port34, 5)) { @@ -57,7 +57,7 @@ READ8_MEMBER( aussiebyte_state::port36_r ) return m_p_attribram[m_alpha_address & 0x7ff]; } -READ8_MEMBER( aussiebyte_state::port37_r ) +uint8_t aussiebyte_state::port37_r() { return m_crtc->de_r() ? 0xff : 0xfe; } @@ -74,7 +74,7 @@ MC6845_ON_UPDATE_ADDR_CHANGED( aussiebyte_state::crtc_update_addr ) // m_video_address = address;// & 0x7ff; } -WRITE8_MEMBER( aussiebyte_state::address_w ) +void aussiebyte_state::address_w(uint8_t data) { m_crtc->address_w(data); @@ -98,7 +98,7 @@ WRITE8_MEMBER( aussiebyte_state::address_w ) } } -WRITE8_MEMBER( aussiebyte_state::register_w ) +void aussiebyte_state::register_w(uint8_t data) { m_crtc->register_w(data); uint16_t temp = m_alpha_address; diff --git a/src/mame/video/avigo.cpp b/src/mame/video/avigo.cpp index ca21f5867e2..5e84eb94e69 100644 --- a/src/mame/video/avigo.cpp +++ b/src/mame/video/avigo.cpp @@ -24,7 +24,7 @@ #define LOG(x) do { if (AVIGO_VIDEO_DEBUG) logerror x; } while (0) -READ8_MEMBER(avigo_state::vid_memory_r) +uint8_t avigo_state::vid_memory_r(offs_t offset) { if (!offset) return m_screen_column; @@ -39,7 +39,7 @@ READ8_MEMBER(avigo_state::vid_memory_r) return m_video_memory[m_screen_column + ((offset&0xff)*(AVIGO_SCREEN_WIDTH>>3))]; } -WRITE8_MEMBER(avigo_state::vid_memory_w) +void avigo_state::vid_memory_w(offs_t offset, uint8_t data) { if (!offset) { diff --git a/src/mame/video/badlands.cpp b/src/mame/video/badlands.cpp index 067e716ef00..9582a100e23 100644 --- a/src/mame/video/badlands.cpp +++ b/src/mame/video/badlands.cpp @@ -82,7 +82,7 @@ VIDEO_START_MEMBER(badlands_state,badlands) * *************************************/ -WRITE16_MEMBER( badlands_state::badlands_pf_bank_w ) +void badlands_state::badlands_pf_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) if (m_playfield_tile_bank != (data & 1)) diff --git a/src/mame/video/bagman.cpp b/src/mame/video/bagman.cpp index 43a137f592f..a520555e60e 100644 --- a/src/mame/video/bagman.cpp +++ b/src/mame/video/bagman.cpp @@ -2,7 +2,7 @@ // copyright-holders:Nicola Salmoria /*************************************************************************** - bagman.c + bagman.cpp Functions to emulate the video hardware of the machine. @@ -13,13 +13,13 @@ #include "includes/bagman.h" -WRITE8_MEMBER(bagman_state::videoram_w) +void bagman_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bagman_state::colorram_w) +void bagman_state::colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/video/balsente.cpp b/src/mame/video/balsente.cpp index 3027915d902..3b7e65aec1a 100644 --- a/src/mame/video/balsente.cpp +++ b/src/mame/video/balsente.cpp @@ -42,7 +42,7 @@ void balsente_state::video_start() * *************************************/ -WRITE8_MEMBER(balsente_state::videoram_w) +void balsente_state::videoram_w(offs_t offset, uint8_t data) { /* expand the two pixel values into two bytes */ m_videoram[offset] = data; @@ -59,7 +59,7 @@ WRITE8_MEMBER(balsente_state::videoram_w) * *************************************/ -WRITE8_MEMBER(balsente_state::palette_select_w) +void balsente_state::palette_select_w(uint8_t data) { /* only update if changed */ if (m_palettebank_vis != (data & 3)) @@ -80,7 +80,7 @@ WRITE8_MEMBER(balsente_state::palette_select_w) * *************************************/ -WRITE8_MEMBER(balsente_state::paletteram_w) +void balsente_state::paletteram_w(offs_t offset, uint8_t data) { int r, g, b; @@ -101,7 +101,7 @@ WRITE8_MEMBER(balsente_state::paletteram_w) * *************************************/ -WRITE8_MEMBER(balsente_state::shrike_sprite_select_w) +void balsente_state::shrike_sprite_select_w(uint8_t data) { if( m_sprite_data != m_sprite_bank[(data & 0x80 >> 7) ^ 1 ]) { @@ -110,7 +110,7 @@ WRITE8_MEMBER(balsente_state::shrike_sprite_select_w) m_sprite_data = m_sprite_bank[(data & 0x80 >> 7) ^ 1]; } - shrike_shared_6809_w( space, 1, data ); + shrike_shared_6809_w( 1, data ); } diff --git a/src/mame/video/bankp.cpp b/src/mame/video/bankp.cpp index 1843de485b2..73dbf04cd30 100644 --- a/src/mame/video/bankp.cpp +++ b/src/mame/video/bankp.cpp @@ -79,36 +79,36 @@ void bankp_state::bankp_palette(palette_device &palette) const // the bottom half of the PROM seems to be not used } -WRITE8_MEMBER(bankp_state::scroll_w) +void bankp_state::scroll_w(uint8_t data) { m_scroll_x = data; } -WRITE8_MEMBER(bankp_state::videoram_w) +void bankp_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bankp_state::colorram_w) +void bankp_state::colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bankp_state::videoram2_w) +void bankp_state::videoram2_w(offs_t offset, uint8_t data) { m_videoram2[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bankp_state::colorram2_w) +void bankp_state::colorram2_w(offs_t offset, uint8_t data) { m_colorram2[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bankp_state::out_w) +void bankp_state::out_w(uint8_t data) { /* bits 0-1 are playfield priority */ /* TODO: understand how this works */ diff --git a/src/mame/video/baraduke.cpp b/src/mame/video/baraduke.cpp index 44811a156ec..1dcd91ee06a 100644 --- a/src/mame/video/baraduke.cpp +++ b/src/mame/video/baraduke.cpp @@ -137,30 +137,30 @@ void baraduke_state::video_start() ***************************************************************************/ -READ8_MEMBER(baraduke_state::baraduke_videoram_r) +uint8_t baraduke_state::baraduke_videoram_r(offs_t offset) { return m_videoram[offset]; } -WRITE8_MEMBER(baraduke_state::baraduke_videoram_w) +void baraduke_state::baraduke_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap[offset/0x1000]->mark_tile_dirty((offset&0xfff)/2); } -READ8_MEMBER(baraduke_state::baraduke_textram_r) +uint8_t baraduke_state::baraduke_textram_r(offs_t offset) { return m_textram[offset]; } -WRITE8_MEMBER(baraduke_state::baraduke_textram_w) +void baraduke_state::baraduke_textram_w(offs_t offset, uint8_t data) { m_textram[offset] = data; m_tx_tilemap->mark_tile_dirty(offset & 0x3ff); } -void baraduke_state::scroll_w(address_space &space, int layer, int offset, int data) +void baraduke_state::scroll_w(int layer, int offset, int data) { switch (offset) { @@ -176,23 +176,23 @@ void baraduke_state::scroll_w(address_space &space, int layer, int offset, int d } } -WRITE8_MEMBER(baraduke_state::baraduke_scroll0_w) +void baraduke_state::baraduke_scroll0_w(offs_t offset, uint8_t data) { - scroll_w(space, 0, offset, data); + scroll_w(0, offset, data); } -WRITE8_MEMBER(baraduke_state::baraduke_scroll1_w) +void baraduke_state::baraduke_scroll1_w(offs_t offset, uint8_t data) { - scroll_w(space, 1, offset, data); + scroll_w(1, offset, data); } -READ8_MEMBER(baraduke_state::baraduke_spriteram_r) +uint8_t baraduke_state::baraduke_spriteram_r(offs_t offset) { return m_spriteram[offset]; } -WRITE8_MEMBER(baraduke_state::baraduke_spriteram_w) +void baraduke_state::baraduke_spriteram_w(offs_t offset, uint8_t data) { m_spriteram[offset] = data; diff --git a/src/mame/video/battlane.cpp b/src/mame/video/battlane.cpp index bf4c28736e6..83de94e3da9 100644 --- a/src/mame/video/battlane.cpp +++ b/src/mame/video/battlane.cpp @@ -17,7 +17,7 @@ 0x01 = Scroll MSB */ -WRITE8_MEMBER(battlane_state::battlane_palette_w) +void battlane_state::battlane_palette_w(offs_t offset, uint8_t data) { int r, g, b; int bit0, bit1, bit2; @@ -46,28 +46,28 @@ WRITE8_MEMBER(battlane_state::battlane_palette_w) m_palette->set_pen_color(offset, rgb_t(r, g, b)); } -WRITE8_MEMBER(battlane_state::battlane_scrollx_w) +void battlane_state::battlane_scrollx_w(uint8_t data) { m_bg_tilemap->set_scrollx(0, ((m_video_ctrl & 0x01) << 8) + data); } -WRITE8_MEMBER(battlane_state::battlane_scrolly_w) +void battlane_state::battlane_scrolly_w(uint8_t data) { m_bg_tilemap->set_scrolly(0, ((m_cpu_control & 0x01) << 8) + data); } -WRITE8_MEMBER(battlane_state::battlane_tileram_w) +void battlane_state::battlane_tileram_w(offs_t offset, uint8_t data) { m_tileram[offset] = data; //m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(battlane_state::battlane_spriteram_w) +void battlane_state::battlane_spriteram_w(offs_t offset, uint8_t data) { m_spriteram[offset] = data; } -WRITE8_MEMBER(battlane_state::battlane_bitmap_w) +void battlane_state::battlane_bitmap_w(offs_t offset, uint8_t data) { int i, orval; @@ -89,7 +89,7 @@ WRITE8_MEMBER(battlane_state::battlane_bitmap_w) } } -WRITE8_MEMBER(battlane_state::battlane_video_ctrl_w) +void battlane_state::battlane_video_ctrl_w(uint8_t data) { m_video_ctrl = data; } diff --git a/src/mame/video/battlex.cpp b/src/mame/video/battlex.cpp index 15508121688..73cfa6351ea 100644 --- a/src/mame/video/battlex.cpp +++ b/src/mame/video/battlex.cpp @@ -10,7 +10,7 @@ #include "includes/battlex.h" -WRITE8_MEMBER(battlex_state::battlex_palette_w) +void battlex_state::battlex_palette_w(offs_t offset, uint8_t data) { int palette_num = offset / 8; int color_num = offset & 7; @@ -21,27 +21,27 @@ WRITE8_MEMBER(battlex_state::battlex_palette_w) m_palette->set_pen_color(64+palette_num*16+color_num+8, pal2bit((data >> 0)&1), pal2bit((data >> 2)&1), pal2bit( (data >> 1) &1)); } -WRITE8_MEMBER(battlex_state::battlex_scroll_x_lsb_w) +void battlex_state::battlex_scroll_x_lsb_w(uint8_t data) { m_scroll_lsb = data; } -WRITE8_MEMBER(battlex_state::battlex_scroll_x_msb_w) +void battlex_state::battlex_scroll_x_msb_w(uint8_t data) { m_scroll_msb = data; } -WRITE8_MEMBER(battlex_state::battlex_scroll_starfield_w) +void battlex_state::battlex_scroll_starfield_w(uint8_t data) { } -WRITE8_MEMBER(battlex_state::battlex_videoram_w) +void battlex_state::battlex_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset / 2); } -WRITE8_MEMBER(battlex_state::battlex_flipscreen_w) +void battlex_state::battlex_flipscreen_w(uint8_t data) { m_starfield_enabled = data & 0x10; diff --git a/src/mame/video/battlnts.cpp b/src/mame/video/battlnts.cpp index 5fa060a2ff7..18850a5d688 100644 --- a/src/mame/video/battlnts.cpp +++ b/src/mame/video/battlnts.cpp @@ -28,7 +28,7 @@ K007420_CALLBACK_MEMBER(battlnts_state::battlnts_sprite_callback) *color = 0; } -WRITE8_MEMBER(battlnts_state::battlnts_spritebank_w) +void battlnts_state::battlnts_spritebank_w(uint8_t data) { m_spritebank = 1024 * (data & 1); } diff --git a/src/mame/video/bbusters.cpp b/src/mame/video/bbusters.cpp index 283a8c293a9..9f9132cf9ff 100644 --- a/src/mame/video/bbusters.cpp +++ b/src/mame/video/bbusters.cpp @@ -41,7 +41,7 @@ TILE_GET_INFO_MEMBER(bbusters_state_base::get_pf_tile_info) tileinfo.set(Gfx,tile&0xfff,tile>>12,0); } -WRITE16_MEMBER(bbusters_state_base::video_w) +void bbusters_state_base::video_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_videoram[offset]); m_fix_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/video/beathead.cpp b/src/mame/video/beathead.cpp index daff388b72a..42598de2481 100644 --- a/src/mame/video/beathead.cpp +++ b/src/mame/video/beathead.cpp @@ -34,7 +34,7 @@ void beathead_state::video_start() * *************************************/ -WRITE32_MEMBER( beathead_state::vram_transparent_w ) +void beathead_state::vram_transparent_w(offs_t offset, uint32_t data, uint32_t mem_mask) { /* writes to this area appear to handle transparency */ if (!(data & 0x000000ff)) mem_mask &= ~0x000000ff; @@ -45,7 +45,7 @@ WRITE32_MEMBER( beathead_state::vram_transparent_w ) } -WRITE32_MEMBER( beathead_state::vram_bulk_w ) +void beathead_state::vram_bulk_w(offs_t offset, uint32_t data, uint32_t mem_mask) { /* it appears that writes to this area pass in a mask for 4 words in VRAM */ /* allowing them to be filled from a preset latch */ @@ -60,14 +60,14 @@ WRITE32_MEMBER( beathead_state::vram_bulk_w ) } -WRITE32_MEMBER( beathead_state::vram_latch_w ) +void beathead_state::vram_latch_w(offs_t offset, uint32_t data) { /* latch the address */ m_vram_latch_offset = (4 * offset) & 0x7ffff; } -WRITE32_MEMBER( beathead_state::vram_copy_w ) +void beathead_state::vram_copy_w(offs_t offset, uint32_t data) { /* copy from VRAM to VRAM, for 1024 bytes */ offs_t dest_offset = (4 * offset) & 0x7ffff; @@ -82,7 +82,7 @@ WRITE32_MEMBER( beathead_state::vram_copy_w ) * *************************************/ -WRITE32_MEMBER( beathead_state::finescroll_w ) +void beathead_state::finescroll_w(offs_t offset, uint32_t data, uint32_t mem_mask) { uint32_t oldword = m_finescroll; uint32_t newword = COMBINE_DATA(&m_finescroll); @@ -103,7 +103,7 @@ WRITE32_MEMBER( beathead_state::finescroll_w ) * *************************************/ -READ32_MEMBER( beathead_state::hsync_ram_r ) +uint32_t beathead_state::hsync_ram_r(offs_t offset) { /* offset 0 is probably write-only */ if (offset == 0) @@ -116,7 +116,7 @@ READ32_MEMBER( beathead_state::hsync_ram_r ) return 0; } -WRITE32_MEMBER( beathead_state::hsync_ram_w ) +void beathead_state::hsync_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask) { /* offset 0 selects the address, and can specify the start address */ if (offset == 0) diff --git a/src/mame/video/bigevglf.cpp b/src/mame/video/bigevglf.cpp index 0d22bda8cb1..f7cc450a09f 100644 --- a/src/mame/video/bigevglf.cpp +++ b/src/mame/video/bigevglf.cpp @@ -2,7 +2,7 @@ // copyright-holders:Jarek Burczynski, Tomasz Slanina /*************************************************************************** - video.c + bigevglf.cpp Functions to emulate the video hardware of the machine. @@ -11,16 +11,14 @@ #include "includes/bigevglf.h" -WRITE8_MEMBER(bigevglf_state::bigevglf_palette_w) +void bigevglf_state::bigevglf_palette_w(offs_t offset, uint8_t data) { - int color; - m_paletteram[offset] = data; - color = m_paletteram[offset & 0x3ff] | (m_paletteram[0x400 + (offset & 0x3ff)] << 8); + int color = m_paletteram[offset & 0x3ff] | (m_paletteram[0x400 + (offset & 0x3ff)] << 8); m_palette->set_pen_color(offset & 0x3ff, pal4bit(color >> 4), pal4bit(color >> 0), pal4bit(color >> 8)); } -WRITE8_MEMBER(bigevglf_state::bigevglf_gfxcontrol_w) +void bigevglf_state::bigevglf_gfxcontrol_w(uint8_t data) { /* bits used: 0,1,2,3 0 and 2 select plane, @@ -30,12 +28,12 @@ WRITE8_MEMBER(bigevglf_state::bigevglf_gfxcontrol_w) m_plane_visible = ((data & 8) >> 2) | ((data & 2) >> 1); } -WRITE8_MEMBER(bigevglf_state::bigevglf_vidram_addr_w) +void bigevglf_state::bigevglf_vidram_addr_w(uint8_t data) { m_vidram_bank = (data & 0xff) * 0x100; } -WRITE8_MEMBER(bigevglf_state::bigevglf_vidram_w) +void bigevglf_state::bigevglf_vidram_w(offs_t offset, uint8_t data) { uint32_t x, y, o; o = m_vidram_bank + offset; @@ -45,7 +43,7 @@ WRITE8_MEMBER(bigevglf_state::bigevglf_vidram_w) m_tmp_bitmap[m_plane_selected].pix16(y, x) = data; } -READ8_MEMBER(bigevglf_state::bigevglf_vidram_r) +uint8_t bigevglf_state::bigevglf_vidram_r(offs_t offset) { return m_vidram[0x10000 * m_plane_selected + m_vidram_bank + offset]; } diff --git a/src/mame/video/bigstrkb.cpp b/src/mame/video/bigstrkb.cpp index 8ae3ca8f3b9..b9014336f09 100644 --- a/src/mame/video/bigstrkb.cpp +++ b/src/mame/video/bigstrkb.cpp @@ -70,7 +70,7 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile_info) tileinfo.set(0,tileno,col>>12,0); } -WRITE16_MEMBER(bigstrkb_state::videoram_w) +void bigstrkb_state::videoram_w(offs_t offset, uint16_t data) { m_videoram[offset] = data; m_tilemap->mark_tile_dirty(offset); @@ -86,7 +86,7 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile2_info) tileinfo.set(1,tileno,col>>12,0); } -WRITE16_MEMBER(bigstrkb_state::videoram2_w) +void bigstrkb_state::videoram2_w(offs_t offset, uint16_t data) { m_videoram2[offset] = data; m_tilemap2->mark_tile_dirty(offset); @@ -103,7 +103,7 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile3_info) tileinfo.set(1,tileno+0x2000,(col>>12)+(0x100/16),0); } -WRITE16_MEMBER(bigstrkb_state::videoram3_w) +void bigstrkb_state::videoram3_w(offs_t offset, uint16_t data) { m_videoram3[offset] = data; m_tilemap3->mark_tile_dirty(offset); diff --git a/src/mame/video/bking.cpp b/src/mame/video/bking.cpp index ebdddca5d88..868a648a01e 100644 --- a/src/mame/video/bking.cpp +++ b/src/mame/video/bking.cpp @@ -80,38 +80,38 @@ void bking_state::bking_palette(palette_device &palette) const } -WRITE8_MEMBER(bking_state::bking_xld1_w) +void bking_state::bking_xld1_w(uint8_t data) { m_xld1 = -data; } -WRITE8_MEMBER(bking_state::bking_yld1_w) +void bking_state::bking_yld1_w(uint8_t data) { m_yld1 = -data; } -WRITE8_MEMBER(bking_state::bking_xld2_w) +void bking_state::bking_xld2_w(uint8_t data) { m_xld2 = -data; } -WRITE8_MEMBER(bking_state::bking_yld2_w) +void bking_state::bking_yld2_w(uint8_t data) { m_yld2 = -data; } -WRITE8_MEMBER(bking_state::bking_xld3_w) +void bking_state::bking_xld3_w(uint8_t data) { m_xld3 = -data; } -WRITE8_MEMBER(bking_state::bking_yld3_w) +void bking_state::bking_yld3_w(uint8_t data) { m_yld3 = -data; } -WRITE8_MEMBER(bking_state::bking_cont1_w) +void bking_state::bking_cont1_w(uint8_t data) { /* D0 = COIN LOCK */ /* D1 = BALL 5 (Controller selection) */ @@ -128,7 +128,7 @@ WRITE8_MEMBER(bking_state::bking_cont1_w) m_crow_pic = (data >> 4) & 0x0f; } -WRITE8_MEMBER(bking_state::bking_cont2_w) +void bking_state::bking_cont2_w(uint8_t data) { /* D0-D2 = BALL10 - BALL12 (Selects player 1 ball picture) */ /* D3-D5 = BALL20 - BALL22 (Selects player 2 ball picture) */ @@ -141,7 +141,7 @@ WRITE8_MEMBER(bking_state::bking_cont2_w) m_hit = data >> 6; } -WRITE8_MEMBER(bking_state::bking_cont3_w) +void bking_state::bking_cont3_w(uint8_t data) { /* D0 = CROW INV (inverts Crow picture and coordinates) */ /* D1-D2 = COLOR 0 - COLOR 1 (switches 4 color palettes, global across all graphics) */ @@ -159,13 +159,13 @@ WRITE8_MEMBER(bking_state::bking_cont3_w) } -WRITE8_MEMBER(bking_state::bking_msk_w) +void bking_state::bking_msk_w(uint8_t data) { m_pc3259_mask++; } -WRITE8_MEMBER(bking_state::bking_hitclr_w) +void bking_state::bking_hitclr_w(uint8_t data) { m_pc3259_mask = 0; @@ -176,24 +176,24 @@ WRITE8_MEMBER(bking_state::bking_hitclr_w) } -WRITE8_MEMBER(bking_state::bking_playfield_w) +void bking_state::bking_playfield_w(offs_t offset, uint8_t data) { m_playfield_ram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset / 2); } -READ8_MEMBER(bking_state::bking_input_port_5_r) +uint8_t bking_state::bking_input_port_5_r() { return ioport(m_controller ? "TRACK1_X" : "TRACK0_X")->read(); } -READ8_MEMBER(bking_state::bking_input_port_6_r) +uint8_t bking_state::bking_input_port_6_r() { return ioport(m_controller ? "TRACK1_Y" : "TRACK0_Y")->read(); } -READ8_MEMBER(bking_state::bking_pos_r) +uint8_t bking_state::bking_pos_r(offs_t offset) { return m_pc3259_output[offset / 8] << 4; } diff --git a/src/mame/video/blktiger.cpp b/src/mame/video/blktiger.cpp index 115fa5a944b..4f5c245bee4 100644 --- a/src/mame/video/blktiger.cpp +++ b/src/mame/video/blktiger.cpp @@ -97,18 +97,18 @@ void blktiger_state::video_start() ***************************************************************************/ -WRITE8_MEMBER(blktiger_state::blktiger_txvideoram_w) +void blktiger_state::blktiger_txvideoram_w(offs_t offset, uint8_t data) { m_txvideoram[offset] = data; m_tx_tilemap->mark_tile_dirty(offset & 0x3ff); } -READ8_MEMBER(blktiger_state::blktiger_bgvideoram_r) +uint8_t blktiger_state::blktiger_bgvideoram_r(offs_t offset) { return m_scroll_ram[offset + m_scroll_bank]; } -WRITE8_MEMBER(blktiger_state::blktiger_bgvideoram_w) +void blktiger_state::blktiger_bgvideoram_w(offs_t offset, uint8_t data) { offset += m_scroll_bank; @@ -117,34 +117,30 @@ WRITE8_MEMBER(blktiger_state::blktiger_bgvideoram_w) m_bg_tilemap4x8->mark_tile_dirty(offset / 2); } -WRITE8_MEMBER(blktiger_state::blktiger_bgvideoram_bank_w) +void blktiger_state::blktiger_bgvideoram_bank_w(uint8_t data) { m_scroll_bank = (data % BGRAM_BANKS) * BGRAM_BANK_SIZE; } -WRITE8_MEMBER(blktiger_state::blktiger_scrolly_w) +void blktiger_state::blktiger_scrolly_w(offs_t offset, uint8_t data) { - int scrolly; - m_scroll_y[offset] = data; - scrolly = m_scroll_y[0] | (m_scroll_y[1] << 8); + int scrolly = m_scroll_y[0] | (m_scroll_y[1] << 8); m_bg_tilemap8x4->set_scrolly(0, scrolly); m_bg_tilemap4x8->set_scrolly(0, scrolly); } -WRITE8_MEMBER(blktiger_state::blktiger_scrollx_w) +void blktiger_state::blktiger_scrollx_w(offs_t offset, uint8_t data) { - int scrollx; - m_scroll_x[offset] = data; - scrollx = m_scroll_x[0] | (m_scroll_x[1] << 8); + int scrollx = m_scroll_x[0] | (m_scroll_x[1] << 8); m_bg_tilemap8x4->set_scrollx(0, scrollx); m_bg_tilemap4x8->set_scrollx(0, scrollx); } -WRITE8_MEMBER(blktiger_state::blktiger_video_control_w) +void blktiger_state::blktiger_video_control_w(uint8_t data) { /* bits 0 and 1 are coin counters */ machine().bookkeeping().coin_counter_w(0,data & 1); @@ -160,7 +156,7 @@ WRITE8_MEMBER(blktiger_state::blktiger_video_control_w) m_chon = ~data & 0x80; } -WRITE8_MEMBER(blktiger_state::blktiger_video_enable_w) +void blktiger_state::blktiger_video_enable_w(uint8_t data) { /* not sure which is which, but I think that bit 1 and 2 enable background and sprites */ /* bit 1 enables bg ? */ @@ -170,7 +166,7 @@ WRITE8_MEMBER(blktiger_state::blktiger_video_enable_w) m_objon = ~data & 0x04; } -WRITE8_MEMBER(blktiger_state::blktiger_screen_layout_w) +void blktiger_state::blktiger_screen_layout_w(uint8_t data) { m_screen_layout = data; m_bg_tilemap8x4->enable(m_screen_layout); diff --git a/src/mame/video/bloodbro.cpp b/src/mame/video/bloodbro.cpp index c4cb61f5571..ff8dc287b90 100644 --- a/src/mame/video/bloodbro.cpp +++ b/src/mame/video/bloodbro.cpp @@ -77,19 +77,19 @@ void bloodbro_state::video_start() ***************************************************************************/ -WRITE16_MEMBER(bloodbro_state::bgvideoram_w) +void bloodbro_state::bgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_bgvideoram[offset]); m_bg_tilemap->mark_tile_dirty(offset); } -WRITE16_MEMBER(bloodbro_state::fgvideoram_w) +void bloodbro_state::fgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_fgvideoram[offset]); m_fg_tilemap->mark_tile_dirty(offset); } -WRITE16_MEMBER(bloodbro_state::txvideoram_w) +void bloodbro_state::txvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_txvideoram[offset]); m_tx_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/video/blueprnt.cpp b/src/mame/video/blueprnt.cpp index d7c7cf8d098..16adfaf2c61 100644 --- a/src/mame/video/blueprnt.cpp +++ b/src/mame/video/blueprnt.cpp @@ -45,13 +45,13 @@ void blueprnt_state::blueprnt_palette(palette_device &palette) const } } -WRITE8_MEMBER(blueprnt_state::blueprnt_videoram_w) +void blueprnt_state::blueprnt_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(blueprnt_state::blueprnt_colorram_w) +void blueprnt_state::blueprnt_colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); @@ -67,7 +67,7 @@ WRITE8_MEMBER(blueprnt_state::blueprnt_colorram_w) } -WRITE8_MEMBER(blueprnt_state::blueprnt_flipscreen_w) +void blueprnt_state::blueprnt_flipscreen_w(uint8_t data) { flip_screen_set(~data & 0x02); diff --git a/src/mame/video/bogeyman.cpp b/src/mame/video/bogeyman.cpp index 5575d481042..9f253793bc3 100644 --- a/src/mame/video/bogeyman.cpp +++ b/src/mame/video/bogeyman.cpp @@ -36,25 +36,25 @@ void bogeyman_state::bogeyman_palette(palette_device &palette) const } } -WRITE8_MEMBER(bogeyman_state::videoram_w) +void bogeyman_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bogeyman_state::colorram_w) +void bogeyman_state::colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bogeyman_state::videoram2_w) +void bogeyman_state::videoram2_w(offs_t offset, uint8_t data) { m_videoram2[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bogeyman_state::colorram2_w) +void bogeyman_state::colorram2_w(offs_t offset, uint8_t data) { m_colorram2[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/video/bombjack.cpp b/src/mame/video/bombjack.cpp index 116bd7e3216..49a0e4d0211 100644 --- a/src/mame/video/bombjack.cpp +++ b/src/mame/video/bombjack.cpp @@ -2,7 +2,7 @@ // copyright-holders:Mirko Buffoni /*************************************************************************** - video.c + bombjack.cpp Functions to emulate the video hardware of the machine. @@ -11,19 +11,19 @@ #include "emu.h" #include "includes/bombjack.h" -WRITE8_MEMBER(bombjack_state::bombjack_videoram_w) +void bombjack_state::bombjack_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bombjack_state::bombjack_colorram_w) +void bombjack_state::bombjack_colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bombjack_state::bombjack_background_w) +void bombjack_state::bombjack_background_w(uint8_t data) { if (m_background_image != data) { @@ -32,7 +32,7 @@ WRITE8_MEMBER(bombjack_state::bombjack_background_w) } } -WRITE8_MEMBER(bombjack_state::bombjack_flipscreen_w) +void bombjack_state::bombjack_flipscreen_w(uint8_t data) { if (flip_screen() != (data & 0x01)) { diff --git a/src/mame/video/bosco.cpp b/src/mame/video/bosco.cpp index 66abbd42dc0..d8eca509011 100644 --- a/src/mame/video/bosco.cpp +++ b/src/mame/video/bosco.cpp @@ -144,7 +144,7 @@ VIDEO_START_MEMBER(bosco_state,bosco) ***************************************************************************/ -WRITE8_MEMBER( bosco_state::bosco_videoram_w ) +void bosco_state::bosco_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; if (offset & 0x400) @@ -153,17 +153,17 @@ WRITE8_MEMBER( bosco_state::bosco_videoram_w ) m_fg_tilemap->mark_tile_dirty(offset & 0x3ff); } -WRITE8_MEMBER( bosco_state::bosco_scrollx_w ) +void bosco_state::bosco_scrollx_w(uint8_t data) { m_bg_tilemap->set_scrollx(0,data); } -WRITE8_MEMBER( bosco_state::bosco_scrolly_w ) +void bosco_state::bosco_scrolly_w(uint8_t data) { m_bg_tilemap->set_scrolly(0,data); } -WRITE8_MEMBER( bosco_state::bosco_starclr_w ) +void bosco_state::bosco_starclr_w(uint8_t data) { // On any write to $9840, turn on starfield m_bosco_starclr = 0; diff --git a/src/mame/video/brkthru.cpp b/src/mame/video/brkthru.cpp index 0de0d9dfce6..63d4215f1c5 100644 --- a/src/mame/video/brkthru.cpp +++ b/src/mame/video/brkthru.cpp @@ -87,7 +87,7 @@ TILE_GET_INFO_MEMBER(brkthru_state::get_bg_tile_info) tileinfo.set(region, code & 0x7f, colour,0); } -WRITE8_MEMBER(brkthru_state::brkthru_bgram_w) +void brkthru_state::brkthru_bgram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset / 2); @@ -100,7 +100,7 @@ TILE_GET_INFO_MEMBER(brkthru_state::get_fg_tile_info) tileinfo.set(0, code, 0, 0); } -WRITE8_MEMBER(brkthru_state::brkthru_fgram_w) +void brkthru_state::brkthru_fgram_w(offs_t offset, uint8_t data) { m_fg_videoram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset); @@ -116,7 +116,7 @@ void brkthru_state::video_start() } -WRITE8_MEMBER(brkthru_state::brkthru_1800_w) +void brkthru_state::brkthru_1800_w(offs_t offset, uint8_t data) { if (offset == 0) /* low 8 bits of scroll */ m_bgscroll = (m_bgscroll & 0x100) | data; diff --git a/src/mame/video/bsktball.cpp b/src/mame/video/bsktball.cpp index e9449d3a91d..2f6fb27d2d5 100644 --- a/src/mame/video/bsktball.cpp +++ b/src/mame/video/bsktball.cpp @@ -10,7 +10,7 @@ #include "includes/bsktball.h" -WRITE8_MEMBER(bsktball_state::bsktball_videoram_w) +void bsktball_state::bsktball_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); diff --git a/src/mame/video/btime.cpp b/src/mame/video/btime.cpp index 663e8362d75..7e592aeb0dd 100644 --- a/src/mame/video/btime.cpp +++ b/src/mame/video/btime.cpp @@ -131,13 +131,13 @@ VIDEO_START_MEMBER(btime_state,bnj) save_item(NAME(*m_background_bitmap)); } -WRITE8_MEMBER(btime_state::lnc_videoram_w) +void btime_state::lnc_videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_colorram[offset] = *m_lnc_charbank; } -READ8_MEMBER(btime_state::btime_mirrorvideoram_r) +uint8_t btime_state::btime_mirrorvideoram_r(offs_t offset) { int x, y; @@ -149,7 +149,7 @@ READ8_MEMBER(btime_state::btime_mirrorvideoram_r) return m_videoram[offset]; } -READ8_MEMBER(btime_state::btime_mirrorcolorram_r) +uint8_t btime_state::btime_mirrorcolorram_r(offs_t offset) { int x, y; @@ -161,7 +161,7 @@ READ8_MEMBER(btime_state::btime_mirrorcolorram_r) return m_colorram[offset]; } -WRITE8_MEMBER(btime_state::btime_mirrorvideoram_w) +void btime_state::btime_mirrorvideoram_w(offs_t offset, uint8_t data) { int x, y; @@ -173,7 +173,7 @@ WRITE8_MEMBER(btime_state::btime_mirrorvideoram_w) m_videoram[offset] = data; } -WRITE8_MEMBER(btime_state::lnc_mirrorvideoram_w) +void btime_state::lnc_mirrorvideoram_w(offs_t offset, uint8_t data) { int x, y; @@ -182,10 +182,10 @@ WRITE8_MEMBER(btime_state::lnc_mirrorvideoram_w) y = offset % 32; offset = 32 * y + x; - lnc_videoram_w(space, offset, data); + lnc_videoram_w(offset, data); } -WRITE8_MEMBER(btime_state::btime_mirrorcolorram_w) +void btime_state::btime_mirrorcolorram_w(offs_t offset, uint8_t data) { int x, y; @@ -197,7 +197,7 @@ WRITE8_MEMBER(btime_state::btime_mirrorcolorram_w) m_colorram[offset] = data; } -WRITE8_MEMBER(btime_state::deco_charram_w) +void btime_state::deco_charram_w(offs_t offset, uint8_t data) { if (m_deco_charram[offset] == data) return; @@ -213,22 +213,22 @@ WRITE8_MEMBER(btime_state::deco_charram_w) m_gfxdecode->gfx(0)->mark_dirty(offset >> 3); } -WRITE8_MEMBER(btime_state::bnj_background_w) +void btime_state::bnj_background_w(offs_t offset, uint8_t data) { m_bnj_backgroundram[offset] = data; } -WRITE8_MEMBER(btime_state::bnj_scroll1_w) +void btime_state::bnj_scroll1_w(uint8_t data) { m_bnj_scroll1 = data; } -WRITE8_MEMBER(btime_state::bnj_scroll2_w) +void btime_state::bnj_scroll2_w(uint8_t data) { m_bnj_scroll2 = data; } -WRITE8_MEMBER(btime_state::btime_video_control_w) +void btime_state::btime_video_control_w(uint8_t data) { // Btime video control // @@ -238,7 +238,7 @@ WRITE8_MEMBER(btime_state::btime_video_control_w) flip_screen_set(data & 0x01); } -WRITE8_MEMBER(btime_state::bnj_video_control_w) +void btime_state::bnj_video_control_w(uint8_t data) { /* Bnj/Lnc works a little differently than the btime/eggs (apparently). */ /* According to the information at: */ @@ -251,10 +251,10 @@ WRITE8_MEMBER(btime_state::bnj_video_control_w) /* are in upright controls mode. */ if (ioport("DSW1")->read() & 0x40) /* cocktail mode */ - btime_video_control_w(space, offset, data); + btime_video_control_w(data); } -WRITE8_MEMBER(btime_state::zoar_video_control_w) +void btime_state::zoar_video_control_w(uint8_t data) { // Zoar video control // @@ -268,7 +268,7 @@ WRITE8_MEMBER(btime_state::zoar_video_control_w) flip_screen_set(data & 0x80); } -WRITE8_MEMBER(btime_state::disco_video_control_w) +void btime_state::disco_video_control_w(uint8_t data) { m_btime_palette = (data >> 2) & 0x03; diff --git a/src/mame/video/btoads.cpp b/src/mame/video/btoads.cpp index 5bcbfb82067..c301aa02c28 100644 --- a/src/mame/video/btoads.cpp +++ b/src/mame/video/btoads.cpp @@ -47,7 +47,7 @@ void btoads_state::video_start() * *************************************/ -WRITE16_MEMBER( btoads_state::misc_control_w ) +void btoads_state::misc_control_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_misc_control); @@ -56,7 +56,7 @@ WRITE16_MEMBER( btoads_state::misc_control_w ) } -WRITE16_MEMBER( btoads_state::display_control_w ) +void btoads_state::display_control_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_8_15) { @@ -90,7 +90,7 @@ WRITE16_MEMBER( btoads_state::display_control_w ) * *************************************/ -WRITE16_MEMBER( btoads_state::scroll0_w ) +void btoads_state::scroll0_w(offs_t offset, uint16_t data, uint16_t mem_mask) { /* allow multiple changes during display */ // m_screen->update_now(); @@ -104,7 +104,7 @@ WRITE16_MEMBER( btoads_state::scroll0_w ) } -WRITE16_MEMBER( btoads_state::scroll1_w ) +void btoads_state::scroll1_w(offs_t offset, uint16_t data, uint16_t mem_mask) { /* allow multiple changes during display */ // m_screen->update_now(); @@ -125,13 +125,13 @@ WRITE16_MEMBER( btoads_state::scroll1_w ) * *************************************/ -WRITE16_MEMBER( btoads_state::paletteram_w ) +void btoads_state::paletteram_w(offs_t offset, uint16_t data) { m_tlc34076->write(offset/2, data); } -READ16_MEMBER( btoads_state::paletteram_r ) +uint16_t btoads_state::paletteram_r(offs_t offset) { return m_tlc34076->read(offset/2); } @@ -144,25 +144,25 @@ READ16_MEMBER( btoads_state::paletteram_r ) * *************************************/ -WRITE16_MEMBER( btoads_state::vram_bg0_w ) +void btoads_state::vram_bg0_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram_bg0[offset & 0x3fcff]); } -WRITE16_MEMBER( btoads_state::vram_bg1_w ) +void btoads_state::vram_bg1_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_vram_bg1[offset & 0x3fcff]); } -READ16_MEMBER( btoads_state::vram_bg0_r ) +uint16_t btoads_state::vram_bg0_r(offs_t offset) { return m_vram_bg0[offset & 0x3fcff]; } -READ16_MEMBER( btoads_state::vram_bg1_r ) +uint16_t btoads_state::vram_bg1_r(offs_t offset) { return m_vram_bg1[offset & 0x3fcff]; } @@ -175,27 +175,27 @@ READ16_MEMBER( btoads_state::vram_bg1_r ) * *************************************/ -WRITE16_MEMBER( btoads_state::vram_fg_display_w ) +void btoads_state::vram_fg_display_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) m_vram_fg_display[offset] = data; } -WRITE16_MEMBER( btoads_state::vram_fg_draw_w ) +void btoads_state::vram_fg_draw_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) m_vram_fg_draw[offset] = data; } -READ16_MEMBER( btoads_state::vram_fg_display_r ) +uint16_t btoads_state::vram_fg_display_r(offs_t offset) { return m_vram_fg_display[offset]; } -READ16_MEMBER( btoads_state::vram_fg_draw_r ) +uint16_t btoads_state::vram_fg_draw_r(offs_t offset) { return m_vram_fg_draw[offset]; } diff --git a/src/mame/video/buggychl.cpp b/src/mame/video/buggychl.cpp index 26bf22f4ff4..e3c98e953c9 100644 --- a/src/mame/video/buggychl.cpp +++ b/src/mame/video/buggychl.cpp @@ -24,7 +24,7 @@ void buggychl_state::video_start() -WRITE8_MEMBER(buggychl_state::buggychl_chargen_w) +void buggychl_state::buggychl_chargen_w(offs_t offset, uint8_t data) { if (m_charram[offset] != data) { @@ -33,17 +33,17 @@ WRITE8_MEMBER(buggychl_state::buggychl_chargen_w) } } -WRITE8_MEMBER(buggychl_state::buggychl_sprite_lookup_bank_w) +void buggychl_state::buggychl_sprite_lookup_bank_w(uint8_t data) { m_sl_bank = (data & 0x10) << 8; } -WRITE8_MEMBER(buggychl_state::buggychl_sprite_lookup_w) +void buggychl_state::buggychl_sprite_lookup_w(offs_t offset, uint8_t data) { m_sprite_lookup[offset + m_sl_bank] = data; } -WRITE8_MEMBER(buggychl_state::buggychl_ctrl_w) +void buggychl_state::buggychl_ctrl_w(uint8_t data) { /* bit7 = lamp @@ -67,7 +67,7 @@ WRITE8_MEMBER(buggychl_state::buggychl_ctrl_w) m_led[0] = BIT(~data, 7); } -WRITE8_MEMBER(buggychl_state::buggychl_bg_scrollx_w) +void buggychl_state::buggychl_bg_scrollx_w(uint8_t data) { m_bg_scrollx = -(data - 0x12); } diff --git a/src/mame/video/bwing.cpp b/src/mame/video/bwing.cpp index 3c30e6b7459..d722416fd28 100644 --- a/src/mame/video/bwing.cpp +++ b/src/mame/video/bwing.cpp @@ -19,28 +19,28 @@ revised by Alex W. Jackson // Exports -WRITE8_MEMBER(bwing_state::videoram_w) +void bwing_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_charmap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bwing_state::fgscrollram_w) +void bwing_state::fgscrollram_w(offs_t offset, uint8_t data) { m_fgscrollram[offset] = data; m_fgmap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bwing_state::bgscrollram_w) +void bwing_state::bgscrollram_w(offs_t offset, uint8_t data) { m_bgscrollram[offset] = data; m_bgmap->mark_tile_dirty(offset); } -WRITE8_MEMBER(bwing_state::gfxram_w) +void bwing_state::gfxram_w(offs_t offset, uint8_t data) { m_gfxram[offset] = data; int whichgfx = (offset & 0x1000) ? 3 : 2; @@ -48,7 +48,7 @@ WRITE8_MEMBER(bwing_state::gfxram_w) } -WRITE8_MEMBER(bwing_state::scrollreg_w) +void bwing_state::scrollreg_w(offs_t offset, uint8_t data) { m_sreg[offset] = data; @@ -64,7 +64,7 @@ WRITE8_MEMBER(bwing_state::scrollreg_w) } -WRITE8_MEMBER(bwing_state::paletteram_w) +void bwing_state::paletteram_w(offs_t offset, uint8_t data) { static const float rgb[4][3] = { {0.85f, 0.95f, 1.00f}, diff --git a/src/tools/unidasm.cpp b/src/tools/unidasm.cpp index 06d7747b1ac..59a58ff23ac 100644 --- a/src/tools/unidasm.cpp +++ b/src/tools/unidasm.cpp @@ -106,6 +106,7 @@ using util::BIT; #include "cpu/minx/minxd.h" #include "cpu/mips/mips3dsm.h" #include "cpu/mips/mips1dsm.h" +#include "cpu/mn1880/mn1880d.h" #include "cpu/mn10200/mn102dis.h" #include "cpu/nanoprocessor/nanoprocessor_dasm.h" #include "cpu/nec/necdasm.h" @@ -469,6 +470,8 @@ static const dasm_table_entry dasm_table[] = { "mips3be", be, 0, []() -> util::disasm_interface * { return new mips3_disassembler; } }, { "mips3le", le, 0, []() -> util::disasm_interface * { return new mips3_disassembler; } }, { "mn10200", le, 0, []() -> util::disasm_interface * { return new mn10200_disassembler; } }, + { "mn1870", be, 0, []() -> util::disasm_interface * { return new mn1870_disassembler; } }, + { "mn1880", be, 0, []() -> util::disasm_interface * { return new mn1880_disassembler; } }, { "nanoprocessor", le, 0, []() -> util::disasm_interface * { return new hp_nanoprocessor_disassembler; } }, { "nec", le, 0, []() -> util::disasm_interface * { return new nec_disassembler(&nec_unidasm); } }, { "ns32000", le, 0, []() -> util::disasm_interface * { return new ns32000_disassembler; } }, |