summaryrefslogtreecommitdiffstatshomepage
path: root/language/Estonian/strings.po
diff options
context:
space:
mode:
Diffstat (limited to 'language/Estonian/strings.po')
-rw-r--r--language/Estonian/strings.po2840
1 files changed, 1503 insertions, 1337 deletions
diff --git a/language/Estonian/strings.po b/language/Estonian/strings.po
index 0cb4217ee0c..693dbe86765 100644
--- a/language/Estonian/strings.po
+++ b/language/Estonian/strings.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: MAME\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-28 15:32+1000\n"
+"POT-Creation-Date: 2019-03-17 13:37+1100\n"
"PO-Revision-Date: 2016-02-20 18:03+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: MAME Language Team\n"
@@ -17,1041 +17,1144 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: src/frontend/mame/ui/auditmenu.cpp:96
+#: src/frontend/mame/ui/videoopt.cpp:56
#, c-format
-msgid "Audit ROMs for %1$u machines marked unavailable?"
+msgid "Screen #%d"
msgstr ""
-#: src/frontend/mame/ui/auditmenu.cpp:99
-#, c-format
-msgid "Audit ROMs for all %1$u machines?"
+#: src/frontend/mame/ui/videoopt.cpp:204 src/frontend/mame/ui/submenu.cpp:48
+msgid "Rotate"
msgstr ""
-#: src/frontend/mame/ui/auditmenu.cpp:104
-#, c-format
-msgid "(results will be saved to %1$s)"
+#: src/frontend/mame/ui/videoopt.cpp:208
+msgid "Backdrops"
msgstr ""
-#: src/frontend/mame/ui/auditmenu.cpp:130
-#, c-format
-msgid ""
-"Auditing ROMs for machine %2$u of %3$u...\n"
-"%1$s"
+#: src/frontend/mame/ui/videoopt.cpp:208 src/frontend/mame/ui/videoopt.cpp:212
+#: src/frontend/mame/ui/videoopt.cpp:216 src/frontend/mame/ui/videoopt.cpp:220
+#: src/frontend/mame/ui/videoopt.cpp:224 src/frontend/mame/ui/ui.cpp:1255
+#: src/frontend/mame/ui/cheatopt.cpp:273
+msgid "Enabled"
msgstr ""
-#: src/frontend/mame/ui/auditmenu.cpp:142
-msgid "Start Audit"
+#: src/frontend/mame/ui/videoopt.cpp:208 src/frontend/mame/ui/videoopt.cpp:212
+#: src/frontend/mame/ui/videoopt.cpp:216 src/frontend/mame/ui/videoopt.cpp:220
+#: src/frontend/mame/ui/videoopt.cpp:224 src/frontend/mame/ui/ui.cpp:1255
+#: src/frontend/mame/ui/cheatopt.cpp:273
+msgid "Disabled"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:49 src/frontend/mame/ui/dirmenu.cpp:45
-msgid "Snapshots"
+#: src/frontend/mame/ui/videoopt.cpp:212
+msgid "Overlays"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:50 src/frontend/mame/ui/dirmenu.cpp:46
-msgid "Cabinets"
+#: src/frontend/mame/ui/videoopt.cpp:216
+msgid "Bezels"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:51
-msgid "Control Panels"
+#: src/frontend/mame/ui/videoopt.cpp:220
+msgid "CPanels"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:52 src/frontend/mame/ui/dirmenu.cpp:50
-msgid "PCBs"
+#: src/frontend/mame/ui/videoopt.cpp:224 src/frontend/mame/ui/dirmenu.cpp:51
+#: src/frontend/mame/ui/selmenu.cpp:86
+msgid "Marquees"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:53 src/frontend/mame/ui/dirmenu.cpp:47
-msgid "Flyers"
+#: src/frontend/mame/ui/videoopt.cpp:228
+msgid "View"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:54 src/frontend/mame/ui/dirmenu.cpp:48
-msgid "Titles"
+#: src/frontend/mame/ui/videoopt.cpp:228
+msgid "Cropped"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:55 src/frontend/mame/ui/dirmenu.cpp:49
-msgid "Ends"
+#: src/frontend/mame/ui/videoopt.cpp:228
+msgid "Full"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:56
-msgid "Artwork Preview"
+#: src/frontend/mame/ui/dirmenu.cpp:35
+msgid "ROMs"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:57 src/frontend/mame/ui/dirmenu.cpp:55
-msgid "Bosses"
+#: src/frontend/mame/ui/dirmenu.cpp:36
+msgid "Software Media"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:58 src/frontend/mame/ui/dirmenu.cpp:60
-msgid "Logos"
+#: src/frontend/mame/ui/dirmenu.cpp:37
+msgid "UI"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:59 src/frontend/mame/ui/dirmenu.cpp:62
-msgid "Versus"
+#: src/frontend/mame/ui/dirmenu.cpp:38 src/frontend/mame/ui/custui.cpp:157
+msgid "Language"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:60
-msgid "Game Over"
+#: src/frontend/mame/ui/dirmenu.cpp:39
+msgid "Samples"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:61 src/frontend/mame/ui/dirmenu.cpp:59
-msgid "HowTo"
+#: src/frontend/mame/ui/dirmenu.cpp:40
+msgid "DATs"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:62 src/frontend/mame/ui/dirmenu.cpp:61
-msgid "Scores"
+#: src/frontend/mame/ui/dirmenu.cpp:41
+msgid "INIs"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:63 src/frontend/mame/ui/dirmenu.cpp:57
-msgid "Select"
+#: src/frontend/mame/ui/dirmenu.cpp:42
+msgid "Category INIs"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:64 src/frontend/mame/ui/dirmenu.cpp:51
-#: src/frontend/mame/ui/videoopt.cpp:224
-msgid "Marquees"
+#: src/frontend/mame/ui/dirmenu.cpp:43
+msgid "Icons"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:65 src/frontend/mame/ui/dirmenu.cpp:63
-msgid "Covers"
+#: src/frontend/mame/ui/dirmenu.cpp:44 src/frontend/mame/ui/submenu.cpp:25
+msgid "Cheats"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:69
-msgid "Add or remove favorites"
+#: src/frontend/mame/ui/dirmenu.cpp:45 src/frontend/mame/ui/selmenu.cpp:71
+msgid "Snapshots"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:70
-msgid "Export displayed list to file"
+#: src/frontend/mame/ui/dirmenu.cpp:46 src/frontend/mame/ui/selmenu.cpp:72
+msgid "Cabinets"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:71
-msgid "Show DATs view"
+#: src/frontend/mame/ui/dirmenu.cpp:47 src/frontend/mame/ui/selmenu.cpp:75
+msgid "Flyers"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:237
-msgid "Software part selection:"
+#: src/frontend/mame/ui/dirmenu.cpp:48 src/frontend/mame/ui/selmenu.cpp:76
+msgid "Titles"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:343
-msgid "BIOS selection:"
+#: src/frontend/mame/ui/dirmenu.cpp:49 src/frontend/mame/ui/selmenu.cpp:77
+msgid "Ends"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:570 src/frontend/mame/ui/selmenu.cpp:606
-#: src/frontend/mame/ui/simpleselgame.cpp:311
-#, c-format
-msgid "%1$s, %2$-.100s"
+#: src/frontend/mame/ui/dirmenu.cpp:50 src/frontend/mame/ui/selmenu.cpp:74
+msgid "PCBs"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:574
-#, c-format
-msgid "Software is clone of: %1$-.100s"
+#: src/frontend/mame/ui/dirmenu.cpp:52
+msgid "Controls Panels"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:576
-msgid "Software is parent"
+#: src/frontend/mame/ui/dirmenu.cpp:53
+msgid "Crosshairs"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:581
-msgid "Supported: No"
+#: src/frontend/mame/ui/dirmenu.cpp:54
+msgid "Artworks"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:586
-msgid "Supported: Partial"
+#: src/frontend/mame/ui/dirmenu.cpp:55 src/frontend/mame/ui/selmenu.cpp:79
+msgid "Bosses"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:591
-msgid "Supported: Yes"
+#: src/frontend/mame/ui/dirmenu.cpp:56
+msgid "Artworks Preview"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:596
-#, c-format
-msgid "romset: %1$-.100s"
+#: src/frontend/mame/ui/dirmenu.cpp:57 src/frontend/mame/ui/selmenu.cpp:85
+msgid "Select"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:612
-#, c-format
-msgid "Driver is clone of: %1$-.100s"
+#: src/frontend/mame/ui/dirmenu.cpp:58
+msgid "GameOver"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:614
-msgid "Driver is parent"
+#: src/frontend/mame/ui/dirmenu.cpp:59 src/frontend/mame/ui/selmenu.cpp:83
+msgid "HowTo"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:619
-#: src/frontend/mame/ui/simpleselgame.cpp:330
-msgid "Overall: NOT WORKING"
+#: src/frontend/mame/ui/dirmenu.cpp:60 src/frontend/mame/ui/selmenu.cpp:80
+msgid "Logos"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:621
-#: src/frontend/mame/ui/simpleselgame.cpp:332
-msgid "Overall: Unemulated Protection"
+#: src/frontend/mame/ui/dirmenu.cpp:61 src/frontend/mame/ui/selmenu.cpp:84
+msgid "Scores"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:623
-#: src/frontend/mame/ui/simpleselgame.cpp:334
-msgid "Overall: Working"
+#: src/frontend/mame/ui/dirmenu.cpp:62 src/frontend/mame/ui/selmenu.cpp:81
+msgid "Versus"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:627
-#: src/frontend/mame/ui/simpleselgame.cpp:338
-msgid "Graphics: Unimplemented, "
+#: src/frontend/mame/ui/dirmenu.cpp:63 src/frontend/mame/ui/selmenu.cpp:87
+msgid "Covers"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:629
-#: src/frontend/mame/ui/simpleselgame.cpp:340
-msgid "Graphics: Imperfect, "
+#: src/frontend/mame/ui/dirmenu.cpp:116
+msgid "Folders Setup"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:631
-#: src/frontend/mame/ui/simpleselgame.cpp:342
-msgid "Graphics: OK, "
+#: src/frontend/mame/ui/dirmenu.cpp:167
+#, c-format
+msgid "Current %1$s Folders"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:634
-#: src/frontend/mame/ui/simpleselgame.cpp:345
-msgid "Sound: None"
+#: src/frontend/mame/ui/dirmenu.cpp:179
+msgid "Change Folder"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:636
-#: src/frontend/mame/ui/simpleselgame.cpp:347
-msgid "Sound: Unimplemented"
+#: src/frontend/mame/ui/dirmenu.cpp:179
+msgid "Add Folder"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:638
-#: src/frontend/mame/ui/simpleselgame.cpp:349
-msgid "Sound: Imperfect"
+#: src/frontend/mame/ui/dirmenu.cpp:182
+msgid "Remove Folder"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:640
-#: src/frontend/mame/ui/simpleselgame.cpp:351
-msgid "Sound: OK"
+#: src/frontend/mame/ui/dirmenu.cpp:418
+#, c-format
+msgid "Change %1$s Folder - Search: %2$s_"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:650
+#: src/frontend/mame/ui/dirmenu.cpp:418
#, c-format
-msgid "%1$s %2$s"
+msgid "Add %1$s Folder - Search: %2$s_"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:1975
-msgid "Images"
+#: src/frontend/mame/ui/dirmenu.cpp:429
+msgid "Press TAB to set"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:1976
-msgid "Infos"
+#: src/frontend/mame/ui/dirmenu.cpp:513
+#, c-format
+msgid "Remove %1$s Folder"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:2386 src/frontend/mame/ui/miscmenu.cpp:826
-msgid " (default)"
+#: src/frontend/mame/ui/selector.cpp:115
+msgid "Selection List - Search: "
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:2454
-msgid "Usage"
+#: src/frontend/mame/ui/selector.cpp:123
+#, c-format
+msgid "Double click or press %1$s to select"
msgstr ""
-#: src/frontend/mame/ui/selmenu.cpp:2489
-msgid "General Info"
+#: src/frontend/mame/ui/tapectrl.cpp:85
+msgid "stopped"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:35
-msgid "ROMs"
+#: src/frontend/mame/ui/tapectrl.cpp:87
+msgid "playing"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:36
-msgid "Software Media"
+#: src/frontend/mame/ui/tapectrl.cpp:87
+msgid "(playing)"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:37
-msgid "UI"
+#: src/frontend/mame/ui/tapectrl.cpp:88
+msgid "recording"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:38 src/frontend/mame/ui/custui.cpp:157
-msgid "Language"
+#: src/frontend/mame/ui/tapectrl.cpp:88
+msgid "(recording)"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:39
-msgid "Samples"
+#: src/frontend/mame/ui/tapectrl.cpp:95
+msgid "Pause/Stop"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:40
-msgid "DATs"
+#: src/frontend/mame/ui/tapectrl.cpp:98
+msgid "Play"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:41
-msgid "INIs"
+#: src/frontend/mame/ui/tapectrl.cpp:101
+msgid "Record"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:42
-msgid "Category INIs"
+#: src/frontend/mame/ui/tapectrl.cpp:104 src/frontend/mame/ui/submenu.cpp:66
+msgid "Rewind"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:43
-msgid "Icons"
+#: src/frontend/mame/ui/tapectrl.cpp:107
+msgid "Fast Forward"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:44 src/frontend/mame/ui/submenu.cpp:25
-msgid "Cheats"
+#: src/frontend/mame/ui/swlist.cpp:83 src/frontend/mame/ui/filesel.cpp:256
+#: src/frontend/mame/ui/slotopt.cpp:220
+msgid "[empty slot]"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:52
-msgid "Controls Panels"
+#: src/frontend/mame/ui/swlist.cpp:88
+msgid "[file manager]"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:53
-msgid "Crosshairs"
+#: src/frontend/mame/ui/swlist.cpp:94 src/frontend/mame/ui/filesel.cpp:264
+msgid "[software list]"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:54
-msgid "Artworks"
+#: src/frontend/mame/ui/swlist.cpp:228
+msgid "Switch Item Ordering"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:56
-msgid "Artworks Preview"
+#: src/frontend/mame/ui/swlist.cpp:259
+#, c-format
+msgid "Switched Order: entries now ordered by %s"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:58
-msgid "GameOver"
+#: src/frontend/mame/ui/swlist.cpp:259
+msgid "shortname"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:116
-msgid "Folders Setup"
+#: src/frontend/mame/ui/swlist.cpp:259
+msgid "description"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:167
-#, c-format
-msgid "Current %1$s Folders"
+#: src/frontend/mame/ui/swlist.cpp:389
+msgid "[compatible lists]"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:179
-msgid "Change Folder"
+#: src/frontend/mame/ui/datmenu.cpp:80
+msgid "Software Usage"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:179
-msgid "Add Folder"
+#: src/frontend/mame/ui/datmenu.cpp:362
+msgid "Revision: "
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:182
-msgid "Remove Folder"
+#: src/frontend/mame/ui/filecreate.cpp:79
+msgid "File Already Exists - Override?"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:418
-#, c-format
-msgid "Change %1$s Folder - Search: %2$s_"
+#: src/frontend/mame/ui/filecreate.cpp:81 src/frontend/mame/ui/utils.cpp:1054
+msgid "No"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:418
-#, c-format
-msgid "Add %1$s Folder - Search: %2$s_"
+#: src/frontend/mame/ui/filecreate.cpp:82 src/frontend/mame/ui/utils.cpp:1054
+msgid "Yes"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:429
-msgid "Press TAB to set"
+#: src/frontend/mame/ui/filecreate.cpp:171
+msgid "New Image Name:"
msgstr ""
-#: src/frontend/mame/ui/dirmenu.cpp:513
-#, c-format
-msgid "Remove %1$s Folder"
+#: src/frontend/mame/ui/filecreate.cpp:177
+msgid "Image Format:"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:30
-msgid "protection"
+#: src/frontend/mame/ui/filecreate.cpp:183
+msgid "Create"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:31
-msgid "color palette"
+#: src/frontend/mame/ui/filecreate.cpp:214
+msgid "Please enter a file extension too"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:32
-msgid "graphics"
+#: src/frontend/mame/ui/filecreate.cpp:266
+msgid "Select image format"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:33
-msgid "sound"
+#: src/frontend/mame/ui/mainmenu.cpp:60
+msgid "Input (general)"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:34
-msgid "controls"
+#: src/frontend/mame/ui/mainmenu.cpp:62
+msgid "Input (this Machine)"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:35
-msgid "keyboard"
+#: src/frontend/mame/ui/mainmenu.cpp:65
+msgid "Analog Controls"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:36
-msgid "mouse"
+#: src/frontend/mame/ui/mainmenu.cpp:67
+msgid "Dip Switches"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:37
-msgid "microphone"
+#: src/frontend/mame/ui/mainmenu.cpp:69
+msgid "Machine Configuration"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:38
-msgid "camera"
+#: src/frontend/mame/ui/mainmenu.cpp:71
+msgid "Bookkeeping Info"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:39
-msgid "disk"
+#: src/frontend/mame/ui/mainmenu.cpp:73
+msgid "Machine Information"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:40
-msgid "printer"
+#: src/frontend/mame/ui/mainmenu.cpp:79
+msgid "Image Information"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:41
-msgid "LAN"
+#: src/frontend/mame/ui/mainmenu.cpp:81
+msgid "File Manager"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:42
-msgid "WAN"
+#: src/frontend/mame/ui/mainmenu.cpp:88
+msgid "Tape Control"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:43
-msgid "timing"
+#: src/frontend/mame/ui/mainmenu.cpp:91 src/frontend/mame/ui/info_pty.cpp:30
+msgid "Pseudo terminals"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:180
-msgid ""
-"One or more ROMs/CHDs for this machine are incorrect. The machine may not "
-"run correctly.\n"
+#: src/frontend/mame/ui/mainmenu.cpp:94
+msgid "BIOS Selection"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:190
-msgid ""
-"There are known problems with this machine\n"
-"\n"
+#: src/frontend/mame/ui/mainmenu.cpp:97
+msgid "Slot Devices"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:195
-msgid ""
-"One or more ROMs/CHDs for this machine have not been correctly dumped.\n"
+#: src/frontend/mame/ui/mainmenu.cpp:100
+msgid "Barcode Reader"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:200
-msgid "Completely unemulated features: "
+#: src/frontend/mame/ui/mainmenu.cpp:103
+msgid "Network Devices"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:206 src/frontend/mame/ui/info.cpp:222
-#, c-format
-msgid "%s"
+#: src/frontend/mame/ui/mainmenu.cpp:106
+msgid "Keyboard Mode"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:206 src/frontend/mame/ui/info.cpp:222
-#: src/frontend/mame/ui/info.cpp:267
-#, c-format
-msgid ", %s"
+#: src/frontend/mame/ui/mainmenu.cpp:108
+msgid "Slider Controls"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:216
-msgid "Imperfectly emulated features: "
+#: src/frontend/mame/ui/mainmenu.cpp:110 src/frontend/mame/ui/submenu.cpp:101
+msgid "Video Options"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:231
-msgid "Screen flipping in cocktail mode is not supported.\n"
+#: src/frontend/mame/ui/mainmenu.cpp:113
+msgid "Crosshair Options"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:233
-msgid "This machine requires external artwork files.\n"
+#: src/frontend/mame/ui/mainmenu.cpp:116 plugins/cheat/init.lua:753
+msgid "Cheat"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:235
-msgid ""
-"This machine was never completed. It may exhibit strange behavior or missing "
-"elements that are not bugs in the emulation.\n"
+#: src/frontend/mame/ui/mainmenu.cpp:119
+msgid "Plugin Options"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:237
-msgid ""
-"This machine has no sound hardware, MAME will produce no sounds, this is "
-"expected behaviour.\n"
+#: src/frontend/mame/ui/mainmenu.cpp:122
+msgid "External DAT View"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:241
-msgid ""
-"\n"
-"THIS MACHINE DOESN'T WORK. The emulation for this machine is not yet "
-"complete. There is nothing you can do to fix this problem except wait for "
-"the developers to improve the emulation.\n"
+#: src/frontend/mame/ui/mainmenu.cpp:127 src/frontend/mame/ui/miscmenu.cpp:786
+msgid "Add To Favorites"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:243
-msgid ""
-"\n"
-"Elements of this machine cannot be emulated as they requires physical "
-"interaction or consist of mechanical devices. It is not possible to fully "
-"experience this machine.\n"
+#: src/frontend/mame/ui/mainmenu.cpp:129 src/frontend/mame/ui/miscmenu.cpp:788
+msgid "Remove From Favorites"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:265
-#, c-format
-msgid ""
-"\n"
-"\n"
-"There are working clones of this machine: %s"
+#: src/frontend/mame/ui/mainmenu.cpp:135
+msgid "Select New Machine"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:278
-msgid ""
-"\n"
-"\n"
-"Press any key to continue"
+#: src/frontend/mame/ui/barcode.cpp:74
+msgid "New Barcode:"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:293
-#, c-format
-msgid ""
-"%1$s\n"
-"%2$s %3$s\n"
-"Driver: %4$s\n"
-"\n"
-"CPU:\n"
+#: src/frontend/mame/ui/barcode.cpp:78
+msgid "Enter Code"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:328 src/frontend/mame/ui/info.cpp:366
-msgid "MHz"
+#: src/frontend/mame/ui/barcode.cpp:119
+msgid "Barcode length invalid!"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:328 src/frontend/mame/ui/info.cpp:366
-msgid "kHz"
+#: src/frontend/mame/ui/info_pty.cpp:39
+msgid "[failed]"
+msgstr ""
+
+#: src/frontend/mame/ui/optsmenu.cpp:72 src/frontend/mame/ui/sndmenu.cpp:149
+msgid "Sound Options"
+msgstr ""
+
+#: src/frontend/mame/ui/optsmenu.cpp:75
+msgid "General Inputs"
+msgstr ""
+
+#: src/frontend/mame/ui/optsmenu.cpp:78
+msgid "Save Configuration"
+msgstr ""
+
+#: src/frontend/mame/ui/optsmenu.cpp:141
+msgid "Settings"
+msgstr ""
+
+#: src/frontend/mame/ui/optsmenu.cpp:199
+msgid "Filter"
+msgstr ""
+
+#: src/frontend/mame/ui/optsmenu.cpp:212
+msgid "Customize UI"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:342
+#: src/frontend/mame/ui/optsmenu.cpp:213
+msgid "Configure Directories"
+msgstr ""
+
+#: src/frontend/mame/ui/simpleselgame.cpp:149
msgid ""
+"The selected game is missing one or more required ROM or CHD images. Please "
+"select a different game.\n"
"\n"
-"Sound:\n"
+"Press any key to continue."
msgstr ""
-#: src/frontend/mame/ui/info.cpp:370
+#: src/frontend/mame/ui/simpleselgame.cpp:247
+#, c-format
msgid ""
+"No machines found. Please check the rompath specified in the %1$s.ini file.\n"
"\n"
-"Video:\n"
+"If this is your first time using %2$s, please see the config.txt file in the "
+"docs directory for information on configuring %2$s."
msgstr ""
-#: src/frontend/mame/ui/info.cpp:374
-msgid "None\n"
+#: src/frontend/mame/ui/simpleselgame.cpp:277
+#: src/frontend/mame/ui/selgame.cpp:606
+msgid "Configure Options"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:381
-msgid "Vector"
+#: src/frontend/mame/ui/simpleselgame.cpp:298
+#, c-format
+msgid "Type name or select: %1$s_"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:392
-#, c-format
-msgid "%1$s: %2$s\n"
+#: src/frontend/mame/ui/simpleselgame.cpp:300
+msgid "Type name or select: (random)"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:392
-msgid "%2$s\n"
+#: src/frontend/mame/ui/simpleselgame.cpp:314
+#: src/frontend/mame/ui/selsoft.cpp:652 src/frontend/mame/ui/selsoft.cpp:659
+#, c-format
+msgid "%1$-.100s"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:438
+#: src/frontend/mame/ui/simpleselgame.cpp:317
+#: src/frontend/mame/ui/selmenu.cpp:618 src/frontend/mame/ui/selmenu.cpp:654
#, c-format
-msgid "Screen '%1$s'"
+msgid "%1$s, %2$-.100s"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:440
-msgid "Screen"
+#: src/frontend/mame/ui/simpleselgame.cpp:320
+#, c-format
+msgid "Driver: %1$-.100s"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:525
-msgid "Not supported"
+#: src/frontend/mame/ui/simpleselgame.cpp:336
+#: src/frontend/mame/ui/selmenu.cpp:667
+msgid "Overall: NOT WORKING"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:528
-msgid "Partially supported"
+#: src/frontend/mame/ui/simpleselgame.cpp:338
+#: src/frontend/mame/ui/selmenu.cpp:669
+msgid "Overall: Unemulated Protection"
msgstr ""
-#: src/frontend/mame/ui/info.cpp:536
-msgid "[empty]"
+#: src/frontend/mame/ui/simpleselgame.cpp:340
+#: src/frontend/mame/ui/selmenu.cpp:671
+msgid "Overall: Working"
msgstr ""
-#: src/frontend/mame/ui/optsmenu.cpp:193
-msgid "Filter"
+#: src/frontend/mame/ui/simpleselgame.cpp:344
+#: src/frontend/mame/ui/selmenu.cpp:675
+msgid "Graphics: Unimplemented, "
msgstr ""
-#: src/frontend/mame/ui/optsmenu.cpp:206
-msgid "Customize UI"
+#: src/frontend/mame/ui/simpleselgame.cpp:346
+#: src/frontend/mame/ui/selmenu.cpp:677
+msgid "Graphics: Imperfect, "
msgstr ""
-#: src/frontend/mame/ui/optsmenu.cpp:207
-msgid "Configure Directories"
+#: src/frontend/mame/ui/simpleselgame.cpp:348
+#: src/frontend/mame/ui/selmenu.cpp:679
+msgid "Graphics: OK, "
msgstr ""
-#: src/frontend/mame/ui/optsmenu.cpp:210 src/frontend/mame/ui/sndmenu.cpp:149
-msgid "Sound Options"
+#: src/frontend/mame/ui/simpleselgame.cpp:351
+#: src/frontend/mame/ui/selmenu.cpp:682
+msgid "Sound: None"
msgstr ""
-#: src/frontend/mame/ui/optsmenu.cpp:213
-msgid "General Inputs"
+#: src/frontend/mame/ui/simpleselgame.cpp:353
+#: src/frontend/mame/ui/selmenu.cpp:684
+msgid "Sound: Unimplemented"
msgstr ""
-#: src/frontend/mame/ui/optsmenu.cpp:216
-msgid "Save Configuration"
+#: src/frontend/mame/ui/simpleselgame.cpp:355
+#: src/frontend/mame/ui/selmenu.cpp:686
+msgid "Sound: Imperfect"
msgstr ""
-#: src/frontend/mame/ui/optsmenu.cpp:228
-msgid "Settings"
+#: src/frontend/mame/ui/simpleselgame.cpp:357
+#: src/frontend/mame/ui/selmenu.cpp:688
+msgid "Sound: OK"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:85
-msgid "stopped"
+#: src/frontend/mame/ui/state.cpp:388
+msgid "Load State"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:87
-msgid "playing"
+#: src/frontend/mame/ui/state.cpp:388
+msgid "Select position to load from"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:87
-msgid "(playing)"
+#: src/frontend/mame/ui/state.cpp:412
+msgid "Save State"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:88
-msgid "recording"
+#: src/frontend/mame/ui/state.cpp:412
+msgid "Select position to save to"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:88
-msgid "(recording)"
+#: src/frontend/mame/ui/ui.cpp:337
+msgid "This driver requires images to be loaded in the following device(s): "
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:95
-msgid "Pause/Stop"
+#: src/frontend/mame/ui/ui.cpp:1084 src/frontend/mame/ui/ui.cpp:1094
+msgid "Keyboard Emulation Status"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:98
-msgid "Play"
+#: src/frontend/mame/ui/ui.cpp:1086
+msgid "Mode: PARTIAL Emulation"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:101
-msgid "Record"
+#: src/frontend/mame/ui/ui.cpp:1087
+msgid "UI: Enabled"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:104 src/frontend/mame/ui/submenu.cpp:66
-msgid "Rewind"
+#: src/frontend/mame/ui/ui.cpp:1089 src/frontend/mame/ui/ui.cpp:1099
+msgid "**Use ScrLock to toggle**"
msgstr ""
-#: src/frontend/mame/ui/tapectrl.cpp:107
-msgid "Fast Forward"
+#: src/frontend/mame/ui/ui.cpp:1096
+msgid "Mode: FULL Emulation"
msgstr ""
-#: src/frontend/mame/ui/inputmap.cpp:53
-msgid "User Interface"
+#: src/frontend/mame/ui/ui.cpp:1097
+msgid "UI: Disabled"
msgstr ""
-#: src/frontend/mame/ui/inputmap.cpp:59
-msgid "Other Controls"
+#: src/frontend/mame/ui/ui.cpp:1249
+msgid "Autofire can't be enabled"
msgstr ""
-#: src/frontend/mame/ui/inputmap.cpp:628 src/frontend/mame/ui/miscmenu.cpp:96
-#: src/frontend/mame/ui/slotopt.cpp:203
-msgid "Reset"
+#: src/frontend/mame/ui/ui.cpp:1302
+#, c-format
+msgid ""
+"Are you sure you want to quit?\n"
+"\n"
+"Press ''%1$s'' to quit,\n"
+"Press ''%2$s'' to return to emulation."
msgstr ""
-#: src/frontend/mame/ui/selector.cpp:116
-msgid "Selection List - Search: "
+#: src/frontend/mame/ui/ui.cpp:1374
+msgid "Master Volume"
msgstr ""
-#: src/frontend/mame/ui/selector.cpp:124
+#: src/frontend/mame/ui/ui.cpp:1383
#, c-format
-msgid "Double click or press %1$s to select"
+msgid "%1$s Volume"
msgstr ""
-#: src/frontend/mame/ui/swlist.cpp:83 src/frontend/mame/ui/slotopt.cpp:220
-#: src/frontend/mame/ui/filesel.cpp:256
-msgid "[empty slot]"
+#: src/frontend/mame/ui/ui.cpp:1407
+#, c-format
+msgid "Overclock CPU %1$s"
msgstr ""
-#: src/frontend/mame/ui/swlist.cpp:88
-msgid "[file manager]"
+#: src/frontend/mame/ui/ui.cpp:1416
+#, c-format
+msgid "Overclock %1$s sound"
msgstr ""
-#: src/frontend/mame/ui/swlist.cpp:94 src/frontend/mame/ui/filesel.cpp:264
-msgid "[software list]"
+#: src/frontend/mame/ui/ui.cpp:1437
+#, c-format
+msgid "%1$s Refresh Rate"
msgstr ""
-#: src/frontend/mame/ui/swlist.cpp:228
-msgid "Switch Item Ordering"
+#: src/frontend/mame/ui/ui.cpp:1442
+#, c-format
+msgid "%1$s Brightness"
msgstr ""
-#: src/frontend/mame/ui/swlist.cpp:259
+#: src/frontend/mame/ui/ui.cpp:1444
#, c-format
-msgid "Switched Order: entries now ordered by %s"
+msgid "%1$s Contrast"
msgstr ""
-#: src/frontend/mame/ui/swlist.cpp:259
-msgid "shortname"
+#: src/frontend/mame/ui/ui.cpp:1446
+#, c-format
+msgid "%1$s Gamma"
msgstr ""
-#: src/frontend/mame/ui/swlist.cpp:259
-msgid "description"
+#: src/frontend/mame/ui/ui.cpp:1450
+#, c-format
+msgid "%1$s Horiz Stretch"
msgstr ""
-#: src/frontend/mame/ui/swlist.cpp:389
-msgid "[compatible lists]"
+#: src/frontend/mame/ui/ui.cpp:1452
+#, c-format
+msgid "%1$s Horiz Position"
msgstr ""
-#: src/frontend/mame/ui/datmenu.cpp:80
-msgid "Software Usage"
+#: src/frontend/mame/ui/ui.cpp:1454
+#, c-format
+msgid "%1$s Vert Stretch"
msgstr ""
-#: src/frontend/mame/ui/datmenu.cpp:362
-msgid "Revision: "
+#: src/frontend/mame/ui/ui.cpp:1456
+#, c-format
+msgid "%1$s Vert Position"
msgstr ""
-#: src/frontend/mame/ui/simpleselgame.cpp:149
-msgid ""
-"The selected game is missing one or more required ROM or CHD images. Please "
-"select a different game.\n"
-"\n"
-"Press any key to continue."
+#: src/frontend/mame/ui/ui.cpp:1475
+#, c-format
+msgid "Laserdisc '%1$s' Horiz Stretch"
msgstr ""
-#: src/frontend/mame/ui/simpleselgame.cpp:241
+#: src/frontend/mame/ui/ui.cpp:1477
#, c-format
-msgid ""
-"No machines found. Please check the rompath specified in the %1$s.ini file.\n"
-"\n"
-"If this is your first time using %2$s, please see the config.txt file in the "
-"docs directory for information on configuring %2$s."
+msgid "Laserdisc '%1$s' Horiz Position"
msgstr ""
-#: src/frontend/mame/ui/simpleselgame.cpp:271
-#: src/frontend/mame/ui/selgame.cpp:436
-msgid "Configure Options"
+#: src/frontend/mame/ui/ui.cpp:1479
+#, c-format
+msgid "Laserdisc '%1$s' Vert Stretch"
msgstr ""
-#: src/frontend/mame/ui/simpleselgame.cpp:292
+#: src/frontend/mame/ui/ui.cpp:1481
#, c-format
-msgid "Type name or select: %1$s_"
+msgid "Laserdisc '%1$s' Vert Position"
msgstr ""
-#: src/frontend/mame/ui/simpleselgame.cpp:294
-msgid "Type name or select: (random)"
+#: src/frontend/mame/ui/ui.cpp:1493
+msgid "Vector Flicker"
msgstr ""
-#: src/frontend/mame/ui/simpleselgame.cpp:308
-#: src/frontend/mame/ui/selsoft.cpp:564 src/frontend/mame/ui/selsoft.cpp:571
-#, c-format
-msgid "%1$-.100s"
+#: src/frontend/mame/ui/ui.cpp:1494
+msgid "Beam Width Minimum"
msgstr ""
-#: src/frontend/mame/ui/simpleselgame.cpp:314
+#: src/frontend/mame/ui/ui.cpp:1495
+msgid "Beam Width Maximum"
+msgstr ""
+
+#: src/frontend/mame/ui/ui.cpp:1496
+msgid "Beam Intensity Weight"
+msgstr ""
+
+#: src/frontend/mame/ui/ui.cpp:1511
#, c-format
-msgid "Driver: %1$-.100s"
+msgid "Crosshair Scale %1$s"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:56
+#: src/frontend/mame/ui/ui.cpp:1511 src/frontend/mame/ui/ui.cpp:1513
+msgid "X"
+msgstr ""
+
+#: src/frontend/mame/ui/ui.cpp:1511 src/frontend/mame/ui/ui.cpp:1513
+msgid "Y"
+msgstr ""
+
+#: src/frontend/mame/ui/ui.cpp:1513
#, c-format
-msgid "Screen #%d"
+msgid "Crosshair Offset %1$s"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:204 src/frontend/mame/ui/submenu.cpp:48
-msgid "Rotate"
+#: src/frontend/mame/ui/ui.cpp:1601
+#, c-format
+msgid "%1$3ddB"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:208
-msgid "Backdrops"
+#: src/frontend/mame/ui/ui.cpp:1645
+#, c-format
+msgid "%1$d%%"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:208 src/frontend/mame/ui/videoopt.cpp:212
-#: src/frontend/mame/ui/videoopt.cpp:216 src/frontend/mame/ui/videoopt.cpp:220
-#: src/frontend/mame/ui/videoopt.cpp:224 src/frontend/mame/ui/cheatopt.cpp:273
-#: src/frontend/mame/ui/ui.cpp:1255
-msgid "Enabled"
+#: src/frontend/mame/ui/ui.cpp:1661
+#, c-format
+msgid "%1$3.0f%%"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:208 src/frontend/mame/ui/videoopt.cpp:212
-#: src/frontend/mame/ui/videoopt.cpp:216 src/frontend/mame/ui/videoopt.cpp:220
-#: src/frontend/mame/ui/videoopt.cpp:224 src/frontend/mame/ui/cheatopt.cpp:273
-#: src/frontend/mame/ui/ui.cpp:1255
-msgid "Disabled"
+#: src/frontend/mame/ui/ui.cpp:1685
+#, c-format
+msgid "%1$.3ffps"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:212
-msgid "Overlays"
+#: src/frontend/mame/ui/ui.cpp:1708 src/frontend/mame/ui/ui.cpp:1730
+#: src/frontend/mame/ui/ui.cpp:1751 src/frontend/mame/ui/ui.cpp:1773
+#: src/frontend/mame/ui/ui.cpp:1795 src/frontend/mame/ui/ui.cpp:1817
+#: src/frontend/mame/ui/ui.cpp:1839 src/frontend/mame/ui/ui.cpp:1861
+#: src/frontend/mame/ui/ui.cpp:1883 src/frontend/mame/ui/ui.cpp:1905
+#: src/frontend/mame/ui/ui.cpp:1927
+#, c-format
+msgid "%1$.3f"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:216
-msgid "Bezels"
+#: src/frontend/mame/ui/ui.cpp:1942 src/frontend/mame/ui/ui.cpp:1957
+#: src/frontend/mame/ui/ui.cpp:1972 src/frontend/mame/ui/ui.cpp:1987
+#, c-format
+msgid "%1$1.2f"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:220
-msgid "CPanels"
+#: src/frontend/mame/ui/ui.cpp:2005
+#, c-format
+msgid "Crosshair Scale X %1$1.3f"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:228
-msgid "View"
+#: src/frontend/mame/ui/ui.cpp:2005
+#, c-format
+msgid "Crosshair Scale Y %1$1.3f"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:228
-msgid "Cropped"
+#: src/frontend/mame/ui/ui.cpp:2024
+#, c-format
+msgid "Crosshair Offset X %1$1.3f"
msgstr ""
-#: src/frontend/mame/ui/videoopt.cpp:228
-msgid "Full"
+#: src/frontend/mame/ui/ui.cpp:2024
+#, c-format
+msgid "Crosshair Offset Y %1$1.3f"
msgstr ""
-#: src/frontend/mame/ui/filecreate.cpp:79
-msgid "File Already Exists - Override?"
+#: src/frontend/mame/ui/ui.cpp:2167
+msgid "**Error saving ui.ini**"
msgstr ""
-#: src/frontend/mame/ui/filecreate.cpp:81 src/frontend/mame/ui/utils.cpp:1047
-msgid "No"
+#: src/frontend/mame/ui/ui.cpp:2226
+#, c-format
+msgid "**Error saving %s.ini**"
msgstr ""
-#: src/frontend/mame/ui/filecreate.cpp:82 src/frontend/mame/ui/utils.cpp:1047
-msgid "Yes"
+#: src/frontend/mame/ui/ui.cpp:2230 src/frontend/mame/ui/miscmenu.cpp:726
+msgid ""
+"\n"
+" Configuration saved \n"
+"\n"
msgstr ""
-#: src/frontend/mame/ui/filecreate.cpp:171
-msgid "New Image Name:"
+#: src/frontend/mame/ui/cheatopt.cpp:92 plugins/cheat/init.lua:671
+#, c-format, lua-format
+msgid ""
+"Cheat Comment:\n"
+"%s"
msgstr ""
-#: src/frontend/mame/ui/filecreate.cpp:177
-msgid "Image Format:"
+#: src/frontend/mame/ui/cheatopt.cpp:105
+msgid "All cheats reloaded"
msgstr ""
-#: src/frontend/mame/ui/filecreate.cpp:183
-msgid "Create"
+#: src/frontend/mame/ui/cheatopt.cpp:136
+msgid "Autofire Settings"
msgstr ""
-#: src/frontend/mame/ui/filecreate.cpp:214
-msgid "Please enter a file extension too"
+#: src/frontend/mame/ui/cheatopt.cpp:157 plugins/cheat/init.lua:599
+msgid "Reset All"
msgstr ""
-#: src/frontend/mame/ui/filecreate.cpp:266
-msgid "Select image format"
+#: src/frontend/mame/ui/cheatopt.cpp:160 plugins/cheat/init.lua:600
+msgid "Reload All"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:43
-msgid "Keyboard Mode:"
+#: src/frontend/mame/ui/cheatopt.cpp:273
+msgid "Autofire Status"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:43
-msgid "Natural"
+#: src/frontend/mame/ui/cheatopt.cpp:306
+msgid "No buttons found on this machine!"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:43
-msgid "Emulated"
+#: src/frontend/mame/ui/cheatopt.cpp:317 src/frontend/mame/ui/cheatopt.cpp:321
+msgid "Autofire Delay"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:236
+#: src/frontend/mame/ui/selsoft.cpp:228 src/frontend/mame/ui/selgame.cpp:464
#, c-format
msgid ""
-"Uptime: %1$d:%2$02d:%3$02d\n"
-"\n"
+"%s\n"
+" added to favorites list."
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:238
+#: src/frontend/mame/ui/selsoft.cpp:233 src/frontend/mame/ui/selgame.cpp:469
+#: src/frontend/mame/ui/selgame.cpp:475
#, c-format
msgid ""
-"Uptime: %1$d:%2$02d\n"
-"\n"
+"%s\n"
+" removed from favorites list."
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:242
-#, c-format
+#: src/frontend/mame/ui/selsoft.cpp:507
msgid ""
-"Tickets dispensed: %1$d\n"
+"The selected software is missing one or more required files. Please select a "
+"different software.\n"
"\n"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:253
-msgid "Coin %1$c: NA%3$s\n"
+#: src/frontend/mame/ui/selsoft.cpp:513 src/frontend/mame/ui/selgame.cpp:1471
+msgid "Press any key to continue."
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:253
+#: src/frontend/mame/ui/selsoft.cpp:637
#, c-format
-msgid "Coin %1$c: %2$d%3$s\n"
+msgid "%1$s %2$s ( %3$d / %4$d software packages )"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:256
-msgid " (locked)"
+#: src/frontend/mame/ui/selsoft.cpp:638
+#, c-format
+msgid "Driver: \"%1$s\" software list "
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:503
-msgid "Visible Delay"
+#: src/frontend/mame/ui/selsoft.cpp:643 src/frontend/mame/ui/selgame.cpp:1412
+#, c-format
+msgid "%1$s: %2$s - Search: %3$s_"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:601
+#: src/frontend/mame/ui/selsoft.cpp:645 src/frontend/mame/ui/selgame.cpp:1414
#, c-format
-msgid "%s.xml saved under ui folder."
+msgid "Search: %1$s_"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:627
-msgid "Name: Description:\n"
+#: src/frontend/mame/ui/utils.cpp:60 src/frontend/mame/ui/utils.cpp:84
+msgid "Unfiltered"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:638
-#, c-format
-msgid "%s.txt saved under ui folder."
+#: src/frontend/mame/ui/utils.cpp:61 src/frontend/mame/ui/utils.cpp:85
+msgid "Available"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:655
-msgid "Export list in XML format (like -listxml)"
+#: src/frontend/mame/ui/utils.cpp:62 src/frontend/mame/ui/utils.cpp:86
+msgid "Unavailable"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:656
-msgid "Export list in XML format (like -listxml, but exclude devices)"
+#: src/frontend/mame/ui/utils.cpp:63
+msgid "Working"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:657
-msgid "Export list in TXT format (like -listfull)"
+#: src/frontend/mame/ui/utils.cpp:64
+msgid "Not Working"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:710 src/frontend/mame/ui/ui.cpp:2230
-msgid ""
-"\n"
-" Configuration saved \n"
-"\n"
+#: src/frontend/mame/ui/utils.cpp:65
+msgid "Mechanical"
+msgstr ""
+
+#: src/frontend/mame/ui/utils.cpp:66
+msgid "Not Mechanical"
+msgstr ""
+
+#: src/frontend/mame/ui/utils.cpp:67
+msgid "Category"
+msgstr ""
+
+#: src/frontend/mame/ui/utils.cpp:68 src/frontend/mame/ui/utils.cpp:87
+msgid "Favorites"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:760 src/frontend/mame/ui/utils.cpp:66
+#: src/frontend/mame/ui/utils.cpp:69 src/frontend/mame/ui/miscmenu.cpp:770
msgid "BIOS"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:764
-msgid "Driver"
+#: src/frontend/mame/ui/utils.cpp:70
+msgid "Not BIOS"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:767
-msgid "This machine has no BIOS."
+#: src/frontend/mame/ui/utils.cpp:71 src/frontend/mame/ui/utils.cpp:88
+msgid "Parents"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:776 src/frontend/mame/ui/mainmenu.cpp:145
-msgid "Add To Favorites"
+#: src/frontend/mame/ui/utils.cpp:72 src/frontend/mame/ui/utils.cpp:89
+msgid "Clones"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:778 src/frontend/mame/ui/mainmenu.cpp:147
-msgid "Remove From Favorites"
+#: src/frontend/mame/ui/utils.cpp:73
+msgid "Manufacturer"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:781
-msgid "Save machine configuration"
+#: src/frontend/mame/ui/utils.cpp:74 src/frontend/mame/ui/utils.cpp:90
+msgid "Year"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:792
-msgid "Configure machine:"
+#: src/frontend/mame/ui/utils.cpp:75
+msgid "Save Supported"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:895 src/frontend/mame/ui/sndmenu.cpp:135
-#: src/frontend/mame/ui/sndmenu.cpp:137 src/frontend/mame/ui/menu.cpp:736
-#: src/frontend/mame/ui/cheatopt.cpp:299 src/frontend/mame/ui/cheatopt.cpp:305
-#: plugins/cheat/init.lua:551 plugins/cheatfind/init.lua:619
-msgid "On"
+#: src/frontend/mame/ui/utils.cpp:76
+msgid "Save Unsupported"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:895 src/frontend/mame/ui/sndmenu.cpp:135
-#: src/frontend/mame/ui/sndmenu.cpp:137 src/frontend/mame/ui/menu.cpp:739
-#: src/frontend/mame/ui/cheatopt.cpp:299 src/frontend/mame/ui/cheatopt.cpp:305
-#: plugins/cheat/init.lua:554 plugins/cheat/init.lua:563
-#: plugins/cheatfind/init.lua:616
-msgid "Off"
+#: src/frontend/mame/ui/utils.cpp:77
+msgid "CHD Required"
msgstr ""
-#: src/frontend/mame/ui/miscmenu.cpp:909 src/frontend/mame/ui/selgame.cpp:441
-msgid "Plugins"
+#: src/frontend/mame/ui/utils.cpp:78
+msgid "No CHD Required"
msgstr ""
-#: src/frontend/mame/ui/barcode.cpp:74
-msgid "New Barcode:"
+#: src/frontend/mame/ui/utils.cpp:79
+msgid "Vertical Screen"
msgstr ""
-#: src/frontend/mame/ui/barcode.cpp:78
-msgid "Enter Code"
+#: src/frontend/mame/ui/utils.cpp:80
+msgid "Horizontal Screen"
msgstr ""
-#: src/frontend/mame/ui/barcode.cpp:119
-msgid "Barcode length invalid!"
+#: src/frontend/mame/ui/utils.cpp:81 src/frontend/mame/ui/utils.cpp:98
+msgid "Custom Filter"
msgstr ""
-#: src/frontend/mame/ui/info_pty.cpp:30 src/frontend/mame/ui/mainmenu.cpp:99
-msgid "Pseudo terminals"
+#: src/frontend/mame/ui/utils.cpp:91
+msgid "Publisher"
msgstr ""
-#: src/frontend/mame/ui/info_pty.cpp:39
-msgid "[failed]"
+#: src/frontend/mame/ui/utils.cpp:92
+msgid "Supported"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:60
-msgid "Input (general)"
+#: src/frontend/mame/ui/utils.cpp:93
+msgid "Partially Supported"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:62
-msgid "Input (this Machine)"
+#: src/frontend/mame/ui/utils.cpp:94
+msgid "Unsupported"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:66
-msgid "Analog Controls"
+#: src/frontend/mame/ui/utils.cpp:95
+msgid "Release Region"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:68
-msgid "Dip Switches"
+#: src/frontend/mame/ui/utils.cpp:96
+msgid "Device Type"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:71
-msgid "Machine Configuration"
+#: src/frontend/mame/ui/utils.cpp:97
+msgid "Software List"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:75
-msgid "Bookkeeping Info"
+#: src/frontend/mame/ui/utils.cpp:248
+msgid "<set up filters>"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:78
-msgid "Machine Information"
+#: src/frontend/mame/ui/utils.cpp:356
+msgid "Select custom filters:"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:85
-msgid "Image Information"
+#: src/frontend/mame/ui/utils.cpp:507
+#, c-format
+msgid "Filter %1$u"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:88
-msgid "File Manager"
+#: src/frontend/mame/ui/utils.cpp:522
+msgid "Remove last filter"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:96
-msgid "Tape Control"
+#: src/frontend/mame/ui/utils.cpp:524
+msgid "Add filter"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:102
-msgid "BIOS Selection"
+#: src/frontend/mame/ui/utils.cpp:966
+msgid "Select category:"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:106
-msgid "Slot Devices"
+#: src/frontend/mame/ui/utils.cpp:997
+msgid "[no category INI files]"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:110
-msgid "Barcode Reader"
+#: src/frontend/mame/ui/utils.cpp:1005
+msgid "[no groups in INI file]"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:114
-msgid "Network Devices"
+#: src/frontend/mame/ui/utils.cpp:1039
+msgid "No category INI files found"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:118
-msgid "Keyboard Mode"
+#: src/frontend/mame/ui/utils.cpp:1044
+msgid "File"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:121
-msgid "Slider Controls"
+#: src/frontend/mame/ui/utils.cpp:1048
+msgid "No groups found in category file"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:124 src/frontend/mame/ui/submenu.cpp:101
-msgid "Video Options"
+#: src/frontend/mame/ui/utils.cpp:1053
+msgid "Group"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:128
-msgid "Crosshair Options"
+#: src/frontend/mame/ui/utils.cpp:1054
+msgid "Include clones"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:132 plugins/cheat/init.lua:735
-msgid "Cheat"
+#: src/frontend/mame/ui/filesel.cpp:260
+msgid "[create]"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:135
-msgid "Plugin Options"
+#: src/frontend/mame/ui/filesel.cpp:320
+#, c-format
+msgid "Error accessing %s"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:139
-msgid "External DAT View"
+#: src/frontend/mame/ui/filesel.cpp:536
+msgid "Select access mode"
msgstr ""
-#: src/frontend/mame/ui/mainmenu.cpp:154
-msgid "Select New Machine"
+#: src/frontend/mame/ui/filesel.cpp:537
+msgid "Read-only"
+msgstr ""
+
+#: src/frontend/mame/ui/filesel.cpp:539
+msgid "Read-write"
+msgstr ""
+
+#: src/frontend/mame/ui/filesel.cpp:540
+msgid "Read this image, write to another image"
+msgstr ""
+
+#: src/frontend/mame/ui/filesel.cpp:541
+msgid "Read this image, write to diff"
+msgstr ""
+
+#: src/frontend/mame/ui/slotopt.cpp:192
+#, c-format
+msgid "%s [internal]"
+msgstr ""
+
+#: src/frontend/mame/ui/slotopt.cpp:203 src/frontend/mame/ui/miscmenu.cpp:97
+#: src/frontend/mame/ui/inputmap.cpp:615
+msgid "Reset"
+msgstr ""
+
+#: src/frontend/mame/ui/viewgfx.cpp:407
+msgid " COLORS"
+msgstr ""
+
+#: src/frontend/mame/ui/viewgfx.cpp:407
+msgid " PENS"
+msgstr ""
+
+#: src/frontend/mame/ui/menu.cpp:304
+msgid "Return to Machine"
+msgstr ""
+
+#: src/frontend/mame/ui/menu.cpp:309 src/frontend/mame/ui/menu.cpp:311
+msgid "Exit"
+msgstr ""
+
+#: src/frontend/mame/ui/menu.cpp:316 src/frontend/mame/ui/menu.cpp:318
+msgid "Return to Previous Menu"
+msgstr ""
+
+#: src/frontend/mame/ui/menu.cpp:430 src/frontend/mame/ui/menu.cpp:762
+#: plugins/cheat/init.lua:569 plugins/cheatfind/init.lua:792
+#: plugins/cheatfind/init.lua:803
+msgid "On"
+msgstr ""
+
+#: src/frontend/mame/ui/menu.cpp:430 src/frontend/mame/ui/menu.cpp:765
+#: plugins/cheat/init.lua:572 plugins/cheat/init.lua:581
+#: plugins/cheatfind/init.lua:789 plugins/cheatfind/init.lua:800
+msgid "Off"
+msgstr ""
+
+#: src/frontend/mame/ui/menu.cpp:768
+msgid "Auto"
msgstr ""
#: src/frontend/mame/ui/custui.cpp:31
@@ -1274,1303 +1377,1281 @@ msgstr ""
msgid "Violet"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:22
-msgid "Miscellaneous Options"
-msgstr ""
-
-#: src/frontend/mame/ui/submenu.cpp:23
-msgid "Re-select last machine played"
+#: src/frontend/mame/ui/miscmenu.cpp:44
+msgid "Keyboard Mode:"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:24
-msgid "Enlarge images in the right panel"
+#: src/frontend/mame/ui/miscmenu.cpp:44
+msgid "Natural"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:26
-msgid "Show mouse pointer"
+#: src/frontend/mame/ui/miscmenu.cpp:44
+msgid "Emulated"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:27
-msgid "Confirm quit from machines"
+#: src/frontend/mame/ui/miscmenu.cpp:237
+#, c-format
+msgid ""
+"Uptime: %1$d:%2$02d:%3$02d\n"
+"\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:28
-msgid "Skip information screen at startup"
+#: src/frontend/mame/ui/miscmenu.cpp:239
+#, c-format
+msgid ""
+"Uptime: %1$d:%2$02d\n"
+"\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:29
-msgid "Force 4:3 aspect for snapshot display"
+#: src/frontend/mame/ui/miscmenu.cpp:243
+#, c-format
+msgid ""
+"Tickets dispensed: %1$d\n"
+"\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:30
-msgid "Use image as background"
+#: src/frontend/mame/ui/miscmenu.cpp:254
+msgid "Coin %1$c: NA%3$s\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:31
-msgid "Skip BIOS selection menu"
+#: src/frontend/mame/ui/miscmenu.cpp:254
+#, c-format
+msgid "Coin %1$c: %2$d%3$s\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:32
-msgid "Skip software parts selection menu"
+#: src/frontend/mame/ui/miscmenu.cpp:257
+msgid " (locked)"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:33
-msgid "Info auto audit"
+#: src/frontend/mame/ui/miscmenu.cpp:504
+msgid "Visible Delay"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:34
-msgid "Hide romless machine from available list"
+#: src/frontend/mame/ui/miscmenu.cpp:602
+#, c-format
+msgid "%s.xml saved under ui folder."
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:38
-msgid "Advanced Options"
+#: src/frontend/mame/ui/miscmenu.cpp:628
+msgid "Name: Description:\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:39
-msgid "Performance Options"
+#: src/frontend/mame/ui/miscmenu.cpp:639
+#, c-format
+msgid "%s.txt saved under ui folder."
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:40
-msgid "Auto frame skip"
+#: src/frontend/mame/ui/miscmenu.cpp:656
+msgid "Export list in XML format (like -listxml)"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:41
-msgid "Frame skip"
+#: src/frontend/mame/ui/miscmenu.cpp:657
+msgid "Export list in XML format (like -listxml, but exclude devices)"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:42
-msgid "Throttle"
+#: src/frontend/mame/ui/miscmenu.cpp:658
+msgid "Export list in TXT format (like -listfull)"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:43
-msgid "Sleep"
+#: src/frontend/mame/ui/miscmenu.cpp:774
+msgid "Driver"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:44
-msgid "Speed"
+#: src/frontend/mame/ui/miscmenu.cpp:777
+msgid "This machine has no BIOS."
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:45
-msgid "Refresh speed"
+#: src/frontend/mame/ui/miscmenu.cpp:791
+msgid "Save machine configuration"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:47
-msgid "Rotation Options"
+#: src/frontend/mame/ui/miscmenu.cpp:802
+msgid "Configure machine:"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:49
-msgid "Rotate right"
+#: src/frontend/mame/ui/miscmenu.cpp:836 src/frontend/mame/ui/selmenu.cpp:2481
+msgid " (default)"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:50
-msgid "Rotate left"
+#: src/frontend/mame/ui/miscmenu.cpp:918 src/frontend/mame/ui/selgame.cpp:611
+msgid "Plugins"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:51
-msgid "Auto rotate right"
+#: src/frontend/mame/ui/selgame.cpp:607
+msgid "Configure Machine"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:52
-msgid "Auto rotate left"
+#: src/frontend/mame/ui/selgame.cpp:1036
+#, c-format
+msgid "Romset\t%1$-.100s\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:53
-msgid "Flip X"
+#: src/frontend/mame/ui/selgame.cpp:1037
+#, c-format
+msgid "Year\t%1$s\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:54
-msgid "Flip Y"
+#: src/frontend/mame/ui/selgame.cpp:1038
+#, c-format
+msgid "Manufacturer\t%1$-.100s\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:56
-msgid "Artwork Options"
+#: src/frontend/mame/ui/selgame.cpp:1042
+#, c-format
+msgid "Driver is Clone of\t%1$-.100s\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:57
-msgid "Artwork Crop"
+#: src/frontend/mame/ui/selgame.cpp:1044
+msgid "Driver is Parent\t\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:58
-msgid "Use Backdrops"
+#: src/frontend/mame/ui/selgame.cpp:1047
+msgid "Analog Controls\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:59
-msgid "Use Overlays"
+#: src/frontend/mame/ui/selgame.cpp:1049
+msgid "Keyboard Inputs\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:60
-msgid "Use Bezels"
+#: src/frontend/mame/ui/selgame.cpp:1052
+msgid "Overall\tNOT WORKING\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:61
-msgid "Use Control Panels"
+#: src/frontend/mame/ui/selgame.cpp:1054
+msgid "Overall\tUnemulated Protection\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:62
-msgid "Use Marquees"
+#: src/frontend/mame/ui/selgame.cpp:1056
+msgid "Overall\tWorking\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:64
-msgid "State/Playback Options"
+#: src/frontend/mame/ui/selgame.cpp:1059
+msgid "Graphics\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:65
-msgid "Automatic save/restore"
+#: src/frontend/mame/ui/selgame.cpp:1061
+msgid "Graphics\tWrong Colors\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:67
-msgid "Rewind capacity"
+#: src/frontend/mame/ui/selgame.cpp:1063
+msgid "Graphics\tImperfect Colors\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:68
-msgid "Bilinear snapshot"
+#: src/frontend/mame/ui/selgame.cpp:1065
+msgid "Graphics\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:69
-msgid "Burn-in"
+#: src/frontend/mame/ui/selgame.cpp:1067
+msgid "Graphics\tOK\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:71
-msgid "Input Options"
+#: src/frontend/mame/ui/selgame.cpp:1070
+msgid "Sound\tNone\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:72
-msgid "Coin lockout"
+#: src/frontend/mame/ui/selgame.cpp:1072
+msgid "Sound\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:73
-msgid "Mouse"
+#: src/frontend/mame/ui/selgame.cpp:1074
+msgid "Sound\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:74
-msgid "Joystick"
+#: src/frontend/mame/ui/selgame.cpp:1076
+msgid "Sound\tOK\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:75
-msgid "Lightgun"
+#: src/frontend/mame/ui/selgame.cpp:1079
+msgid "Capture\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:76
-msgid "Multi-keyboard"
+#: src/frontend/mame/ui/selgame.cpp:1081
+msgid "Capture\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:77
-msgid "Multi-mouse"
+#: src/frontend/mame/ui/selgame.cpp:1084
+msgid "Camera\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:78
-msgid "Steadykey"
+#: src/frontend/mame/ui/selgame.cpp:1086
+msgid "Camera\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:79
-msgid "UI active"
+#: src/frontend/mame/ui/selgame.cpp:1089
+msgid "Microphone\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:80
-msgid "Offscreen reload"
+#: src/frontend/mame/ui/selgame.cpp:1091
+msgid "Microphone\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:81
-msgid "Joystick deadzone"
+#: src/frontend/mame/ui/selgame.cpp:1094
+msgid "Controls\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:82
-msgid "Joystick saturation"
+#: src/frontend/mame/ui/selgame.cpp:1096
+msgid "Controls\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:83
-msgid "Natural keyboard"
+#: src/frontend/mame/ui/selgame.cpp:1099
+msgid "Keyboard\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:84
-msgid "Simultaneous contradictory"
+#: src/frontend/mame/ui/selgame.cpp:1101
+msgid "Keyboard\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:85
-msgid "Coin impulse"
+#: src/frontend/mame/ui/selgame.cpp:1104
+msgid "Mouse\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:89
-msgid "Device Mapping"
+#: src/frontend/mame/ui/selgame.cpp:1106
+msgid "Mouse\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:90
-msgid "Lightgun Device Assignment"
+#: src/frontend/mame/ui/selgame.cpp:1109
+msgid "Media\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:91
-msgid "Trackball Device Assignment"
+#: src/frontend/mame/ui/selgame.cpp:1111
+msgid "Media\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:92
-msgid "Pedal Device Assignment"
+#: src/frontend/mame/ui/selgame.cpp:1114
+msgid "Disk\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:93
-msgid "Adstick Device Assignment"
+#: src/frontend/mame/ui/selgame.cpp:1116
+msgid "Disk\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:94
-msgid "Paddle Device Assignment"
+#: src/frontend/mame/ui/selgame.cpp:1119
+msgid "Printer\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:95
-msgid "Dial Device Assignment"
+#: src/frontend/mame/ui/selgame.cpp:1121
+msgid "Printer\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:96
-msgid "Positional Device Assignment"
+#: src/frontend/mame/ui/selgame.cpp:1124
+msgid "Mag. Tape\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:97
-msgid "Mouse Device Assignment"
+#: src/frontend/mame/ui/selgame.cpp:1126
+msgid "Mag. Tape\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:102
-msgid "Video Mode"
+#: src/frontend/mame/ui/selgame.cpp:1129
+msgid "Punch Tape\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:103
-msgid "Number Of Screens"
+#: src/frontend/mame/ui/selgame.cpp:1131
+msgid "Punch Tape\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:105
-msgid "Triple Buffering"
+#: src/frontend/mame/ui/selgame.cpp:1134
+msgid "Mag. Drum\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:106
-msgid "HLSL"
+#: src/frontend/mame/ui/selgame.cpp:1136
+msgid "Mag. Drum\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:108
-msgid "GLSL"
+#: src/frontend/mame/ui/selgame.cpp:1139
+msgid "(EP)ROM\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:109
-msgid "Bilinear Filtering"
+#: src/frontend/mame/ui/selgame.cpp:1141
+msgid "(EP)ROM\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:110
-msgid "Bitmap Prescaling"
+#: src/frontend/mame/ui/selgame.cpp:1144
+msgid "Communications\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:111
-msgid "Window Mode"
+#: src/frontend/mame/ui/selgame.cpp:1146
+msgid "Communications\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:112
-msgid "Enforce Aspect Ratio"
+#: src/frontend/mame/ui/selgame.cpp:1149
+msgid "LAN\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:113
-msgid "Start Out Maximized"
+#: src/frontend/mame/ui/selgame.cpp:1151
+msgid "LAN\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:114
-msgid "Synchronized Refresh"
+#: src/frontend/mame/ui/selgame.cpp:1154
+msgid "WAN\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/submenu.cpp:115
-msgid "Wait Vertical Sync"
+#: src/frontend/mame/ui/selgame.cpp:1156
+msgid "WAN\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/state.cpp:388
-msgid "Load State"
+#: src/frontend/mame/ui/selgame.cpp:1159
+msgid "Timing\tUnimplemented\n"
msgstr ""
-#: src/frontend/mame/ui/state.cpp:388
-msgid "Select position to load from"
+#: src/frontend/mame/ui/selgame.cpp:1161
+msgid "Timing\tImperfect\n"
msgstr ""
-#: src/frontend/mame/ui/state.cpp:412
-msgid "Save State"
+#: src/frontend/mame/ui/selgame.cpp:1163
+msgid "Mechanical Machine\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/state.cpp:412
-msgid "Select position to save to"
+#: src/frontend/mame/ui/selgame.cpp:1163
+msgid "Mechanical Machine\tNo\n"
msgstr ""
-#: src/frontend/mame/ui/slotopt.cpp:192
-#, c-format
-msgid "%s [internal]"
+#: src/frontend/mame/ui/selgame.cpp:1164
+msgid "Requires Artwork\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:309 src/frontend/mame/ui/selsoft.cpp:211
-#, c-format
-msgid ""
-"%s\n"
-" added to favorites list."
+#: src/frontend/mame/ui/selgame.cpp:1164
+msgid "Requires Artwork\tNo\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:314 src/frontend/mame/ui/selgame.cpp:320
-#: src/frontend/mame/ui/selsoft.cpp:216
-#, c-format
-msgid ""
-"%s\n"
-" removed from favorites list."
+#: src/frontend/mame/ui/selgame.cpp:1165
+msgid "Requires Clickable Artwork\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:437
-msgid "Configure Machine"
+#: src/frontend/mame/ui/selgame.cpp:1165
+msgid "Requires Clickable Artwork\tNo\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:849
-#, c-format
-msgid "Romset\t%1$-.100s\n"
+#: src/frontend/mame/ui/selgame.cpp:1166
+msgid "Support Cocktail\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:850
-#, c-format
-msgid "Year\t%1$s\n"
+#: src/frontend/mame/ui/selgame.cpp:1166
+msgid "Support Cocktail\tNo\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:851
-#, c-format
-msgid "Manufacturer\t%1$-.100s\n"
+#: src/frontend/mame/ui/selgame.cpp:1167
+msgid "Driver is BIOS\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:855
-#, c-format
-msgid "Driver is Clone of\t%1$-.100s\n"
+#: src/frontend/mame/ui/selgame.cpp:1167
+msgid "Driver is BIOS\tNo\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:857
-msgid "Driver is Parent\t\n"
+#: src/frontend/mame/ui/selgame.cpp:1168
+msgid "Support Save\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:860
-msgid "Analog Controls\tYes\n"
+#: src/frontend/mame/ui/selgame.cpp:1168
+msgid "Support Save\tNo\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:862
-msgid "Keyboard Inputs\tYes\n"
+#: src/frontend/mame/ui/selgame.cpp:1169
+msgid "Screen Orientation\tVertical\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:865
-msgid "Overall\tNOT WORKING\n"
+#: src/frontend/mame/ui/selgame.cpp:1169
+msgid "Screen Orientation\tHorizontal\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:867
-msgid "Overall\tUnemulated Protection\n"
+#: src/frontend/mame/ui/selgame.cpp:1179
+msgid "Requires CHD\tYes\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:869
-msgid "Overall\tWorking\n"
+#: src/frontend/mame/ui/selgame.cpp:1179
+msgid "Requires CHD\tNo\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:872
-msgid "Graphics\tUnimplemented\n"
+#: src/frontend/mame/ui/selgame.cpp:1192
+msgid "ROM Audit Result\tOK\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:874
-msgid "Graphics\tWrong Colors\n"
+#: src/frontend/mame/ui/selgame.cpp:1194
+msgid "ROM Audit Result\tBAD\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:876
-msgid "Graphics\tImperfect Colors\n"
+#: src/frontend/mame/ui/selgame.cpp:1197
+msgid "Samples Audit Result\tNone Needed\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:878
-msgid "Graphics\tImperfect\n"
+#: src/frontend/mame/ui/selgame.cpp:1199
+msgid "Samples Audit Result\tOK\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:880
-msgid "Graphics\tOK\n"
+#: src/frontend/mame/ui/selgame.cpp:1201
+msgid "Samples Audit Result\tBAD\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:883
-msgid "Sound\tNone\n"
+#: src/frontend/mame/ui/selgame.cpp:1205
+msgid ""
+"ROM Audit \tDisabled\n"
+"Samples Audit \tDisabled\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:885
-msgid "Sound\tUnimplemented\n"
+#: src/frontend/mame/ui/selgame.cpp:1396
+#, c-format
+msgid "%1$s %2$s ( %3$d / %4$d machines (%5$d BIOS) )"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:887
-msgid "Sound\tImperfect\n"
+#: src/frontend/mame/ui/selgame.cpp:1424
+#, c-format
+msgid "Romset: %1$-.100s"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:889
-msgid "Sound\tOK\n"
+#: src/frontend/mame/ui/selgame.cpp:1431
+#, c-format
+msgid "System: %1$-.100s"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:892
-msgid "Controls\tUnimplemented\n"
+#: src/frontend/mame/ui/selgame.cpp:1465
+msgid ""
+"The selected machine is missing one or more required ROM or CHD images. "
+"Please select a different machine.\n"
+"\n"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:894
-msgid "Controls\tImperfect\n"
+#: src/frontend/mame/ui/sndmenu.cpp:135
+msgid "Sound"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:897
-msgid "Keyboard\tUnimplemented\n"
+#: src/frontend/mame/ui/sndmenu.cpp:136
+msgid "Sample Rate"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:899
-msgid "Keyboard\tImperfect\n"
+#: src/frontend/mame/ui/sndmenu.cpp:137
+msgid "Use External Samples"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:902
-msgid "Mouse\tUnimplemented\n"
+#: src/frontend/mame/ui/submenu.cpp:22
+msgid "Miscellaneous Options"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:904
-msgid "Mouse\tImperfect\n"
+#: src/frontend/mame/ui/submenu.cpp:23
+msgid "Re-select last machine played"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:907
-msgid "Microphone\tUnimplemented\n"
+#: src/frontend/mame/ui/submenu.cpp:24
+msgid "Enlarge images in the right panel"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:909
-msgid "Microphone\tImperfect\n"
+#: src/frontend/mame/ui/submenu.cpp:26
+msgid "Show mouse pointer"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:912
-msgid "Camera\tUnimplemented\n"
+#: src/frontend/mame/ui/submenu.cpp:27
+msgid "Confirm quit from machines"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:914
-msgid "Camera\tImperfect\n"
+#: src/frontend/mame/ui/submenu.cpp:28
+msgid "Skip information screen at startup"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:917
-msgid "Disk\tUnimplemented\n"
+#: src/frontend/mame/ui/submenu.cpp:29
+msgid "Force 4:3 aspect for snapshot display"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:919
-msgid "Disk\tImperfect\n"
+#: src/frontend/mame/ui/submenu.cpp:30
+msgid "Use image as background"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:922
-msgid "Printer\tUnimplemented\n"
+#: src/frontend/mame/ui/submenu.cpp:31
+msgid "Skip BIOS selection menu"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:924
-msgid "Printer\tImperfect\n"
+#: src/frontend/mame/ui/submenu.cpp:32
+msgid "Skip software parts selection menu"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:927
-msgid "LAN\tUnimplemented\n"
+#: src/frontend/mame/ui/submenu.cpp:33
+msgid "Info auto audit"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:929
-msgid "LAN\tImperfect\n"
+#: src/frontend/mame/ui/submenu.cpp:34
+msgid "Hide romless machine from available list"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:932
-msgid "WAN\tUnimplemented\n"
+#: src/frontend/mame/ui/submenu.cpp:38
+msgid "Advanced Options"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:934
-msgid "WAN\tImperfect\n"
+#: src/frontend/mame/ui/submenu.cpp:39
+msgid "Performance Options"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:937
-msgid "Timing\tUnimplemented\n"
+#: src/frontend/mame/ui/submenu.cpp:40
+msgid "Auto frame skip"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:939
-msgid "Timing\tImperfect\n"
+#: src/frontend/mame/ui/submenu.cpp:41
+msgid "Frame skip"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:941
-msgid "Mechanical Machine\tYes\n"
+#: src/frontend/mame/ui/submenu.cpp:42
+msgid "Throttle"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:941
-msgid "Mechanical Machine\tNo\n"
+#: src/frontend/mame/ui/submenu.cpp:43
+msgid "Sleep"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:942
-msgid "Requires Artwork\tYes\n"
+#: src/frontend/mame/ui/submenu.cpp:44
+msgid "Speed"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:942
-msgid "Requires Artwork\tNo\n"
+#: src/frontend/mame/ui/submenu.cpp:45
+msgid "Refresh speed"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:943
-msgid "Requires Clickable Artwork\tYes\n"
+#: src/frontend/mame/ui/submenu.cpp:47
+msgid "Rotation Options"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:943
-msgid "Requires Clickable Artwork\tNo\n"
+#: src/frontend/mame/ui/submenu.cpp:49
+msgid "Rotate right"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:944
-msgid "Support Cocktail\tYes\n"
+#: src/frontend/mame/ui/submenu.cpp:50
+msgid "Rotate left"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:944
-msgid "Support Cocktail\tNo\n"
+#: src/frontend/mame/ui/submenu.cpp:51
+msgid "Auto rotate right"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:945
-msgid "Driver is BIOS\tYes\n"
+#: src/frontend/mame/ui/submenu.cpp:52
+msgid "Auto rotate left"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:945
-msgid "Driver is BIOS\tNo\n"
+#: src/frontend/mame/ui/submenu.cpp:53
+msgid "Flip X"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:946
-msgid "Support Save\tYes\n"
+#: src/frontend/mame/ui/submenu.cpp:54
+msgid "Flip Y"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:946
-msgid "Support Save\tNo\n"
+#: src/frontend/mame/ui/submenu.cpp:56
+msgid "Artwork Options"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:947
-msgid "Screen Orientation\tVertical\n"
+#: src/frontend/mame/ui/submenu.cpp:57
+msgid "Artwork Crop"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:947
-msgid "Screen Orientation\tHorizontal\n"
+#: src/frontend/mame/ui/submenu.cpp:58
+msgid "Use Backdrops"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:957
-msgid "Requires CHD\tYes\n"
+#: src/frontend/mame/ui/submenu.cpp:59
+msgid "Use Overlays"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:957
-msgid "Requires CHD\tNo\n"
+#: src/frontend/mame/ui/submenu.cpp:60
+msgid "Use Bezels"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:970
-msgid "ROM Audit Result\tOK\n"
+#: src/frontend/mame/ui/submenu.cpp:61
+msgid "Use Control Panels"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:972
-msgid "ROM Audit Result\tBAD\n"
+#: src/frontend/mame/ui/submenu.cpp:62
+msgid "Use Marquees"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:975
-msgid "Samples Audit Result\tNone Needed\n"
+#: src/frontend/mame/ui/submenu.cpp:64
+msgid "State/Playback Options"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:977
-msgid "Samples Audit Result\tOK\n"
+#: src/frontend/mame/ui/submenu.cpp:65
+msgid "Automatic save/restore"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:979
-msgid "Samples Audit Result\tBAD\n"
+#: src/frontend/mame/ui/submenu.cpp:67
+msgid "Rewind capacity"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:983
-msgid ""
-"ROM Audit \tDisabled\n"
-"Samples Audit \tDisabled\n"
+#: src/frontend/mame/ui/submenu.cpp:68
+msgid "Bilinear snapshot"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:1167
-#, c-format
-msgid "%1$s %2$s ( %3$d / %4$d machines (%5$d BIOS) )"
+#: src/frontend/mame/ui/submenu.cpp:69
+msgid "Burn-in"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:1183 src/frontend/mame/ui/selsoft.cpp:555
-#, c-format
-msgid "%1$s: %2$s - Search: %3$s_"
+#: src/frontend/mame/ui/submenu.cpp:71
+msgid "Input Options"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:1185 src/frontend/mame/ui/selsoft.cpp:557
-#, c-format
-msgid "Search: %1$s_"
+#: src/frontend/mame/ui/submenu.cpp:72
+msgid "Coin lockout"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:1195
-#, c-format
-msgid "Romset: %1$-.100s"
+#: src/frontend/mame/ui/submenu.cpp:73
+msgid "Mouse"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:1202
-#, c-format
-msgid "System: %1$-.100s"
+#: src/frontend/mame/ui/submenu.cpp:74
+msgid "Joystick"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:1239
-msgid ""
-"The selected machine is missing one or more required ROM or CHD images. "
-"Please select a different machine.\n"
-"\n"
+#: src/frontend/mame/ui/submenu.cpp:75
+msgid "Lightgun"
msgstr ""
-#: src/frontend/mame/ui/selgame.cpp:1245 src/frontend/mame/ui/selsoft.cpp:462
-msgid "Press any key to continue."
+#: src/frontend/mame/ui/submenu.cpp:76
+msgid "Multi-keyboard"
msgstr ""
-#: src/frontend/mame/ui/sndmenu.cpp:135
-msgid "Sound"
+#: src/frontend/mame/ui/submenu.cpp:77
+msgid "Multi-mouse"
msgstr ""
-#: src/frontend/mame/ui/sndmenu.cpp:136
-msgid "Sample Rate"
+#: src/frontend/mame/ui/submenu.cpp:78
+msgid "Steadykey"
msgstr ""
-#: src/frontend/mame/ui/sndmenu.cpp:137
-msgid "Use External Samples"
+#: src/frontend/mame/ui/submenu.cpp:79
+msgid "UI active"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:57 src/frontend/mame/ui/utils.cpp:81
-msgid "Unfiltered"
+#: src/frontend/mame/ui/submenu.cpp:80
+msgid "Offscreen reload"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:58 src/frontend/mame/ui/utils.cpp:82
-msgid "Available"
+#: src/frontend/mame/ui/submenu.cpp:81
+msgid "Joystick deadzone"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:59 src/frontend/mame/ui/utils.cpp:83
-msgid "Unavailable"
+#: src/frontend/mame/ui/submenu.cpp:82
+msgid "Joystick saturation"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:60
-msgid "Working"
+#: src/frontend/mame/ui/submenu.cpp:83
+msgid "Natural keyboard"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:61
-msgid "Not Working"
+#: src/frontend/mame/ui/submenu.cpp:84
+msgid "Simultaneous contradictory"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:62
-msgid "Mechanical"
+#: src/frontend/mame/ui/submenu.cpp:85
+msgid "Coin impulse"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:63
-msgid "Not Mechanical"
+#: src/frontend/mame/ui/submenu.cpp:89
+msgid "Device Mapping"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:64
-msgid "Category"
+#: src/frontend/mame/ui/submenu.cpp:90
+msgid "Lightgun Device Assignment"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:65
-msgid "Favorites"
+#: src/frontend/mame/ui/submenu.cpp:91
+msgid "Trackball Device Assignment"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:67
-msgid "Not BIOS"
+#: src/frontend/mame/ui/submenu.cpp:92
+msgid "Pedal Device Assignment"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:68 src/frontend/mame/ui/utils.cpp:84
-msgid "Parents"
+#: src/frontend/mame/ui/submenu.cpp:93
+msgid "Adstick Device Assignment"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:69 src/frontend/mame/ui/utils.cpp:85
-msgid "Clones"
+#: src/frontend/mame/ui/submenu.cpp:94
+msgid "Paddle Device Assignment"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:70
-msgid "Manufacturer"
+#: src/frontend/mame/ui/submenu.cpp:95
+msgid "Dial Device Assignment"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:71 src/frontend/mame/ui/utils.cpp:86
-msgid "Year"
+#: src/frontend/mame/ui/submenu.cpp:96
+msgid "Positional Device Assignment"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:72
-msgid "Save Supported"
+#: src/frontend/mame/ui/submenu.cpp:97
+msgid "Mouse Device Assignment"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:73
-msgid "Save Unsupported"
+#: src/frontend/mame/ui/submenu.cpp:102
+msgid "Video Mode"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:74
-msgid "CHD Required"
+#: src/frontend/mame/ui/submenu.cpp:103
+msgid "Number Of Screens"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:75
-msgid "No CHD Required"
+#: src/frontend/mame/ui/submenu.cpp:105
+msgid "Triple Buffering"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:76
-msgid "Vertical Screen"
+#: src/frontend/mame/ui/submenu.cpp:106
+msgid "HLSL"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:77
-msgid "Horizontal Screen"
+#: src/frontend/mame/ui/submenu.cpp:108
+msgid "GLSL"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:78 src/frontend/mame/ui/utils.cpp:94
-msgid "Custom Filter"
+#: src/frontend/mame/ui/submenu.cpp:109
+msgid "Bilinear Filtering"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:87
-msgid "Publisher"
+#: src/frontend/mame/ui/submenu.cpp:110
+msgid "Bitmap Prescaling"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:88
-msgid "Supported"
+#: src/frontend/mame/ui/submenu.cpp:111
+msgid "Window Mode"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:89
-msgid "Partially Supported"
+#: src/frontend/mame/ui/submenu.cpp:112
+msgid "Enforce Aspect Ratio"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:90
-msgid "Unsupported"
+#: src/frontend/mame/ui/submenu.cpp:113
+msgid "Start Out Maximized"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:91
-msgid "Release Region"
+#: src/frontend/mame/ui/submenu.cpp:114
+msgid "Synchronized Refresh"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:92
-msgid "Device Type"
+#: src/frontend/mame/ui/submenu.cpp:115
+msgid "Wait Vertical Sync"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:93
-msgid "Software List"
+#: src/frontend/mame/ui/devopt.cpp:43
+#, c-format
+msgid ""
+"[This option is currently mounted in the running system]\n"
+"\n"
+"Option: %1$s\n"
+"Device: %2$s\n"
+"\n"
+"The selected option enables the following items:\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:244
-msgid "<set up filters>"
+#: src/frontend/mame/ui/devopt.cpp:44
+#, c-format
+msgid ""
+"[This option is NOT currently mounted in the running system]\n"
+"\n"
+"Option: %1$s\n"
+"Device: %2$s\n"
+"\n"
+"If you select this option, the following items will be enabled:\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:352
-msgid "Select custom filters:"
+#: src/frontend/mame/ui/devopt.cpp:52
+msgid "* CPU:\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:503
+#: src/frontend/mame/ui/devopt.cpp:76 src/frontend/mame/ui/devopt.cpp:137
#, c-format
-msgid "Filter %1$u"
-msgstr ""
-
-#: src/frontend/mame/ui/utils.cpp:518
-msgid "Remove last filter"
+msgid " %1$d×%2$s %3$d.%4$06d MHz\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:520
-msgid "Add filter"
+#: src/frontend/mame/ui/devopt.cpp:76 src/frontend/mame/ui/devopt.cpp:137
+msgid " %1$d×%2$s %5$d.%6$03d kHz\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:959
-msgid "Select category:"
+#: src/frontend/mame/ui/devopt.cpp:77 src/frontend/mame/ui/devopt.cpp:138
+msgid " %2$s %3$d.%4$06d MHz\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:990
-msgid "[no category INI files]"
+#: src/frontend/mame/ui/devopt.cpp:77 src/frontend/mame/ui/devopt.cpp:138
+msgid " %2$s %5$d.%6$03d kHz\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:998
-msgid "[no groups in INI file]"
+#: src/frontend/mame/ui/devopt.cpp:89
+msgid "* Video:\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:1032
-msgid "No category INI files found"
+#: src/frontend/mame/ui/devopt.cpp:94
+#, c-format
+msgid " Screen '%1$s': Vector\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:1037
-msgid "File"
+#: src/frontend/mame/ui/devopt.cpp:103
+#, c-format
+msgid " Screen '%1$s': %2$d × %3$d (V) %4$f Hz\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:1041
-msgid "No groups found in category file"
+#: src/frontend/mame/ui/devopt.cpp:104
+#, c-format
+msgid " Screen '%1$s': %2$d × %3$d (H) %4$f Hz\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:1046
-msgid "Group"
+#: src/frontend/mame/ui/devopt.cpp:117
+msgid "* Sound:\n"
msgstr ""
-#: src/frontend/mame/ui/utils.cpp:1047
-msgid "Include clones"
+#: src/frontend/mame/ui/devopt.cpp:137
+#, c-format
+msgid " %1$d×%2$s\n"
msgstr ""
-#: src/frontend/mame/ui/selsoft.cpp:456
-msgid ""
-"The selected software is missing one or more required files. Please select a "
-"different software.\n"
-"\n"
+#: src/frontend/mame/ui/devopt.cpp:138
+msgid " %2$s\n"
msgstr ""
-#: src/frontend/mame/ui/selsoft.cpp:549
+#: src/frontend/mame/ui/devopt.cpp:168
#, c-format
-msgid "%1$s %2$s ( %3$d / %4$d software packages )"
+msgid ""
+"* BIOS settings:\n"
+" %1$d options [default: %2$s]\n"
msgstr ""
-#: src/frontend/mame/ui/selsoft.cpp:550
+#: src/frontend/mame/ui/devopt.cpp:208 src/frontend/mame/ui/devopt.cpp:224
+#: src/frontend/mame/ui/devopt.cpp:269
#, c-format
-msgid "Driver: \"%1$s\" software list "
-msgstr ""
-
-#: src/frontend/mame/ui/filesel.cpp:260
-msgid "[create]"
+msgid " %1$s [default: %2$s]\n"
msgstr ""
-#: src/frontend/mame/ui/filesel.cpp:419
+#: src/frontend/mame/ui/devopt.cpp:213 src/frontend/mame/ui/devopt.cpp:229
#, c-format
-msgid "Error accessing %s"
-msgstr ""
-
-#: src/frontend/mame/ui/filesel.cpp:515
-msgid "Select access mode"
+msgid " %1$s\n"
msgstr ""
-#: src/frontend/mame/ui/filesel.cpp:516
-msgid "Read-only"
+#: src/frontend/mame/ui/devopt.cpp:234
+msgid "* DIP switch settings:\n"
msgstr ""
-#: src/frontend/mame/ui/filesel.cpp:518
-msgid "Read-write"
+#: src/frontend/mame/ui/devopt.cpp:236
+msgid "* Configuration settings:\n"
msgstr ""
-#: src/frontend/mame/ui/filesel.cpp:519
-msgid "Read this image, write to another image"
+#: src/frontend/mame/ui/devopt.cpp:238
+msgid "* Input device(s):\n"
msgstr ""
-#: src/frontend/mame/ui/filesel.cpp:520
-msgid "Read this image, write to diff"
+#: src/frontend/mame/ui/devopt.cpp:240
+#, c-format
+msgid " User inputs [%1$d inputs]\n"
msgstr ""
-#: src/frontend/mame/ui/imgcntrl.cpp:117
-msgid "Cannot save over directory"
+#: src/frontend/mame/ui/devopt.cpp:242
+#, c-format
+msgid " Mahjong inputs [%1$d inputs]\n"
msgstr ""
-#: src/frontend/mame/ui/imgcntrl.cpp:150
-msgid ""
-"The software selected is missing one or more required ROM or CHD images. "
-"Please select a different one."
+#: src/frontend/mame/ui/devopt.cpp:244
+#, c-format
+msgid " Hanafuda inputs [%1$d inputs]\n"
msgstr ""
-#: src/frontend/mame/ui/menu.cpp:294
-msgid "Return to Machine"
+#: src/frontend/mame/ui/devopt.cpp:246
+#, c-format
+msgid " Gambling inputs [%1$d inputs]\n"
msgstr ""
-#: src/frontend/mame/ui/menu.cpp:299 src/frontend/mame/ui/menu.cpp:301
-msgid "Exit"
+#: src/frontend/mame/ui/devopt.cpp:248
+#, c-format
+msgid " Analog inputs [%1$d inputs]\n"
msgstr ""
-#: src/frontend/mame/ui/menu.cpp:306 src/frontend/mame/ui/menu.cpp:308
-msgid "Return to Previous Menu"
+#: src/frontend/mame/ui/devopt.cpp:250
+#, c-format
+msgid " Adjuster inputs [%1$d inputs]\n"
msgstr ""
-#: src/frontend/mame/ui/menu.cpp:742
-msgid "Auto"
+#: src/frontend/mame/ui/devopt.cpp:252
+#, c-format
+msgid " Keypad inputs [%1$d inputs]\n"
msgstr ""
-#: src/frontend/mame/ui/cheatopt.cpp:92 plugins/cheat/init.lua:653
-#, c-format, lua-format
-msgid ""
-"Cheat Comment:\n"
-"%s"
+#: src/frontend/mame/ui/devopt.cpp:254
+#, c-format
+msgid " Keyboard inputs [%1$d inputs]\n"
msgstr ""
-#: src/frontend/mame/ui/cheatopt.cpp:105
-msgid "All cheats reloaded"
+#: src/frontend/mame/ui/devopt.cpp:259
+msgid "* Media Options:\n"
msgstr ""
-#: src/frontend/mame/ui/cheatopt.cpp:136
-msgid "Autofire Settings"
+#: src/frontend/mame/ui/devopt.cpp:261
+#, c-format
+msgid " %1$s [tag: %2$s]\n"
msgstr ""
-#: src/frontend/mame/ui/cheatopt.cpp:157 plugins/cheat/init.lua:581
-msgid "Reset All"
+#: src/frontend/mame/ui/devopt.cpp:267
+msgid "* Slot Options:\n"
msgstr ""
-#: src/frontend/mame/ui/cheatopt.cpp:160 plugins/cheat/init.lua:582
-msgid "Reload All"
+#: src/frontend/mame/ui/devopt.cpp:274
+msgid "[None]\n"
msgstr ""
-#: src/frontend/mame/ui/cheatopt.cpp:273
-msgid "Autofire Status"
+#: src/frontend/mame/ui/auditmenu.cpp:96
+#, c-format
+msgid "Audit ROMs for %1$u machines marked unavailable?"
msgstr ""
-#: src/frontend/mame/ui/cheatopt.cpp:316
-msgid "No buttons found on this machine!"
+#: src/frontend/mame/ui/auditmenu.cpp:99
+#, c-format
+msgid "Audit ROMs for all %1$u machines?"
msgstr ""
-#: src/frontend/mame/ui/cheatopt.cpp:327 src/frontend/mame/ui/cheatopt.cpp:331
-msgid "Autofire Delay"
+#: src/frontend/mame/ui/auditmenu.cpp:104
+#, c-format
+msgid "(results will be saved to %1$s)"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:337
-msgid "This driver requires images to be loaded in the following device(s): "
+#: src/frontend/mame/ui/auditmenu.cpp:130
+#, c-format
+msgid ""
+"Auditing ROMs for machine %2$u of %3$u...\n"
+"%1$s"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1084 src/frontend/mame/ui/ui.cpp:1094
-msgid "Keyboard Emulation Status"
+#: src/frontend/mame/ui/auditmenu.cpp:142
+msgid "Start Audit"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1086
-msgid "Mode: PARTIAL Emulation"
+#: src/frontend/mame/ui/imgcntrl.cpp:117
+msgid "Cannot save over directory"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1087
-msgid "UI: Enabled"
+#: src/frontend/mame/ui/imgcntrl.cpp:150
+msgid ""
+"The software selected is missing one or more required ROM or CHD images. "
+"Please select a different one."
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1089 src/frontend/mame/ui/ui.cpp:1099
-msgid "**Use ScrLock to toggle**"
+#: src/frontend/mame/ui/info.cpp:31
+msgid "protection"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1096
-msgid "Mode: FULL Emulation"
+#: src/frontend/mame/ui/info.cpp:32
+msgid "timing"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1097
-msgid "UI: Disabled"
+#: src/frontend/mame/ui/info.cpp:33
+msgid "graphics"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1249
-msgid "Autofire can't be enabled"
+#: src/frontend/mame/ui/info.cpp:34
+msgid "color palette"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1302
-#, c-format
-msgid ""
-"Are you sure you want to quit?\n"
-"\n"
-"Press ''%1$s'' to quit,\n"
-"Press ''%2$s'' to return to emulation."
+#: src/frontend/mame/ui/info.cpp:35
+msgid "sound"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1374
-msgid "Master Volume"
+#: src/frontend/mame/ui/info.cpp:36
+msgid "capture hardware"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1383
-#, c-format
-msgid "%1$s Volume"
+#: src/frontend/mame/ui/info.cpp:37
+msgid "camera"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1407
-#, c-format
-msgid "Overclock CPU %1$s"
+#: src/frontend/mame/ui/info.cpp:38
+msgid "microphone"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1416
-#, c-format
-msgid "Overclock %1$s sound"
+#: src/frontend/mame/ui/info.cpp:39
+msgid "controls"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1437
-#, c-format
-msgid "%1$s Refresh Rate"
+#: src/frontend/mame/ui/info.cpp:40
+msgid "keyboard"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1442
-#, c-format
-msgid "%1$s Brightness"
+#: src/frontend/mame/ui/info.cpp:41
+msgid "mouse"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1444
-#, c-format
-msgid "%1$s Contrast"
+#: src/frontend/mame/ui/info.cpp:42
+msgid "media"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1446
-#, c-format
-msgid "%1$s Gamma"
+#: src/frontend/mame/ui/info.cpp:43
+msgid "disk"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1450
-#, c-format
-msgid "%1$s Horiz Stretch"
+#: src/frontend/mame/ui/info.cpp:44
+msgid "printer"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1452
-#, c-format
-msgid "%1$s Horiz Position"
+#: src/frontend/mame/ui/info.cpp:45
+msgid "magnetic tape"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1454
-#, c-format
-msgid "%1$s Vert Stretch"
+#: src/frontend/mame/ui/info.cpp:46
+msgid "punch tape"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1456
-#, c-format
-msgid "%1$s Vert Position"
+#: src/frontend/mame/ui/info.cpp:47
+msgid "magnetic drum"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1475
-#, c-format
-msgid "Laserdisc '%1$s' Horiz Stretch"
+#: src/frontend/mame/ui/info.cpp:48
+msgid "solid state storage"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1477
-#, c-format
-msgid "Laserdisc '%1$s' Horiz Position"
+#: src/frontend/mame/ui/info.cpp:49
+msgid "communications"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1479
-#, c-format
-msgid "Laserdisc '%1$s' Vert Stretch"
+#: src/frontend/mame/ui/info.cpp:50
+msgid "LAN"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1481
-#, c-format
-msgid "Laserdisc '%1$s' Vert Position"
+#: src/frontend/mame/ui/info.cpp:51
+msgid "WAN"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1493
-msgid "Vector Flicker"
+#: src/frontend/mame/ui/info.cpp:188
+msgid ""
+"One or more ROMs/CHDs for this machine are incorrect. The machine may not "
+"run correctly.\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1494
-msgid "Beam Width Minimum"
+#: src/frontend/mame/ui/info.cpp:198
+msgid ""
+"There are known problems with this machine\n"
+"\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1495
-msgid "Beam Width Maximum"
+#: src/frontend/mame/ui/info.cpp:203
+msgid ""
+"One or more ROMs/CHDs for this machine have not been correctly dumped.\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1496
-msgid "Beam Intensity Weight"
+#: src/frontend/mame/ui/info.cpp:208
+msgid "Completely unemulated features: "
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1511
+#: src/frontend/mame/ui/info.cpp:214 src/frontend/mame/ui/info.cpp:230
#, c-format
-msgid "Crosshair Scale %1$s"
-msgstr ""
-
-#: src/frontend/mame/ui/ui.cpp:1511 src/frontend/mame/ui/ui.cpp:1513
-msgid "X"
+msgid "%s"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1511 src/frontend/mame/ui/ui.cpp:1513
-msgid "Y"
+#: src/frontend/mame/ui/info.cpp:214 src/frontend/mame/ui/info.cpp:230
+#: src/frontend/mame/ui/info.cpp:275
+#, c-format
+msgid ", %s"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1513
-#, c-format
-msgid "Crosshair Offset %1$s"
+#: src/frontend/mame/ui/info.cpp:224
+msgid "Imperfectly emulated features: "
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1601
-#, c-format
-msgid "%1$3ddB"
+#: src/frontend/mame/ui/info.cpp:239
+msgid "Screen flipping in cocktail mode is not supported.\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1645
-#, c-format
-msgid "%1$d%%"
+#: src/frontend/mame/ui/info.cpp:241
+msgid "This machine requires external artwork files.\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1661
-#, c-format
-msgid "%1$3.0f%%"
+#: src/frontend/mame/ui/info.cpp:243
+msgid ""
+"This machine was never completed. It may exhibit strange behavior or missing "
+"elements that are not bugs in the emulation.\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1685
-#, c-format
-msgid "%1$.3ffps"
+#: src/frontend/mame/ui/info.cpp:245
+msgid ""
+"This machine has no sound hardware, MAME will produce no sounds, this is "
+"expected behaviour.\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1708 src/frontend/mame/ui/ui.cpp:1730
-#: src/frontend/mame/ui/ui.cpp:1751 src/frontend/mame/ui/ui.cpp:1773
-#: src/frontend/mame/ui/ui.cpp:1795 src/frontend/mame/ui/ui.cpp:1817
-#: src/frontend/mame/ui/ui.cpp:1839 src/frontend/mame/ui/ui.cpp:1861
-#: src/frontend/mame/ui/ui.cpp:1883 src/frontend/mame/ui/ui.cpp:1905
-#: src/frontend/mame/ui/ui.cpp:1927
-#, c-format
-msgid "%1$.3f"
+#: src/frontend/mame/ui/info.cpp:249
+msgid ""
+"\n"
+"THIS MACHINE DOESN'T WORK. The emulation for this machine is not yet "
+"complete. There is nothing you can do to fix this problem except wait for "
+"the developers to improve the emulation.\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:1942 src/frontend/mame/ui/ui.cpp:1957
-#: src/frontend/mame/ui/ui.cpp:1972 src/frontend/mame/ui/ui.cpp:1987
-#, c-format
-msgid "%1$1.2f"
+#: src/frontend/mame/ui/info.cpp:251
+msgid ""
+"\n"
+"Elements of this machine cannot be emulated as they requires physical "
+"interaction or consist of mechanical devices. It is not possible to fully "
+"experience this machine.\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:2005
+#: src/frontend/mame/ui/info.cpp:273
#, c-format
-msgid "Crosshair Scale X %1$1.3f"
+msgid ""
+"\n"
+"\n"
+"There are working clones of this machine: %s"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:2005
-#, c-format
-msgid "Crosshair Scale Y %1$1.3f"
+#: src/frontend/mame/ui/info.cpp:286
+msgid ""
+"\n"
+"\n"
+"Press any key to continue"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:2024
+#: src/frontend/mame/ui/info.cpp:301
#, c-format
-msgid "Crosshair Offset X %1$1.3f"
+msgid ""
+"%1$s\n"
+"%2$s %3$s\n"
+"Driver: %4$s\n"
+"\n"
+"CPU:\n"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:2024
-#, c-format
-msgid "Crosshair Offset Y %1$1.3f"
+#: src/frontend/mame/ui/info.cpp:336 src/frontend/mame/ui/info.cpp:374
+msgid "MHz"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:2167
-msgid "**Error saving ui.ini**"
+#: src/frontend/mame/ui/info.cpp:336 src/frontend/mame/ui/info.cpp:374
+msgid "kHz"
msgstr ""
-#: src/frontend/mame/ui/ui.cpp:2226
-#, c-format
-msgid "**Error saving %s.ini**"
+#: src/frontend/mame/ui/info.cpp:350
+msgid ""
+"\n"
+"Sound:\n"
msgstr ""
-#: src/frontend/mame/ui/viewgfx.cpp:406
-msgid " COLORS"
+#: src/frontend/mame/ui/info.cpp:378
+msgid ""
+"\n"
+"Video:\n"
msgstr ""
-#: src/frontend/mame/ui/viewgfx.cpp:406
-msgid " PENS"
+#: src/frontend/mame/ui/info.cpp:382
+msgid "None\n"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:39
-#, c-format
-msgid ""
-"[This option is currently mounted in the running system]\n"
-"\n"
-"Option: %1$s\n"
-"Device: %2$s\n"
-"\n"
-"The selected option enables the following items:\n"
+#: src/frontend/mame/ui/info.cpp:389
+msgid "Vector"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:40
+#: src/frontend/mame/ui/info.cpp:400
#, c-format
-msgid ""
-"[This option is NOT currently mounted in the running system]\n"
-"\n"
-"Option: %1$s\n"
-"Device: %2$s\n"
-"\n"
-"If you select this option, the following items will be enabled:\n"
+msgid "%1$s: %2$s\n"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:48
-msgid "* CPU:\n"
+#: src/frontend/mame/ui/info.cpp:400
+msgid "%2$s\n"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:72 src/frontend/mame/ui/devopt.cpp:133
+#: src/frontend/mame/ui/info.cpp:446
#, c-format
-msgid " %1$d×%2$s %3$d.%4$06d MHz\n"
+msgid "Screen '%1$s'"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:72 src/frontend/mame/ui/devopt.cpp:133
-msgid " %1$d×%2$s %5$d.%6$03d kHz\n"
+#: src/frontend/mame/ui/info.cpp:448
+msgid "Screen"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:73 src/frontend/mame/ui/devopt.cpp:134
-msgid " %2$s %3$d.%4$06d MHz\n"
+#: src/frontend/mame/ui/info.cpp:533
+msgid "Not supported"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:73 src/frontend/mame/ui/devopt.cpp:134
-msgid " %2$s %5$d.%6$03d kHz\n"
+#: src/frontend/mame/ui/info.cpp:536
+msgid "Partially supported"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:85
-msgid "* Video:\n"
+#: src/frontend/mame/ui/info.cpp:544
+msgid "[empty]"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:90
-#, c-format
-msgid " Screen '%1$s': Vector\n"
+#: src/frontend/mame/ui/selmenu.cpp:73
+msgid "Control Panels"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:99
-#, c-format
-msgid " Screen '%1$s': %2$d × %3$d (V) %4$f Hz\n"
+#: src/frontend/mame/ui/selmenu.cpp:78
+msgid "Artwork Preview"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:100
-#, c-format
-msgid " Screen '%1$s': %2$d × %3$d (H) %4$f Hz\n"
+#: src/frontend/mame/ui/selmenu.cpp:82
+msgid "Game Over"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:113
-msgid "* Sound:\n"
+#: src/frontend/mame/ui/selmenu.cpp:91
+msgid "Add or remove favorites"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:133
-#, c-format
-msgid " %1$d×%2$s\n"
+#: src/frontend/mame/ui/selmenu.cpp:92
+msgid "Export displayed list to file"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:134
-msgid " %2$s\n"
+#: src/frontend/mame/ui/selmenu.cpp:93
+msgid "Show DATs view"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:164
-#, c-format
-msgid ""
-"* BIOS settings:\n"
-" %1$d options [default: %2$s]\n"
+#: src/frontend/mame/ui/selmenu.cpp:261
+msgid "Software part selection:"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:204 src/frontend/mame/ui/devopt.cpp:220
-#: src/frontend/mame/ui/devopt.cpp:265
-#, c-format
-msgid " %1$s [default: %2$s]\n"
+#: src/frontend/mame/ui/selmenu.cpp:367
+msgid "BIOS selection:"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:209 src/frontend/mame/ui/devopt.cpp:225
+#: src/frontend/mame/ui/selmenu.cpp:622
#, c-format
-msgid " %1$s\n"
+msgid "Software is clone of: %1$-.100s"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:230
-msgid "* DIP switch settings:\n"
+#: src/frontend/mame/ui/selmenu.cpp:624
+msgid "Software is parent"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:232
-msgid "* Configuration settings:\n"
+#: src/frontend/mame/ui/selmenu.cpp:629
+msgid "Supported: No"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:234
-msgid "* Input device(s):\n"
+#: src/frontend/mame/ui/selmenu.cpp:634
+msgid "Supported: Partial"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:236
-#, c-format
-msgid " User inputs [%1$d inputs]\n"
+#: src/frontend/mame/ui/selmenu.cpp:639
+msgid "Supported: Yes"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:238
+#: src/frontend/mame/ui/selmenu.cpp:644
#, c-format
-msgid " Mahjong inputs [%1$d inputs]\n"
-msgstr ""
-
-#: src/frontend/mame/ui/devopt.cpp:240
-#, c-format
-msgid " Hanafuda inputs [%1$d inputs]\n"
+msgid "romset: %1$-.100s"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:242
+#: src/frontend/mame/ui/selmenu.cpp:660
#, c-format
-msgid " Gambling inputs [%1$d inputs]\n"
+msgid "Driver is clone of: %1$-.100s"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:244
-#, c-format
-msgid " Analog inputs [%1$d inputs]\n"
+#: src/frontend/mame/ui/selmenu.cpp:662
+msgid "Driver is parent"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:246
+#: src/frontend/mame/ui/selmenu.cpp:698
#, c-format
-msgid " Adjuster inputs [%1$d inputs]\n"
+msgid "%1$s %2$s"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:248
-#, c-format
-msgid " Keypad inputs [%1$d inputs]\n"
+#: src/frontend/mame/ui/selmenu.cpp:2083
+msgid "Images"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:250
-#, c-format
-msgid " Keyboard inputs [%1$d inputs]\n"
+#: src/frontend/mame/ui/selmenu.cpp:2084
+msgid "Infos"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:255
-msgid "* Media Options:\n"
+#: src/frontend/mame/ui/selmenu.cpp:2549
+msgid "Usage"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:257
-#, c-format
-msgid " %1$s [tag: %2$s]\n"
+#: src/frontend/mame/ui/selmenu.cpp:2584
+msgid "General Info"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:263
-msgid "* Slot Options:\n"
+#: src/frontend/mame/ui/inputmap.cpp:55
+msgid "User Interface"
msgstr ""
-#: src/frontend/mame/ui/devopt.cpp:270
-msgid "[None]\n"
+#: src/frontend/mame/ui/inputmap.cpp:61
+msgid "Other Controls"
msgstr ""
#: plugins/timer/init.lua:94
@@ -2589,51 +2670,51 @@ msgstr ""
msgid "Timer"
msgstr ""
-#: plugins/cheat/init.lua:510
+#: plugins/cheat/init.lua:528
msgid "Select cheat to set hotkey"
msgstr ""
-#: plugins/cheat/init.lua:516
+#: plugins/cheat/init.lua:534
msgid "Press button for hotkey or wait to clear"
msgstr ""
-#: plugins/cheat/init.lua:528
+#: plugins/cheat/init.lua:546
msgid "None"
msgstr ""
-#: plugins/cheat/init.lua:533
+#: plugins/cheat/init.lua:551
msgid "Done"
msgstr ""
-#: plugins/cheat/init.lua:547 plugins/cheat/init.lua:561
+#: plugins/cheat/init.lua:565 plugins/cheat/init.lua:579
msgid "Set"
msgstr ""
-#: plugins/cheat/init.lua:580
+#: plugins/cheat/init.lua:598
msgid "Set hotkeys"
msgstr ""
-#: plugins/cheat/init.lua:720
+#: plugins/cheat/init.lua:738
#, lua-format
msgid "Activated: %s = %s"
msgstr ""
-#: plugins/cheat/init.lua:723 plugins/cheat/init.lua:781
+#: plugins/cheat/init.lua:741 plugins/cheat/init.lua:799
#, lua-format
msgid "Activated: %s"
msgstr ""
-#: plugins/cheat/init.lua:785
+#: plugins/cheat/init.lua:803
#, lua-format
msgid "Enabled: %s"
msgstr ""
-#: plugins/cheat/init.lua:790
+#: plugins/cheat/init.lua:808
#, lua-format
msgid "Disabled: %s"
msgstr ""
-#: plugins/cheat/init.lua:849
+#: plugins/cheat/init.lua:867
#, lua-format
msgid "%s added"
msgstr ""
@@ -2682,218 +2763,303 @@ msgstr ""
msgid "MARPScore"
msgstr ""
-#: plugins/cheatfind/init.lua:373
+#: plugins/cheatfind/init.lua:404
msgid "Save Cheat"
msgstr ""
-#: plugins/cheatfind/init.lua:376
+#: plugins/cheatfind/init.lua:407
msgid "Default"
msgstr ""
-#: plugins/cheatfind/init.lua:376
+#: plugins/cheatfind/init.lua:407
msgid "Custom"
msgstr ""
-#: plugins/cheatfind/init.lua:377
+#: plugins/cheatfind/init.lua:408
msgid "Cheat Name"
msgstr ""
-#: plugins/cheatfind/init.lua:383 plugins/cheatfind/init.lua:748
+#: plugins/cheatfind/init.lua:414 plugins/cheatfind/init.lua:1005
#, lua-format
msgid "Default name is %s"
msgstr ""
-#: plugins/cheatfind/init.lua:391
+#: plugins/cheatfind/init.lua:422
msgid "Player"
msgstr ""
-#: plugins/cheatfind/init.lua:396
+#: plugins/cheatfind/init.lua:427
msgid "Type"
msgstr ""
-#: plugins/cheatfind/init.lua:402
+#: plugins/cheatfind/init.lua:433
msgid "Save"
msgstr ""
-#: plugins/cheatfind/init.lua:429
+#: plugins/cheatfind/init.lua:462
#, lua-format
msgid "Cheat written to %s and added to cheat.simple"
msgstr ""
-#: plugins/cheatfind/init.lua:437
+#: plugins/cheatfind/init.lua:472
msgid "Cheat added to cheat.simple"
msgstr ""
-#: plugins/cheatfind/init.lua:442
+#: plugins/cheatfind/init.lua:477
msgid ""
"Unable to write file\n"
"Ensure that cheatpath folder exists"
msgstr ""
-#: plugins/cheatfind/init.lua:451
+#: plugins/cheatfind/init.lua:486
msgid "Cancel"
msgstr ""
-#: plugins/cheatfind/init.lua:456
+#: plugins/cheatfind/init.lua:491
msgid "CPU or RAM"
msgstr ""
-#: plugins/cheatfind/init.lua:460
+#: plugins/cheatfind/init.lua:495
msgid "Changes to this only take effect when \"Start new search\" is selected"
msgstr ""
-#: plugins/cheatfind/init.lua:479
-msgid "Data cleared and current state saved"
+#: plugins/cheatfind/init.lua:504
+msgid "Pause Mode"
msgstr ""
-#: plugins/cheatfind/init.lua:487
-msgid "Start new search"
+#: plugins/cheatfind/init.lua:511
+msgid "Manually pause & unpause the game when needed with the pause hotkey"
msgstr ""
-#: plugins/cheatfind/init.lua:497
-msgid "Current state saved"
+#: plugins/cheatfind/init.lua:536
+msgid "All slots cleared and current state saved to Slot 1"
msgstr ""
-#: plugins/cheatfind/init.lua:504
-msgid "Save current -- #"
+#: plugins/cheatfind/init.lua:551
+msgid "Start new search"
msgstr ""
-#: plugins/cheatfind/init.lua:536
+#: plugins/cheatfind/init.lua:564
#, lua-format
-msgid "%d total matches found"
+msgid "Memory State saved to Slot %d"
msgstr ""
-#: plugins/cheatfind/init.lua:543
-msgid "Compare"
+#: plugins/cheatfind/init.lua:583
+msgid "Save Current Memory State to Slot "
msgstr ""
-#: plugins/cheatfind/init.lua:546
-msgid "Left operand"
-msgstr ""
-
-#: plugins/cheatfind/init.lua:549
-msgid "Current"
+#: plugins/cheatfind/init.lua:614
+#, lua-format
+msgid "%d total matches found"
msgstr ""
-#: plugins/cheatfind/init.lua:554
-msgid "Operator"
+#: plugins/cheatfind/init.lua:655
+msgid "Perform Compare : "
msgstr ""
-#: plugins/cheatfind/init.lua:561
-msgid "Left less than right, value is difference"
+#: plugins/cheatfind/init.lua:672
+msgid "Left less than right"
msgstr ""
-#: plugins/cheatfind/init.lua:563
-msgid "Left greater than right, value is difference"
+#: plugins/cheatfind/init.lua:674
+msgid "Left greater than right"
msgstr ""
-#: plugins/cheatfind/init.lua:565
+#: plugins/cheatfind/init.lua:676
msgid "Left equal to right"
msgstr ""
-#: plugins/cheatfind/init.lua:567
-msgid "Left not equal to right, value is difference"
+#: plugins/cheatfind/init.lua:678
+msgid "Left not equal to right"
msgstr ""
-#: plugins/cheatfind/init.lua:569
+#: plugins/cheatfind/init.lua:680
msgid "Left equal to right with bitmask"
msgstr ""
-#: plugins/cheatfind/init.lua:571
+#: plugins/cheatfind/init.lua:682
msgid "Left not equal to right with bitmask"
msgstr ""
-#: plugins/cheatfind/init.lua:573
+#: plugins/cheatfind/init.lua:684
msgid "Left less than value"
msgstr ""
-#: plugins/cheatfind/init.lua:575
+#: plugins/cheatfind/init.lua:686
msgid "Left greater than value"
msgstr ""
-#: plugins/cheatfind/init.lua:577
+#: plugins/cheatfind/init.lua:688
msgid "Left equal to value"
msgstr ""
-#: plugins/cheatfind/init.lua:579
+#: plugins/cheatfind/init.lua:690
msgid "Left not equal to value"
msgstr ""
-#: plugins/cheatfind/init.lua:590
-msgid "Right operand"
+#: plugins/cheatfind/init.lua:712
+msgid "Value"
msgstr ""
-#: plugins/cheatfind/init.lua:598
-msgid "Value"
+#: plugins/cheatfind/init.lua:714
+msgid "Difference"
msgstr ""
-#: plugins/cheatfind/init.lua:602
+#: plugins/cheatfind/init.lua:719
msgid "Any"
msgstr ""
-#: plugins/cheatfind/init.lua:608
+#: plugins/cheatfind/init.lua:725
msgid "Data Format"
msgstr ""
-#: plugins/cheatfind/init.lua:632
+#: plugins/cheatfind/init.lua:731
+msgid "Test/Write Poke Value"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:738
+msgid ""
+"Use this if you want to poke the Slot 1 value (eg. You started with "
+"something but lost it)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:740
+msgid ""
+"Use this if you want to poke the Last Slot value (eg. You started without an "
+"item but finally got it)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:742
+msgid "Use this if you want to poke 0x00"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:744
+msgid "Use this if you want to poke 0x01"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:746
+msgid "Use this if you want to poke 0x02"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:748
+msgid "Use this if you want to poke 0x03"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:750
+msgid "Use this if you want to poke 0x04"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:752
+msgid "Use this if you want to poke 0x05"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:754
+msgid "Use this if you want to poke 0x06"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:756
+msgid "Use this if you want to poke 0x07"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:758
+msgid "Use this if you want to poke 0x08"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:760
+msgid "Use this if you want to poke 0x09"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:762
+msgid "Use this if you want to poke 0x63 (Decimal 99)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:764
+msgid "Use this if you want to poke 0x99 (BCD 99)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:766
+msgid "Use this if you want to poke 0xFF (Decimal 255)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:768
+msgid "Use this if you want to poke 0x3E7 (Decimal 999)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:770
+msgid "Use this if you want to poke 0x999 (BCD 999)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:772
+msgid "Use this if you want to poke 0x270F (Decimal 9999)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:774
+msgid "Use this if you want to poke 0x9999 (BCD 9999)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:776
+msgid "Use this if you want to poke 0xFFFF (Decimal 65535)"
+msgstr ""
+
+#: plugins/cheatfind/init.lua:816
msgid "Undo last search -- #"
msgstr ""
-#: plugins/cheatfind/init.lua:636
+#: plugins/cheatfind/init.lua:820
msgid "Match block"
msgstr ""
-#: plugins/cheatfind/init.lua:639
+#: plugins/cheatfind/init.lua:823
msgid "All"
msgstr ""
-#: plugins/cheatfind/init.lua:690
+#: plugins/cheatfind/init.lua:934
#, lua-format
-msgid "Test cheat at addr %08X"
+msgid "Test Cheat %08X:%02X"
msgstr ""
-#: plugins/cheatfind/init.lua:722
+#: plugins/cheatfind/init.lua:974
msgid "Cheat engine not available"
msgstr ""
-#: plugins/cheatfind/init.lua:771
+#: plugins/cheatfind/init.lua:1028
msgid "Test"
msgstr ""
-#: plugins/cheatfind/init.lua:771
+#: plugins/cheatfind/init.lua:1028
msgid "Write"
msgstr ""
-#: plugins/cheatfind/init.lua:771
+#: plugins/cheatfind/init.lua:1028
msgid "Watch"
msgstr ""
-#: plugins/cheatfind/init.lua:788
+#: plugins/cheatfind/init.lua:1045
msgid "Page"
msgstr ""
-#: plugins/cheatfind/init.lua:806
+#: plugins/cheatfind/init.lua:1063
msgid "Clear Watches"
msgstr ""
-#: plugins/cheatfind/init.lua:816
+#: plugins/cheatfind/init.lua:1078
msgid "Cheat Finder"
msgstr ""
-#: plugins/portname/init.lua:69
+#: plugins/portname/init.lua:103
msgid "Save input names to file"
msgstr ""
-#: plugins/portname/init.lua:100 plugins/portname/init.lua:105
-#: plugins/portname/init.lua:121
+#: plugins/portname/init.lua:134 plugins/portname/init.lua:139
+#: plugins/portname/init.lua:155
msgid "Failed to save input name file"
msgstr ""
-#: plugins/portname/init.lua:133
+#: plugins/portname/init.lua:167
#, lua-format
msgid "Input port name file saved to %s"
msgstr ""
-#: plugins/portname/init.lua:138
+#: plugins/portname/init.lua:172
msgid "Input ports"
msgstr ""
n5460' href='#n5460'>5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149
/***************************************************************************

                              -= Metro Games =-

                    driver by   Luca Elia (l.elia@tin.it)


Main  CPU    :  MC68000 Or H8/3007

Video Chips  :  Imagetek 14100 052 9227KK701    Or
                Imagetek 14220 071 9338EK707    Or
                Imagetek 14300 095

Sound CPU    :  NEC78C10 [Optional]

Sound Chips  :  OKIM6295 + YM2413  or
                YRW801-M + YMF278B (YM2610 compatible)

Other        :  Memory Blitter

---------------------------------------------------------------------------
Year + Game                     PCB         Video Chip  Issues / Notes
---------------------------------------------------------------------------
92  Last Fortress - Toride      VG420       14100
92  Last Fortress - Toride (Ger)VG460-(A)   14100
92  Pang Pom's                  VG420       14100
92  Sky Alert                   VG420       14100
92  The Karate Tournament       VG460-B     14100
93? Lady Killer / Moeyo Gonta!! VG460-B     14100
93  Poitto!                     MTR5260-A   14100
94  Dharma Doujou               MTR5260-A   14220
94  Gun Master                  MTR5260-A   14220
94  Toride II Adauchi Gaiden    MTR5260-A   14220
94  Blazing Tornado             ?           14220       Also has Konami 053936 gfx chip
96  Grand Striker 2             HUM-003(A)  14220       Also has Konami 053936 gfx chip
95  Daitoride                   MTR5260-A   14220
95  Pururun                     MTR5260-A   14220
95  Puzzli                      MTR5260-A   14220
96  Sankokushi                  MTR5260-A   14220
96  Bal Cube                    ?           14220       No sound CPU
96  Bang Bang Ball              ?           14220       No sound CPU
95  Mahjong Doukyuhsei          VG330-B     14300       No sound CPU
95  Mahjong Doukyuusei Special  VG340-A     14300       No sound CPU
97  Mahjong Gakuensai           VG340-A     14300       No sound CPU
98  Mahjong Gakuensai 2         VG340-A     14300       No sound CPU
96  Mouja                       VG410-B     14300       No sound CPU
99  Battle Bubble v2.00         LM2D-Y      14220       No sound CPU
00  Puzzlet                     VG2200-(B)  14300       PIC? Protection?
---------------------------------------------------------------------------

Not dumped yet:
94  Toride II

To Do:

-   1 pixel granularity in the window's placement (8 pixels now, see daitorid title)
-   Coin lockout
-   Some gfx problems in ladykill, 3kokushi, puzzli, gakusai
-   Are the 16x16 tiles used by Mouja a Imagetek 14300-only feature?
-   Flip screen doesn't work correctly in Mouja due to asymmetrical visible area

Notes:

-   To enter service mode in Lady Killer, toggle the dip switch and reset
    keeping  start 2 pressed.
-   Sprite zoom in Mouja at the end of a match looks wrong, but it's been verified
    to be the same on the original board

lastfort info from guru
---
Master clock = 24.00MHz
D7810 clock : 12.00MHz (24 / 2)
M6295 clock: 1.200MHz (24 / 20), sample rate =  M6295 clock /165
YM2413 clock: 3.579545MHz
Vsync: 58Hz
HSync: 15.16kHz

Compared to the real PCB, MAME is too fast, so 60fps needs to be changed to 58fps (i.e 58Hz).
--
driver modified by Eisuke Watanabe
***************************************************************************/

