Commit Graph

1732 Commits

Author SHA1 Message Date
Vas Crabb
4c9ded40ad minimaws: add buttons for restoring default BIOS/slot card, clean up and comment the JavaScript a bit more 2017-08-05 13:56:11 +10:00
Vas Crabb
b97e374cdb minimaws: expose system BIOS, better way of dropping tables 2017-08-04 19:23:18 +10:00
Vas Crabb
3eb9ddfa16 minimaws: remove need for explicit schema step 2017-08-04 18:26:40 +10:00
Vas Crabb
d96933356c minimaws: demonstrate slot card BIOS selection, requires exposing device BIOS sets in XML output 2017-08-04 17:13:34 +10:00
Dirk Best
0bdd1df2e3 New driver: Kontron PSI98
Basic system is done and it can boot from floppy, but there are still
many things to add, therefore marked as NOT_WORKING for now.

New machines added as MACHINE_NOT_WORKING
-----------------------------------------
Kontron PSI98 [Dirk Best, rfka01]
2017-08-04 05:19:03 +02:00
Vas Crabb
00f6156cbb minimaws: show compatible slots for devices [Vas Crabb]
(nw) Identify Donkey Kong Junior (Japan set F-1) [Corrado Comaselli]
2017-08-04 11:42:23 +10:00
Vas Crabb
8eb07ffe97 minimaws: add machine feature status flags and slot card selection with live update 2017-08-03 23:38:22 +10:00
Vas Crabb
c85c7c4c15 Load slot info in minimaws (not exposed yet), fix up some problems with
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.
2017-08-02 20:13:13 +10:00
Vas Crabb
5d6815b6de rather crude way to override cache control header (nw) 2017-08-02 01:02:07 +10:00
Vas Crabb
14642adc5a minimaws web mode enhancements:
* 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.
2017-08-02 00:41:09 +10:00
AJR
ac06279df0 Create explicit i386dasm include for x86 DRC (nw) 2017-08-01 00:55:59 -04:00
Vas Crabb
01decf78b0 need this for debug trace logging on DRC cores (nw) 2017-08-01 14:37:05 +10:00
AJR
3b4315a4b5 Fix single build for i386-based drivers (nw) 2017-07-31 19:53:12 -04:00
Vas Crabb
8981b40bd9 Add "minimaws" sample script demonstrating how to do some tasks with
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.
2017-08-01 02:55:25 +10:00
yz70s
5ebe819cce In the windows debugger log window add a Log/Clear menu to remove all logged messages (nw) 2017-07-30 19:09:59 +02:00
Vas Crabb
3a5c5d15c7 Add support for layout item groups, replace simple_list with more
appropriate containers, remove misleading const qualifiers, reduce
repeated XML walking.

