Commit Graph

66 Commits

Author SHA1 Message Date
David Haywood
cb60e245dc SPG2XX - Make audio emulation a subdevice (#4757)
* 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)
2019-03-14 22:35:19 +11:00
MooglyGuy
ce24d8322f -spg2xx: Added VolSel register. Fixed palette indexing on backgrounds in wallpaper mode. Fixes backgrounds in jak_nick. [Ryan Holtz] 2019-03-12 18:55:43 +01:00
MooglyGuy
f5985ab869 -spg2xx: Scale SPU channel sum by a fixed 1/16 divider rather than by the active channel count. Fixes volume 'wobble'. [Ryan Holtz] 2019-03-11 17:37:55 +01:00
mooglyguy
ce3e5ad376 -spg2xx: Various audio fixes. [Ryan Holtz]
* 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.
2019-03-10 06:40:52 +01:00
mooglyguy
d037ce99f2 -spg2xx: Fixed audio channel stop behavior. [Ryan Holtz]
* Fixes bad or missing music/effects in jak_sbfc, jak_mpac, jak_wof, jak_wwe, and many others.
2019-03-08 01:22:46 +01:00
David Haywood
dea868dfaa new WORKING machines (JAKKS stuff) (#4624)
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)
2019-02-10 18:47:03 +01:00
David Haywood
668c87dca2 new WORKING Gamate game + Working DBZ JAKKS + misc bits (#4614)
* 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.
2019-02-09 10:29:48 -05:00
mooglyguy
3cc0f27d89 New machines marked as NOT_WORKING
----------------------------------
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]
2019-02-03 18:08:03 +01:00
MooglyGuy
de7d35e2fd -spg2xx: Return max ADC value if not hooked up, nw 2019-01-30 02:00:36 +11:00
mooglyguy
7988aa1100 New working machines
--------------------
Star Wars - Revenge of the Sith (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, Peter Wilhelmsen]

-vii: Mapped jak_sith controls. [Ryan Holtz]

-spg2xx: Added polled ADC mode, and 2-channel ADC support. [Ryan Holtz]
2019-01-29 04:12:16 +11:00
Vas Crabb
d70681e1b3 turn off SPG200 logging for release (nw) 2019-01-28 10:48:24 +11:00
MooglyGuy
dda8bad8aa -spg2xx: More correct PRNG emulation, nw 2019-01-28 10:47:05 +11:00
MooglyGuy
62ba8c558c spg2xx: Correct PRNG emulation. [Ryan Holtz] 2019-01-28 10:47:05 +11:00
Vas Crabb
76323eb770 srcclean and cleanup (nw) 2019-01-27 14:22:20 +11:00
Ryan Holtz
796f6c402f Machines promoted to working
----------------------------
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]
2019-01-23 01:31:54 +01:00
MooglyGuy
d682a3c569 -vsmileb: Found the GPIO bit that boots into the on-board game. [Ryan Holtz] 2019-01-20 19:46:37 +01:00
MooglyGuy
49a50ae2ae -spg2xx: Fade control register is 8 bits wide, not 7. Fixes flickery fading in rad_fb2. [Ryan Holtz] 2019-01-20 19:30:14 +01:00
MooglyGuy
7805e7e9f4 -spg2xx: Remove stale debug printf, nw 2019-01-20 19:00:55 +01:00
MooglyGuy
30ca803ec5 -spg2xx: Early-out if trying to blit a scanline outside the visible range. Fixes palette trashing in jak_disf. [Ryan Holtz] 2019-01-20 18:38:26 +01:00
MooglyGuy
e1486c9a2a -spg2xx: Added palette viewer mode when video debugging is turned on, nw 2019-01-20 17:33:21 +01:00
mooglyguy
53bf06db84 -vsmile: Turn the 'test point' GPIO port C bit off. Fixes choppy sprites. Promoted vsmile, vsmilef, vsmileg back to working. [Ryan Holtz]
-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.
2019-01-20 04:30:49 +01:00
MooglyGuy
165e617ca2 -spg2xx: Added additional timer logging, nw.
-vsmile: Demoted all drivers to MNW, nw.

