1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-07 03:13:49 +00:00
Commit Graph

1897 Commits

Author SHA1 Message Date
Sergey Lipskiy
24bfb8274f Fix ucode selection for Wayne Gretzky's 3D Hockey.
Add custom settings to avoid flickering in this game with Project64.

Fixed Wayne Gretzky's 3D Hockey: missing gfx and flickers (regression) #1966
2019-02-08 22:04:47 +07:00
Sergey Lipskiy
0e04b3f902 Fix z coordinate calculation in TexrectDrawer::addRect()
Fixed #1989, Printf debug statements broken in LLE in Multiple Debug/Prototype games.
2019-02-08 19:43:16 +07:00
gizmo98
f7824a37a0 Use bool value for 3-Point or bilinear filtering selection again
With the new enableHalosRemoval option we  only need to select bilinear
filtering or 3-point filtering with a bool value again.

Reverts
https://github.com/gonetz/GLideN64/commit/164b1056b3b5446824e419a7721a5c
4e455f28c6 partly.
2019-02-08 11:47:28 +07:00
Sergey Lipskiy
32901bf5dd Add option enableHalosRemoval for bilinear filtering. 2019-02-07 17:23:20 +07:00
fzurita
2712e8f509 Cleanup EGL image code 2019-02-05 21:48:26 +07:00
Sergey Lipskiy
837f173e82 Support new bilinear filtering modes in GUI. 2019-02-05 21:28:00 +07:00
gizmo98
164b1056b3 Add bilinear filtering modes which remove halos around transparent textures
This workaround is not implemented for gles2 devices.
2019-02-05 21:09:36 +07:00
fzurita
f209304d0b Add support for Android EGL Image Public API 2019-02-05 17:30:58 +07:00
Sergey Lipskiy
039f818175 Correct initial value for clip ratio.
According to programming manual, initial value is 2.

Fixed logo clipping in SD Hiryuu no Ken Densetsu.
This game does not call gSPClipRatio, thus initial value is used.
2019-02-04 21:09:02 +07:00
Sergey Lipskiy
647f7759c2 Apply fix for GE multiplayer only for GE and PD.
Naboo does not use depth buffer clear with fillrect,
thus it does not allocate frame buffer for depth buffer clear.
GE multiplayer fix breaks depth compare in Naboo.
2019-02-04 20:04:48 +07:00
Sergey Lipskiy
78e98d880b Fix primitive depth for particles in Factor5 ucodes. 2019-02-04 18:30:05 +07:00
Sergey Lipskiy
2b7f78c9f8 Fix depth buffer clear when otherMode.depthCompare enabled.
Fixed 1080 Snowboarding (JU) FB off breaks games ( regression) #1976
2019-02-03 18:01:01 +07:00
Sergey Lipskiy
f79f8d406a Add bgMode config setting. 2019-02-02 19:10:50 +07:00
Sergey Lipskiy
be069adb1f Fix gSPObjSprite for S2DEX ver 1.03
Fixed speedometer in GT 64.
2019-02-02 18:34:13 +07:00
Sergey Lipskiy
b62734d297 Use ValueKeeper for RSP.LLE flag 2019-02-02 18:34:12 +07:00
Sergey Lipskiy
dcd159dc71 Enable texrect drawer in BG commands when enableNativeResTexrects enabled. 2019-02-02 18:34:12 +07:00
Sergey Lipskiy
f31cb4b00d GraphicsDrawer::drawTexturedRect - always use TexrectDrawer if m_bBGMode enabled. 2019-02-02 18:34:12 +07:00
Sergey Lipskiy
4a50912283 Enable texrect drawer for BGCopyNew. 2019-02-02 18:34:12 +07:00
Sergey Lipskiy
0560b49686 TexrectDrawer::draw() : correct texture coordinates. 2019-02-02 18:34:11 +07:00
Sergey Lipskiy
6ca50bd733 Use old code for frame buffer texture backgrounds 2019-02-02 18:34:11 +07:00
Sergey Lipskiy
1f372fa0ce Fix S2DEX_MoveWord 2019-02-02 18:34:11 +07:00
Sergey Lipskiy
be1a1fc413 Fixes for S2DEX 1.5 2019-02-02 18:34:11 +07:00
Sergey Lipskiy
9e64d45ac5 New implementation of BgCopy command. It is based on olivieryuyu decoding of actual ucode and works as close to original command as possible. 2019-02-02 18:34:11 +07:00
Sergey Lipskiy
729bf94c5a StarCraft fix. 2019-02-02 18:34:10 +07:00
Sergey Lipskiy
2decda55f3 CheckForFrameBufferTexture code refactor. 2019-02-02 18:34:10 +07:00
Sergey Lipskiy
c48e0e4d00 Fix loadblock when lrs = 0xFFF 2019-02-02 18:34:10 +07:00
Sergey Lipskiy
5ac2749bbb Fixes in gSPObjLoadTxtr. 2019-02-02 18:34:10 +07:00
Sergey Lipskiy
2aeff6caa5 Fix tile size when it is loaded by BgCopy with LoadBlock.
BgCopy set dimensions for tile0 to zero.
We can't use dimensions of load tile either because of CopyBlock.
The only way to find size of loaded texture is to use coordinates of texrect.
There is one-to-one correspondence between rect pixels and texture texels in copy mode,
so we can safely use it in this case.
2019-02-02 18:34:10 +07:00
Sergey Lipskiy
d4f9c341a9 Do not use fractional part of coordinates in G_CYC_COPY mode. 2019-02-02 18:34:09 +07:00
Sergey Lipskiy
a3613b42ae Draw backgrounds with TexrectDrawer. 2019-02-02 18:34:09 +07:00
Sergey Lipskiy
25bef0d805 New implementation of BG1Cyc command.
It is based on olivieryuyu decoding of actual ucode and works as close to original command as possible.
2019-02-02 18:34:09 +07:00
Sergey Lipskiy
7f68ae71f1 Correct texturedRectBGCopy in order to new Bg1Cyc command work with Yoshi Story 2019-02-02 18:34:09 +07:00
Sergey Lipskiy
aab318b4f7 Fix tile load for BG commands. 2019-02-02 18:34:08 +07:00
Sergey Lipskiy
9ac633d2ea Add originalMaskT, originalMaskS fields for struct gDPTile.
masks and maskt set by gDPSetTile, but _calcTileSizes may change them if actual
tile dimension do not correspond the mask. This creates problem for S2DEX_BG_1Cyc command,
which set tile masks and maskt to maximum, while actual size of loaded tiles may vary.
_calcTileSizes may set new values for masks and maskt, which are valid for the current tile but invalid for next ones.
Thus, original values of tile masks and maskt must be restored when tile size calculated again in _calcTileSizes.
2019-02-02 18:34:08 +07:00
Sergey Lipskiy
fa2b0793e0 Store integer scissor coordinates. 2019-02-02 18:34:08 +07:00
Sergey Lipskiy
11e87a46d8 Add template RAII class to change-restore arbitrary parameters: ValueKeeper Use it in TexrectDrawer::draw() 2019-02-02 18:34:08 +07:00
fzurita
18a735dfe6 Fix some sign issues with RdpUpdate 2019-01-28 18:34:23 +07:00
Sergey Lipskiy
132b06fd2f Correct VI image cut calculations, see VI fixes #1981 2019-01-20 19:32:39 +07:00
Sergey Lipskiy
864e635ca4 Correct RdpUpdate::update()
Fixed Black screen on smash bros #1987
2019-01-20 18:52:16 +07:00
fzurita
20a7b75100 Android makefile updates for 64 bit 2019-01-15 14:14:23 +07:00
Sergey Lipskiy
31e2c7e11a Correct lighting for CBFD.
Code refactoring.
2019-01-13 01:07:20 +07:00
Sergey Lipskiy
b036a8296e Fix OverscanBuffer::draw. 2019-01-13 01:07:06 +07:00
Sergey Lipskiy
1e84099521 Correct mapping of RDP frame buffer to output one.
Code of RdpUpdate::update is based on angrylion's rdp_update().