#include "driver.h"
#include "deprecat.h"
#include "cpu/h83002/h83002.h"
#include "cpu/upd7810/upd7810.h"
#include "machine/eeprom.h"
#include "video/konamiic.h"
#include "sound/2610intf.h"
#include "sound/2151intf.h"
#include "sound/2413intf.h"
#include "sound/okim6295.h"
#include "sound/ymf278b.h"

/* Variables defined in video: */

extern UINT16 *metro_videoregs;
extern UINT16 *metro_screenctrl;
extern UINT16 *metro_scroll;
extern UINT16 *metro_tiletable;
extern size_t metro_tiletable_size;
extern UINT16 *metro_vram_0, *metro_vram_1, *metro_vram_2;
extern UINT16 *metro_window;
extern UINT16 *metro_K053936_ram;
WRITE16_HANDLER( metro_K053936_w );


/* Functions defined in video: */

WRITE16_HANDLER( metro_window_w );

WRITE16_HANDLER( metro_vram_0_w );
WRITE16_HANDLER( metro_vram_1_w );
WRITE16_HANDLER( metro_vram_2_w );


VIDEO_START( metro_14100 );
VIDEO_START( metro_14220 );
VIDEO_START( metro_14300 );
VIDEO_START( blzntrnd );
VIDEO_START( gstrik2 );