(nw) Groups aren't parameterised, so they aren't as useful as they could
be (yes, it's on my TODO list).  However, it's already useful for
putting a common set of elements in multiple views, potentially at
different locations/scales.  See intlc44.lay and intlc440.lay for
examples of the level of copypasta this can eliminate.  Be aware that
groups with explicit bounds don't clip thair content, it's only used for
calucating the transform matrix.
2017-07-29 15:17:14 +10:00
RobertoFresca
7d3e01bc57 New machines marked as NOT_WORKING
----------------------------------
Unknown French encrypted game [Roberto Fresca, Arzeno Fabrice]
2017-07-28 19:59:49 -03:00
arbee
c3d5b9856d New machines added as MACHINE_NOT_WORKING
-----------------------------------------
Kurzweil K2000 [David Ryskalczyk, R. Belmont]
2017-07-27 22:19:20 -04:00
AJR
dab683e78f New 74LS259/9334/CD4099 devices
These humble 16-pin logic devices were commonly used in 8-bit arcade games to control coin counters/lockouts, IRQ flipflops, graphics banking, slave CPU reset lines, discrete audio triggers, screen flipping, serial EEPROMs and much else. Over 100 drivers and a few bus devices have been updated to use the new implementation, and a great deal of research has gone into documenting the physical location of these devices on actual PCBs in the source. Write handlers have been provided for both orthodox and somewhat less conventional memory mappings.

Incidental to this update, coin counters and/or lockouts have been added to Atari System 1 games, Basketball, Gauntlet, Gyruss, Hana Yayoi, Hole Land, Jr. Pac-Man, Mahjong Sisters, Pooyan, Roc'n Rope, Squash, Thunder Hoop, Time Limit, Time Pilot '84 and many others. This also cleans up coin counter behavior in Sauro and Rally Bike.

(nw) The purpose of committing this change, which has been several months in the making, early in the 0.189GIT cycle will be to allow time for fixing potential regressions; I've fixed a number of drivers that lost sound from this for various reasons (hnayayoi.cpp having missing or garbage ADPCM was particularly painful, since the three games in that driver all work slightly differently), but I can't test all affected drivers exhaustively. @Tafoid, don't bother running automated screen capture comparison tests on this, as many drivers are now expected to have the screen flipped for the first few seconds after reset.
2017-07-25 11:21:43 +10:00
arbee
90abd22229 New machines added as MACHINE_NOT_WORKING
-----------------------------------------
Access Virus A [R. Belmont, tbd]
Access Virus B (Ver. T) [R. Belmont, tbd]
Access Virus C [R. Belmont, tbd]
Access Virus Rack [R. Belmont, tbd]
Access Virus Rack XL [R. Belmont, tbd]
Access Virus Classic [R. Belmont, tbd]
2017-07-23 20:18:43 -04:00
Robbbert
769c2af968 (nw) Fixed the build. 2017-07-24 01:46:50 +10:00
arbee
8e3dc90e93 New machines added as MACHINE_NOT_WORKING
-----------------------------------------
Monomachine MK2 [R. Belmont, tbd]
Machinedrum MK2 [R. Belmont, tbd]
2017-07-23 10:01:07 -04:00
hap
65179c6a71 Merge pull request #2500 from DavidHaywood/180717
gaelco / ds5002fp changes:
2017-07-22 21:13:00 +02:00
Joshua Root
97d5034d1b Fix include path with USE_LIBSDL on macOS
The cflags will contain an include path ending in "SDL2", not just "SDL", and removing just the latter leaves a stray "2" on the end.
2017-07-22 22:27:34 +10:00
David Haywood
f509ff4156 tiny build should be ok now (nw) 2017-07-19 19:09:17 +01:00
David Haywood
a081b6f24a gaelco / ds5002fp changes:
- made ds5002fp store internal ram and sfr registers to nvram as they're battery backed
- this includes the 'configuration' details which are actually programmable, so don't belong in the 'MACHINE_CONFIG' section but rather as part of the default NVRAM
- as the exact format of the NVRAM storage is not known, and as not to break compatibility with the 'wrally' set Gaelco offer these bytes are now configured in the ROM LOADING like default NVRAM.  Slightly awkward, but probably the best way.
- made the SRAM (external to DS5002FP, but still powered by the same battery) also save content, some games actually use it to store scores etc. as well as the game code.
- cleaned up the Touch and Go Dallas dump, and added some preconfigured internal RAM so that it actually loads the score data from the SRAM properly
- prepared all other drivers for the adding of the SRAM dumps, removing old 'never going to work' simulation code in the process.  To do this a wrapper / interface device for the Gaelco Dallas + SRAM box was created.

out of whatsnew
Alligator Hunt was dumped and works, but not yet added, want to verify on a 2nd PCB first as the process does corrupt some bytes and a couple had to be handfixed, so the only way to know for sure is multiple dumps.
2017-07-19 18:28:29 +01:00
cracyc
c2955ba3e4 alphatro: connect hrq (nw) 2017-07-18 08:44:06 -05:00
superctr
4a3d50af27 New not working machine
TG100 [vampirefrog, superctr, bmos, Valley Bell]
2017-07-18 00:36:45 +02:00
Joakim Larsson Edstrom
4ae48e9865 sda5708: NEW DEVICE Siemens SDA5708 8 character 7x5 dot matrix LED display (nw) 2017-07-17 13:45:16 +02:00
angelosa
c2a910013e Wrote a new device container for nichibutsu sound HW, merged usage for csplayh5.cpp and niyanpai.cpp [Angelo Salese] 2017-07-16 18:34:07 +02:00
James Baicoianu
785e6f2fc9 Export soft_reset, hard_reset, exit, load, and save functions for Emscripten builds 2017-07-15 15:17:29 +10:00
James Baicoianu
15c2bb0c08 Fix save/load states in Emscripten build (#2470)
* Fix save/load states in Emscripten build
* Simplified Emscripten integration points
* Moved standalone JS functions to be static member functions of running_machine
* Improved Emscripten main loop
* Use convenience functions for cleaner code

As an added bonus, this now allows for proper shutdown of the running machine when running in the Emscripten environment - previously, attempts to exit the program were just being ignored.
2017-07-15 14:00:09 +10:00
arbee
325f2add3f New systems added as MACHINE_NOT_WORKING
----------------------------------------
Sharp FontWriter FW-700 (German) [R. Belmont, rfka01]
2017-07-14 22:18:36 -04:00
Scott Stone
0448ff4e26 Add sound cores needed to allow virtual subtarget to compile (nw) 2017-07-14 15:50:53 -04:00
Vas Crabb
7892bf71f9 intellec4: implement imm4-22 program/data storage module 2017-07-15 00:03:34 +10:00
Vas Crabb
641d0ac7a3 intellec4: implememnt PROM memory module 2017-07-13 18:34:57 +10:00
Vas Crabb
f1b30abacf intellec4: add high-speed paper tape reader card (installed in slot j7 by default, select with J command for loading BNPF/HEX) 2017-07-13 03:28:04 +10:00
Vas Crabb
95906048ab INTELLEC 4: implement front-panel PROM programmer 2017-07-12 19:58:33 +10:00
Vas Crabb
3353592d00 remove vestigial exception class (nw) 2017-07-11 03:00:24 +10:00
Michael Zapf
7d98022797 ti99: Moved Hexbus one level up 2017-07-10 17:49:16 +02:00
Patrick Mackinlay
f91404a088 i82586: intel 82586/82596 ethernet controllers, skeleton only (nw) (#2456)
* i82586: initial commit, skeleton only

* oops (nw)

* i82586: added databook references

* use address space for memory access
2017-07-10 13:11:28 +02:00
Patrick Mackinlay
65a381c706 interpro: serial dma [P. Mackinlay]
* interpro: serial dma

* implemented basic serial dma
* switch to ncr53c94
* initial ethernet preparation
* timer-based dma

* oops (nw)
2017-07-10 08:40:50 +02:00
cracyc
b98e5d5284 compc: move commodore pcs to own file and get them booting (nw) 2017-07-09 17:13:45 -05:00
Joakim Larsson Edström
28b8120788 Merge pull request #2452 from JoakimLarsson/fccpu1_3
New device: MC14411 Bit Rate Generator
2017-07-08 23:48:01 +02:00
AJR
466d414d9d megadpkr: Further improvements and cleanups (nw)
- Merge driver with goldnpkr.cpp source to get working sound (graphics and sound should be identical)
- Add version numbers to set names
- Promote megadpkrb to WORKING (with one caveat)
2017-07-08 15:48:57 -04:00
Vas Crabb
d18aa3e097 never hurts to srcclean (nw) 2017-07-09 03:21:32 +10:00
Vas Crabb
9ed831e0a6 (nw) notes, coverity complaints, INTELLEC 4/MOD 4 layout, detect duplicate bounds/color in layouts 2017-07-09 01:50:54 +10:00
Vas Crabb
1eb3ffe15c work around python version differences (nw) 2017-07-09 00:12:58 +10:00
fulivi
5201a7f6bf Begin of HP80 emulation (#2448)
What works:
* HP85A machine with 16K of RAM
* Capricorn CPU works
* Keyboard works (with minor issues)
* CRT text / graphics modes work (correct speed is not emulated yet so service ROM complaints)
* BASIC is usable

What is missing (and I'll have hopefully working soon):
* HW timers
* Beeper
* Integral printer
* DC100 cassette drive
* Extension ROMs
* I/O modules (especially the HPIB interface so that we can hook up floppy drives)
* Other models in the family (e.g. HP86)
2017-07-08 19:31:42 +10:00
Vas Crabb
d97c4f9d9f Do substantial validation of internal layouts at build time 2017-07-08 18:30:43 +10:00