Main visible difference: VI cuts several pixels on left and right of original image.
Cite from angrylion's commit message:
"rdp: new tests revealed the shocking truth:
the VI aggresssively and regardlessly of any data alignment specificities
cuts off either 7 or 8 pixels closest to h_start and h_end, so that nothing
ever appears on the screen unless (h_end - h_start) is 16 pixels or greater
(this removes marginal garbage graphics on the far right in Mario Tennis,
Turok 2 Seeds of Evil intro and probably other games)"
2019-01-13 01:07:02 +07:00
Sergey Lipskiy
0f1b45cfa6 Add hack for Lode Runner 3-D.
The game uses very unique way to allocate frame buffers.
It uses double buffering, but both buffers share the same address space (sic!)
The game uses interlaced display mode, and lines in RDP buffers are interlaced too.
Plugin's fb and VI emulation code can't handle it properly, so I just added a hack.

Fixed Lode Runner 3-D: No video output if framebuffer is enabled #1937
2019-01-13 00:47:52 +07:00
Sergey Lipskiy
fc70172327 Refactor update of buffer end address.
Add removeIntersections() after end address update.
2019-01-13 00:40:21 +07:00
Sergey Lipskiy
7d7b5fcee3 Correct RDRAMtoColorBuffer::copyFromRDRAM(FrameBuffer * _pBuffer)
Fixed course map in Lego Racers.
2019-01-13 00:40:01 +07:00
Sergey Lipskiy
6135aa9de1 Activate hack for WCW Nitro backgrounds.
Currently it is impossible to draw them without hack.

Fixed WCW Nitro: the mysterious wrong textures #179
2019-01-13 00:38:10 +07:00
Sergey Lipskiy
dcbea90e76 Correct _loadSpriteImage: if bg image address is inside cfb buffer, remove that buffer. 2019-01-13 00:38:06 +07:00
Sergey Lipskiy
f787483dbb Correct condition for uEnableDepth uniform.
Fixed depth compare for particles in Indiana Jones when N64 depth compare enabled, #1977
2019-01-12 14:34:00 +07:00
Sergey Lipskiy
6de128b8fd Correct condition for valid depth buffer attachement.
Rat attack uses color buffer with width 640, but depth buffer width is only 639.
goodDepthBufferTexture check failed because of it, and game run without depth compare.

Fixed Rat attack missing geometry #600
2019-01-09 18:19:01 +07:00
Sergey Lipskiy
da5acef3eb Add hack_ModifyVertexXyInShader for Rat Attack.
Fixed projector light in Rat Attack, #600
2019-01-09 18:16:22 +07:00
Sergey Lipskiy
e676384550 Revert "Enable N64DepthCompare by default."
due to regression in Indiana Jones, #1977

This reverts commit d420737d6d.
2019-01-08 16:51:31 +07:00
Sergey Lipskiy
d420737d6d Enable N64DepthCompare by default. 2018-12-18 16:54:02 +07:00
Sergey Lipskiy
13966d7de0 Remove Overscan::init 2018-12-18 16:53:32 +07:00
Sergey Lipskiy
cb0cf5bed9 Fix depth_compare shader:
always write depth to buffer when otherMode.depthCompare flag is off.

Up shader storage version.

Fixed 2 players mode in Extreme-G XG2 (U) with N64 depth compare enabled, #1963
2018-12-18 16:04:37 +07:00
orbea
a5fc0689ac Fix performance with radeonsi.
This takes Donkey Kong 64 from 12 fps to full speed with framebuffer
emulation enabled.
2018-12-11 11:35:56 +07:00
Sergey Lipskiy
f899bf57a4 Ignore vi_lowerfield if vi_width <= 320.
It seems that when vi_width <= 320 output uses progressive mode
even if interlaced bit is set in VI_STATUS.