VIDEO_UPDATE( metro );


/***************************************************************************


                                Interrupts


***************************************************************************/

static int irq_line, blitter_bit;

static UINT8 requested_int[8];

static UINT16 *metro_irq_levels, *metro_irq_vectors, *metro_irq_enable;

static READ16_HANDLER( metro_irq_cause_r )
{
	return	requested_int[0] * 0x01 +	// vblank
			requested_int[1] * 0x02 +
			requested_int[2] * 0x04 +	// blitter
			requested_int[3] * 0x08 +
			requested_int[4] * 0x10 +
			requested_int[5] * 0x20 +
			requested_int[6] * 0x40 +	// unused
			requested_int[7] * 0x80 ;	// unused
}


/* Update the IRQ state based on all possible causes */
static void update_irq_state(running_machine *machine)
{
	/*  Get the pending IRQs (only the enabled ones, e.g. where
        irq_enable is *0*)  */
	UINT16 irq = metro_irq_cause_r(machine,0,0xffff) & ~*metro_irq_enable;

	if (irq_line == -1)	/* mouja, gakusai, gakusai2, dokyusei, dokyusp */
	{
		/*  This is for games that supply an *IRQ Vector* on the data bus
            together with an IRQ level for each possible IRQ source */

		int i = 0;
		while ( i < 8 )
		{
			if (irq & (1 << i))
			{
				cpunum_set_input_line(machine, 0, metro_irq_levels[i]&7, ASSERT_LINE);
				return;
			}
			i++;
		}
		cpunum_set_input_line(machine, 0, 0, ASSERT_LINE);
	}
	else
	{
		/*  This is for games where every IRQ source generates the same
            IRQ level. The interrupt service routine then reads the actual
            source by peeking a register (metro_irq_cause_r) */

		int state =	(irq ? ASSERT_LINE : CLEAR_LINE);
		cpunum_set_input_line(machine, 0, irq_line, state);
	}
}


