summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/minimaws
Commit message (Collapse)AuthorAgeFilesLines
* minimaws: dt, not dl (nw) Vas Crabb2019-12-241-1/+1
|
* minimaws: don't accumulate (nw) Vas Crabb2019-12-241-2/+8
|
* minimaws: display software lists for selected slot options on machine pages Vas Crabb2019-12-193-17/+128
|
* minimaws updates: Vas Crabb2019-12-193-54/+185
| | | | | * reduce network operations when initially loading a machine page * add rudimentary software lists to machine pages
* minimaws: load more stuff, link more stuff Vas Crabb2019-12-185-205/+444
|
* minimaws: refactored digest code, identify fixed bit patterns Vas Crabb2019-12-164-157/+340
|
* minimaws: identify software list dumps in CLI as well Vas Crabb2019-12-161-49/+93
|
* minimaws: fix presentation issue (nw) Vas Crabb2019-12-161-1/+1
|
* minimaws: add software list support to web-based romident Vas Crabb2019-12-164-18/+214
| | | | (nw) also removed unused member that was breaking clang builds
* minimaws: fill in software list pages, load software list ROM information Vas Crabb2019-12-156-33/+448
|
* minimaws: add rudimentary listing of software lists to web UI and work ↵ Vas Crabb2019-12-154-1/+97
| | | | around a python issue on loading; also fix up more software list issues (nw)
* minimaws: load and index some software list data (no way to display it yet) Vas Crabb2019-12-153-7/+294
| | | | also fix up some software lists with duplicate part features (nw)
* Build system maintenance: Vas Crabb2019-10-041-3/+4
| | | | | | | | | | | * Re-write makedep.py for better performance and better parsing front-end * Make srcclean deal with kinds of preprocessor abuse I never want to see in real life (nw) The new parser front-end is better at recognising C++ syntax and also substantially faster - bootstrapping a single-driver build should be noticeably quicker. Having a single parser for C++, .lst and .flt files also gets us a bit closer to making it simpler to create custom subtargets.
* (nw) misc cleanup: Vas Crabb2019-10-025-38/+44
| | | | | | | | * subhuntr.cpp: S2636 PVI was seemingly uncommented by mistake in 93308b483ee73cecc46a6b44fccc126edf3c512a - offsets and sound routing seem to be copy/pasted from somewhere * phi: prettier config * scramble.cpp, wallc.cpp: avoid some calls to subdevice<...>(...) * makedep.py: open source files as UTF-8 (GitHub #5482) * minimaws: be less trusting
* minimaws: allow read-only database connections to be passed between threads (nw) Vas Crabb2019-09-301-2/+2
|
* minimaws: easier mod_wsgi deployment (nw) Vas Crabb2019-09-302-3/+11
|
* minimaws: python 2 is more fussy about generator function distinction (nw) Vas Crabb2019-09-301-3/+6
|
* minimaws: Chromium doesn't like in-place modification of returned JSON data (nw) Vas Crabb2019-09-301-7/+10
|
* minimaws: add web interface for identifying ROM dumps Vas Crabb2019-09-305-5/+617
|
* minimaws: load ROMs and disks, and add a romident subcommand Vas Crabb2019-09-284-3/+263
|
* minimaws: expose RAM size Vas Crabb2018-03-275-4/+105
|
* Python 3.3 doesn't work right (nw) Vas Crabb2017-08-251-1/+1
|
* minimaws: add support for INI options preview and explicit defaults Vas Crabb2017-08-072-9/+36
|
* minimaws: add buttons for restoring default BIOS/slot card, clean up and ↵ Vas Crabb2017-08-053-83/+127
| | | | comment the JavaScript a bit more
* minimaws: expose system BIOS, better way of dropping tables Vas Crabb2017-08-045-9/+65
|
* minimaws: remove need for explicit schema step Vas Crabb2017-08-042-146/+176
|
* minimaws: demonstrate slot card BIOS selection, requires exposing device ↵ Vas Crabb2017-08-045-8/+142
| | | | BIOS sets in XML output
* minimaws: show compatible slots for devices [Vas Crabb] Vas Crabb2017-08-043-2/+48
| | | | (nw) Identify Donkey Kong Junior (Japan set F-1) [Corrado Comaselli]
* minimaws: add machine feature status flags and slot card selection with live ↵ Vas Crabb2017-08-038-22/+585
| | | | update
* Load slot info in minimaws (not exposed yet), fix up some problems with Vas Crabb2017-08-024-28/+123
| | | | | | | | slots uncovered (nw) It seems at some point someone didn't realise that choosing the same option from a SLOT_INTERFACE in multiple slots creates multiple instances of the same device type, and this got copy/pasted everywhere.
* rather crude way to override cache control header (nw) Vas Crabb2017-08-021-20/+20
|
* minimaws web mode enhancements: Vas Crabb2017-08-028-89/+491
| | | | | | | | | | | | | | * Support serving static assets, use for stylesheet, script and images * Better error pages, reject unsupported HTTP methods * Replace lists with sortable tables with more detail (click headings to sort) * Add pages for exploring source files, link from machine pages - Can start from full source file list at http://localhost:8080/sourcefile/ (nw) JavaScript performance can drop when sorting really big tables, e.g. the list of all source files, or the list of machines in some of the fruit machine drivers. This update doesn't expose machine/device information, just consolidating what's there. The wsgiref server is adding headers to prevent caching, I'll look for a workaround.
* Add "minimaws" sample script demonstrating how to do some tasks with Vas Crabb2017-08-018-0/+906
output from -listxml verb. Compatible with Python 2.7 or Python 3. Requires at least SQLite 3.6.19 for foreign key support. This serves a few purposes: * Demonstrating some things that can be done with -listxml output * Providing a reference implementation for useful queries * Helping ensure our XML output isn't completely useless * Providing additional queries over MAME's auxiliary verbs * Proper glob support unlike the broken implementation in MAME right now Right now, it's a bit ugly to use. You can only load into a completely clean database, and you need to manually create the schema. I'll address this later. The default database filename is minimaws.sqlite3 (you can override this with --database before the verb on the command line). Loading isn't particularly fast, but query performance is very good. Create a database first: rm -f minimaws.sqlite3 sqlite3 minimaws.sqlite3 < scripts/minimaws/schema.sql Now you can load it using a MAME binary or XML output (use one of these options, not both): python scripts/minimaws/minimaws.py load --executable ./mame python scripts/minimaws/minimaws.py load --file mame0188.xml Once that's done you can do queries: python scripts/minimaws/minimaws.py listfull python scripts/minimaws/minimaws.py listclones "*cmast*" python scripts/minimaws/minimaws.py listsource "*mous*" python scripts/minimaws/minimaws.py listbrothers "intl*" These work much like the equivalent MAME verbs, but without the overhead of loading MAME's static data. But there's one already query that you can't easily do with MAME: python scripts/minimaws/minimaws.py listaffected "src/devices/cpu/m6805/*" src/devices/sound/qsound.cpp This will list all runnable systems that use a device defined in any file under devices/cpu/m6805 or in devices/sound/qsound.cpp (you can specify and arbitrary number of files or glob patterns). This may be useful for planning regression tests. Another thing this does (that gives rise to the name) is serving information over HTTP. It's implemented as a WSGI, and it mainly uses GET requests. This means it can run hosted in Apache mod_wsgi, or cached by Apache mod_proxy, Squid, nginx, or something else. It can also run out-of-the-box using wsgiref.simple_server components. The default port is 8080 but this can be changed with the --port option. Start the web server with the serve verb (stop it with keyboard interrupt ^C or similar): python scripts/minimaws/minimaws.py serve Right now it's rather crude, and doesn't list devices for you. This means you have to know the shortname of a machine to get a useful URL. For example, you can look at a driver and see its parent set and the devices it references: http://localhost:8080/machine/kof2000n Or you can look at a device, and see the devices it refereces, as well as the devices/systems that reference it: http://localhost:8080/machine/zac1b11142 The links between devices/systems are clickable. They might 404 on you if you used a single-driver build with broken parent/clone relationships, but they should all work in a full build that passes validation. There's still a lot to do. In particular I want to demonstrate how to do live DIP switch preview and dynamic slot discovery. But I've already discovered stuff in the -listxml output that's less than ideal with this, so it's helping.