Fixed Bass Rush - ECOGEAR PowerWorm Championship - shakes #1957
2018-12-09 17:39:31 +07:00
Sergey Lipskiy
0d3c3c151d Correct reject box implementation: add special flag for it in gDP.changed flags.
Fixed Rejection process issues #1954
2018-12-09 16:49:23 +07:00
Sergey Lipskiy
29575624b9 Call copyRdram() for cfb buffer to have data for validity check.
Fixed NBA Courtside 2: wrong intro - regression #1956
2018-12-09 16:24:35 +07:00
Sergey Lipskiy
8cd1605933 Add debug message for VI_UpdateScreen 2018-12-09 14:23:08 +07:00
Sergey Lipskiy
362c99c256 Fix specialMicrocodes entry for Pachinko nichi 365
Fixed https://github.com/gonetz/GLideN64/issues/1950
2018-12-09 13:07:58 +07:00
Sergey Lipskiy
bb8c13ccce Implement rejection processing, see 25.3.2 of programming manual
Fixed Mario Party: Coin Block Blitz ground flicker / darkening #1912
2018-12-06 17:31:50 +07:00
zilmar
459fb32106 Revert OS_WINDOWS changes 2018-11-25 18:34:16 +07:00
zilmar
d50aabaa10 Stop using OS_WINDOWS 2018-11-25 18:34:16 +07:00
zilmar
5f008e4c92 Clean up libGlideNHQ.vcxproj 2018-11-25 18:34:16 +07:00
Sergey Lipskiy
cbf5821f8e Clamp arguments for acos when calculating G_TEXTURE_GEN_LINEAR
Fixed (Majora's Mask) Glass in Postman House not rendering #1941

Note: ucode actually works a bit differently because it uses approximated acos calculation.
2018-11-20 22:47:59 +07:00
Sergey Lipskiy
087ac76536 Correct commit e4b6224 for culling in Mortal Kombat 4.
Disable cullboth for F3DLX.Rej version 1 since this ucode does not support cullboth.
2018-11-11 16:06:23 +07:00
Sergey Lipskiy
1ec435d6e7 Correct command S2DEX_Obj_Rectangle_R for ucode version 1.03 2018-11-08 11:58:13 +07:00
Sergey Lipskiy
88aa90d075 Implement NO_XFM mode for Turbo3D ucode.
Fixed Dark Rift: gfx of the fist screen doesn't disappear when it should (HLE issue) #626
Fixed Dark Rift: missing transition effect in menu #649
2018-11-05 13:27:07 +07:00
Sergey Lipskiy
7aa360c900 Clear fog parameters in gSPLoadUcodeEx.
Fixed Zelda OOT wrong fog [HLE] #640
2018-11-03 15:40:41 +07:00
Sergey Lipskiy
f72553a524 Fix depth compare for texrects rendered with TexrectDrawer.
Fixed Duke Nukem 64: 2D Render Issue #1915
2018-10-21 20:19:41 +07:00
Sergey Lipskiy
a44d5a8960 Fix condition to apply hardware texture filtering:
FILTER_LINEAR must be used only if the current combiner uses LOD.
2018-10-18 11:14:34 +07:00
Sergey Lipskiy
68a2c939b4 Correct FrameBufferList::fillRDRAM - do not write to RDRAM color buffer if copyFromRDRAM enabled 2018-10-17 15:52:53 +07:00
Sergey Lipskiy
fe6447070e Minor code refactor in gDPFillRectangle 2018-10-17 15:52:53 +07:00
Sergey Lipskiy
57ad2e96c6 Fix DepthBufferList::clearBuffer() for image textures. 2018-10-17 15:52:53 +07:00
Sergey Lipskiy
9a2a77982b Set gDP.colorImage parameters before frameBufferList().saveBuffer call. 2018-10-17 15:52:53 +07:00
Sergey Lipskiy
9d7eb5b882 Fix in RDRAMtoColorBuffer::_copyFromRDRAM - draw rect in copy mode. 2018-10-17 15:52:53 +07:00
Sergey Lipskiy
f2ba87c241 Force clear depth buffer, if there is no corresponding color buffer for it.
Fixed GoldenEye Multiplayer - 3&4 player not rendering #1173
2018-10-17 15:52:52 +07:00
Sergey Lipskiy
d2bca602a1 Use roundup for viewport and scissor coordinates. Fixes some issues when screen resolution is not multiple of original resolution. 2018-10-17 15:52:52 +07:00
Sergey Lipskiy
217ef2557d Add ability to save content of frame buffer to file for debug purposes. 2018-10-17 15:52:52 +07:00
Sergey Lipskiy
0c2c4d3c27 Restore SCISSOR_TEST mode in RDRAMtoColorBuffer::_copyFromRDRAM 2018-10-17 15:52:52 +07:00
Sergey Lipskiy
8b3597614a Always render RDRAM content into newly created frame buffer. Remove ugly hack for Mario Tennis scoreboard. 2018-10-17 15:52:52 +07:00
Sergey Lipskiy
5538c7b4bb Add support for frame buffers, which are inside of some other frame buffer.
Fixed Superbowling: black screen in menu and game #116
2018-10-17 15:52:51 +07:00
Sergey Lipskiy
c8b6d35597 Minor code cleanup in FrameBuffer.cpp 2018-10-17 15:52:51 +07:00
Sergey Lipskiy
3d46293376 Correct condition for depth buffer copy hack for Perfect dark.
Fixed Perfect Dark high-res mode issues #1807
Fixed Perfect Dark No text/notifications in multiplayer #1930
2018-10-16 00:07:19 +07:00
Sergey Lipskiy
e4b6224218 Disable CULL_BOTH for NON microcodes.
Need to find better criteria.

Fixed Black screen in mortal kombat 4 #1929
2018-10-13 19:25:32 +07:00
gizmo98
35099ec8cb Backgrounds: Fix cut off textures and texture fragments and seams
-Fix cut off textures in hamster64. Enable coord correction if
gDP.otherMode.textureFilter == G_TF_BILERP.
-Fix seams in hamster64 and texture fragments in starcraft64. Enable
texture clamp if lrs/lrt <= (imageW/imageH - 1).
2018-10-13 19:09:24 +07:00
Sergey Lipskiy
1df96cebeb Enable clearDepthBuffer for Pokemon Snap.
Fixed Pokemon Snap Oak's check does not work #777 again

Note: this game is a mistery. I don't understand,
why clearing of depth buffer via drawRecs breaks Oak's check.
Actually, the problem causes rendering to color buffer corresponding to that depth buffer.
Need to investigate, why.
2018-10-07 00:15:01 +07:00
Sergey Lipskiy
423fc7ba3e Code cleanup in gDPFillRectangle 2018-10-06 13:43:14 +07:00
Sergey Lipskiy
8b9d955f7a Fix depth buffer clear for Zelda MM.
Fixed Legend of Zelda: Majora's Mask Issue #1921
2018-10-05 23:57:56 +07:00
Sergey Lipskiy
4f302cc777 gDPFillRectangle: call frameBufferList().fillRDRAM for color buffers in FILL mode.
Fixed Vigilante 8 Menu and In-game issues. #1917
2018-10-02 17:06:07 +07:00
Sergey Lipskiy
e91a9ddc31 Remove ucode for Mischief Makers (E) from specialMicrocodes list.
It was added by mistake.

Fixed Duke Nukem 64: HLE unplayable #1915
2018-10-02 09:53:17 +07:00
Sergey Lipskiy
6ba9a81e76 Rewrite Tri commands for SWRS ucode. 2018-10-01 23:15:33 +07:00
Sergey Lipskiy
9f1bbeab9f Rewrite primitive depth calculation.
Up shader storage version.

Fixed Star Wars Episode I - Racer: Overlapping #1911
2018-10-01 22:37:03 +07:00
Sergey Lipskiy
b88c99302f Debugger: correct display of primitive Z and deltaZ. 2018-10-01 19:20:32 +07:00
gizmo98
13f587a360 tile functions: Replace magic numbers with constants
Just refactoring. Replace magic numbers with constants. No functional
changes.
2018-09-30 18:03:46 +07:00
Sergey Lipskiy
b096c1e9fc Rewrite vertex coordinates calculation for ObjSprite command again. 2018-09-30 18:03:46 +07:00
Sergey Lipskiy
91b17a578c Rewrite vertex coordinates calculation for ObjRect commands again. 2018-09-30 18:03:46 +07:00
Sergey Lipskiy
9f936be57e Correct condition for texture filtering: remove (gSP.objRendermode&G_OBJRM_BILERP) != 0 from the condition.
It seems that flag G_OBJRM_BILERP in objRendermode does not mean that texture will be filtered.
2018-09-30 18:03:46 +07:00
Sergey Lipskiy
0da701e7e5 Rewrite texture coordinates calculation for ObjRect commands. 2018-09-30 18:03:46 +07:00
Sergey Lipskiy
8fd5f910ab Add support for S2DEX v1.03 2018-09-30 18:03:45 +07:00
Sergey Lipskiy
5abb19bd7a Disable "yoshi petals fix" because of regression in yoshi's message board. 2018-09-30 18:03:45 +07:00
Sergey Lipskiy
164d012138 Rewrite coordinates calculation for ObjRectangle and ObjRectangleR 2018-09-30 18:03:45 +07:00
Sergey Lipskiy
83995f5dc8 Correct vertex coordinates calculation for gSPObjRectangleR 2018-09-30 18:03:45 +07:00
Sergey Lipskiy
51490b9de0 Correct _YUVtoRGBA 2018-09-30 18:03:45 +07:00
Sergey Lipskiy
ec898f4178 Rewrite vertex coordinates calculation for gSPObjRectangleR using fixed-point math decoded from S2DEX ucode by olivieryuyu
Code refactoring.
2018-09-30 18:03:44 +07:00
Sergey Lipskiy
9bbd449812 Correct lrs and lrt calculation for ObjRect commands. 2018-09-30 18:03:44 +07:00
Sergey Lipskiy
38c7eef32b Code cleanup: use constants for flipS and flipT flags. 2018-09-30 18:03:44 +07:00
Sergey Lipskiy
b012e8b53c Code refactor:
* move implementation of S2DEX commands from gSP.cpp to uCodes/S2DEX.cpp
* code cleanup
2018-09-30 18:03:44 +07:00
Sergey Lipskiy
9192a82905 Rewrite vertex coordinates calculation for gSPObjRectangle using fixed-point math decoded from S2DEX ucode by olivieryuyu
Code refactoring.
2018-09-30 18:03:44 +07:00
Sergey Lipskiy
7d75b99705 Rewrite gSPObjSprite using fixed-point math decoded from S2DEX ucode by olivieryuyu 2018-09-30 18:03:44 +07:00
Sergey Lipskiy
cf05918222 Revert "Shift sprite origin Y by -0.5"
This reverts commit 43e0ad500f.
2018-09-30 18:03:43 +07:00
Sergey Lipskiy
6ac8efe081 Use frame buffer from input parameters when call
_updateScreenCoordsViewport from GraphicsDrawer::drawTexturedRect.

Fixed incorrect picture size when color buffer copied from RDRAM.
Buffer copy uses drawTexturedRect
2018-09-26 13:48:42 +07:00
Sergey Lipskiy
5e1c8a6b58 Do not use clearDepthBuffer in FillRect. Use drawRect only. 2018-09-24 22:02:25 +07:00
Sergey Lipskiy
6a7c64dd6b Do not use clearColorBuffer in FillRect. Use drawRect only.
Fixed Twisted Edge Extreme Snowboarding P1 broken #1873
2018-09-24 20:33:15 +07:00
Sergey Lipskiy
2f83650725 Switch from blitOrCopyTexturedRect() to copyTexturedRect() in OverscanBuffer::draw. 2018-09-24 20:33:12 +07:00
Sergey Lipskiy
3faa383c55 Fix in FrameBufferList::renderBuffer() : draw blank frame if VI state is wrong.
Previously renderBuffer() did nothing in that case and last rendered frame remained on screen.

Fixed Perfect Dark (Missing Transition Animation at end of Title Intro Screen - PD Logo Doesn't Disappear) #1715
2018-09-24 20:33:08 +07:00
Sergey Lipskiy
2e2cbcfcfc Fix culling in Indi and Naboo 2018-09-24 19:32:10 +07:00
Sergey Lipskiy
e65f8bd68d Weaken condition for invalid frame buffer texture.
Fixed text in Mario Tennis scoreboard.
2018-09-16 22:15:28 +07:00
Sergey Lipskiy
67e68ed1f6 Support FXAA in GUI. 2018-09-09 16:41:58 +07:00
Sergey Lipskiy
bb6debf2f7 Support FXAA in mupen64plus config 2018-09-09 16:41:55 +07:00
Sergey Lipskiy
ae67c77c9d Replace direct call of Postprocessor methods by list of available postprocessing functions. 2018-09-09 16:41:37 +07:00
Sergey Lipskiy
9705f5d520 Implement FXAA 2018-09-09 16:36:09 +07:00
Sergey Lipskiy
1e97355882 Code refactor: remove duplication of code in PostProcessor.cpp 2018-09-09 15:34:32 +07:00
Sergey Lipskiy
15188dad16 Fix destX calculation in FrameBufferList::renderBuffer()
Fixed black boarders size in Banjo-Kazooie.
2018-09-08 00:13:43 +07:00
Sergey Lipskiy
be49e9e2e9 Correct check for side-by-side buffers in FrameBufferList::renderBuffer()
Fixed Kirby 64 - screen jumps in full screen. #1750
2018-09-07 23:00:45 +07:00
gizmo98
d4cce52c60 Rewrite ObjCoordinates(const uObjScaleBg * _pObjScaleBg)
gSPBgRect1Cyc() and gSPBgRectCopy() use ObjCoordinates(const
uObjScaleBg * _pObjScaleBg).

This modification fixes bad texture quality in following games:
-Bakuretsu Muteki Bangaioh
-Nintama Randou
-Starcraft
-Command & Conquer
-SD Hiryuu noKen Densetsu

https://github.com/gonetz/GLideN64/pull/1878
2018-09-07 21:25:44 +07:00
Sergey Lipskiy
fef718b8d2 Do not reject tile loading when tile end address is out of RDRAM bound.
Try to load as much as possible instead.

Fixed Bust-A-Move 2 wrong 2D during intro #870
2018-09-07 21:08:37 +07:00
Sergey Lipskiy
22267831e0 Optimize ShaderN64DepthCompare a little bit. 2018-09-06 22:54:07 +07:00
Sergey Lipskiy
9b487453a6 Correct URenderTarget::update()
Depth buffer not cleared if SetDepthImage called after Fillrect.

Fixed Ocarina of Time Link's portrait missing with N64 deph compare #1850
2018-09-06 22:54:00 +07:00
Sergey Lipskiy
83e1ccb72e Remove hack for Banjo-Tooie Groggy Crash #1250 added in 8fbd1d030b
Writes to TMEM protected by masking TMEM write address, so it is not necessary anymore.
Rearrange the code a bit.

Fixed NBA Live 99 messed up textures #1826
2018-09-05 23:20:27 +07:00
Sergey Lipskiy
c53bf689e1 Correct calculation of bytes for 32bit textures in gDPLoadTile
Fixed 1080 Snowboarding title logo regression #1824
2018-09-05 17:23:23 +07:00
Sergey Lipskiy
289edfd148 Fixed missing gfx with native recs option (regression) #1889 2018-09-04 23:46:15 +07:00
Sergey Lipskiy
80ba93413a TexrectDrawer: use RDP.w0, RDP.w1 to get rect coordinates. 2018-09-04 16:54:56 +07:00
Sergey Lipskiy
fac72ddf5a Store texrect command parameters in RDP.w0 and RDP.w1 2018-09-04 16:42:53 +07:00
Sergey Lipskiy
ec54a9a672 Debugger: fixed find polygon with given texture. 2018-09-04 16:16:53 +07:00
Sergey Lipskiy
d8921dfeb6 Debugger: correct rects coordinates 2018-09-04 16:16:08 +07:00
Sergey Lipskiy
40455845ba Dump microcode string to log file. 2018-09-02 16:31:10 +07:00
Sergey Lipskiy
a28b9913f7 Dump microcode info to log file. 2018-08-31 13:40:01 +07:00
Sergey Lipskiy
73189eb958 Implement olivieryuyu proposal to add Early Fast3D games to custom micricodes, #1303
Code refactoring.
2018-08-31 12:53:48 +07:00
Sergey Lipskiy
7036aa0cc6 Enable "no near clipping" mode for F3DFLX2 ucode.
Fixed Near Plane Clipping issue with GLideN64 #1855
2018-08-31 00:08:15 +07:00
Sergey Lipskiy
ae43c0cd39 Enable "no near clipping" mode for "RSP SW Version: 2.0G" ucode.
Fixed AeroFighters Assault GFX issue #289
2018-08-30 14:04:27 +07:00
Sergey Lipskiy
74c0980d44 Enable hack_texrect_shade_alpha for Bottom of the 9th.
Fixed bottom of the 9th: no more intro and main title gfx (regression) #1888
2018-08-28 21:41:16 +07:00
Sergey Lipskiy
b3068d9536 Fix OverscanBuffer::getScaleX() 2018-08-28 20:57:50 +07:00
Sergey Lipskiy
cec0f2fc05 Update end address of the current frame buffer in gDPFullSync().
Fixed Ogre Battle 64 Opening Splash Screens Flicker. #1868

Details

Problem: frame buffer end address set to minimal when buffer is allocated.
It is updated on next call of gDPSetColorImage.
In case of Ogre Battle 64 Opening next call of gDPSetColorImage occurs in next frame.
VI can't find the buffer because REG.VI_ORIGIN points on buffer with some offset,
which in this case is larger than diff between start and end address.
VI allocates new buffer, which eventually replaces the current one and flickering happens.

Solution: update current buffer's end address in gDPFullSync()
to ensure that it will be correct at the moment when VI will search for buffer to draw.
2018-08-28 16:07:31 +07:00
Sergey Lipskiy
62b8103e46 Support FRONT_AND_BACK culling mode.
Fixed Super Smash Brother Gfx issue on Dreamland stage #487
2018-08-24 16:16:06 +07:00
Sergey Lipskiy
3bc17f50f3 Correct texture coordinates calculation in z-sort ucodes.
Fixed Mia Hamm Soccer 64: wrong textures in menu (regression & HLE) #210
2018-08-20 11:54:00 +07:00
Sergey Lipskiy
a14f737c29 GUI: Minor fix in ConfigDialog::on_buttonBox_clicked 2018-08-15 10:58:21 +07:00
Sergey Lipskiy
2f60502c3e GUI: Remove on_customSettingsCheckBox_clicked
This function is useless now because custom settings control is disabled when game is running.
2018-08-15 10:57:52 +07:00
Sergey Lipskiy
7d026f069b Add warning that settings will be applied for the current game only. 2018-08-15 10:54:09 +07:00
Sergey Lipskiy
bd566e67ed Fix custom rom settings save.
Fixed Profiles introduced issues with save/load feature on PJ64. #1879
2018-08-13 22:31:00 +07:00
Sergey Lipskiy
027810ad4a Fix typo: onScreenDispaly => onScreenDisplay 2018-08-13 22:24:32 +07:00
Sergey Lipskiy
43e0ad500f Shift sprite origin Y by -0.5
Fixed Parlor! Pro 64 #133
2018-08-12 16:27:40 +07:00
gizmo98
59ad164258 ObjCoordinates: Implement G_OBJRM_BILERP
-Rewrite lrx, ulx, lry, uly, lrs, uls, lrt, ult calculation
-Implement SHRINKSIZE according to programmers guide
-Implement G_OBJRM_BILERP according to programmers guide
-Worms Armageddon: Menu items, 2D elements and worms are sharp
-Kirby Crystal Shards: Menu is sharp
2018-08-04 20:36:54 +02:00
gizmo98
c76daedfc0 Fix Worms Armageddon
Rewrite
https://github.com/gonetz/GLideN64/commit/feb0e53034d54095464687dbae1785
4c9dc3caa6 to fix Worms Armageddon. If upper left value is zero lower
right value is scaled width minus one scaled texel.

Example:
Width = 10.0f, scale is 1.0f
urx = 0.0f;
lrx = 0.0f + 10.0f/1.0f - 1.0f/1.0f = 9.0f
Resulting range is 0-9 for a 10 texel width texture.
2018-08-03 17:15:24 +07:00
gizmo98
e9becd4b8a rpi: limit m_maxCacheSize to fix texture corruption
Limit m_maxCachSize to fix texture corruption in Yoshi’s Story. I have
tested values between 1500 and 3500. Everything >= 1800
produces texture corruption after a short time.
2018-08-03 17:13:48 +07:00
Sergey Lipskiy
1b17e98941 TexrectDrawer fixes:
* fix issues in _lookAhead
* use integer coordinates to rects side-by-side detection.

Fixed #1856, #1859
2018-07-23 21:56:20 +07:00
Sergey Lipskiy
5186a50597 Init GBI.cmd at G_RDPNOOP.
Fixed UNKNOWN GBI COMMAND log message for SF Rush.
2018-07-22 23:02:27 +07:00
Sergey Lipskiy
d9fad30f04 Change type for "MaxAnisotropy" option from Bool to Int.
Fixed #1867
2018-07-22 20:43:16 +07:00
gizmo98
a6adf6308d gSPInsertMatrix: fix insert fractional part if old value is negativ
s32 integer = static_cast<s32>(-2.5f) = -2
GetFloatMatrixElement(static_cast<s16>(integer), 0x44) = -1,9993286030

Fix:
s32 integer = (-2.5f * 65535.0f) >> 16 = (163837) >> 16 = -3
GetFloatMatrixElement(static_cast<s16>(integer), 0x44) =
-2,999008163576715
2018-07-22 19:58:22 +07:00
Sergey Lipskiy
e0418c3c34 Apply TexrectDrawer if next draw command is also texrect and those texrect is side-by-side with the current one.
It should fix performance issues with particles.
Currently works only in HLE mode.
2018-07-03 21:52:18 +07:00
Sergey Lipskiy
d4b770b2c1 Correct texrect dsdx calculation in COPY mode.
Partially fixes issue with the energy bar in F-Zero multiplayer, #1849
2018-07-02 19:24:18 +07:00
Sergey Lipskiy
9fb63e0460 Validate config after load.
Fixed glitches when 'MSAA' and 'N64 depth compare' both enabled, #1815
2018-06-28 16:18:16 +07:00
Sergey Lipskiy
557851949a Force load hires textures cache file if path to texture pack does not exists.
Fixed load of .htc files distributed without texture packs.
Fixed #1840.
2018-06-23 23:11:54 +07:00
Sergey Lipskiy
2a677a23a8 Implement left offset for source image when VI_ORIGIN address points on non-zero position in scan-line.
Fixed PAL version of International Superstar Soccer 98, #1845
2018-06-23 21:56:10 +07:00
Sergey Lipskiy
a3e34aa426 GUI: import settings from old version of ini file. 2018-06-22 16:38:54 +07:00
Sergey Lipskiy
0a59366936 GUI: clear resolution comboboxes before inserting items. 2018-06-18 16:48:14 +07:00
Sergey Lipskiy
6a1a4b590d Add profiles support to zilmar-spec build.
Details: #1836
2018-06-17 21:21:51 +07:00
Sergey Lipskiy
2322f5f53f Implement Overscan feature.
Remove Crop feature.
Change settings save-load when "per game settings" enabled:
    * When config dialog opens, show custom settings for the running game. If no game run yet, show main settings.
    * When user press OK button, save settings to the custom ini file and to the main ini file.
2018-06-17 20:04:45 +07:00
fzurita
3fe0f5ec67 Fix NEON build 2018-06-16 22:23:30 +07:00
Sergey Lipskiy
3e0c635ad2 Correct mipmap shader for case when max tile is 0.
Up shader storage version.
2018-06-16 18:41:51 +07:00
Sergey Lipskiy
b9bfbf40e8 Indi Particle Optimization hack.
Add F5INDI_PARTICLE_OPT define to enable.
2018-06-16 18:41:50 +07:00
Sergey Lipskiy
b0a575313a Implement Factor5 ucodes for Indiana Jones/Battle of Naboo, task #1259 2018-06-16 18:41:50 +07:00
fzurita
582bfe353f Improve check for buggy fragment shader interlock
Nvidia Drivers greater than or equal to 390.00 don't seem to crash with
it.
2018-06-16 00:13:55 +07:00
Sergey Lipskiy
3ff1478103 Add matix element conversion functions. 2018-06-11 20:12:13 +07:00
gizmo98
b0647a64d1 ZSortBOSS_Audio2(): use absolut value of fraction
fractpart will be cast to u16. Remove sign.
2018-06-09 12:31:35 +02:00
gizmo98
95d5264300 Add better matrix load, insert and store fixed to float logic 2018-06-09 12:29:01 +02:00
gizmo98
35f4ad3b28 gSP.cpp: Replace _FIXED2FLOAT if there is no real fixed to float conversion
Use * recip instead
2018-06-02 21:35:32 +07:00
gizmo98
4750e10076 Use _FIXED2FLOATCOLOR 2018-06-02 21:35:32 +07:00
gizmo98
997820c000 GBI.h: add better color reciproc values 2018-06-02 21:35:32 +07:00
gizmo98
bb00ed3f4f gSPInsertMatrix remove (int) cast and use copysignf
Fraction value gets lost if float is cast to int. Use copysignf to
transfer sign from fraction to newvalue.
2018-06-02 21:35:32 +07:00
gizmo98
a8349418ce Use _FIXED2FLOAT
Replace x/65536 and x*0.00390625f with _FIXED2FLOAT
2018-06-02 21:35:32 +07:00
gizmo98
31ced0362a Use FIXED2FLOATRECIP16
Replace 1.5258789e-05f with FIXED2FLOATRECIP16
2018-06-02 21:35:32 +07:00
gizmo98
16dd8145f8 GBI.h: add better reciproc values 2018-06-02 21:35:32 +07:00
Logan McNaughton
e80577e105 Allow non-0 default framebuffer 2018-05-22 08:25:24 -06:00
Logan McNaughton
44068412f4 Revert "Add the iOS framebuffer binder from @braindx"
This reverts commit ff904fc51e.
2018-05-19 16:08:07 +07:00
fzurita
e3a7acadb2 Fixes build errors with clang 2018-05-09 16:04:33 +07:00
Logan McNaughton
6ddaba8ec5 Remove FB Attachment caching 2018-05-08 16:27:37 +07:00
Sergey Lipskiy
67f797240d Shader noise returns 0.5 when noise emulation disabled.
Fixed Paper Mario - Text from Stars is invisible #1540
2018-05-06 21:28:31 +07:00
Sergey Lipskiy
6725ad474a Fix warnings of 64bit compiler. 2018-05-06 15:54:12 +07:00
Sergey Lipskiy
10710f96ac Fix warnings from compiler and static code analizer. 2018-05-06 15:28:07 +07:00
Logan
bb697c3c28 Add forceDepthBufferClear in custom.ini
For mupen64plus spec
2018-05-02 22:29:27 +07:00
Sergey Lipskiy
8212a1faf6 Fix vertex Y calculation in GraphicsDrawer::_drawThickLine
Fixed smoke direction in Micro Machines 64 Turbo (U) #1725
2018-05-02 20:49:36 +07:00
Sergey Lipskiy
2ef337223e Dump hires textures cache to file right after load from texture pack.
It is more safe than dump when emulator closed.

Fixed Texture cache fails to save to disk #1761
2018-05-02 13:15:42 +07:00
Sergey Lipskiy
035f76e7d3 GLideNHQ code refactor: remove code duplication in TxTexCache and TxHiResCache classes. 2018-05-02 13:12:10 +07:00
Sergey Lipskiy
e317bb5071 Support config.frameBufferEmulation.forceDepthBufferClear setting in UI. 2018-05-01 19:22:39 +07:00
Sergey Lipskiy
2e7c0ecee2 Add forceDepthBufferClear config option.
Enable it for Eikou no Saint Andrews (J) in custom settings.

Fixed Eiko St Andrews: wrong 3d #161
2018-05-01 19:21:30 +07:00
Sergey Lipskiy
725ff742a8 Update viewport when exiting texrect after texturedRectSpecial call.
Fixed Paper Mario zoom-in when Mario approaches screen #1789
2018-05-01 18:01:54 +07:00
Logan McNaughton
9bda0568a8 Copy FBO texture if glTextureBarrier is unsupported 2018-04-20 22:56:17 +07:00
Sergey Lipskiy
75ea06cec7 Code refactoring: fix issues found by static code analizer. 2018-04-19 20:16:21 +07:00
Logan McNaughton
638149fb5c Update xxHash to 0.6.5 2018-04-19 12:16:02 +07:00
Sergey Lipskiy
f26b99a93d Add comment that _glinfo.imageTextures or _glinfo.ext_fetch
must be enabled when config.frameBufferEmulation.N64DepthCompare != 0
2018-04-19 12:13:53 +07:00
Logan McNaughton
1fe9ce3bf9 Fix BAR Fog with N64 Depth Compare 2018-04-19 12:04:39 +07:00
Logan McNaughton
6a10a83d09 Fix RE2 and NFL QB Club 98 on GLES 2018-04-16 21:38:42 +07:00
fzurita
e958eca3ed Disable usage of *_fragment_shader_interlock with tegra
It causes lockups with at least Tegra X1.
2018-04-16 20:51:55 +07:00
Logan McNaughton
7bad64ce70 Only call texture barrier if we are sampling from current FB 2018-04-16 11:35:15 +07:00
Logan McNaughton
c9cf91e8da Add support for ext_shader_framebuffer_fetch 2018-04-16 11:32:35 +07:00
Logan McNaughton
2e227cef53 Rewrite N64 Depth Compare 2018-04-16 11:32:35 +07:00
Sergey Lipskiy
c57eaf5285 Do not upload 2D texture for glyph with null bitmap. 2018-04-14 19:25:10 +07:00
Logan McNaughton
c01c0d5166 use gl_LastFragDepthARM and glTextureBarrier 2018-04-13 21:24:56 +07:00
Logan McNaughton
18e9a73eba Cache SpecialFeatures check 2018-04-07 11:30:33 +07:00
Logan McNaughton
b49ee1dd8b Fix GLESX clipping hack in GraphicsDrawer 2018-04-07 11:30:33 +07:00
Logan McNaughton
9c73fb27b1 Remove Image Texture requirement for some shaders 2018-04-07 11:30:33 +07:00
Logan McNaughton
af6460ff4f Require GL_NV_shader_noperspective_interpolation for GLES depth clamp emulation 2018-04-05 20:21:19 +07:00
fzurita
fd21e0e6bb Improve android logging 2018-04-05 20:17:08 +07:00
Joe Mattiello
9497a9b868 Add iOS system ifdefs and gles includes 2018-03-31 10:54:20 +07:00
Joe Mattiello
ff904fc51e Add the iOS framebuffer binder from @braindx 2018-03-31 10:54:20 +07:00
Joe Mattiello
c0ad5b8f26 Add new iOS files 2018-03-31 10:54:20 +07:00
hissingshark
d84e11e10f Added Vero4k build flags to detect libGLESv2.so path. 2018-03-31 01:18:53 +01:00
Logan McNaughton
ee906a217c Fix GLES2 shader storage support 2018-03-30 10:15:23 +07:00
fzurita
b6b4083982 Add NEON implementation of CRC_OPT.cpp
This comes from
https://github.com/hrydgard/ppsspp/blob/master/GPU/Common/TextureDecoderNEON.cpp
2018-03-29 12:51:58 +07:00
Logan McNaughton
07ec815831 Only write to gl_FragDepth once 2018-03-29 12:50:16 +07:00
gizmo98
a75665c98e rpi: limit m_maxCacheSize to fix texture corruption
Limit m_maxCachSize to fix texture corruption in beetle adventure
racing. I have tested values between 3500 and 8000. Everything >= 4000
produces texture corruption or stuttering after some time.
2018-03-29 12:49:53 +07:00
fzurita
ed5ebe3047 Fix android build after GLideNHQ refactor 2018-03-28 12:34:59 +07:00
Sergey Lipskiy
81d79e3938 GLideNHQ refactor: use graphics::InternalColorFormatParam as type for color format variables. 2018-03-28 12:28:05 +07:00
Logan McNaughton
50998f2f33 Use graphics backend in GLideNHQ 2018-03-27 20:52:56 +07:00
gizmo98
afc41907d5 arm neon: replace neon asm with neon intrinsics
-adds aarch64/arm64 support
-easier to maintain
2018-03-27 13:14:18 +07:00
fzurita
5a45ab6807 Remove unsafe compiler optimizations
They wear causing conflicts with neon
2018-03-27 13:10:57 +07:00
Sergey Lipskiy
e3bd9a0ccf Correct depth render. 2018-03-24 21:27:39 +07:00
Logan McNaughton
bdb0f7ca94 Emulate GL_DEPTH_CLAMP for GLES 2018-03-23 21:52:06 +07:00
Sergey Lipskiy
cbbc83ac96 Fix noise-based effects on texrects in "texrect in native res" mode.
Fixed GLideN64 3.0 Regression (Noise) #1740
2018-03-21 23:07:40 +07:00
Sergey Lipskiy
3289bd378b Update geometrymode after TexrectDrawer::draw()
Fixed Indy Racing 2000 (U) Speedometer broken #1709
2018-03-21 22:20:11 +07:00
Sergey Lipskiy
ed21ec774b Fix TexrectDrawer when frame buffer emulation disabled. 2018-03-21 21:20:57 +07:00
Sergey Lipskiy
5ccc40423f Correct screen coords viewport in TexrectDrawer::draw()
Fixed Mario Golf (U) bug in GLideN64 3.0 regresion #1710
2018-03-21 19:49:36 +07:00
Logan McNaughton
48018bdf4a Use included font.ttf for mupen64plus 2018-03-21 12:23:34 +07:00
Sergey Lipskiy
afb6f7e857 Revert "Adjust font defaults"
This reverts commit 30f56c98bd.

See #1758 for details.
2018-03-19 14:08:29 +07:00
Sergey Lipskiy
09a508ae11 cmake: Rename output folders. 2018-03-18 00:03:56 +07:00
Sergey Lipskiy
7aeb1018ea Fix texture size calculation and texture load.
Fixed Missing Ground Textures in Super Smash Bros. #1716
2018-03-11 14:43:16 +07:00
Logan McNaughton
2fc1b5f462 Use glDrawRangeElements 2018-03-09 20:33:15 +07:00
Logan McNaughton
958758b37a Remove PixelWriteBuffer
And a few other small fixes
2018-03-09 20:32:56 +07:00
Logan McNaughton
a611105e6d Cache glTexParameter calls 2018-03-09 20:32:34 +07:00
Logan McNaughton
91ab96d514 Fix FB attachment caching when texture is deleted 2018-03-09 20:32:34 +07:00
Logan McNaughton
b81dd6a673 Keep track of FB attachments 2018-03-09 20:32:34 +07:00
Sergey Lipskiy
822b098d6a Implement OSD Display: Internal Resolution and Rendering Resolution
Fixed #1733
2018-03-05 22:56:14 +07:00
Sergey Lipskiy
b37200239e Fix display of texrect coordinates in debugger. 2018-03-02 21:22:24 +07:00
Logan McNaughton
fefc4e63a8 Use short, not byte, for element index 2018-02-28 16:55:29 +07:00
Logan McNaughton
d467327349 Reduce some debug GL calls in production
Also only check extension support at init()
2018-02-27 20:30:19 +07:00
Logan McNaughton
cb90bb95ed Cleanup FB Texture caching code 2018-02-26 21:15:51 +07:00
Francisco Zurita
667b3d28ee Make some Android checks only apply to PowerVR 2018-02-26 20:15:15 +07:00
Sergey Lipskiy
08d3bff7ba Process unsupported blend modes only in two cycles mode. 2018-02-23 14:06:09 +07:00