* SPG2XX - Make audio emulation a subdevice
(I need to reuse some of it for SPG110)
* these will end up in different places on spg110 so split the handler (nw)
* refactor a little for cleaner use later (nw)
* realign logging with function names (nw)
* (nw)
* (nw)
* recent change in audio_beat_tick appears to break "icanpian jjs" seems unintentional? (MG please verify)
also documented an existing suspicious use of 'channel' in code.
* use channel_bit here instead, seems more logical (nw)
* reorganize code here a bit too (nw)
* Increased internal sampling rate to audio 'frame rate' for better sync.
* Moved envelope processing into sample-update loop. Fixes envelopes.
* Reset envelope rampdown bit when a channel stops. Fixes missing channels in vii and others.
* Only process envelope rampdown for active channels. Fixes missing channels in icanpian and others.
* Reset ADPCM bit at sample loop point. Fixes bad samples in jak_sith and others.
* Avoid treating end-of-sample marker as a playable sample. Fixes sample popping.
* Fixed sample ordering for 8-bit PCM samples. Improves audio quality.
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.
----------------------------------
V.Smile Motion (US)
New NOT_WORKING software list additions
---------------------------------------
vsmilem_cart:
Für immer Shrek (Ger), Toy Story 3 (Ger)
-devices/bus/vsmile/vsmile_cart: Added support for later 8MWord cartridges. [Ryan Holtz]
-vsmile: Added separate machine driver for V.Smile Motion. Needs proper BIOS dump, currently using the V.Smile US BIOS. [Ryan Holtz]
----------------------------
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]
-spg2xx: Various changes: [Ryan Holtz]
* Fixed Timer A and B counting at half the intended rate.
* Made do_sprite_dma write into m_spriteram shared pointer rather than hitting the memory system twice.
* Fixed vblank to automatically clear the IRQ on vblank-out.
* Made IRQ checking more consistent; no more redundant deassertions of various IRQ lines.
* Fixed TMB1 and TMB2 not activating if initialized to the lowest rate.
* Improved logging.
-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]
-spg2xx: Emulate Timer A and B. Makes kungfupuk, manny, mickeychnl, monstaln, mypuppy, noddy, partyprk, ratat, shrek3, thomas, tingelng, and upuk work. [Ryan Holtz]
* Fixed push and pop instructions in the DRC. Fixes Wall-E.
* Eliminated the use of intermediate register I7 in the DRC.
* Reworked DRC timing to be fully in line with the interpreter.
* Reworked DRC block checksumming to not route through the memory system.
* Fixed DRC block checksumming to include all words in an opcode. Fixes V.Smile intro graphical glitches.
* Increased cache size and reduced block size to reduce frequency of cache flushes and associated recompiles.
* Added more verbose optional register and write logging.
* Added a direct setter for IRQ lines to avoid a scheduler sync, pending merging the spg2xx_device into a unsp_device subclass.
* Added direct setters/getters for the data segment as well.
--------------------
WWE (JAKKS Pacific TV Game) [Sean Riddle, David Haywood, Ryan Holtz]
spg2xx: Treat 0-length sprite DMA as 0x400 words. Fixes sprites in clikstrt bobbuild and jak_wwe. [Ryan Holtz]
* Adjusted UART receive behavior to flag an available byte only at the specified baud rate.
* Added separate UART baud rate calculation for SPG24x vs. SPG28x.
* Adjusted ADC behavior to flag an IRQ when the relevant data bit is set, not when register bit is newly set.
* Added separate logging for FIQ registers.
* Added logging for SIO registers.
-clickstart: Added preliminary mouse hookup. Only accepts a mouse update once, ignores further updates. Needs further investigation. (nw)
new NOT WORKING
Mattel Classic Sports [Sean Riddle]
Dora the Explorer (JAKKS Pacific TV Game) [Sean Riddle]
kludge handling of invalid size writes to DMA so that Dora the Explorer doesn't trash all of RAM + registers
new SOFTWARE LIST
JAKKS Pacific 'NK' Game Keys
(Dora has corrupt gfx, probably the bad DMAs should do something, Mattel Classic Sports gives a black screen)
xavix.cpp:
new NOT WORKING
e-kara Pro Headset (US, includes 3 songs) [Sean Riddle]
Super Dash Ball (Japan) [Sean Riddle, Peter Wilhelmsen]
Gururin World (Japan) [Sean Riddle, Peter Wilhelmsen]
disable active raster interrupts if raster interrupt enable is turned off, and add preliminary shifter register emulation, needed for 3D stages in Gururin World [David Haywood]
(Pro Headset works as well as other e-Kara stuff, marked as NOT WORKING due to lack of microphone and sound emulation issues, Super Dash Ball needs trackballs hooking up, Gururin World needs analog cycle looking up)
rad_eu3a14.cpp:
tied tilemap dimensions to tile sizes to improve Huntin'3 map screen [David Haywood]
-devices/cpu/unsp: Added a function to get current chip-select state, nw
-devicesp/machine/spg2xx: Various changes: [Ryan Holtz]
* Added 4kHz/2kHz/1kHz/1Hz timers.
* Added ADC read callback.
* Fixed a bug with floating GPIO inputs.
Clickstart games now generally get to the title screen or main menu, other than Bob The Builder, which is missing some graphics. nw
* 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)
-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]
* tabify a JSON file (not currently handled by srcclean)
* get rid of stray printf
* µ'nSP in header comments - we do UTF-8 source
* spg2xx.cpp: make room for LOG_GENERAL - it's defined as (1U << 0) if you don't give it a different value
* spg2xx.h: inline on member function declarations generally doesn't do anything useful - it's implicit when the function body is inlined at declaration, and in other cases you usually want to put the inline qualifier on the definition, not the declaration
* rainbow.cpp: revert mouse changes - there's no reason a Mouse Systems driver couldn't be loaded, and the Logitech mouse is Microsoft-compatible
* video21.cpp: use deal/stand for blackjack control buttons now that we're not using deal for vblank
-vii: Initial V.Smile support; BIOS runs, games do not. [Ryan Holtz]
Note: V.Smile changes are currently very WIP, needs code cleanup. Just checking in so others can have a look.