/* For games that supply an *IRQ Vector* on the data bus */
static IRQ_CALLBACK(metro_irq_callback)
{
//  logerror("CPU #0 PC %06X: irq callback returns %04X\n",activecpu_get_pc(),metro_irq_vectors[int_level]);
	return metro_irq_vectors[irqline]&0xff;
}

static MACHINE_RESET( metro )
{
	if (irq_line == -1)
		cpunum_set_irq_callback(0, metro_irq_callback);
}


static WRITE16_HANDLER( metro_irq_cause_w )
{
//if (data & ~0x15) logerror("CPU #0 PC %06X : unknown bits of irqcause written: %04X\n",activecpu_get_pc(),data);

	if (ACCESSING_BITS_0_7)
	{
		data &= ~*metro_irq_enable;

		if (data & 0x01)	requested_int[0] = 0;
		if (data & 0x02)	requested_int[1] = 0;	// DAITORIDE, BALCUBE, KARATOUR, MOUJA
		if (data & 0x04)	requested_int[2] = 0;
		if (data & 0x08)	requested_int[3] = 0;	// KARATOUR
		if (data & 0x10)	requested_int[4] = 0;
		if (data & 0x20)	requested_int[5] = 0;	// KARATOUR, BLZNTRND
		if (data & 0x40)	requested_int[6] = 0;
		if (data & 0x80)	requested_int[7] = 0;
	}

	update_irq_state(machine);
}


