mirror of
https://github.com/holub/mame
synced 2025-07-05 18:08:04 +03:00
minimaws: show compatible slots for devices [Vas Crabb]
(nw) Identify Donkey Kong Junior (Japan set F-1) [Corrado Comaselli]
This commit is contained in:
parent
0fbad045de
commit
00f6156cbb
@ -198,6 +198,13 @@ class QueryCursor(object):
|
|||||||
'WHERE machine.id IN (SELECT machine FROM devicereference WHERE device = ?)',
|
'WHERE machine.id IN (SELECT machine FROM devicereference WHERE device = ?)',
|
||||||
(device, ))
|
(device, ))
|
||||||
|
|
||||||
|
def get_compatible_slots(self, device):
|
||||||
|
return self.dbcurs.execute(
|
||||||
|
'SELECT machine.shortname AS shortname, machine.description AS description, slot.name AS slot, slotoption.name AS slotoption, sourcefile.filename AS sourcefile ' \
|
||||||
|
'FROM slotoption JOIN slot ON slotoption.slot = slot.id JOIN machine on slot.machine = machine.id JOIN sourcefile ON machine.sourcefile = sourcefile.id '
|
||||||
|
'WHERE slotoption.device = ?',
|
||||||
|
(device, ))
|
||||||
|
|
||||||
def get_sourcefile_id(self, filename):
|
def get_sourcefile_id(self, filename):
|
||||||
return (self.dbcurs.execute('SELECT id FROM sourcefile WHERE filename = ?', (filename, )).fetchone() or (None, ))[0]
|
return (self.dbcurs.execute('SELECT id FROM sourcefile WHERE filename = ?', (filename, )).fetchone() or (None, ))[0]
|
||||||
|
|
||||||
|
@ -19,6 +19,11 @@ ERROR_PAGE = string.Template(
|
|||||||
'</html>\n')
|
'</html>\n')
|
||||||
|
|
||||||
|
|
||||||
|
SORTABLE_TABLE_EPILOGUE = string.Template(
|
||||||
|
' </tbody>\n'
|
||||||
|
'</table>\n'
|
||||||
|
'<script>make_table_sortable(document.getElementById("${id}"));</script>\n')
|
||||||
|
|
||||||
MACHINE_PROLOGUE = string.Template(
|
MACHINE_PROLOGUE = string.Template(
|
||||||
'<!DOCTYPE html>\n' \
|
'<!DOCTYPE html>\n' \
|
||||||
'<html>\n' \
|
'<html>\n' \
|
||||||
@ -64,6 +69,15 @@ EXCL_MACHINE_ROW = string.Template(
|
|||||||
' <td></td>\n' \
|
' <td></td>\n' \
|
||||||
' </tr>\n')
|
' </tr>\n')
|
||||||
|
|
||||||
|
COMPATIBLE_SLOT_ROW = string.Template(
|
||||||
|
' <tr>\n' \
|
||||||
|
' <td><a href="${machinehref}">${shortname}</a></td>\n' \
|
||||||
|
' <td><a href="${machinehref}">${description}</a></td>\n' \
|
||||||
|
' <td>${slot}</td>\n' \
|
||||||
|
' <td>${slotoption}</td>\n' \
|
||||||
|
' <td><a href="${sourcehref}">${sourcefile}</a></td>\n' \
|
||||||
|
' </tr>\n')
|
||||||
|
|
||||||
|
|
||||||
SOURCEFILE_PROLOGUE = string.Template(
|
SOURCEFILE_PROLOGUE = string.Template(
|
||||||
'<!DOCTYPE html>\n' \
|
'<!DOCTYPE html>\n' \
|
||||||
|
@ -211,6 +211,7 @@ class MachineHandler(QueryPageHandler):
|
|||||||
yield htmltmpl.MACHINE_SLOTS_PLACEHOLDER.substitute(
|
yield htmltmpl.MACHINE_SLOTS_PLACEHOLDER.substitute(
|
||||||
machine=self.js_escape(self.shortname)).encode('utf=8')
|
machine=self.js_escape(self.shortname)).encode('utf=8')
|
||||||
|
|
||||||
|
# list devices referenced by this system/device
|
||||||
first = True
|
first = True
|
||||||
for name, desc, src in self.dbcurs.get_devices_referenced(id):
|
for name, desc, src in self.dbcurs.get_devices_referenced(id):
|
||||||
if first:
|
if first:
|
||||||
@ -224,8 +225,32 @@ class MachineHandler(QueryPageHandler):
|
|||||||
first = False
|
first = False
|
||||||
yield self.machine_row(name, desc, src)
|
yield self.machine_row(name, desc, src)
|
||||||
if not first:
|
if not first:
|
||||||
yield ' </tbody>\n</table>\n<script>make_table_sortable(document.getElementById("tbl-dev-refs"));</script>\n'.encode('utf-8')
|
yield htmltmpl.SORTABLE_TABLE_EPILOGUE.substitute(id='tbl-dev-refs').encode('utf-8')
|
||||||
|
|
||||||
|
# list slots where this device is an option
|
||||||
|
first = True
|
||||||
|
for name, desc, slot, opt, src in self.dbcurs.get_compatible_slots(id):
|
||||||
|
if (first):
|
||||||
|
yield \
|
||||||
|
'<h2>Compatible Slots</h2>\n' \
|
||||||
|
'<table id="tbl-comp-slots">\n' \
|
||||||
|
' <thead>\n' \
|
||||||
|
' <tr><th>Short name</th><th>Description</th><th>Slot</th><th>Choice</th><th>Source file</th></tr>\n' \
|
||||||
|
' </thead>\n' \
|
||||||
|
' <tbody>\n'.encode('utf-8')
|
||||||
|
first = False
|
||||||
|
yield htmltmpl.COMPATIBLE_SLOT_ROW.substitute(
|
||||||
|
machinehref=self.machine_href(name),
|
||||||
|
sourcehref=self.sourcefile_href(src),
|
||||||
|
shortname=cgi.escape(name),
|
||||||
|
description=cgi.escape(desc),
|
||||||
|
sourcefile=cgi.escape(src),
|
||||||
|
slot=cgi.escape(slot),
|
||||||
|
slotoption=cgi.escape(opt)).encode('utf-8')
|
||||||
|
if not first:
|
||||||
|
yield htmltmpl.SORTABLE_TABLE_EPILOGUE.substitute(id='tbl-comp-slots').encode('utf-8')
|
||||||
|
|
||||||
|
# list systems/devices that reference this device
|
||||||
first = True
|
first = True
|
||||||
for name, desc, src in self.dbcurs.get_device_references(id):
|
for name, desc, src in self.dbcurs.get_device_references(id):
|
||||||
if first:
|
if first:
|
||||||
@ -239,7 +264,7 @@ class MachineHandler(QueryPageHandler):
|
|||||||
first = False
|
first = False
|
||||||
yield self.machine_row(name, desc, src)
|
yield self.machine_row(name, desc, src)
|
||||||
if not first:
|
if not first:
|
||||||
yield ' </tbody>\n</table>\n<script>make_table_sortable(document.getElementById("tbl-ref-by"));</script>\n'.encode('utf-8')
|
yield htmltmpl.SORTABLE_TABLE_EPILOGUE.substitute(id='tbl-ref-by').encode('utf-8')
|
||||||
|
|
||||||
yield '</html>\n'.encode('utf-8')
|
yield '</html>\n'.encode('utf-8')
|
||||||
|
|
||||||
|
@ -3383,7 +3383,7 @@ GAME( 2013, dkongpe, dkong, dkong2b, dkong, dkong_state, 0, ROT
|
|||||||
|
|
||||||
GAME( 1982, dkongjr, 0, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US set F-2)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1982, dkongjr, 0, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US set F-2)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1982, dkongjrj, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong Jr. (Japan)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1982, dkongjrj, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong Jr. (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1982, dkongjnrj, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong Junior (Japan?)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1982, dkongjnrj, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong Junior (Japan set F-1)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1982, dkongjrb, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1982, dkongjrb, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1982, dkongjre, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (E kit)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1982, dkongjre, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (E kit)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1982, dkongjrpb, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "bootleg", "Donkey Kong Junior (P kit, bootleg)", MACHINE_SUPPORTS_SAVE ) // definitely not issued by Nintendo
|
GAME( 1982, dkongjrpb, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "bootleg", "Donkey Kong Junior (P kit, bootleg)", MACHINE_SUPPORTS_SAVE ) // definitely not issued by Nintendo
|
||||||
|
Loading…
Reference in New Issue
Block a user