From 32109cda81c6256ad0b09e5b2967fa3f7c2ed3c8 Mon Sep 17 00:00:00 2001 From: ted green Date: Sat, 25 Jul 2015 10:04:02 -0600 Subject: [PATCH] iteagle.c - New games added or promoted from NOT_WORKING status (virtpool) vooddefs.h - Fixed texture bug affect gtfore06 Oak Hollow hole 5 water around green. voodoo.c - Added rasterizers for virtpool. --- src/emu/video/vooddefs.h | 25 +++++++++++++------------ src/emu/video/voodoo.c | 20 ++++++++++++++++++++ src/mame/drivers/iteagle.c | 2 +- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/src/emu/video/vooddefs.h b/src/emu/video/vooddefs.h index db67d2de8d5..1fe157888f0 100644 --- a/src/emu/video/vooddefs.h +++ b/src/emu/video/vooddefs.h @@ -4737,13 +4737,14 @@ INLINE INT32 ATTR_FORCE_INLINE new_log2(double &value) } // Computes A/C and B/C and returns log2 of 1/C -// A, B and C are 16.32 values. The results are 14.18. +// A, B and C are 16.32 values. The results are 24.8. INLINE void ATTR_FORCE_INLINE multi_reciplog(INT64 valueA, INT64 valueB, INT64 valueC, INT32 &log, INT32 &resA, INT32 &resB) { - double recip = 1.0f/valueC; - double resAD = valueA * recip * ((INT64)1<<(47-29)); - double resBD = valueB * recip * ((INT64)1<<(47-29)); + double recip = double(1ULL<<(47-39))/valueC; + double resAD = valueA * recip; + double resBD = valueB * recip; log = new_log2(recip); + log += 56<<8; resA = resAD; resB = resBD; } @@ -4761,8 +4762,8 @@ INLINE rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, INT32 x, const UINT INT32 wLog; if (USE_FAST_RECIP) { const INT32 oow = fast_reciplog((ITERW), &wLog); - s = ((INT64)oow * (ITERS)) >> 29; - t = ((INT64)oow * (ITERT)) >> 29; + s = ((INT64)oow * (ITERS)) >> (29+10); + t = ((INT64)oow * (ITERT)) >> (29+10); } else { multi_reciplog(ITERS, ITERT, ITERW, wLog, s, t); } @@ -4770,8 +4771,8 @@ INLINE rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, INT32 x, const UINT } else { - s = (ITERS) >> 14; - t = (ITERT) >> 14; + s = (ITERS) >> (14+10); + t = (ITERT) >> (14+10); } /* clamp W */ @@ -4810,8 +4811,8 @@ INLINE rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, INT32 x, const UINT UINT32 texel0; /* adjust S/T for the LOD and strip off the fractions */ - s >>= ilod + 18; - t >>= ilod + 18; + s >>= ilod + (18-10); + t >>= ilod + (18-10); /* clamp/wrap S/T if necessary */ if (TEXMODE_CLAMP_S(TEXMODE)) @@ -4847,8 +4848,8 @@ INLINE rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, INT32 x, const UINT /* adjust S/T for the LOD and strip off all but the low 8 bits of */ /* the fraction */ - s >>= ilod + 10; - t >>= ilod + 10; + s >>= ilod; // + (10-10); + t >>= ilod; // + (10-10); /* also subtract 1/2 texel so that (0.5,0.5) = a full (0,0) texel */ s -= 0x80; diff --git a/src/emu/video/voodoo.c b/src/emu/video/voodoo.c index 774387c3921..db140118995 100644 --- a/src/emu/video/voodoo.c +++ b/src/emu/video/voodoo.c @@ -6513,5 +6513,25 @@ RASTERIZER_ENTRY( 0x00002425, 0x00045119, 0x000000C1, 0x00010FF9, 0x00000ACD, 0x RASTERIZER_ENTRY( 0x00482405, 0x00045119, 0x000000C1, 0x00010FF9, 0x000000C4, 0x0C261ACD ) /* * 66 74 3951 */ RASTERIZER_ENTRY( 0x00482405, 0x00045119, 0x00000000, 0x00010FF9, 0x00000ACD, 0x04221AC9 ) /* 70 374 3691 */ RASTERIZER_ENTRY( 0x00482405, 0x00045119, 0x000000C1, 0x00010FF9, 0x00000ACD, 0x0C261ACD ) /* * 20 350 7928 */ +/* virtpool ----> fbzColorPath alphaMode fogMode, fbzMode, texMode0, texMode1 hash */ +RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B0739, 0x0C261A0F, 0x042210C0 ) /* * 78 2182388 74854175 */ +RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B07F9, 0x0C261A0F, 0x042210C0 ) /* * 46 114830 6776826 */ +RASTERIZER_ENTRY( 0x00482405, 0x00045110, 0x00000000, 0x000B0739, 0x0C261A0F, 0x042210C0 ) /* * 58 1273673 4513463 */ +RASTERIZER_ENTRY( 0x00482405, 0x00045110, 0x00000000, 0x000B0739, 0x0C261A09, 0x042210C0 ) /* * 46 634995 2275612 */ +RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B073B, 0x0C261A0F, 0x042210C0 ) /* * 46 26651 1883507 */ +RASTERIZER_ENTRY( 0x00482405, 0x00045110, 0x00000000, 0x000B073B, 0x0C261A0F, 0x042210C0 ) /* * 26 220644 751241 */ +//RASTERIZER_ENTRY( 0x00002421, 0x00445110, 0x00000000, 0x000B073B, 0x0C261A09, 0x042210C0 ) /* * 79 14846 3499120 */ +//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B0739, 0x0C261A09, 0x042210C0 ) /* * 66 26665 1583363 */ +//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B073B, 0x0C26100F, 0x042210C0 ) /* * 78 33096 957935 */ +//RASTERIZER_ENTRY( 0x00002425, 0x00445110, 0x00000000, 0x000B07F9, 0x0C261A0F, 0x042210C0 ) /* * 38 12494 678029 */ +//RASTERIZER_ENTRY( 0x00800000, 0x00000000, 0x00000000, 0x00000200, 0x00000000, 0x00000000 ) /* * 28 25348 316181 */ +//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B0739, 0x0C26100F, 0x042210C0 ) /* * 13 11344 267903 */ +//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B073B, 0x0C261A09, 0x042210C0 ) /* * 34 1548 112168 */ +//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B07FB, 0x0C26100F, 0x042210C0 ) /* * 35 664 25222 */ +//RASTERIZER_ENTRY( 0x00000002, 0x00000000, 0x00000000, 0x00000300, 0xFFFFFFFF, 0xFFFFFFFF ) /* * 33 512 18393 */ +//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B07FB, 0x0C261A0F, 0x042210C0 ) /* * 14 216 16842 */ +//RASTERIZER_ENTRY( 0x00000001, 0x00000000, 0x00000000, 0x00000300, 0x00000800, 0x00000800 ) /* * 87 2 72 */ +//RASTERIZER_ENTRY( 0x00000001, 0x00000000, 0x00000000, 0x00000200, 0x08241A00, 0x08241A00 ) /* * 92 2 8 */ +//RASTERIZER_ENTRY( 0x00000001, 0x00000000, 0x00000000, 0x00000200, 0x00000000, 0x08241A00 ) /* * 93 2 8 */ #endif diff --git a/src/mame/drivers/iteagle.c b/src/mame/drivers/iteagle.c index f8eedcebe80..8861fa827c7 100644 --- a/src/mame/drivers/iteagle.c +++ b/src/mame/drivers/iteagle.c @@ -556,7 +556,7 @@ ROM_END *************************************/ GAME( 2000, iteagle, 0, iteagle, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Eagle BIOS", GAME_IS_BIOS_ROOT ) -GAME( 1998, virtpool, iteagle, virtpool, virtpool, driver_device, 0, ROT0, "Incredible Technologies", "Virtual Pool", GAME_NOT_WORKING ) +GAME( 1998, virtpool, iteagle, virtpool, virtpool, driver_device, 0, ROT0, "Incredible Technologies", "Virtual Pool", 0 ) GAME( 2002, carnking, iteagle, carnking, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Carnival King (v1.00.11)", GAME_NOT_WORKING ) GAME( 2000, gtfore01, iteagle, gtfore01, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! (v1.00.25)", 0 ) GAME( 2001, gtfore02, iteagle, gtfore02, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2002 (v2.01.06)", 0 )