static INTERRUPT_GEN( metro_interrupt )
{
	switch ( cpu_getiloops() )
	{
		case 0:
			requested_int[0] = 1;
			update_irq_state(machine);
			break;

		default:
			requested_int[4] = 1;
			update_irq_state(machine);
			break;
	}
}

/* Lev 1. Lev 2 seems sound related */
static INTERRUPT_GEN( bangball_interrupt )
{
	requested_int[0] = 1;	// set scroll regs if a flag is set
	requested_int[4] = 1;	// clear that flag
	update_irq_state(machine);
}


static TIMER_CALLBACK( vblank_end_callback )
{
	requested_int[5] = param;
}

/* lev 2-7 (lev 1 seems sound related) */
static INTERRUPT_GEN( karatour_interrupt )
{
	switch ( cpu_getiloops() )
	{
		case 0:
			requested_int[0] = 1;
			requested_int[5] = 1;	// write the scroll registers
			/* the duration is a guess */
			timer_set(ATTOTIME_IN_USEC(2500), NULL, 0, vblank_end_callback);
			update_irq_state(machine);
			break;

		default:
			requested_int[4] = 1;
			update_irq_state(machine);
			break;
	}
}

static emu_timer *mouja_irq_timer;

static TIMER_CALLBACK( mouja_irq_callback )
{
	requested_int[0] = 1;
	update_irq_state(machine);
}

