libretro / mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
Other
188 stars 108 forks source link

stv woes: backports possible? #732

Closed meowthed closed 5 years ago

meowthed commented 5 years ago

There's a couple of notable games in this driver that I want to see them fixed, these are, alongside the versions that made them working;

gaxeduel - 0.100u2
grdforce - 0.80u2
groovef - 0.81u4
maruchan - 0.99u7
prikura - 0.78u1
rsgun - 0.103
shanhigw - 0.82u1
sokyugrt - 0.99u7
suikoenb - 0.99u7

main drawback is that there's an update in the stv driver within the 0.80s, and it's probably not all that interesting considering that low-profile devices can't run stv all that well, but could probably benefit Windows/Linux devices with all these fixes in mind.

arcadez2003 commented 5 years ago

As a rule the bigger and more complex the arcade hardware the more graft it is and the amount of code i'd have to tweak and or roll back is huge, Sega Titan hardware is the arcade version of the Saturn console.

You'd need a pretty good spec PC to play these 3D games at full speed in the latest MAME however libretro already supports a version of advanceMAME which is MAME92 or there about so you can always use that core and the performance would be close to how these would play in this core anyway.

So im not gonna work on this myself but as i always say someone might come along and fancy taking this major update on.

arcadez2003 commented 5 years ago

Just for the record this is what your asking for, keep in mind i only do this as a wee hobby to kill a few hours on a slow day i'd be full time on this for weeks..................

