* Disassembly names Monitor ROM entry points, I/O locations, and common zero-page locations
* Disassembly shows ProDOS calls with the call name and lets you step completely over them
* new WORKING machines
---
Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 21 external donators]
Spider-Man (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 21 external donators]
Dora the Explorer - Race to Play Park (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 21 external donators] (previous 'Race to Play Park' was renamed to 'Nursery Rhyme Adventure' last week)
new WORKING software list additions
---
jakks_gamekey_mv:bcatdoc Black Cat & Doc Ock [Sean Riddle, 21 external donators]
* notes (nw)
* actually demote jak_pooh for now, one of the minigames is very broken (nw)
* give jak_sdoo a menu button (nw)
* give default set of inputs a pause / menu button too (nw)
* describe problem better, half of the issue is a DRC bug (nw)
* new NOT WORKING
---
Excite Boxing (Japan) [Sean Riddle, Peter Wilhelmsen]
* new WORKING machines
---
Nicktoons (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 22 external donators]
new WORKING software list entries
---
jakks_gamekey_nk:volbird Nicktoons Vollyball & Birdie Putt
new NOT WORKING machines
---
Dream Life [Sean Riddle]
One Piece - Virtual Punching Battle (Japan) [Sean Riddle, Peter Wilhelmsen]
* new machines marked as NOT WORKING
---
Challenge Ai-chan! Excite Ping Pong (Japan) [Sean Riddle, Peter Wilhelmsen]
probably just needs inputs mapping
* new NOT WORKING machines
---
Play TV Soccer [Sean Riddle, Peter Wilhelmsen]
again, needs inputs
* new WORKING software list addition
---
jakks_gamekey_nk:popsnow Spongebob Sponge Pop & Snowball Showdown (15 AUGUST 2005 D) [Sean Riddle, 22 external donators]
* xavix - support global tile flipping
* new NOT WORKING software list entries
---
monon_color:bigwolf Xǐyángyáng yǔ huītàiláng-juézhàn miē xīng [Peter Wilhelmsen, zhongtiao1]
* new NOT WORKING software list additions
---
sega_beena_cart:fpc Fresh Pretty Cure [Sean Riddle, Team Europe]
New WORKING machines
---
Ms. Pac-Man 5-in-1 (Ms. Pac-Man, Pole Position, Galaga, Xevious, Mappy) (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, Peter Wilhelmsen, 19 external donators]
Disney Princess (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 20 external donators]
New WORKING Software List entries
---
jakks_gamekey_nm:nrxdig New Rally X & Dig Dug [Sean Riddle, Peter Wilhelmsen, 19 external donators]
note, Pole Position is not really very playable at the moment due to raster rendering glitches, the rest are, aside from some obvious sound issues (nw)
New machines marked as NOT WORKING
---
Wheel of Fortune (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 20 external donators]
There is a video rendering glitch (lkely another off by x lines raster issue) causing the letter selection text to not render properly, it appears the letters scroll instead of the text scroller below, which doesn't. (nw)
-spg2xx: Make rowscroll offset configurable, can't find register to control it, but JAKKS games need 0, while the chinese stuff needs 15 (nw)
-jak_wof: Marked as working, analog wheel isn't emulated, but is optional (I don't see where / how it maps) (nw)
-jak_wof: Improved inputs (nw)
-gamekeys now save to the gamekey seeprom not the system one (nw)
* new WORKING Software List entries
---
gamate:fortress Fortress of Fierceness [Peter Wilhelmsen]
new NOT WORKING Software List entries
---
ekara_japan_a:a7 A-7 Pichi Pichi Pitch Pure Chapter 3 (Japan) [Peter Wilhelmsen, Sean Riddle]
ekara_japan_a:a5 A-5 Pichi Pichi Pitch Karaoke Party (Japan) [Peter Wilhelmsen, Sean Riddle]
ekara_japan_a:a4 A-4 Pichi Pichi Pitch Pure Chapter 1 (Japan) [Peter Wilhelmsen, Sean Riddle]
ekara_japan_a:a1 A-1 Pichi Pichi Pitch vol.1 (Japan) [Peter Wilhelmsen, Sean Riddle]
new NOT WORKING clones
---
Play 2000 (Super Slot & Gran Tesoro) (v7.0i) (Italy) [Peter Wilhelmsen, Morten Shearman Kirkegaard]
* new WORKING machines
---
Dragon Ball Z (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 19 external donators]
* flag (nw)
* allow 'a7' to boot (nw)
* move XaviX2 sets to new files (nw)
* new machines marked as NOT WORKING
---
Let's TV Play Naruto [Peter Wilhelmsen, Sean Riddle]
This is another XaviX2 thing.
* new NOT WORKING machines
---
C2 Color [zhongtiao1]
35 in 1 Super Twins [Sean Riddle]
LeapPad [Sean Riddle]
My First LeapPad [Sean Riddle]
-leappad: Added software lists. [David Haywood]
-c2color: Added software lists. [David Haywood]
leappad note: Currently BIOS is not dumped for LeapPad, but some carts are, BIOS is dumped for My First LeapPad, but not carts. (nw)
c2color note: Again the internal ROM isn't dumped, but we need the placeholder driver for the software list hookup, 2 carts are dumped. (nw)
-vsmile: Added softlist loading for some of the trickier vsmile cases based on new dumps from Sean Riddle. Note, the Vsmile Motion game is 16MB so clearly needs some kind of banking. (nw)
----------------------------
V.Smile Baby (US) [Ryan Holtz]
New working clones
--------------------
V.Smile Baby (Sweden) [Ryan Holtz, Sean Ridde, Clawgrip]
-vsmileb: Split into a separate CPP file. Identified input codes and hooked up inputs. [Ryan Holtz, bmx]
* new NOT WORKING
----
Storio [Team Europe]
created this so that Clawgrip can add to it
* add seemingly pointless line to seemingly pointless file
* move info (nw)
* vtech (nw)
-vsmileb: Found enough port bits to show the VTech logo and V.Smile Baby intro. No game boots yet. [Ryan Holtz]
-spg2xx: Added separate logging for external interrupts and address mapping. [Ryan Holtz]
* new NOT WORKING --- Classic Arcade Pinball (JAKKS Pacific TV Game) [Sean Riddle, David Haywood]
* move to new driver instead (nw)
* minor note updates (nw)
* map inputs in matelcs (currently needs a hack to boot, so won't show anything yet) also removed a pointless bitswapping in a read function for some other stuff in the driver, and just correct the ports instead
* fix a typo (nw)
* note (nw)
* new NOT WORKING
---
Play TV Buckmasters Huntin' (NTSC) [Sean Riddle, Peter Wilhelmsen]
(gun needs mapping)
* new NOT WORKING
---
Track & Field Challenge [Sean Riddle, Clawgrip]
HELP! can't figure out what architecture this is, need to identify CPU type etc.
* rad_hnt digital controls (nw)
* more digital inputs (nw)
* change CPU type to G65816 based on feedback
* improve notes (nw)
- Add custom keyboard port and emulate most of the Expanded Typewriter Keyboard
- Add unidirectional printer port
- Use addressable latch devices to control various things, including disabling display during RAM test
- Hack to pass non-volatile memory test on uts10
* new NOT WORKING ClickStart [Sean Riddle, Clawgrip, TeamEurope] + a Software List for it
seems to be something missing, jumps to outside of code area, maybe secondary small internal ROM of CPU. I did think the dumps were half size for various reasons, but there is a checksum in the footer of each one that matches the data (even if another checksum in the header for some of them we can't match) Possible BIOS is wrong tho as that checksum in the footer doesn't match by quite a significant amount.
most games show something just by putting a 'RET' opcode in the upper areas it attempts to jump to.
Ryan credited in driver since it's more or less just a stripped down copy of vsmile.cpp
* more correct (although does less now because of extra checks in new code) (nw)
* (nw)
* (nw)
* XaviX work
new Software List items [Sean Riddle, David Haywood]
ekara_japan_d:dc0002 BAT Volume 6 (Japan) (DC0002-BAT)
ekara_japan_d:dc0005 TV Pop Volume 9 (Japan) (DC0005-TPJ)
ekara_japan_p:pc0001 BHT Volume 4 (Japan) (PC0001-BHT)
ekara_japan_p:pc0003 ENB Volume 1 (Japan) (PC0003-ENB)
ekara_japan_g:gc0001 BAT Volume 1 (Japan) (GC0001-BAT)
ekara_japan_g:gc0016 TV Pop Volume 5 (Japan) (GC0016-TPJ)
ekara_japan_web:ekaraweb12 e-kara Web cartridge 12M (blank) (Japan)
new clones
e-kara (US?, NTSC, set 2) [Sean Riddle]
enable support for 'p' type cartridges for use with ddrfammt [David Haywood]
various documentation improvements [Sean Riddle, David Haywood]
(there are also 3 bad dumps, currently commented out, will replace later)
* improved filenames (nw)
* for later (nw)
* checkpoint (nw)
* seeprom stuff (nw)
* (nw)
* correctly saves, does not correctly reload, also promote popira and ddrfammt to working
* new Software List entries [Sean Riddle, David Haywood]
ekara_japan:ec0001 J-Pop Mix Volume 1 (Japan) (EC0001-JPM)
ekara_japan:ec0032 ANM Volume 2 (Japan) (EC0032-ANM)
ekara_japan:ec0037 ENK Volume 4 (Japan) (EC0037-ENK)
ekara_japan:ec0046 J-Pop Mix Volume 20 (Japan) (EC0046-JPM)
ekara_japan:ec0005 J-Pop Mix Volume 5 (Japan) (EC0005-JPM)
ekara_japan:ec0007 1976-78 Volume 1 (Japan) (EC0007-G76)
ekara_japan:ec0079 ETZ (Japan) (EC0079-ETZ)
ekara_japan:ec0082 Matthew's Best Hit Selection (Japan) (EC0082-MBH)
ekara_japan:ec0009 ANM Volume 1 (Japan) (EC0009-ANM)
ekara_japan_en:en3 EN-3 (Japan)
ekara_japan_m:mc0013 KSM Mini Volume 5 (Japan) (MC0005-KSM)
ekara_japan_s:sc0012 SAI (series 3) Volume 3 (Japan) (SC0012-SAI)
ekara_japan_s:sc0004 SAI (series 1) Volume 1 (Japan) (SC0004-SAI)
ekara_japan_g:gc0002 BHT Volume 1 (Japan) (GC0002-BHT)
ekara_japan_g:gc0003 BAT Volume 2 (Japan) (GC0003-BAT)
ekara_japan_g:gc0004 BHT Volume 2 (Japan) (GC0004-BHT)
ekara_japan_p:pc0004 BHT Volume 7 (Japan) (PC0004-BHT)
* (nw)
* notes (nw)
* (nw)
* this register seems to be r/w (nw)
* fix crash in popira when pausing (requires register readback)
* save state stuff (nw)
* give excite fishing some inputs while I'm making misc minor changes (nw)
* also promote the Nostalgia games, and Card Night, as they have simple digital inputs and seem to work
* (nw)
* copy+paste modernization
* 2 more dumps (nw)
* doesn't seem to have an seeprom (nw)
* preliminary taikodp controls (nw)
* P4 uses SEEPROM (nw)
* rejig some bases (nw)
-sound/discrete, okim6295: Removed MCFG macros. [Ryan Holtz]
-norautp, osi, audio/mario: Removed MACHINE_CONFIG macros. [Ryan Holtz]
-vsmile: Split into its own driver from vii.cpp. [Ryan Holtz]
-vii: Fixed broken controller inputs. [Ryan Holtz]
-konamim2: Massive update. Most games work, but are still marked non-working due to rare MAME crashes in the PPC DRC. [Phil Bennett, Ryan Holtz]
Marked as non-working because the correct terminal isn't emulated, so we
can't fully verify that everything works. Run it with '-ser terminal' to
see the garbled output.
This also adds the clone Grundig FL-100.
* Added new driver: HP 3478A Multimeter
WIP, machine not working, skeleton, highly incomplete. Compiles, that's
about all.
* hp3478a: implement ROM banking
code runs "properly" at least to the CAL RAM check (fails, RAM not
implemented)
* hp3478a: some IO work
Interpret CS lines for external accesses (GPIB, CAL RAM, DIP switches).
Also, remove MCFG_ stuff
Also, use logmacro.h stuff
* hp3478a: partial emulation of LCD
The main CPU has a serial link to the LCD module. This WIP splits
commands and data mostly successfully (still some bogus shifting which
would be fairly easy to ignore). None of the commands are implemented
yet, and no actual display is generated yet.
Includes unrelated tweak : only change bank when the A12 line changes.
* hp3478a: added LCD rendering !
code shamelessly stolen from tranz330 and roc10937 drivers.
Not clickable yet.
* hp3478a: implement CAL NVRAM
Finally. IO mapping has provisions for the DIP switches as well as i8291
GPIB interface registers.
* hp3478a: improve LCD rendering
Remove some artifacts: with the LCD "not selected", some data is sent on IWA (probably
to purge a shift register ?) but was parsed with the last m_lcdiwa
state. Reset this everytime PWO is deselected.
Also parse decimal point, comma and "all segments".
* hp3478a: implement keypad
* hp3478a: CAL switch to write-protect NVRAM
* hp3478a: implement DIP switches
* hp3478a: fix self-test reset freeze (missing WDT)
There is an external WDT counter that is periodically reset by the CPU
in normal operation. When forcing a reset from the front panel, this
counter is allowed to overflow (20th bit, clocked at Xtal / 15), giving
a reset time of about 1.3s.
4D/20 is a Personal Iris. The IP15 ROM in this skeleton belongs to the IRIS POWER Series model 4D/4x0, so I've assumed that's what the driver should be for.
-mips3.cpp: Various changes: [Ryan Holtz]
* Added an #ifdef to display DPRINTF calls from the SGI O2 PROM.
* Switched R4000BE/LE, R4400BE, R4600BE, and R5000BE to 64-bit data bus.
* Fixed a bug that caused a crash with 64-bit data bus and the DRC.
-indy_indigo2.cpp: Moved a number of devices into HPC3. [Ryan Holtz]
-hpc3.cpp: Fixed an oversight with IRQs. [Ryan Holtz]
- Rename driver
- Remove skeleton QVT-102 we already had, add its alternate ROM to the
driver along with the keyboard MCU ROM
- Major gfx rendering update, supports all attributes but needs
verification
- Add NVRAM
-nscsi_cd.cpp: Added various new-SCSI CD-ROM devices which support 512-byte blocks by default. [Ryan Holtz]
-sgikbd.cpp: Added a rudimentary HLE SGI Indigo keyboard device. Still needs keys to be mapped. [Ryan Holtz]
-indigo.cpp: Various changes: [Ryan Holtz]
* Expanded logging.
* Enabled PIT8254 timer. Has the wrong clock value; the correct clock causes a hang.
* Improved RAM layout.
* Added stubs for DSP RAM and Entry-level graphics.
Two sample roms are missing, sad. Volume is not taken into account
yet (because the registers are not yet understood), pan is though.
Don't even think about reverb or effects :-)
Current code plays a scale in a loop. Comment the timer alloc in
machine_reset to kill that.
Demo song (missing lots of sounds, because roms): U then > until demo
then ENTER ENTER.
* [R9751] (Squashed) Early work on SMIOC emulation
commit 9b587be762abfd576e92792c612cd205c570924d
Author: Stephen Stair <sgstair@akkit.org>
Date: Tue Apr 10 19:41:55 2018 -0700
Connected SMIOC DMA to 68k
* SMIOC now reading bytes for serial from the 68k memory space successfully.
commit 0f801a05a3fa5b78768a1a2bcb9981466e8f2b0e
Author: Stephen Stair <sgstair@akkit.org>
Date: Tue Mar 27 18:31:32 2018 -0700
68k now running in lockstep with SMIOC for serial
* 68k now uses actual SMIOC as source of SMIOC status, so it waits for the SMIOC to complete commands before continuing.
* SMIOC DMA controllers now being asked to move bytes around
* "write character" (4100) commands to SMIOC are now completing and resulting in correct status being written and sent back to the 68k
* Every now and then the SMIOC stalls for a bit, it seems to be due to spending some time trying to communicate with the 8051 CPU (used to communicate with another cpu on the serial breakout box) that is not currently present in the emulated device.
Next Steps:
* We're going to move the terminal from the r9751 into the SMIOC, and hook it up to the DMA controllers as a hacky temporary solution.
* We need to emulate the 5xxxx memory range in SMIOC to proxy data to/from the 68k memory
* Then we'll start work on emulating the octal uart properly and hooking it up to RS232 channels.
commit ca91614fca3f43d87755d0c3439521276d7bfafb
Author: Stephen Stair <sgstair@akkit.org>
Date: Wed Mar 14 19:52:04 2018 -0700
Tinkering to get SMIOC further along
1) Enable 188 cpu to advance DMA immediatley if DRQ is held high when source synchronous DMA is started (It's not clear whether the DMA actually works this way yet)
2) Retrigger the DMA DRQ when a memory access is made to the DMA window (future work needed to proxy the reads/writes to the 68k's main memory) This is needed to support multibyte DMA reads/writes to the 68k window.
3) Reverse the bytes in the status register (based on current incomplete understanding of how this is encoded)
4) Connect the status register back to the r9751 on SMIOC status read
Current state: SMIOC's main board DMA state machine now completes the DMA transfer from the main board (With incorrect data), but we are still getting stuck.
Next steps: SMIOC is now hanging waiting on DMA to UART to complete, we need to implement some emulation of the UART and its connections to the surrounding 16 dma channels in order to make progress.
commit 62c1455c97a53ed970622e08cb03a225625914fd
Author: Stephen Stair <sgstair@akkit.org>
Date: Sun Mar 4 20:13:32 2018 -0800
Progress on emulating SMIOC
commit daee8498c5840417aee3ed9def0acfba5476335a
Author: Stephen Stair <sgstair@akkit.org>
Date: Sun Feb 25 20:02:32 2018 -0800
Working on bringing up SMIOC
Trying to get emulated SMIOC in lockstep with the main 68k.
commit 5a929fde90307040a0544682888f2f21a914b900
Author: Stephen Stair <sgstair@akkit.org>
Date: Wed Feb 21 20:06:27 2018 -0800
re-enable SMIOC, Logging improvements, first steps towards emulating on-board hardware.
commit f0c7a1665a18c99df5527ae45994f39f95223814
Author: Stephen Stair <sgstair@akkit.org>
Date: Sun Feb 11 16:26:31 2018 -0800
Emulation fix - Terminal now responds to input
commit ecff4035f3fdaa0329df46f99ccd516aa23ec8af
Author: Stephen Stair <sgstair@akkit.org>
Date: Tue Feb 6 19:00:35 2018 -0800
Hacky emulation of SMIOC
now successfully receiving serial characters!
commit 376bca90dff311d24e1f5014d8d6f0dc297bf671
Author: Stephen Stair <sgstair@akkit.org>
Date: Sun Jan 28 18:31:38 2018 -0800
Experimenting with SMIOC emulation
* Partial fixes for line state issues with persistent line values
When the AM9517 DMA controller mode is updated to change the polarity of DACK/DREQ, it doesn't update the DACK line values / request values (respectively).
This fixes this issue for one of the emulated devices in the file, but the other device has the same problem.
* Add skeleton of SCC2698B UART device
* Early progress on emulating SCC2698B Octal UART
Core structure for IO lines and writing registers is in place.
* Update address maps to new format.
* SCC2698b: Add tx/rx, baud rate generation
* Emulation improvements for scc2698b device
* MPP output pins emulated
* Improved logging for baud rate changes
* Channel configuration emulated
* Support for TX/RX Enable
* Started integrating new features into SMIOC
* Minor progress on the path to enabling new UART for SMIOC
* Resolved code issues related to upstream changes
* Working around an apparent problem with callbacks on sub-device devices
* Terminal added for serial port attached to SCC2698B UART.
* Things compile and seem to work.
* SMIOC: Serial is now outputting correctly through emulated SMIOC
Some glitches to work out, but this is nearly ready.
* AM9517a should not forget about input line status on master reset.
* Disable tracing
* SMIOC: Improving diagnostics and making some progress on the emulation
* Revised tracing in SMIOC and SCC2698B
* Improved tracing approach in r9751
* Minor progress towards working SMIOC emulation.
* [R9751] Update drivers to new code patterns after rebase
Rebased on latest mame, Fixed a few issues and updated the callback code patterns based on recent changes in devcb
* [R9751] Improve logging, fix interrupt race
Serial no longer drops output characters
* [R9751] Working on SMIOC emulation
Improved SMIOC emulation accuracy, Made some progress in getting through the disktool initialization sequence, but we are still hitting a problem - It looks like disktool should be resetting the SMIOC board when it starts, but the mechanism for this has not been found.
* [R9751] Improve tracing for system board registers
* [R9751] Improve SMIOC emulation
Still having some trouble with SMIOC but this seems to be an improvement.
SMIOC is now waiting for a status to be read before applying a new status, and mandatory parameter read logic is in place.
* [R9751] Incremental emulation improvements
the SMIOC failure was understood and fixed, and a new approach to getting the hardware to bootstrap correctly was implemented - Still having some problems with it though.
* [R9751] Fixed emulation issues
* Disktool now boots to the console
* UART receive only partly working, I don't think it's fully connected yet.
* [R9751] Further progress on SMIOC emulation
* Figured out the missing command parameter interface to the SMIOC board
* Still blocked because the SMIOC interface to the breakout board through an onboard 8051 is not emulated and the disktool software depends on properties coming from it.
* [R9751] Terminal is fully working for disktool
* Improved the emulation of the 80188 to 451 connection in order to reliably set a status bit disktool depends on.
* [R9751] Fix build after rebase
* [R9751] Cleanup, tracing improvements
* Remove second emulated terminal - SMIOC is now stable enough to run the terminal.
* Remove older and unnecessary emulation/tracing code
* r9751: Fix compile error and modify copyright holders
Zilog Z8038 FIO (FIFO Input/Output Interface Unit). Used to drive the parallel/printer port on the MIPS Rx2030. Passes basic diagnostic tests, but further work depends on progress in the mips.cpp driver.
A driver for machines made by MIPS Computer Systems, which used MIPS R2000, R3000 and R6000 CPUs and ran RISC/os (a port of UNIX System V Release 3). Initial focus is the RC2030 headless workstation. As of this commit, it gets part-way through its I/O processor diagnostics with output to a serial terminal.
* naming changes (nw)
* move stub audio related functions to their own file (nw)
* addressing notes (nw)
* control sprite mode with sprite reg instead of value set in init (nw)
* refactor a bit (nw)
* sprite DMA connects directly to spriteram, not through the main bus (nw)
* minor changes (nw)
* fix multiplier unit use in rad_madf (nw)
* implement 'text array / memory emulator' (nw)
* some naming (nw)
* code treats this like another palette entry (bg pen maybe)
* hphybrid: major overhaul to add the 09825-67907 variant
* hphybrid: adapted hp64k & hp9845 to revised hphybrid CPUs
* hp9825: first release of HP9825B emulator
* hphybrid: added 09825-67907 to unidasm
* hp9825: improved appearance of blinking cursor
* hphybrid: minor changes
* mwarr.cpp refactoring
* mwarr.cpp refactoring
* stlforce refactor (nw)
* use suggested syntax, unless there's something to actually modify instead of outright replace?
* ok, no need to signal that we're modifying a device at all, just modify it (nw)
* move includes as requested (nw)
* do stuff modern way (nw)
* namco checkpoint (including cam900 submission)
* move code into device (nw)
* start splitting DSP support code into devices (nw)
* fix crash (nw)
* prepare for further splitting (nw)
* move code for C67 based DSP PCB into it's own device (nw)
* survive F3 resets without crashing or breaking the 3D (nw)
* less magic numbers (nw)
* optional -> required
don't use fake bootstrap on older type, suspend CPU instead
* restore CPU yield hack for solvalou (nw)
* (nw)
* give galaxian3 some DSPs (nw)
* address hap's concern with a different workaround since MAME is awkward (nw)
* split namco21 driver into 3 drivers as the different configurations really are entirely different boardsets with similar components, not a real 'system'
emulated entire PCB set for driveyes ( http://www.tvspels-nostalgi.com/Bilder/PCB/Namco/driverseye_cage_inside.jpg ) although how the PCBs communicate is not yet known (C139 maybe, which might also be an MCU)
* remove empty file (nw)
* actually thinking about it, this is cleaner (nw)
* mark cybsledj as World instead, there's nothing about this set other than the CY1 code to indicate that it's a Japanese set, and I don't think the Namco codes represent region, just release order.
* newline (nw)
* newline (nw)
A skeleton for the Microsoft Jazz architecture, which was implemented in the MIPS Magnum 4000, Olivetti M700-10 and was the base/origin of several other MIPS ARC systems.
* added skeleton Inmos G300/G332/G364 device
* added skeleton NatSemi DP83932C SONIC device
* added skeleton MCT-ADR device
Also add notes to Sun keyboard emulation.
There's a hack to make the 1200 Baud mouse actually run at 9600 Baud.
This is necessary because the SCC is incorrectly expecting 9600 Baud
rather than 1200 Baud. I don't have time to fix the SCC, so I'd
appreciate it if someone else would.
There's no way it should be expecting 9600 Baud on the mouse port.
Solaris 2.3 and later support 1200 Baud and 4800 Baud, and earlier
versions support 1200 Baud only. No version of Solaris works with a
9600 Baud mouse.
The workaround allows the mouse to be used in SunView on sun4_60 - I
haven't tested any other drivers.
* split namco c169 roz chip from namcos2 by making it a device (nw)
some reorganization still needed (eg move init stuff to config)
* push on this way, old non-device code was working by chance (nw)
* use std::fill instead of memset
* tidy (nw)
* split out the c355 sprites into a device too (nw)
* this isn't used (nw)
* also not used (nw)
* split out c123 tilemap chip
* modern here too (nw)
* namco system2 sprite chip is a device, move content of machine/namcoic.h to a text file in 'etc' as it's not really code at all, and the cpp file is no longer needed
* Namco System 2 ROZ is a device (so only gets created on games that have it, avoids a crash in old code in tilemap viewer)
* untangle namcofl from namcos2 now that things are devices
* untangle namconb1 from namcos2
* untangle gal3.cpp from namcos2
* untangle namcos2 and namcos21 - part 1 (ugly part)
* untangle system2 and system21, part 2
* use c68 for c68 based games in namcos21.cpp and some cleanup / notes / reorganization / default nvrams
* naming cleanups (nw)
* c123 - move init to device config
* c169 init -> device config
* c355 init -> device config
* new clones
Four Trax (Japan) [ShouTime, The Dumping Union]
note, one of the gfx roms in the MAME set has an 'fx2' label, it should be verified.
also replaced the ROMs for the fourtraxa set, the old ones had a 0x00 fill instead of a 0xff fill but were otherwise identical, it's a weird mod of the World set that hides most of the advertising banners, replacing them with generic ones, presumably for legal reasons?
- Add and identify some extra IOC firmware revisions (v1.3 from Bitsavers)
- More descriptive names for ROMs of latest IOC revision (from Bitsavers)
imds: Remove skeleton driver; ROMs preserved as v1.4 of imds2ioc
* Add huc6230 Emulation
huc6272.cpp : Add ADPCM transfer, Add save states
PC-FXGA for PC-9801 C Bus is released in December 1995 in Japan, Correct metadata
* huc6272.cpp : Fix ADPCM address
* huc6230.cpp : Simpler interpolate
* huc6230.cpp : Fix clamp
huc6272.cpp : Fix ADPCM nibble
* huc6272.cpp : Fix data type
* Revert pcfxga year; PC-FXGA for PC9801 C-bus is not dumped?
- split into separate sources
- fixed paste
- added uart and rs232
- added baud rate clock or brg depending on hardware
- fixed uart status on sys80
- fixed cassette waveform
- lots of tidy up
- Added FDC card.
- Cursor now generated by 6845.
New working machines
--------------------
Acorn System 3 (6502 CPU)
Acorn System 5
New working clones
------------------
Acorn System 2
Acorn System 4
* Added ps2timer device to encapsulate Playstation 2 timers.
* Temporarily hacked R5900 core to always have scratchpad RAM mapped at 0x70000000.
* Added reference counting to divtlb so that it does not unmap pages that are still shared with other entries.
* Added a considerable amount of logging to ps2sony.cpp.
-mips3: Added basic Emotion Engine support. [Ryan Holtz]
* Added S bit to TLB mapping.
* Added support for VSUB, VIADD, VSQI, VISWR, VOR, LQ, SQ, MFSA, MTSA, MFHI1, MFLO1, MULT1, DIV1, DIVU1, PEXTLW, PADDUW, PMFHI,
PMFLO, PCPYLD, PCPYUD, SQC2, LQC2 opcodes. [Ryan Holtz]
* Remove vram_rw and ctrl_rw wrapper functions
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat: replace hardcoded display width by m_fb_width
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat: prepare topcat for multi plane operation
framebuffer vram is only 1 bit wide.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* 98544: set single topcat plane
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* add nereid mapper used on HP98543/98545 graphic cards
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* prepare for multi-topcat operation
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* add HP 98543 4 plane graphics card
* hp9k_3xx: add hp98543 card
* topcat,nerid: disable VERBOSE
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* hp98543: use required_device_array
* 98543: use required_region_ptr
* 98544: use required_region_ptr
* topcat: add save state support
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* nereid: add save state support
* hp98544,hp98543,topcat: use shared memory space
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* nereid: remove redundant variable
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat, nereid: remove trailing underscore from include guard
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat,hp98543: code style fixes proposed in PR
Signed-off-by: Sven Schnelle <svens@stackframe.org>
- Implemented banking and system/user mode switching.
- Added PolyBASIC 3.0, 3.1, and 3.4.
New clones marked as NOT_WORKING
--------------------------------
Poly 1 Educational Computer (early) [Nigel Barnes, Andrew Trotman]
Poly 2 Learning System [Nigel Barnes, Andrew Trotman]
Poly Development System [Nigel Barnes, Andrew Trotman]
Merged with strnskil.cpp, with modernization and cleanups. (nw)
Add MCFG_SCREEN_RAW_PARAMS. (nw)
Added coin counters to markham, strnskil, banbam and clones.
* proposal: move z80daisy* to devices/machine
Seems to me this is a machine, not a CPU? Main reason was to stop the Z80 CPU from being dragged into systems that don't have one just because they use a Z80 family peripheral.
* missed this one (nw)
* missed a spot (nw)
* interpro: slotify mouse (nw)
Needed to make the mouse a slot device to enable it to be connected to graphics boards under development.
* add validity check (nw)
* bt45x: new devices
Basic implementation of various Brooktree RAMDAC devices. Two of these (bt457, bt458) are used by InterPro graphics boards currently under development, the others are unused/untested at this point.
* bt45x: tweak descriptions (nw)
Start replacing special device macros with additional constructors,
starting with ISA, INTELLEC 4 and RS-232 buses.
Allow an object finder to take on the target of another object finder.
(For a combination of the previous two things in action, see either the
INTELLEC 4 driver, or the Apple 2 PC Exporter card. Also check out
looping over a device finder array to instantiate devices in some
places. Lots of things no longer need to pass tags around.)
Start supplying default clocks for things that have a standard clock or
have all clocks internal.
Eliminate the separate DEV versions of the DEVCB_ macros. Previously,
the plain versions were a shortcut for DEVICE_SELF as the target. You
can now supply a string tag (relative to current device being
configured), an object finder (takes on the base and relative tag), or
a reference to a device/interface (only do this if you know the device
won't be replaced out from under it, but that's a safe assumption for
your subdevices). In almost all cases, you can get the effect you want
by supplying *this as the target.
Eliminate sound and CPU versions of macros. They serve no useful
purpose, provide no extra checks, make error messages longer, add
indirection, and mislead newbies into thinking there's a difference.
Remove a lot of now-unnecessary ":" prefixes binding things relative to
machine root.
Clean up some miscellaneous rot.
Examples of new functionality in use in (some more subtle than others):
* src/mame/drivers/intellec4.cpp
* src/mame/drivers/tranz330.cpp
* src/mame/drivers/osboren1.cpp
* src/mame/drivers/zorba.cpp
* src/mame/devices/smioc.cpp
* src/devices/bus/a2bus/pc_xporter.cpp
* src/devices/bus/isa/isa.h
* src/devices/bus/isa/isa.h
* src/devices/bus/intellec4/intellec4.h
- High level emulation of serial keyboard (only sort of works; probably should be less sophisticated)
- Add double height and double width attributes
- Adjustable start of screen pointer (necessary for SET-UP mode)
- Reconfigure screen for 80/132-column and 50/60 Hz modes
dikeyboard: Add scan_complete callback (nw, sort of hacky but cit101 keyboard works worse without it)
- Use device_resolve_objects to resolve callbacks in output_latch_device (nw)
Note that this renaming is not just for human convenience; genie seems to get confused by modifications to a header called latch.h and decides to recompile everything involving gen_latch.h as well.
* xavix - tidy ups, reorganization, current notes etc.
* didn't mean to push a copy (nw)
* shift some common code around for palette handling (nw)
* lean less heavily on memory system (nw)
* revert 'shift some common code around for palette handling (nw)' to be revisited later.
* add missed include guards (nw)
* new machines marked as NOT WORKING
Skannerz TV [Sean RIddle, Peter Wilhelmsen]
This will need the communication protocol with the barcode scanner unit reverse engeering (the scanner unit has it's own MCU that isn't dumped and for which we have no method of dumping) this also probably means it will need improvements to the general vii.cpp handling of interrupts and serial ports (which Cricket needs too)
also made rainbow islands extra a parent, since it has it's own game code, own c-chip and is generally considered a semi-sequel rather than a bugfix / revision of the original game.
(best I can tell behavior matches the differences between original and extra that were present in the simulation at least, but obviously the real chip could be hiding more secrets)
* use real dumped c-chip for bonzeadv, remove simulation [Team Caps0ff]
this most likely fixes MT00377, MT00205
* typo (nw)
* missed a file (nw)
* no longer fights (nw)
* tidy here too (nw)
* c+p typo (nw)
* c-chip: use dumped c-chip for Volfied [Team Caps0ff]
interrupt source still needs to be verified, but I've tested this to the end and it works fine with the real dump.
* less static (nw)
* hook the coin counters back up (nw)
* tweaks (nw)
* was too close after tweak (nw)
* add support for dumped superman c-chip too, removed simulation [Team Caps0ff]
also made the 68k and upd7810 use different banked windows into the RAM, this seems to prevent the fighting I was seeing, and also superman suggests that it might be correct, as it puts response values in a bank for the 68k but then changes the window so the 68k can't see them. needs further testing tho (other c-chip dumps might tell us more later)
* use the 68k side handlers on megab too, even if it really doesn't care about anything (nw)
* remove debug structure (nw)
* Fixed building using system utf8proc
* Fixed building using system portaudio
* Allow using system-wide asio headers (1.11.0 or higher required).
* Allow using system-wide glm headers
* Allow using system-wide rapidjson headers
* Put all ext_includedir calls together
* Fixed build failure when SOURCES is defined
* Fixed building using system utf8proc
* Fixed building using system portaudio
* Allow using system-wide asio headers (1.11.0 or higher required).
* Allow using system-wide glm headers
* Allow using system-wide rapidjson headers
* Add 89 in 1 mini console
* Add mc_cb280, similar to sy889
* More VTxx ROMs
* Add more nes_vt systems
* Add SY888B
* Add support for VTxx systems with scrambled instructions (FC Pocket, DGUN2573)
* Add support for Family Pocket, and more FC Pocket games
* Small fixes and reclassifications (nw)
* Support for VTxx scrambled banking (thanks NewRisingSun for help)
* New palette code from NewRisingSun, etc
* Various VT03 fixes, several systems including ZDog now working
* nes_vt comment/status updates (nw)
* Refactor m6502_vtscr (nw)
* fix/tidy tvboy driver (nw)
* missed file (nw)
* framework for adding 'gamebooster' (need to figure out how it actually works / maps tho) (nw)
(code based on zx spectrum expansion port code)
* (nw)
* lost a line (nw)
* allow it to run (nw)
* continued work (nw)
* mame64 psj -parallel gamebooster -cart tetris now works
* rm outdated (nw)
* remove unneeded code (nw)
* limit accesses, log unexpected ones, might have custom banking (nw)
* write bytes in an order that keeps the gb code happier , sml boots (nw)
* various reorganization of radica and vtech stuff
* missed this (nw)
* correct file (nw)
* newlines and stuff (nw)
* less c_str (nw)
* worse (IMHO) filenames (nw)
* format got messed up (nw)
* some bits for golden tee (nw)
* get us renderng something in rad_gtg (nw)
* some basic inputs (nw)
* further improvements to the Golden Tee Home Edition (radica eu3a14)
added Radica Sensible Soccer [Sean Riddle]
* tilebase handling (nw)
* golden tee home video improvements (nw)
Revert "Removal of voltage_regulator_device (nw)"
This reverts commit 1af133752a.
Revert "New way to provide DAC reference inputs (nw)"
This reverts commit 1c6a7ab40c.
* new NOT WORKING
Space Invaders (Radica, Arcade Legends TV Game) [Team Europe, Sean Riddle]
(not sure what this is really called, it's a 5-in-1, it probably contains a customized 6502 core, or there should be an internal bootstrap rom)
* typo (nw)
* based on a jump to e092 which looks like it should maybe skip an opcode this seems a more possible mapping (nw)
* actually vectors are right there (nw)
* memory map improvements (nw)
* various notes etc. (nw)
* various banking bits (nw)
* actually remember to hook up the read (nw)
* clearly inputs (nw)
* show that the game is actually running, even if we don't understand the video format, there's clearly some kind of tilemap structure in ram (nw)
* this is bitmap ram on qix (nw)
* didn't mean to change this (nw)
* gfx are stored more like texture pages?! (nw)
please people, remember to keep source UTF-8 and if you're committing on behalf of others, clean up indents to meet MAME conventions
anyone can run srcclean over a submission and see what will get hit
promoted China set of Oriental Legend 2 to working
promoted Knights of Valour 2 New Legend to working
as each game/region requires a valid default card in order to save said cards are part of romset.
(there's probably a cleaner way to do the device finder stuff but I forgot and can't find reference)
An implementation of the National Semiconductor DP8510 BITBLT Processing Unit. This is used on the InterPro GT family graphics boards, and this implementation seems to be correct enough to enable me to progress there, hence the PR. While I'd love to have another system to test against, I'm not aware of any other systems that ever used this device other than some NatSemi reference designs, which are not (yet) in MAME.
* hp9845 & hp64k: fixed breakage caused by c46e1007a8
* hp9845: HLE of internal printer added
* hp9845: fix to printer interrupt line
* hp9845: moved src/devices/machine/hp9845_printer.* to src/mame/machine
Implementation of 28F010 and family flash memory devices. These are not compatible with the JEDEC-standard flash command protocol implemented in intelfsh.
The analogue joystick is now emulated. Also fixed a few minor issues
with the memory map.
This also adds a generic Z80 dasisy chain device, for use in drivers
with non-Z80 peripherals.
Use "mame einstein -pipe tk02" to attach the 80 column device.
* Removed no longer needed einstei2 driver
* Added cursor rendering to the 80 column device
* Added support for the alternate character set (use dip switch to
change)
* Cleaned up and added save state support to the 80 column device
Many changes in this PR, including the following:
* added support for InterPro 20x0, 24x0 and 27x0 systems
* added support for SR bus/slot devices
* added support for Ethernet, graphics, keyboard and mouse
* added support for serial DMA
* improved timer, interrupt and DMA handling
* improved comments/documentation
Note: ioga is still a major work in progress, and most of the other *ga's don't do anything useful yet, however this build can do some new and useful things, and it's closer to OS boot than before, as well as cleaned up in some of the better known areas.
* added basic support for the system bus variously referred to as SR, SR bus, SRX and CBUS
* added an initial GT graphics card implementation, only supports the video ram and ramdac for now, but sufficient to boot the diagnostic monitor in graphics mode
* added a high-level emulation of the InterPro keyboard
protection handled etc. written from scratch based on notes from Kevtris and Peter
banking in the slot system seems somewhat archaic compared to proper modern banking, but this is how all other drivers I saw using slot roms did it.
---------------------
E-Touch Mahjong Series #6: Scandal Blue - Midara na Daishou [ShouTime, Team Japump, The Dumping Union]
E-Touch Mahjong Series #7: Trap Zone - Yokubou no Kaisoku Densha [ShouTime, Team Japump, The Dumping Union]
--------------------------------------
Ton Puu Mahjong [ShouTime, The Dumping Union]
This is only a skeleton driver. ShouTime will keep the PCB only for a few more days, so if someone has the time to have a look.. (nw)
* Remove duplicate code
* Screen raw parameters and XTAL values
* Added PAL dumps for supbtime [Luiskiko/jammarcade.net]
* Add dip switch locations to all games
* Emulate LC7535 based volume control for Dragon Gun board based games
* Add DSW3 and DIP locations to Captain Avenger
* Reorganize driver and start cleaning it up (in progress)
------------------------------------------------------
Mephisto Modena [yoyo_chessboard, Sandro Ronco]
Mephisto Monte Carlo [Sandro Ronco]
Mephisto Monte Carlo IV LE [Sandro Ronco]
Mephisto Mega IV [Sandro Ronco]
Used by games in the cninja and deco32 drivers. This implies proper
VBlank IRQ ack for all games now. Also added and improved raw screen
parameters for various games.
* hp85: added support for optional ROM cartridges. Started optional ROM
sw list (not finished).
* hp85: refactored mapping of opt. ROMs according to cuavas' comments
* initial skelethon: ControlID X628 fingerprint reader
* first draft of an implementation of the NT7534 device (LCD controller)
* fix emulation of ControlID x628 + NT7534 LCD controller
* cidx628: fix LCD color palette on Control ID x628 driver
* Adding a header with details of the hardware. This is the first MAME driver with an LCD controlled by a NT7534 chip, so I wrote an initial implementation of that new device.
unkfr belongs in 4enraya (which was my guess when it was mentioned)
doesn't seem much point in having a complete non-working driver in the source for it when it boots as a romswap.
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]
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.
- 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.
- 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)
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)
create a uPD78C11 derived CPU type for this purpose, with internal ROM map
use internal ROM map for other uPD78C10 chips as it's always present.
add missing NO_DUMP definitions to various games using C-Chips with correct size etc.
pump megablast through the device code as really all it ever does is bank the c-chip window and test the RAM.
* Implemented front panel mode switches/LEDs and reset switch
* Added skeleton bus for "universal" slots and connected control lines
(nw) Default keyboard mapping is annoying because left shift, Z and X
are used both for typing into the TTY and switching program bank. You're
better off changing the mapping to make it less annoying or using a
socket and talking to it with telnet.
* Renamed to MCS-40.
* Emulated 8-clock instruction cycle, interruptible at any point.
* Converted TEST input to an input line.
* Added SYNC and CM output lines.
* Added support for 4040 CY output, logical operations, extended registers, ROM banking and disassembly.
* Made I/O space mapping more flexible to support the variety of peripherals available.
* Notable missing features are 4040 interrupt and halt, and "program memory" space.
------------------------------------
Spirit of 76 [PinMAME]
New not working clone
-----------------------------------
Black Knight 2000 (PF-1) [PinMAME]
* Tromba (trumpet) sound is not working - requires Schmitt trigger device
* Connecting cassa (bass drum) swamps other instruments so it's disconnected for now
* Mixing melody sound with speech/SFX is not done in netlist (should be)
* Relative levels of melody/speech/SFX are probably still wrong
(nw) A good test case for this is the Money Money driver (monymony).
There's a bit of buzzing on this one as well. The problem with the
cassa could be caused by running into non-ideal characteristics of opams
again (the LM3900 seems to ignore the V+ value supplied to it). When
the netlist library gets Schmitt trigger support, the tromba can be
completed. Unfortunately, the tromba is a key part of the
characteristic sound of these boards, so you really notice when it's
lacking.
(nw) It doesn't work quite right yet. The "Hammer" and "Pest" sounds
are generated by free-running 555/556 timers and gated with LM324
applifiers. For whatever reason, the netlist system produces a kind of
buzzing from the "Hammer" circuit when it's supposed to be suppressed,
and it doesn't think the pest sound should be suppressed completely so
you can always hear it at a low level in the background. The "Cheese"
circuit is a bit weird - either they're using the base-emitter junction
of a 2SC945 as a signal diode, or there's an error in the schematic
(collector is shown unconnected). Connecting this part of the circuit
causes the netlist system to hang, so R2/R3/C8/Q2 are not connected for
now.
The core changes are:
* Short name, full name and source file are no longer members of device_t, they are part of the device type
* MACHINE_COFIG_START no longer needs a driver class
* MACHINE_CONFIG_DERIVED_CLASS is no longer necessary
* Specify the state class you want in the GAME/COMP/CONS line
* The compiler will work out the base class where the driver init member is declared
* There is one static device type object per driver rather than one per machine configuration
Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type.
* DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders.
* DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type.
Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types.
* These macros declare storage for the static data, and instantiate the device type and device finder templates.
The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate.
Things I've actually messed with substantially:
* More descriptive names for a lot of devices
* Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes
* Changed DECO BSMT2000 ready callback into a device delegate
* Untangled Microprose 3D noise from driver state
* Used object finders for CoCo multipak, KC85 D002, and Irem sound subdevices
* Started to get TI-99 stuff out of the TI-990 directory and arrange bus devices properly
* Started to break out common parts of Samsung ARM SoC devices
* Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++
* Tried to make Z180 table allocation/setup a bit safer
* Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant
* Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size
* Imporved encapsulation of Z80DART channels
* Refactored the SPC7110 bit table generator loop to make it more readable
* Added wrappers for SNES PPU operations so members can be made protected
* Factored out some boilerplate for YM chips with PSG
* toaplan2 gfx
* stic/intv resolution
* Video System video
* Out Run/Y-board sprite alignment
* GIC video hookup
* Amstrad CPC ROM box members
* IQ151 ROM cart region
* MSX cart IRQ callback resolution time
* SMS passthrough control devices starting subslots
I've smoke-tested several drivers, but I've probably missed something. Things I've missed will likely blow up spectacularly with failure to bind errors and the like. Let me know if there's more subtle breakage (could have happened in FM or Voodoo).
And can everyone please, please try to keep stuff clean. In particular, please stop polluting the global namespace. Keep things out of headers that don't need to be there, and use things that can be scoped down rather than macros.
It feels like an uphill battle trying to get this stuff under control while more of it's added.
-----------------------------------
Space Cyclone [David Haywood, Nicolas Francfort, Sean Sutton, Tourniquet, ShouTime, Anonymous Donator, ranger_lennier, David Stevens, Mr. Goodwraith, John Wilke, Paul Vining, Ryan Gatto, rtw, Jan Stuhler, Rod_Wod, Elliott Kipper, Greg Stout, *=/STARRIDER\=*, Ross Esposito, Paul Gaulton, Chris Heflin, Anonymous Donator from Switzerland, Fabien Marsaud, Surgeville, krick, B2K24, Anonymous Donator from Italy, David Jorge, Andrea Babich, Ciacchi Stefano, Mucci, gamez fan, Brian Troha, VFR750P, anonymous, Mr. Anonymous from Outer Space, InsertMoreCoins, Game Preservation Society, dax_PL, Russell Howard, Peter Wilhelmsen, Sébastien Monassa, f205v, Smitdogg, Gerald (COY), Brian Sutherland, The Dumping Union]