static WRITE16_HANDLER( mouja_irq_timer_ctrl_w )
{
	double freq = 58.0 + (0xff - (data & 0xff)) / 2.2;					/* 0xff=58Hz, 0x80=116Hz? */
	timer_adjust_periodic(mouja_irq_timer, attotime_zero, 0, ATTOTIME_IN_HZ(freq));
}

static INTERRUPT_GEN( mouja_interrupt )
{
	requested_int[1] = 1;
	update_irq_state(machine);
}


static INTERRUPT_GEN( gakusai_interrupt )
{
	switch ( cpu_getiloops() )
	{
		case 0:
			requested_int[1] = 1;
			update_irq_state(machine);
			break;
	}
}

static INTERRUPT_GEN( dokyusei_interrupt )
{
	switch ( cpu_getiloops() )
	{
		case 0:
			requested_int[1] = 1;
			update_irq_state(machine);
			break;
		case 1:	// needed?
			requested_int[5] = 1;
			update_irq_state(machine);
			break;
	}
}

static void ymf278b_interrupt(running_machine *machine, int active)
{
	cpunum_set_input_line(machine, 0, 2, active);
}

/***************************************************************************


                            Sound Communication


***************************************************************************/

static UINT16 metro_soundstatus;
static int porta, portb, busy_sndcpu;

static int metro_io_callback(int ioline, int state)
{
	UINT8 data = 0;

    switch ( ioline )
	{
		case UPD7810_RXD:	/* read the RxD line */
			data = soundlatch_r(Machine,0);
			state = data & 1;
			soundlatch_w(Machine, 0, data >> 1);
			break;
		default:
			logerror("upd7810 ioline %d not handled\n", ioline);
    }

	return state;
}

static WRITE16_HANDLER( metro_soundlatch_w )
{
	if (ACCESSING_BITS_0_7)
	{
		soundlatch_w(machine,0,data & 0xff);
		cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE);
		cpu_spinuntil_int();
		busy_sndcpu = 1;
	}
}


static READ16_HANDLER( metro_soundstatus_r )
{
	return (busy_sndcpu ? 0x00 : 0x01);
}

static READ16_HANDLER( daitorid_soundstatus_r )
{
	return input_port_read(machine, "IN0") | (busy_sndcpu ? 0x80 : 0x00);
}

static WRITE16_HANDLER( metro_soundstatus_w )
{
	if (ACCESSING_BITS_0_7)
		metro_soundstatus = data & 0x01;
}


static WRITE8_HANDLER( metro_sound_rombank_w )
{
	int bankaddress;
	UINT8 *ROM = memory_region(machine, REGION_CPU2);

	bankaddress = 0x10000-0x4000 + ((data >> 4) & 0x03) * 0x4000;
	if (bankaddress < 0x10000) bankaddress = 0x0000;

	memory_set_bankptr(1, &ROM[bankaddress]);
}

static WRITE8_HANDLER( daitorid_sound_rombank_w )
{
	int bankaddress;
	UINT8 *ROM = memory_region(machine, REGION_CPU2);

	bankaddress = 0x10000-0x4000 + ((data >> 4) & 0x07) * 0x4000;
	if (bankaddress < 0x10000) bankaddress = 0x10000;

	memory_set_bankptr(1, &ROM[bankaddress]);
}


static READ8_HANDLER( metro_porta_r )
{
	return porta;
}

static WRITE8_HANDLER( metro_porta_w )
{
	porta = data;
}

static WRITE8_HANDLER( metro_portb_w )
{
	/* port B layout:
       7 !clock latch for message to main CPU
       6
       5 !clock YM2413 I/O
       4 !clock MSM6295 I/O
       3
       2 !enable write to YM2413/6295
       1 select YM2151 register or data port
       0
    */

	if (BIT(portb,7) && !BIT(data,7))	/* clock 1->0 */
	{
		busy_sndcpu = 0;
		portb = data;
		return;
	}

	if (BIT(portb,5) && !BIT(data,5))	/* clock 1->0 */
	{
		if (!BIT(data,2))
		{
			/* write */
			if (BIT(data,1))
				YM2413_data_port_0_w(machine,0,porta);
			else
				YM2413_register_port_0_w(machine,0,porta);
		}
		portb = data;
		return;
	}

	if (BIT(portb,2) && !BIT(data,2))	/* clock 1->0 */
	{
		/* write */
		if (!BIT(data,4))
			OKIM6295_data_0_w(machine,0,porta);
	}
	portb = data;
}


static WRITE8_HANDLER( daitorid_portb_w )
{
	/* port B layout:
       7 !clock latch for message to main CPU
       6 !clock YM2151 I/O
       5
       4 !clock MSM6295 I/O
       3 !enable read from YM2151/6295
       2 !enable write to YM2151/6295
       1 select YM2151 register or data port
       0
    */

	if (BIT(portb,7) && !BIT(data,7))	/* clock 1->0 */
	{
		busy_sndcpu = 0;
		portb = data;
		return;
	}

	if (BIT(portb,6) && !BIT(data,6))	/* clock 1->0 */
	{
		if (!BIT(data,2))
		{
			/* write */
			if (BIT(data,1))
				YM2151_data_port_0_w(machine,0,porta);
			else
				YM2151_register_port_0_w(machine,0,porta);
		}
		if (!BIT(data,3))
		{
			/* read */
			if (BIT(data,1))
				porta = YM2151_status_port_0_r(machine,0);
		}
		portb = data;
		return;
	}

	if (BIT(portb,2) && !BIT(data,2))	/* clock 1->0 */
	{
		/* write */
		if (!BIT(data,4))
			OKIM6295_data_0_w(machine,0,porta);
	}
	if (BIT(portb,3) && !BIT(data,3))	/* clock 1->0 */
	{
		/* read */
		if (!BIT(data,4))
			porta = OKIM6295_status_0_r(machine,0);
	}
	portb = data;
}

static void metro_sound_irq_handler(running_machine *machine, int state)
{
	cpunum_set_input_line(machine, 1, UPD7810_INTF2, state ? ASSERT_LINE : CLEAR_LINE);
}

static const struct YM2151interface ym2151_interface =
{
	metro_sound_irq_handler	/* irq handler */
};


static READ16_HANDLER( ymf278b_r )
{
	return YMF278B_status_port_0_r(machine, 0);
}

static WRITE16_HANDLER( ymf278b_w )
{
	if(ACCESSING_BITS_0_7)
		switch(offset)
		{
			case 0:
				YMF278B_control_port_0_A_w(machine, 0, data);
				break;
			case 1:
				YMF278B_data_port_0_A_w(machine, 0, data);
				break;
			case 2:
				YMF278B_control_port_0_B_w(machine, 0, data);
				break;
			case 3:
				YMF278B_data_port_0_B_w(machine, 0, data);
				break;
			case 4:
				YMF278B_control_port_0_C_w(machine, 0, data);
				break;
			case 5:
				YMF278B_data_port_0_C_w(machine, 0, data);
				break;
		}
}


