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

1662 Commits

Author SHA1 Message Date
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