0.110u3: STV fixes [Mariusz Wojcieszek]: VDP2: Fixed vertical scrolling for RGB bitmaps (fixes corrupted gfx in batmanfr). Fixed vertical line scrolling for zoomed layers (fixes corrupted backgrounds in astrass). STV: Added speedup for master sh2 in batmanfr. 0.110u2: More updates to the ST-V driver [Mariusz Wojcieszek]: VDP1: Added shading for sprites (used by znpwfv, cotton2, others). Fixed sprite clipping (fixes incorrect sprites in znpwfv). Fixed transparency on colour lookup table sprites (fixes bad sprites in znpwfv). VDP2: Fixed caching of RGB layer (fixes bad backgrounds on bosses in rsgun). Added additive blending for tilemaps and sprites (rsgun). Added vertical line scroll and linezoom (fixes diehard logo). STV: Improved speedups for diehard. Fixed speedups for znpwfv. Added preliminary save state support. 0.108u5: Another big update to the ST-V driver [Mariusz Wojcieszek]: scsp: Improved interrupt reset (diehard, dnmtdeka and vfkids). colmns97 have sound now. vdp1: Added mesh effect for the sprites and polylines. vdp2: Optimized RBG rendering. stv: Added speedups for dnmtdeka and diehard and corrected some set names/descriptions. 0.105u1: Modified a number of drivers that were using empty RAM regions for RAM or which had extraneous memory regions. Most significant changes were to the Arcadia, NSS and ST-V drivers [Aaron Giles]. 0.105: zozo added the Dev 1.061 and early Japan BIOSes for ST-V: 'stv1061.bin' = ST-V Dev BIOS (1.061) - Sega 1994, Noted "ST-V Ver 1.061 94/11/25" on EPROM sticker, coming from a S-TV SG5001A dev board and 'epr-17740.bin' = ST-V BIOS (Japan early) - Sega 1995, found on a early board dated 02/1995. 0.104u7: Aaron Giles fixed ST-V games which always resets at the begining. 0.103: More ST-V updates [Mariusz Wojcieszek]: Added idle loop skipping for Radiant Silvergun. Added RBG caching. Added RBG "two screens" mode. Added Critter Crusher (not working due to missing inputs). Fixed several bugs introduced recently with all the other changes. R. Belmont completely rewrote machine\stvcd.c/h. There's a lot less there now, but what's there is more understandable and works much better. 0.102u4: Major update to the STV driver [Mariusz Wojcieszek]: sh2: Introduced cpu_readop16() for opcode fetching. stv: Added idle skip to various games. stv: Ooptimized master/slave sh2 syncing. vdp1: Fixed sprite transparency for RGB sprites. vdp2: Added linescroll. vdp2: Added 16x16 15bit tiles (fixes missing gfx in znpwfv). vdp2: Optimized tilemap scrolling, bitmaps and framebuffer drawing. vdp2: Fixed page and map calculation. dsp: Fixed some bugs making vfremix run up to the end of second match. 9th December 2005: Mariusz Wojcieszek - Speedup for most of the 2D games in ST-V driver! For example with a Athlon 3000: Princess Clara Daisakusen (60 fps), Soukyugurentai (60 fps), Suikoenbu (60 fps), Power Instinct 3 (55 fps), Cotton 2 (45-50 fps) and Cotton Boomerang (45-50 fps). 0.99u8: Improvements to the ST-V driver [Mariusz Wojcieszek]: Added another checking for DMA parameters. Changed STV V-blank timing. vdp1: Implemented two framebuffers and flipping. vdp1: Added manual changing and erasing of framebuffers. vdp1: Added manual trigger for drawing. vdp1: Mapped framebuffer into memory (for 16bpp only). vdp1: Added shadow and half luminance for RGB sprites. vdp2: Fixed bitmaps scrolling (fixes bad gfx in batmanfr and bakubaku intro). vdp2: Added preliminary window effect for tilemaps and sprite layer (for batmanfr). vdp2: Added scaling for 8bpp and 15bpp bitmaps (fixes vmahjong and myfairld backgrounds). 0.99u7: Angelo Salese improved emulation of the IC13 ROM loading in ST-V driver. Find Love, Decathlete, Soukyugurentai / Terra Diver can boot without hacks or debug tricks. Also Suikoenbu has improved gameplay. 0.99u3: Updates to the ST-V driver [Mariusz Wojcieszek]: vdp2: Added rotation in RBG0 layer (improves diehard, vfkids, vfremix, thunt, sassisu backgrounds). vdp2: Added 15bit RGB tilemaps (used by thunt). vdp2: Added opaque alpha blended bitmaps (fixes missing gfx in shienryu intro). vdp2: Added enable bit for RGB sprites (fixes some bad sprites in vfremix). vdp2: Added alpha blending for RGB sprites, vdp1: Fixed polygon drawing. vdp1: Added line drawing. sh2: Fixed bug in division unit. sh2: Added callback called when cpu reads FTCSR register (intended for idle loop skipping for slave sh2 in stv). stv: Added idle loop skipping for several games. dsp: Fixed DMA (fixes some bad gfx in thunt). 0.97u1: Ville Linde fixed a minor bug in the SCSP timer handling. 0.96: A number of ST-V improvements [Angelo Salese]: Fixed a DSP bug which was causing Treasure Hunt to hang. The game is working but with graphics artifacts because of other DSP bugs. Added the possibility on the VDP1 to double the horizontal resolution under some circumstances. This affects Astra SuperStars, Virtual Mahjong & Virtual Mahjong 2. Fixed a bug in the A-Bus protection handling for games which have rom data mapped here. Made some small fixes to the SCU. Added a quick hack to avoid the sound reading "hang", disabled by default. There's also some WIP code for the protection in Astra SuperStars and Final Fight Revenge. 0.95u2: Sega ST-V update [Angelo Salese]: Fixed some interrupt issues because the old implementation was giving several hangs on Batman Forever. To be more specific added the sprite draw end irq to the INTERRUPT_GEN structure and fixed a bug which prevented the vblank bit to not be cleared if the irq mask has the VBLANK-IN disactivated. Fixed the NMI_disable/enable cmds on the SMPC device, this function is to active/disactive a bit in the SMPC ram. This fixes the "2 credits bug at start-up" in Shanghai Triple Threat. Fixed a bug in the bitmap type 4 in VDP2 handling, which was causing the Sunsoft logo in Shanghai Triple Threat to not show correctly. 0.91u2: ST-V update [Angelo Salese]: Added some new VDP-2 registers, for example the DISP one for avoid transitions draws. Re-added the layer disable/enable code that I sent in the past which was lost and removed the possibility to disable layers with non-debug builds. Started to add default EEPROMs for the various games, for now I've hooked up the one in Shienryu to let it run already with Vertical Switch. Added the dynamic clocks, hopefully now 100% working. Changed SH-2 CPU1/2 clock speeds to 28636400 Hz and 68000 CPU3 to 11454560 Hz. 0.90u4: ST-V Update [Angelo Salese]. Started to work with the A-Bus protection, it is a sort of data transfer with the cartridge area, more info in the stv.c file. Current implementation just fixes character selection screens in 'Steep Slope Sliders', I will work out about this one in the future, it has various "interesting" issues which was thought to be emulation probs (i.e booting in 'Radiant Silvergun', textures in 'Touryuu Densetsu Elan-Doree' etc.). Added a preliminary timer 1 irq handling, it fixes Pebble Beach booting but it doesn't work yet because of incomplete VDP-1 emulation. Noticed that ignoring VDP-1 long word access read by SH-2 isn't correct and not needed (because 'Steep Slope Sliders' is protected rather than using an illegal procedure), it was causing wrong graphics in Funky Head Boxers and boot errors in Pebble Beach, reversed it back to default. Changed SH-2 CPU1/2 clock speeds to 26874100 Hz and 68000 CPU3 to 10749640 Hz. 18th January 2005: Angelo Salese - Started to work out the ST-V protection in Steep Slope Sliders. It is a sort of data transfer. The other protected games are: Astra SuperStars, Fighting Dragon Legend Elan Doree, Final Fight Revenge and Radiant Silvergun. Will be worked out in the next future. Pebble Beach Golf, still not working due to video emulation/irq probs and no, it's not Sea Bass Fishing. 0.90u2: ST-V update [Angelo Salese]. Fixed a bug with the VDP-1 ram reading, SH-2 can do byte or word access, it's implicit that can't do long word access. This fixes the Steep Slope Sliders booting so the game now works. VDP-1 PTM's "draw by request" was actually causing sprites to flicker in kiwames, reversed back to old implementation until I or somebody else understand what the current issue is (clear_framebuffer?). Finished the game header update, let me know if you like/don't like the system used for the description of the games. Fixed ST-V visible area to 704x513, which was causing Virtual Mahjong 2 to crash after the sound ram check. Fixed a window effect bug in Double-density interlace mode, this fixes some graphics in vmahjong & myfairld. Guessed a bitmap positioning issue in double-density interlace mode, this fixes the NBG1 positioning in myfairld. 0.90u1: Some ST-V fixes which allow Sea Bass Fishing to run [Angelo Salese]. 0.90: Angelo Salese fixed various DMA bugs, including a missing save/update mode in indirect mode and added a default add value for the A-Bus transfer, to avoid strange uploads. Further improved the SCU emulation, added two unemulated irqs (PAD and SCSP), improved the "illegal" DMA operations and started to work out with the games headers. Changed clock speed of the 2x SH-2 CPUs to 28636350 Hz and the 68000 CPU3 to 11454540 Hz in all games. 0.88u5: SCU DSP update [Angelo Salese]: Finished flags in ALU opcodes and SR opcode: MSB does not change. 0.83: Mariusz Wojcieszek added VDP2 layer disabling based on VRAM cycle pattern registers - this fixes gfx glitches in shanhigw title screen. Added VDP1 half transparency - this improves sprites alpha blending in shanhigw in-game. Added VDP1 Gouraud shading (for normal sprites only) - this adds highlighting for selected tiles in shanhigw. 0.82u2: ST-V updates [Mariusz Wojcieszek]: Fixed the bad RGB sprites colors and incorrect sprite clipping. Added color offset for RGB sprites. Fixed horizontal scrolling for bitmaps (corrects mausuke ingame background). 0.82u1: ST-V VDP-1/2 update [Mariusz Wojcieszek]: Converted VDP1 drawing (sprites) to use framebuffer. Added sprite priorities (corrects shanhigw ingame and colmns97 title screen). Added color offset for sprites. Improved sprites alpha blending (improves ejihon and shienryu intro). Added framebuffer interlace (fixes elandore character selection screen). Added color offset for bitmaps. Added vertical scrolling for bitmaps (corrects shanhigw ingame). The main result (visible to user) of these changes is that shanhigw is now playable without problems (apart from gfx glitches on title screen). Fixed a window mode bug in STV VDP-2. 15th April 2004: Mariusz Wojcieszek fixed a sprite rendering bug in the ST-V driver where some sprites got distorted to the wrong size, improving Othello Shiyouyo title screen, helicopter in Die Hard Arcade, attract modes in Cotton Boomerang and Hanagumi Taisen Columns and it also makes Super Major League almost playable. 0.81u4: Mariusz Wojcieszek fixed sprites in groovef which is now playable, adds some RBG0 scrolling which greatly improves background graphics in cotton2, cottonbm, grdforce and othellos. 31st March 2004: Mariusz Wojcieszek sent in an update to the ST-V driver, adding support for the end code feature in VDP1 which improved sprites in Columns '97, Ejihon Tantei Jimusyo, Shienryu and fixing some bugs in the SCU DSP emulation. 0.80u2: ST-V update [Angelo Salese]. Fixed bitmap transparencies, added the RBG0 layer (no scroll/roz effects yet). Added a really preliminary window effect (just for get tile-based sprites in shanhigw). Re-added the VDP1 PTM register support which has been lost in the past. 0.80u1: ST-V fixes [Mariusz Wojcieszek]: Improved scaling tilemap backgrounds. vfkids, colmns97 and vfremix backgrounds are better now. Fixed a problem where entering and existing service mode during game causes master/slave communication to fail. It turned out that slave cpu should be reset when it is turned off and on. This helps all games in driver. 0.80: Various ST-V improvements (brightness controls) [Angelo Salese]. 28th February 2004: Angelo Salese added RGB brightness control to VDP2 in the ST-V driver and kludged Power Instinct 3 so that it boots (it has missing sprites though). 0.79: Updated ST-V driver to use new memory system, cleaning up the map [Olivier Galibert]. 21st January 2004: Olivier Galibert merged the ST-V driver memory maps and Aaron Giles fixed a problem in it. 20th January 2004: R. Belmont fixed many things in the ST-V sound system and as a result many more games have working sound in that driver. 19th January 2004: R. Belmont - Fixed some ST-V bugs, sound now works in a lot more games (but not Die Hard or Baku Baku yet, still tracing). 16th January 2004: Mariusz Wojcieszek improved the ST-V driver sprite color calculation, fixing problems with Shienryu sprite colors and Winter Heat character selection screen. 0.78u4: Some ST-V alpha blending (see bakubaku playfield, mausuke playfield, shienryu clouds etc) [Mariusz Wojcieszek]. 0.78u1: Improvements to ST-V emulation [Mariusz Wojcieszek]: Changes to sprites color calculation. I fixed it using in color bank modes by using color offset register from VDP2. Now shienryu kludge is no longer needed and also sprite colors in Winter Heat and Virtua Fighter Kids are correct. Changes for Princess Clara Daisakusen (prikura) so that game is playable now (as far I tested it). Prikura tried to render distorted sprites with xsize = 0 or ysize = 0 and this caused crash. As these values are prohibited according to manual, I ignore distorted sprites with xsize = 0 or ysize = 0. I found that missing MINIT for slave to run the sprites is done by using address 0x01406f40 instead of 0x01000000. I'm not sure if my change is a hack or real hardware behaves in that way, but in my opinion it is possible that whole range of addresses (0x01000000 - 0x017fffff) is used for MINIT. I added MINIT only for one address used by prikura. Bad sprite colors were fixed in point 1. Small change for vdp2: Commented out a call to usrintf_showmessage().

Wilstorm commented 5 years ago

@arcadez2003 - Thanks for all the adds and tweaks you've been doing these past weeks. I am looking forward to testing 'Touch & Go' you added recently. I've been really enjoying some of the other volleyball games in Plus this past year.

Just to throw it out there if it helps anyone else AdvMAME has several versions but they boil down to two MAME sets. The older versions which are based off of 0.94 and the newer versions which are based off of 0.106. I think AdvanceMESS is also based off 0.106.