This reverts commit d48481df90.
2019-01-19 19:43:31 +01:00
mooglyguy
b951f248c1 -vsmile: Actually fixed vsmile techart and vsmile techartsw, nw
-vii: Added more extensive logging to rad_sktv, nw
2019-01-18 18:27:40 +01:00
mooglyguy
eb6223426d -vsmile: Added proper slot device emulation for the cartridge slot. Gets vsmile techart fully working. [Ryan Holtz]
-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]
2019-01-17 19:05:46 +01:00
mooglyguy
bede44aafd -spg2xx: Added more machine().describe_context() logging, nw
-vsmile: Added intro region selection and logo enable DIPs. Started separating vsmileb into its own driver. [Ryan Holtz]
2019-01-16 05:11:32 +01:00
MooglyGuy
2ead3aa7a8 -spg2xx: Suppress video IRQ status bits when the corresponding enable bit is unset. Fixes vsmile fred and appilote. [Ryan Holtz] 2019-01-15 16:26:55 +01:00
mooglyguy
a4a1a15070 -vsmile: Simulate a brief power-button press on boot. Makes toystor2 work. [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]
2019-01-15 04:17:05 +01:00
MooglyGuy
c929d074dc spg2xx: Only flag sprite DMA done IRQ if it is enabled. Gets mattelcs to boot. nw 2019-01-14 23:36:32 +01:00
MooglyGuy
05b89d3fcc -vsmile: Fixed control pad response bytes. Controls now work. [Ryan Holtz] 2019-01-14 23:16:41 +01:00
Ryan Holtz
8f330896e2 -devices/cpu/unsp: Various fixes: [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.
2019-01-14 10:07:45 +01:00
MooglyGuy
aeca9d40fa spg2xx: Fixed sprite double-rendering and more optimizations. Fixes priorities in jak_wwe. [Ryan Holtz] 2019-01-12 12:51:22 +01:00
MooglyGuy
f0a350c3bc spg2xx: Various optimizations, more than doubles the performance on my system, nw 2019-01-10 21:48:08 +01:00
mooglyguy
bef360f2b1 New working machines
--------------------
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]
2019-01-09 02:07:51 +01:00
mooglyguy
2437a88f22 Machines promoted to working
--------
Fantastic Four (JAKKS Pacific TV Game) [David Haywood, Ryan Holtz]

spg2xx: Fixed regression with Y-flipped tilemap tiles (nw)
2019-01-09 01:02:50 +01:00
mooglyguy
2e1ad76d92 -spg2xx: Various changes: [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)
2019-01-08 22:20:14 +01:00
DavidHaywood
95b4e8f656 vii.cpp:
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]
2019-01-08 16:52:07 +00:00
mooglyguy
2ad1398ef7 spg2xx: Turn debugging features back off, nw 2019-01-06 00:28:15 +01:00
mooglyguy
eaf167f5f7 spg2xx: Switched to scanline-based rendering, nw 2019-01-06 00:27:02 +01:00
mooglyguy
b1bedd018d -clickstart: Favor specific values over rand(), nw
-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
2019-01-05 22:14:28 +01:00
mooglyguy
999c5b872e spg2xx+vsmile: Started hooking up a control pad. 7x/Bx handshaking and 55 heartbeat works, but no controls respond yet. nw 2019-01-05 10:50:52 +01:00
David Haywood
9a5ec7db7c new NOT WORKING ClickStart [Sean Riddle, Clawgrip, TeamEurope] + a Software List for it (#4473)
* 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)
2019-01-04 19:38:49 -05:00
mooglyguy
dc8834b8dc Last round of macro removals before the freeze. (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]
2018-12-22 17:06:47 +01:00
Vas Crabb
9cbc957076 (nw) misc cleanup:
* 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
2018-11-04 17:57:08 +11:00
Vas Crabb
82501770de srcclean and cleanup (nw) 2018-10-28 14:00:12 +11:00
mooglyguy
d1ec0b957c vsmile: removed Unununium timing hacks, nw 2018-10-21 21:29:14 +02:00
mooglyguy
af515310d7 vsmile: Fixed erroneous cartridge ROM mirroring. Gets V.Smile games to boot. Needs cleanup. [Ryan Holtz] 2018-10-21 21:29:13 +02:00
Ryan Holtz
aeae501a76 spg2xx: Fixed tilemap wallpaper mode. Fixes V.Smile intro background. [Ryan Holtz] 2018-10-19 07:50:37 +02:00
mooglyguy
4e1c81ea07 spg2xx: Clear SPU channel enable when writing to SPU stop register, fixes drums in batmantv, nw 2018-10-18 21:03:25 +02:00
mooglyguy
1603f8bf28 -spg2xx: Added chip select callback and rudimentary ADC hookup. [Ryan Holtz]
-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.
2018-10-18 18:50:11 +02:00
mooglyguy
562081262f Merge fix. 2018-10-16 13:26:08 +02:00