static const struct YMF278B_interface ymf278b_interface =
{
	REGION_SOUND1,
	ymf278b_interrupt
};


/***************************************************************************


                                Coin Lockout


***************************************************************************/

/* IT DOESN'T WORK PROPERLY */

static WRITE16_HANDLER( metro_coin_lockout_1word_w )
{
	if (ACCESSING_BITS_0_7)
	{
//      coin_lockout_w(0, data & 1);
//      coin_lockout_w(1, data & 2);
	}
	if (data & ~3)	logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n",activecpu_get_pc(),data);
}


static WRITE16_HANDLER( metro_coin_lockout_4words_w )
{
//  coin_lockout_w( (offset >> 1) & 1, offset & 1 );
	if (data & ~1)	logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n",activecpu_get_pc(),data);
}




/***************************************************************************


                                Banked ROM access


***************************************************************************/

/*
    The main CPU has access to the ROMs that hold the graphics through
    a banked window of 64k. Those ROMs also usually store the tables for
    the virtual tiles set. The tile codes to be written to the tilemap
    memory to render the backgrounds are also stored here, in a format
    that the blitter can readily use (which is a form of compression)
*/

static UINT16 *metro_rombank;

static READ16_HANDLER( metro_bankedrom_r )
{
	const int region = REGION_GFX1;

	UINT8 *ROM = memory_region( machine, region );
	size_t  len  = memory_region_length( machine, region );

	offset = offset * 2 + 0x10000 * (*metro_rombank);

	if ( offset < len )	return ((ROM[offset+0]<<8)+ROM[offset+1]);
	else				return 0xffff;
}




/***************************************************************************


                                    Blitter

    [ Registers ]

        Offset:     Value:

        0.l         Destination Tilemap      (1,2,3)
        4.l         Blitter Data Address     (byte offset into the gfx ROMs)
        8.l         Destination Address << 7 (byte offset into the tilemap)

        The Blitter reads a byte and looks at the most significative
        bits for the opcode, while the remaining bits define a value
        (usually how many bytes to write). The opcode byte may be
        followed by a number of other bytes:

            76------            Opcode
            --543210            N
            (at most N+1 bytes follow)


        The blitter is designed to write every other byte (e.g. it
        writes a byte and skips the next). Hence 2 blits are needed
        to fill a tilemap (first even, then odd addresses)

    [ Opcodes ]

            0       Copy the following N+1 bytes. If the whole byte
                    is $00: stop and generate an IRQ

            1       Fill N+1 bytes with a sequence, starting with
                    the  value in the following byte

            2       Fill N+1 bytes with the value in the following
                    byte

            3       Skip N+1 bytes. If the whole byte is $C0:
                    skip to the next row of the tilemap (+0x200 bytes)
                    but preserve the column passed at the start of the
                    blit (destination address % 0x200)


***************************************************************************/

static UINT16 *metro_blitter_regs;

static TIMER_CALLBACK( metro_blit_done )
{
	requested_int[blitter_bit] = 1;
	update_irq_state(machine);
}

INLINE int blt_read(const UINT8 *ROM, const int offs)
{
	return ROM[offs];
}

INLINE void blt_write(running_machine *machine, const int tmap, const offs_t offs, const UINT16 data, const UINT16 mask)
{
	switch( tmap )
	{
		case 1:	metro_vram_0_w(machine,offs,data,mask);	break;
		case 2:	metro_vram_1_w(machine,offs,data,mask);	break;
		case 3:	metro_vram_2_w(machine,offs,data,mask);	break;
	}
//  logerror("CPU #0 PC %06X : Blitter %X] %04X <- %04X & %04X\n",activecpu_get_pc(),tmap,offs,data,mask);
}


static WRITE16_HANDLER( metro_blitter_w )
{
	COMBINE_DATA( &metro_blitter_regs[offset] );

	if (offset == 0xC/2)
	{
		const int region = REGION_GFX1;

		UINT8 *src	=	memory_region(machine, region);
		size_t  src_len	=	memory_region_length(machine, region);

		UINT32 tmap		=	(metro_blitter_regs[ 0x00 / 2 ] << 16 ) +
							 metro_blitter_regs[ 0x02 / 2 ];
		UINT32 src_offs	=	(metro_blitter_regs[ 0x04 / 2 ] << 16 ) +
							 metro_blitter_regs[ 0x06 / 2 ];
		UINT32 dst_offs	=	(metro_blitter_regs[ 0x08 / 2 ] << 16 ) +
							 metro_blitter_regs[ 0x0a / 2 ];

		int shift			=	(dst_offs & 0x80) ? 0 : 8;
		UINT16 mask		=	(dst_offs & 0x80) ? 0x00ff : 0xff00;

//      logerror("CPU #0 PC %06X : Blitter regs %08X, %08X, %08X\n",activecpu_get_pc(),tmap,src_offs,dst_offs);

		dst_offs >>= 7+1;
		switch( tmap )
		{
			case 1:
			case 2:
			case 3:
				break;
			default:
				logerror("CPU #0 PC %06X : Blitter unknown destination: %08X\n",activecpu_get_pc(),tmap);
				return;
		}

		while (1)
		{
			UINT16 b1,b2,count;

			src_offs %= src_len;
			b1 = blt_read(src,src_offs);
//          logerror("CPU #0 PC %06X : Blitter opcode %02X at %06X\n",activecpu_get_pc(),b1,src_offs);
			src_offs++;

			count = ((~b1) & 0x3f) + 1;

			switch( (b1 & 0xc0) >> 6 )
			{
				case 0:

					/* Stop and Generate an IRQ. We can't generate it now
                       both because it's unlikely that the blitter is so
                       fast and because some games (e.g. lastfort) need to
                       complete the blitter irq service routine before doing
                       another blit. */
					if (b1 == 0)
					{
						timer_set(ATTOTIME_IN_USEC(500), NULL,0,metro_blit_done);
						return;
					}

					/* Copy */
					while (count--)
					{
						src_offs %= src_len;
						b2 = blt_read(src,src_offs) << shift;
						src_offs++;

						dst_offs &= 0xffff;
						blt_write(machine,tmap,dst_offs,b2,mask);
						dst_offs = ((dst_offs+1) & (0x100-1)) | (dst_offs & (~(0x100-1)));
					}
					break;


				case 1:

					/* Fill with an increasing value */
					src_offs %= src_len;
					b2 = blt_read(src,src_offs);
					src_offs++;

					while (count--)
					{
						dst_offs &= 0xffff;
						blt_write(machine,tmap,dst_offs,b2<<shift,mask);
						dst_offs = ((dst_offs+1) & (0x100-1)) | (dst_offs & (~(0x100-1)));
						b2++;
					}
					break;


				case 2:

					/* Fill with a fixed value */
					src_offs %= src_len;
					b2 = blt_read(src,src_offs) << shift;
					src_offs++;

					while (count--)
					{
						dst_offs &= 0xffff;
						blt_write(machine,tmap,dst_offs,b2,mask);
						dst_offs = ((dst_offs+1) & (0x100-1)) | (dst_offs & (~(0x100-1)));
					}
					break;


				case 3:

					/* Skip to the next line ?? */
					if (b1 == 0xC0)
					{
						dst_offs +=   0x100;
						dst_offs &= ~(0x100-1);
						dst_offs |=  (0x100-1) & (metro_blitter_regs[ 0x0a / 2 ] >> (7+1));
					}
					else
					{
						dst_offs += count;
					}
					break;


				default:
					logerror("CPU #0 PC %06X : Blitter unknown opcode %02X at %06X\n",activecpu_get_pc(),b1,src_offs-1);
					return;
			}

		}
	}

}


/***************************************************************************


                                Memory Maps


***************************************************************************/

/*
 Lines starting with an empty comment in the following MemoryReadAddress
 arrays are there for debug (e.g. the game does not read from those ranges
 AFAIK)
*/


static ADDRESS_MAP_START( metro_snd_readmem, ADDRESS_SPACE_PROGRAM, 8 )
	AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)	/* External ROM */
	AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1)	/* External ROM (Banked) */
	AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)	/* External RAM */
	AM_RANGE(0xff00, 0xffff) AM_READ(SMH_RAM)	/* Internal RAM */
ADDRESS_MAP_END

static ADDRESS_MAP_START( metro_snd_writemem, ADDRESS_SPACE_PROGRAM, 8 )
	AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)	/* External ROM */
	AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_BANK1)	/* External ROM (Banked) */
	AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)	/* External RAM */
	AM_RANGE(0xff00, 0xffff) AM_WRITE(SMH_RAM)	/* Internal RAM */
ADDRESS_MAP_END

static ADDRESS_MAP_START( metro_snd_readport, ADDRESS_SPACE_IO, 8 )
	AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READ(metro_porta_r)
ADDRESS_MAP_END

static ADDRESS_MAP_START( metro_snd_writeport, ADDRESS_SPACE_IO, 8 )
	AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_WRITE(metro_porta_w)
	AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE(metro_portb_w)
	AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE(metro_sound_rombank_w)
ADDRESS_MAP_END

/*****************/

static ADDRESS_MAP_START( daitorid_snd_readmem, ADDRESS_SPACE_PROGRAM, 8 )
	AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)	/* External ROM */
	AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1)	/* External ROM (Banked) */
	AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)	/* External RAM */
	AM_RANGE(0xff00, 0xffff) AM_READ(SMH_RAM)	/* Internal RAM */
ADDRESS_MAP_END

static ADDRESS_MAP_START( daitorid_snd_writemem, ADDRESS_SPACE_PROGRAM, 8 )
	AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)	/* External ROM */
	AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_BANK1)	/* External ROM (Banked) */
	AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)	/* External RAM */
	AM_RANGE(0xff00, 0xffff) AM_WRITE(SMH_RAM)	/* Internal RAM */
ADDRESS_MAP_END

static ADDRESS_MAP_START( daitorid_snd_readport, ADDRESS_SPACE_IO, 8 )
	AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READ(metro_porta_r)
ADDRESS_MAP_END

static ADDRESS_MAP_START( daitorid_snd_writeport, ADDRESS_SPACE_IO, 8 )
	AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_WRITE(metro_porta_w)
	AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE(daitorid_portb_w)
	AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE(daitorid_sound_rombank_w)
ADDRESS_MAP_END

/***************************************************************************
                                    Bal Cube
***************************************************************************/

/* Really weird way of mapping 3 DSWs */
static READ16_HANDLER( balcube_dsw_r )
{
	UINT16 dsw1 = input_port_read(machine, "DSW0") >> 0;
	UINT16 dsw2 = input_port_read(machine, "DSW0") >> 8;
	UINT16 dsw3 = input_port_read(machine, "IN2");

	switch (offset*2)
	{
		case 0x1FFFC:	return ((dsw1 & 0x01) ? 0x40 : 0) | ((dsw3 & 0x01) ? 0x80 : 0);
		case 0x1FFFA:	return ((dsw1 & 0x02) ? 0x40 : 0) | ((dsw3 & 0x02) ? 0x80 : 0);
		case 0x1FFF6:	return ((dsw1 & 0x04) ? 0x40 : 0) | ((dsw3 & 0x04) ? 0x80 : 0);
		case 0x1FFEE:	return ((dsw1 & 0x08) ? 0x40 : 0) | ((dsw3 & 0x08) ? 0x80 : 0);
		case 0x1FFDE:	return ((dsw1 & 0x10) ? 0x40 : 0) | ((dsw3 & 0x10) ? 0x80 : 0);
		case 0x1FFBE:	return ((dsw1 & 0x20) ? 0x40 : 0) | ((dsw3 & 0x20) ? 0x80 : 0);
		case 0x1FF7E:	return ((dsw1 & 0x40) ? 0x40 : 0) | ((dsw3 & 0x40) ? 0x80 : 0);
		case 0x1FEFE:	return ((dsw1 & 0x80) ? 0x40 : 0) | ((dsw3 & 0x80) ? 0x80 : 0);

		case 0x1FDFE:	return (dsw2 & 0x01) ? 0x40 : 0;
		case 0x1FBFE:	return (dsw2 & 0x02) ? 0x40 : 0;
		case 0x1F7FE:	return (dsw2 & 0x04) ? 0x40 : 0;
		case 0x1EFFE:	return (dsw2 & 0x08) ? 0x40 : 0;
		case 0x1DFFE:	return (dsw2 & 0x10) ? 0x40 : 0;
		case 0x1BFFE:	return (dsw2 & 0x20) ? 0x40 : 0;
		case 0x17FFE:	return (dsw2 & 0x40) ? 0x40 : 0;
		case 0x0FFFE:	return (dsw2 & 0x80) ? 0x40 : 0;
	}
	logerror("CPU #0 PC %06X : unknown dsw address read: %04X\n",activecpu_get_pc(),offset);
	return 0xffff;
}


static ADDRESS_MAP_START( balcube_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0xf00000, 0xf0ffff) AM_READ(SMH_RAM				)	// RAM
	AM_RANGE(0x300000, 0x300001) AM_READ(ymf278b_r				)	// Sound
	AM_RANGE(0x400000, 0x41ffff) AM_READ(balcube_dsw_r			)	// DSW x 3
	AM_RANGE(0x600000, 0x61ffff) AM_READ(SMH_RAM				)	// Layer 0
	AM_RANGE(0x620000, 0x63ffff) AM_READ(SMH_RAM				)	// Layer 1
	AM_RANGE(0x640000, 0x65ffff) AM_READ(SMH_RAM				)	// Layer 2
	AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0x670000, 0x673fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0x674000, 0x674fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0x678000, 0x6787ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0x6788a2, 0x6788a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
	AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0")				// Inputs
	AM_RANGE(0x500002, 0x500003) AM_READ_PORT("IN1")				//
	AM_RANGE(0x500006, 0x500007) AM_READ(SMH_NOP				)	//
ADDRESS_MAP_END

static ADDRESS_MAP_START( balcube_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x300000, 0x30000b) AM_WRITE(ymf278b_w						)	// Sound
	AM_RANGE(0x500002, 0x500009) AM_WRITE(metro_coin_lockout_4words_w	)	// Coin Lockout
	AM_RANGE(0x670000, 0x673fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x674000, 0x674fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x600000, 0x61ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x620000, 0x63ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x640000, 0x65ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x678000, 0x6787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size		)	// Tiles Set
	AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs		)	// Tiles Blitter
	AM_RANGE(0x678860, 0x67886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window				)	// Tilemap Window
	AM_RANGE(0x678870, 0x67887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll
	AM_RANGE(0x678880, 0x678881) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x678890, 0x678891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x6788a2, 0x6788a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x6788a4, 0x6788a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x6788aa, 0x6788ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x6788ac, 0x6788ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0x679700, 0x679713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
ADDRESS_MAP_END


/***************************************************************************
                                Bang Bang Ball
***************************************************************************/

static ADDRESS_MAP_START( bangball_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0xf00000, 0xf0ffff) AM_READ(SMH_RAM				)	// RAM
	AM_RANGE(0xf10000, 0xf10fff) AM_READ(SMH_RAM				)	// RAM (bug in the ram test routine)
	AM_RANGE(0xb00000, 0xb00001) AM_READ(ymf278b_r				)	// Sound
	AM_RANGE(0xc00000, 0xc1ffff) AM_READ(balcube_dsw_r			)	// DSW x 3
	AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("IN0")				// Inputs
	AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("IN1")				//
	AM_RANGE(0xd00006, 0xd00007) AM_READ(SMH_NOP				)	//
	AM_RANGE(0xe00000, 0xe1ffff) AM_READ(SMH_RAM				)	// Layer 0
	AM_RANGE(0xe20000, 0xe3ffff) AM_READ(SMH_RAM				)	// Layer 1
	AM_RANGE(0xe40000, 0xe5ffff) AM_READ(SMH_RAM				)	// Layer 2
	AM_RANGE(0xe60000, 0xe6ffff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0xe70000, 0xe73fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0xe74000, 0xe74fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0xe78000, 0xe787ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0xe788a2, 0xe788a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
ADDRESS_MAP_END

static ADDRESS_MAP_START( bangball_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0xf10000, 0xf10fff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0xb00000, 0xb0000b) AM_WRITE(ymf278b_w						)	// Sound
	AM_RANGE(0xd00002, 0xd00009) AM_WRITE(metro_coin_lockout_4words_w	)	// Coin Lockout
	AM_RANGE(0xe00000, 0xe1ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0xe20000, 0xe3ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0xe40000, 0xe5ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0xe70000, 0xe73fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0xe74000, 0xe74fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0xe78000, 0xe787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size		)	// Tiles Set
	AM_RANGE(0xe78840, 0xe7884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs		)	// Tiles Blitter
	AM_RANGE(0xe78860, 0xe7886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window				)	// Tilemap Window
	AM_RANGE(0xe78870, 0xe7887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll
	AM_RANGE(0xe78880, 0xe78881) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0xe78890, 0xe78891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0xe788a2, 0xe788a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0xe788a4, 0xe788a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0xe788aa, 0xe788ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0xe788ac, 0xe788ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0xe79700, 0xe79713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
ADDRESS_MAP_END

/***************************************************************************
                                Battle Bubble
***************************************************************************/

static ADDRESS_MAP_START( batlbubl_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0x100000, 0x11ffff) AM_READ(SMH_RAM				)	// Layer 0
	AM_RANGE(0x120000, 0x13ffff) AM_READ(SMH_RAM				)	// Layer 1
	AM_RANGE(0x140000, 0x15ffff) AM_READ(SMH_RAM				)	// Layer 2
	AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0x170000, 0x173fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0x174000, 0x174fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0x178000, 0x1787ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0x1788a2, 0x1788a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
	AM_RANGE(0x200000, 0x200001) AM_READ_PORT("IN1")
	AM_RANGE(0x200002, 0x200003) AM_READ_PORT("DSW0")
	AM_RANGE(0x200004, 0x200005) AM_READ_PORT("IN0")
	AM_RANGE(0x200006, 0x200007) AM_READ_PORT("IN2")
	AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r			)	// read but ignored?
	AM_RANGE(0x400000, 0x400001) AM_READ(ymf278b_r				)	// Sound
	AM_RANGE(0xf00000, 0xf0ffff) AM_READ(SMH_RAM				)	// RAM
	AM_RANGE(0xf10000, 0xf10fff) AM_READ(SMH_RAM				)	// RAM (bug in the ram test routine)
ADDRESS_MAP_END

static ADDRESS_MAP_START( batlbubl_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0x100000, 0x11ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x120000, 0x13ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x140000, 0x15ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x170000, 0x173fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x174000, 0x174fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x178000, 0x1787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size		)	// Tiles Set
	AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs		)	// Tiles Blitter
	AM_RANGE(0x178860, 0x17886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window				)	// Tilemap Window
	AM_RANGE(0x178870, 0x17887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll
	AM_RANGE(0x178880, 0x178881) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x178890, 0x178891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x1788a2, 0x1788a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x1788a4, 0x1788a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x1788aa, 0x1788ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x1788ac, 0x1788ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0x179700, 0x179713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w	)	// Coin Lockout
	AM_RANGE(0x400000, 0x40000b) AM_WRITE(ymf278b_w						)	// Sound
	AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0xf10000, 0xf10fff) AM_WRITE(SMH_RAM						)	// RAM
ADDRESS_MAP_END


/***************************************************************************
                                Dai Toride
***************************************************************************/

static ADDRESS_MAP_START( daitorid_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0x800000, 0x80ffff) AM_READ(SMH_RAM				)	// RAM
	AM_RANGE(0x400000, 0x41ffff) AM_READ(SMH_RAM				)	// Layer 0
	AM_RANGE(0x420000, 0x43ffff) AM_READ(SMH_RAM				)	// Layer 1
	AM_RANGE(0x440000, 0x45ffff) AM_READ(SMH_RAM				)	// Layer 2
	AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0x470000, 0x473fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0x474000, 0x474fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0x478000, 0x4787ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0x4788a2, 0x4788a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
	AM_RANGE(0xc00000, 0xc00001) AM_READ(daitorid_soundstatus_r)	// Inputs
	AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1")				//
	AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0")				//
	AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN2")				//
ADDRESS_MAP_END

static ADDRESS_MAP_START( daitorid_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x400000, 0x41ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x420000, 0x43ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x440000, 0x45ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x470000, 0x473fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x474000, 0x474fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x478000, 0x4787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size	)	// Tiles Set
	AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs	)	// Tiles Blitter
	AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window			)	// Tilemap Window
	AM_RANGE(0x478870, 0x47887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll
	AM_RANGE(0x478880, 0x478881) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x478890, 0x478891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x4788a2, 0x4788a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x4788a4, 0x4788a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w			)	// To Sound CPU
	AM_RANGE(0x4788aa, 0x4788ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x4788ac, 0x4788ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0x479700, 0x479713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0xc00000, 0xc00001) AM_WRITE(metro_soundstatus_w			)	// To Sound CPU
	AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w	)	// Coin Lockout
ADDRESS_MAP_END


/***************************************************************************
                                Dharma Doujou
***************************************************************************/

static ADDRESS_MAP_START( dharma_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0x400000, 0x40ffff) AM_READ(SMH_RAM				)	// RAM
	AM_RANGE(0x800000, 0x81ffff) AM_READ(SMH_RAM				)	// Layer 0
	AM_RANGE(0x820000, 0x83ffff) AM_READ(SMH_RAM				)	// Layer 1
	AM_RANGE(0x840000, 0x85ffff) AM_READ(SMH_RAM				)	// Layer 2
	AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0x870000, 0x873fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0x874000, 0x874fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0x878000, 0x8787ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
	AM_RANGE(0xc00000, 0xc00001) AM_READ(daitorid_soundstatus_r)	// Inputs
	AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1")				//
	AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0")				//
	AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN2")				//
ADDRESS_MAP_END

static ADDRESS_MAP_START( dharma_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x800000, 0x81ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x820000, 0x83ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x840000, 0x85ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x870000, 0x873fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x874000, 0x874fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x878000, 0x8787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size	)	// Tiles Set
	AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs	)	// Tiles Blitter
	AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window	)	// Tilemap Window
	AM_RANGE(0x878870, 0x87887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll Regs
	AM_RANGE(0x878880, 0x878881) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x878890, 0x878891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w			)	// To Sound CPU
	AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0x879700, 0x879713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0xc00000, 0xc00001) AM_WRITE(metro_soundstatus_w			)	// To Sound CPU
	AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w	)	// Coin Lockout
ADDRESS_MAP_END


/***************************************************************************
                                Karate Tournament
***************************************************************************/

/* This game uses almost only the blitter to write to the tilemaps.
   The CPU can only access a "window" of 512x256 pixels in the upper
   left corner of the big tilemap */

#define KARATOUR_OFFS( _x_ ) ((_x_) & (0x3f)) + (((_x_) & ~(0x3f)) * (0x100 / 0x40))

#define KARATOUR_VRAM( _n_ ) \
static READ16_HANDLER( karatour_vram_##_n_##_r ) \
{ \
	return metro_vram_##_n_[KARATOUR_OFFS(offset)]; \
} \
static WRITE16_HANDLER( karatour_vram_##_n_##_w ) \
{ \
	metro_vram_##_n_##_w(machine,KARATOUR_OFFS(offset),data,mem_mask); \
}

KARATOUR_VRAM( 0 )
KARATOUR_VRAM( 1 )
KARATOUR_VRAM( 2 )

static ADDRESS_MAP_START( karatour_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0xffc000, 0xffffff) AM_READ(SMH_RAM				)	// RAM
	AM_RANGE(0x400000, 0x400001) AM_READ(metro_soundstatus_r	)	// From Sound CPU
	AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN0")				// Inputs
	AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN1")				//
	AM_RANGE(0x400006, 0x400007) AM_READ_PORT("DSW0")				//
	AM_RANGE(0x40000a, 0x40000b) AM_READ_PORT("DSW1")				//
	AM_RANGE(0x40000c, 0x40000d) AM_READ_PORT("IN2")				//
	AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0x870000, 0x873fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0x874000, 0x874fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0x875000, 0x875fff) AM_READ(karatour_vram_0_r		)	// Layer 0 (Part of)
	AM_RANGE(0x876000, 0x876fff) AM_READ(karatour_vram_1_r		)	// Layer 1 (Part of)
	AM_RANGE(0x877000, 0x877fff) AM_READ(karatour_vram_2_r		)	// Layer 2 (Part of)
	AM_RANGE(0x878000, 0x8787ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
ADDRESS_MAP_END

static ADDRESS_MAP_START( karatour_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x400000, 0x400001) AM_WRITE(metro_soundstatus_w			)	// To Sound CPU
	AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w	)	// Coin Lockout
	AM_RANGE(0x870000, 0x873fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x874000, 0x874fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x875000, 0x875fff) AM_WRITE(karatour_vram_0_w				)	// Layer 0 (Part of)
	AM_RANGE(0x876000, 0x876fff) AM_WRITE(karatour_vram_1_w				)	// Layer 1 (Part of)
	AM_RANGE(0x877000, 0x877fff) AM_WRITE(karatour_vram_2_w				)	// Layer 2 (Part of)
	AM_RANGE(0x878000, 0x8787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size	)	// Tiles Set
	AM_RANGE(0x878800, 0x878813) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs	)	// Tiles Blitter
	AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window	)	// Tilemap Window
	AM_RANGE(0x878870, 0x87887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll
	AM_RANGE(0x878880, 0x878881) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x878890, 0x878891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w			)	// To Sound CPU
	AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
ADDRESS_MAP_END


/***************************************************************************
                                Sankokushi
***************************************************************************/

/* same limited tilemap access as karatour */

static ADDRESS_MAP_START( kokushi_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0x7fc000, 0x7fffff) AM_READ(SMH_RAM				)	// RAM
	AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0x870000, 0x873fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0x874000, 0x874fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0x875000, 0x875fff) AM_READ(karatour_vram_0_r		)	// Layer 0 (Part of)
	AM_RANGE(0x876000, 0x876fff) AM_READ(karatour_vram_1_r		)	// Layer 1 (Part of)
	AM_RANGE(0x877000, 0x877fff) AM_READ(karatour_vram_2_r		)	// Layer 2 (Part of)
	AM_RANGE(0x878000, 0x8787ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
	AM_RANGE(0xc00000, 0xc00001) AM_READ(daitorid_soundstatus_r)	// From Sound CPU
	AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1")				// Inputs
	AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0")				//
ADDRESS_MAP_END

static ADDRESS_MAP_START( kokushi_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0x7fc000, 0x7fffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x870000, 0x873fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x874000, 0x874fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x875000, 0x875fff) AM_WRITE(karatour_vram_0_w				)	// Layer 0 (Part of)
	AM_RANGE(0x876000, 0x876fff) AM_WRITE(karatour_vram_1_w				)	// Layer 1 (Part of)
	AM_RANGE(0x877000, 0x877fff) AM_WRITE(karatour_vram_2_w				)	// Layer 2 (Part of)
	AM_RANGE(0x878000, 0x8787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size	)	// Tiles Set
	AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs	)	// Tiles Blitter
	AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window	)	// Tilemap Window
	AM_RANGE(0x878870, 0x87887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll Regs - WRONG
//  AM_RANGE(0x878880, 0x878881) AM_WRITE(SMH_NOP                     )   // ? increasing
	AM_RANGE(0x878890, 0x878891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w			)	// To Sound CPU
	AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0x879700, 0x879713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0xc00000, 0xc00001) AM_WRITE(metro_soundstatus_w			)	// To Sound CPU
	AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w	)	// Coin Lockout
ADDRESS_MAP_END



/***************************************************************************
                                Last Fortress
***************************************************************************/

static ADDRESS_MAP_START( lastfort_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0x400000, 0x40ffff) AM_READ(SMH_RAM				)	// RAM
	AM_RANGE(0x800000, 0x81ffff) AM_READ(SMH_RAM				)	// Layer 0
	AM_RANGE(0x820000, 0x83ffff) AM_READ(SMH_RAM				)	// Layer 1
	AM_RANGE(0x840000, 0x85ffff) AM_READ(SMH_RAM				)	// Layer 2
	AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0x870000, 0x873fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0x874000, 0x874fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0x878000, 0x8787ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
	AM_RANGE(0xc00000, 0xc00001) AM_READ(metro_soundstatus_r	)	// From Sound CPU
	AM_RANGE(0xc00002, 0xc00003) AM_READ(SMH_NOP				)	//
	AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("IN0")				// Inputs
	AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN1")				//
	AM_RANGE(0xc00008, 0xc00009) AM_READ_PORT("IN2")				//
	AM_RANGE(0xc0000a, 0xc0000b) AM_READ_PORT("DSW0")				//
	AM_RANGE(0xc0000c, 0xc0000d) AM_READ_PORT("DSW1")				//
	AM_RANGE(0xc0000e, 0xc0000f) AM_READ_PORT("IN3")				//
ADDRESS_MAP_END

static ADDRESS_MAP_START( lastfort_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x800000, 0x81ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x820000, 0x83ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x840000, 0x85ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x870000, 0x873fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x874000, 0x874fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x878000, 0x8787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size	)	// Tiles Set
	AM_RANGE(0x878800, 0x878813) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs	)	// Tiles Blitter
	AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window	)	// Tilemap Window
	AM_RANGE(0x878870, 0x87887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll
	AM_RANGE(0x878880, 0x878881) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x878890, 0x878891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w			)	// To Sound CPU
	AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0xc00000, 0xc00001) AM_WRITE(metro_soundstatus_w			)	// To Sound CPU
	AM_RANGE(0xc00002, 0xc00003) AM_WRITE(metro_coin_lockout_1word_w	)	// Coin Lockout
ADDRESS_MAP_END

/* the German version is halfway between lastfort and ladykill (karatour) memory maps */

/* todo: clean up input reads etc. */
static ADDRESS_MAP_START( lastforg_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM				)	// ROM
	AM_RANGE(0x400000, 0x400001) AM_READ(metro_soundstatus_r	)	// From Sound CPU
	AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN0")				// Inputs
	AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN1")				//
	AM_RANGE(0x400006, 0x400007) AM_READ_PORT("DSW0")				//
	AM_RANGE(0x40000a, 0x40000b) AM_READ_PORT("DSW1")				//
	AM_RANGE(0x40000c, 0x40000d) AM_READ_PORT("IN2")				//
	AM_RANGE(0x880000, 0x89ffff) AM_READ(SMH_RAM				)	// Layer 0
	AM_RANGE(0x8a0000, 0x8bffff) AM_READ(SMH_RAM				)	// Layer 1
	AM_RANGE(0x8c0000, 0x8dffff) AM_READ(SMH_RAM				)	// Layer 2
	AM_RANGE(0x8e0000, 0x8effff) AM_READ(metro_bankedrom_r		)	// Banked ROM
	AM_RANGE(0x8f0000, 0x8f3fff) AM_READ(SMH_RAM				)	// Palette
	AM_RANGE(0x8f4000, 0x8f4fff) AM_READ(SMH_RAM				)	// Sprites
	AM_RANGE(0x8f8000, 0x8f87ff) AM_READ(SMH_RAM				)	// Tiles Set
	AM_RANGE(0x8f88a2, 0x8f88a3) AM_READ(metro_irq_cause_r		)	// IRQ Cause
	AM_RANGE(0xc00000, 0xc0ffff) AM_READ(SMH_RAM				)	// RAM
ADDRESS_MAP_END

static ADDRESS_MAP_START( lastforg_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0x400000, 0x400001) AM_WRITE(metro_soundstatus_w			)	// To Sound CPU
	AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w	)	// Coin Lockout
	AM_RANGE(0x880000, 0x89ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x8a0000, 0x8bffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x8c0000, 0x8dffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x8f0000, 0x8f3fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x8f4000, 0x8f4fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x8f8000, 0x8f87ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size	)	// Tiles Set
	AM_RANGE(0x8f8800, 0x8f8813) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0x8f8840, 0x8f884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs	)	// Tiles Blitter
	AM_RANGE(0x8f8860, 0x8f886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window	)	// Tilemap Window
	AM_RANGE(0x8f8870, 0x8f887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll
	AM_RANGE(0x8f8880, 0x8f8881) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x8f8890, 0x8f8891) AM_WRITE(SMH_NOP						)	// ? increasing
	AM_RANGE(0x8f88a2, 0x8f88a3) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x8f88a4, 0x8f88a5) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x8f88a8, 0x8f88a9) AM_WRITE(metro_soundlatch_w			)	// To Sound CPU
	AM_RANGE(0x8f88aa, 0x8f88ab) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x8f88ac, 0x8f88ad) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(SMH_RAM						)	// RAM
ADDRESS_MAP_END


/***************************************************************************
                                Mahjong Gakuensai
***************************************************************************/

static int gakusai_oki_bank_lo, gakusai_oki_bank_hi;

static void gakusai_oki_bank_set(void)
{
	int bank = (gakusai_oki_bank_lo & 7) + (gakusai_oki_bank_hi & 1) * 8;
	OKIM6295_set_bank_base(0, bank * 0x40000);
}

static WRITE16_HANDLER( gakusai_oki_bank_hi_w )
{
	if (ACCESSING_BITS_0_7)
	{
		gakusai_oki_bank_hi = data & 0xff;
		gakusai_oki_bank_set();
	}
}

static WRITE16_HANDLER( gakusai_oki_bank_lo_w )
{
	if (ACCESSING_BITS_0_7)
	{
		gakusai_oki_bank_lo = data & 0xff;
		gakusai_oki_bank_set();
	}
}

static UINT16 *gakusai_input_sel;

static READ16_HANDLER( gakusai_input_r )
{
	UINT16 input_sel = (*gakusai_input_sel) ^ 0x3e;
	// Bit 0 ??
	if (input_sel & 0x0002)	return input_port_read(machine, "KEY0");
	if (input_sel & 0x0004)	return input_port_read(machine, "KEY1");
	if (input_sel & 0x0008)	return input_port_read(machine, "KEY2");
	if (input_sel & 0x0010)	return input_port_read(machine, "KEY3");
	if (input_sel & 0x0020)	return input_port_read(machine, "KEY4");
	return 0xffff;
}

static READ16_HANDLER( gakusai_eeprom_r )
{
	return eeprom_read_bit() & 1;
}

static WRITE16_HANDLER( gakusai_eeprom_w )
{
	if (ACCESSING_BITS_0_7)
	{
		// latch the bit
		eeprom_write_bit(data & 0x01);

		// reset line asserted: reset.
		eeprom_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE );

		// clock line asserted: write latch or select next bit to read
		eeprom_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE );
	}
}

static ADDRESS_MAP_START( gakusai_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM					)	// ROM
	AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM					)	// RAM
	AM_RANGE(0x200000, 0x21ffff) AM_READ(SMH_RAM					)	// Layer 0
	AM_RANGE(0x220000, 0x23ffff) AM_READ(SMH_RAM					)	// Layer 1
	AM_RANGE(0x240000, 0x25ffff) AM_READ(SMH_RAM					)	// Layer 2
	AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r			)	// Banked ROM
	AM_RANGE(0x270000, 0x273fff) AM_READ(SMH_RAM					)	// Palette
	AM_RANGE(0x274000, 0x274fff) AM_READ(SMH_RAM					)	// Sprites
	AM_RANGE(0x278000, 0x2787ff) AM_READ(SMH_RAM					)	// Tiles Set
	AM_RANGE(0x278832, 0x278833) AM_READ(metro_irq_cause_r			)	// IRQ Cause
	AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r			)	// Inputs
	AM_RANGE(0x278882, 0x278883) AM_READ_PORT("IN0")					//
	AM_RANGE(0x27880e, 0x27880f) AM_READ(SMH_RAM					)	// Screen Control
	AM_RANGE(0x700000, 0x700001) AM_READ(OKIM6295_status_0_lsb_r	)	// Sound
	AM_RANGE(0xc00000, 0xc00001) AM_READ(gakusai_eeprom_r			)	// EEPROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( gakusai_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x200000, 0x21ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x220000, 0x23ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x240000, 0x25ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x270000, 0x273fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x274000, 0x274fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x278000, 0x2787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size	)	// Tiles Set
	AM_RANGE(0x27880e, 0x27880f) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0x278810, 0x27881f) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_levels	)	// IRQ Levels
	AM_RANGE(0x278820, 0x27882f) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_vectors	)	// IRQ Vectors
	AM_RANGE(0x278830, 0x278831) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x278832, 0x278833) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x278836, 0x278837) AM_WRITE(watchdog_reset16_w			)	// Watchdog
	AM_RANGE(0x278840, 0x27884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs	)	// Tiles Blitter
	AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window	)	// Tilemap Window
	AM_RANGE(0x278850, 0x27885b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll Regs
	AM_RANGE(0x278870, 0x278871) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x278888, 0x278889) AM_WRITE(SMH_RAM) AM_BASE(&gakusai_input_sel	)	// Inputs
	AM_RANGE(0x279700, 0x279713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP						)	// ? 5
	AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w			)	// Sound
	AM_RANGE(0x600000, 0x600001) AM_WRITE(YM2413_register_port_0_lsb_w	)
	AM_RANGE(0x600002, 0x600003) AM_WRITE(YM2413_data_port_0_lsb_w		)
	AM_RANGE(0x700000, 0x700001) AM_WRITE(OKIM6295_data_0_lsb_w 		)
	AM_RANGE(0xc00000, 0xc00001) AM_WRITE(gakusai_eeprom_w				)	// EEPROM
	AM_RANGE(0xd00000, 0xd00001) AM_WRITE(gakusai_oki_bank_hi_w			)
ADDRESS_MAP_END


/***************************************************************************
                                Mahjong Gakuensai 2
***************************************************************************/

static ADDRESS_MAP_START( gakusai2_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM					)	// ROM
	AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM					)	// RAM
	AM_RANGE(0x600000, 0x61ffff) AM_READ(SMH_RAM					)	// Layer 0
	AM_RANGE(0x620000, 0x63ffff) AM_READ(SMH_RAM					)	// Layer 1
	AM_RANGE(0x640000, 0x65ffff) AM_READ(SMH_RAM					)	// Layer 2
	AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r			)	// Banked ROM
	AM_RANGE(0x670000, 0x673fff) AM_READ(SMH_RAM					)	// Palette
	AM_RANGE(0x674000, 0x674fff) AM_READ(SMH_RAM					)	// Sprites
	AM_RANGE(0x675000, 0x675fff) AM_READ(SMH_RAM					)	// Sprites?
	AM_RANGE(0x678000, 0x6787ff) AM_READ(SMH_RAM					)	// Tiles Set
	AM_RANGE(0x678832, 0x678833) AM_READ(metro_irq_cause_r			)	// IRQ Cause
	AM_RANGE(0x678880, 0x678881) AM_READ(gakusai_input_r			)	// Inputs
	AM_RANGE(0x678882, 0x678883) AM_READ_PORT("IN0")					//
	AM_RANGE(0x67880e, 0x67880f) AM_READ(SMH_RAM					)	// Screen Control
	AM_RANGE(0xb00000, 0xb00001) AM_READ(OKIM6295_status_0_lsb_r	)	// Sound
	AM_RANGE(0xe00000, 0xe00001) AM_READ(gakusai_eeprom_r			)	// EEPROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( gakusai2_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x600000, 0x61ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x620000, 0x63ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x640000, 0x65ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x670000, 0x673fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x674000, 0x674fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size				)	// Sprites
	AM_RANGE(0x675000, 0x675fff) AM_WRITE(SMH_RAM						)	// Sprites?
	AM_RANGE(0x678000, 0x6787ff) AM_WRITE(SMH_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size	)	// Tiles Set
	AM_RANGE(0x67880e, 0x67880f) AM_WRITE(SMH_RAM) AM_BASE(&metro_screenctrl	)	// Screen Control
	AM_RANGE(0x678810, 0x67881f) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_levels	)	// IRQ Levels
	AM_RANGE(0x678820, 0x67882f) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_vectors	)	// IRQ Vectors
	AM_RANGE(0x678830, 0x678831) AM_WRITE(SMH_RAM) AM_BASE(&metro_irq_enable	)	// IRQ Enable
	AM_RANGE(0x678832, 0x678833) AM_WRITE(metro_irq_cause_w				)	// IRQ Acknowledge
	AM_RANGE(0x678836, 0x678837) AM_WRITE(watchdog_reset16_w			)	// Watchdog
	AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs	)	// Tiles Blitter
	AM_RANGE(0x678860, 0x67886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window	)	// Tilemap Window
	AM_RANGE(0x678850, 0x67885b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll		)	// Scroll Regs
	AM_RANGE(0x678870, 0x678871) AM_WRITE(SMH_RAM) AM_BASE(&metro_rombank		)	// Rom Bank
	AM_RANGE(0x678888, 0x678889) AM_WRITE(SMH_RAM) AM_BASE(&gakusai_input_sel	)	// Inputs
	AM_RANGE(0x679700, 0x679713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs	)	// Video Registers
	AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP						)	// ? 5
	AM_RANGE(0x900000, 0x900001) AM_WRITE(gakusai_oki_bank_lo_w			)	// Sound
	AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_hi_w			)
	AM_RANGE(0xb00000, 0xb00001) AM_WRITE(OKIM6295_data_0_lsb_w 		)
	AM_RANGE(0xc00000, 0xc00001) AM_WRITE(YM2413_register_port_0_lsb_w	)
	AM_RANGE(0xc00002, 0xc00003) AM_WRITE(YM2413_data_port_0_lsb_w		)
	AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gakusai_eeprom_w				)	// EEPROM
ADDRESS_MAP_END


/***************************************************************************
                        Mahjong Doukyuusei Special
***************************************************************************/

static READ16_HANDLER( dokyusp_eeprom_r )
{
	// clock line asserted: write latch or select next bit to read
	eeprom_set_clock_line(CLEAR_LINE);
	eeprom_set_clock_line(ASSERT_LINE);

	return eeprom_read_bit() & 1;
}

static WRITE16_HANDLER( dokyusp_eeprom_bit_w )
{
	if (ACCESSING_BITS_0_7)
	{
		// latch the bit
		eeprom_write_bit(data & 0x01);

		// clock line asserted: write latch or select next bit to read
		eeprom_set_clock_line(CLEAR_LINE);
		eeprom_set_clock_line(ASSERT_LINE);
	}
}

static WRITE16_HANDLER( dokyusp_eeprom_reset_w )
{
	if (ACCESSING_BITS_0_7)
	{
		// reset line asserted: reset.
		eeprom_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
	}
}

static ADDRESS_MAP_START( dokyusp_readmem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM					)	// ROM
	AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM					)	// RAM
	AM_RANGE(0x200000, 0x21ffff) AM_READ(SMH_RAM					)	// Layer 0
	AM_RANGE(0x220000, 0x23ffff) AM_READ(SMH_RAM					)	// Layer 1
	AM_RANGE(0x240000, 0x25ffff) AM_READ(SMH_RAM					)	// Layer 2
	AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r			)	// Banked ROM
	AM_RANGE(0x270000, 0x273fff) AM_READ(SMH_RAM					)	// Palette
	AM_RANGE(0x274000, 0x274fff) AM_READ(SMH_RAM					)	// Sprites
	AM_RANGE(0x278000, 0x2787ff) AM_READ(SMH_RAM					)	// Tiles Set
	AM_RANGE(0x278832, 0x278833) AM_READ(metro_irq_cause_r			)	// IRQ Cause
	AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r			)	// Inputs
	AM_RANGE(0x278882, 0x278883) AM_READ_PORT("IN0")					//
	AM_RANGE(0x27880e, 0x27880f) AM_READ(SMH_RAM					)	// Screen Control
	AM_RANGE(0x700000, 0x700001) AM_READ(OKIM6295_status_0_lsb_r	)	// Sound
	AM_RANGE(0xd00000, 0xd00001) AM_READ(dokyusp_eeprom_r			)	// EEPROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( dokyusp_writemem, ADDRESS_SPACE_PROGRAM, 16 )
	AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM						)	// ROM
	AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM						)	// RAM
	AM_RANGE(0x200000, 0x21ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0	)	// Layer 0
	AM_RANGE(0x220000, 0x23ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1	)	// Layer 1
	AM_RANGE(0x240000, 0x25ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2	)	// Layer 2
	AM_RANGE(0x270000, 0x273fff) AM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w  ) AM_BASE(&paletteram16	)	// Palette
	AM_RANGE(0x274000, 0x274fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM