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

372 Commits

Author SHA1 Message Date
Sergey Lipskiy
d8a93a3aa3 Correct frame buffer height calculation.
Fixed Mario Tennis (E).
The RDP frame buffer height is 256, VI buffer height is 221.
The actual height of the picture is 221, so with frame buffer height 256
viewport settings becomes wrong and the picture moves atop.
2015-05-13 10:13:29 +06:00
Sergey Lipskiy
3b97ca2d7c Fix float/int mismatch in VI_UpdateSize(). 2015-05-13 10:13:28 +06:00
Sergey Lipskiy
e21f455686 Don't call glBindImageTexture if it is not supported. 2015-05-13 10:13:28 +06:00
Sergey Lipskiy
aa694d4314 Implement screenshot capture for MupenPlus. 2015-05-13 10:13:27 +06:00
Sergey Lipskiy
d74e39b948 Fix POSIX compilation issues 2015-05-13 10:13:26 +06:00
Sergey Lipskiy
768430a234 Implement screen aspect ratio support. 2015-05-13 10:13:26 +06:00
Sergey Lipskiy
2ca283cf0f Call CRC_BuildTable() in TextureCache ctor. 2015-05-13 10:13:25 +06:00
Sergey Lipskiy
c96b62adaf Implement window resize for MupenPlus. 2015-05-13 10:13:24 +06:00
Sergey Lipskiy
60dd897a39 Change pluginName[] to "GLideN64", remove alpha from name. 2015-05-13 10:13:24 +06:00
Sergey Lipskiy
65d84128da Add script to add current revision to Revision.h
Use Revision in GetDllInfo and in MupenPlus window's caption.
2015-05-13 10:13:23 +06:00
Sergey Lipskiy
9c36b7623b Remove call of video().resizeWindow() from PluginAPI::RomOpen().
It is required for Windows only, thus it is now called from OGLVideoWindows::_start().
2015-05-13 10:13:22 +06:00
Sergey Lipskiy
1e4d8cd551 Move calls to GBI.init() and video().start() from RSP_Init() to PluginAPI::RomOpen(). 2015-05-13 10:13:22 +06:00
Sergey Lipskiy
42838fffe7 Remove obsolete MupenPlus API functions. 2015-05-13 10:13:21 +06:00
Sergey Lipskiy
279e2c9e65 Use renderCallback function in MupenPlus build. 2015-05-13 10:13:20 +06:00
Sergey Lipskiy
79bf9d9910 Rewrite config load for MupenPlus. Store parameters in main config file.
Add new video config parameters: fullscreen, verticalSync, multisampling.
2015-05-13 10:13:20 +06:00
Sergey Lipskiy
6bf0302f19 Fix errors found by code analizer. 2015-05-13 10:13:19 +06:00
Sergey Lipskiy
7548922cfd Add CombinerInfo::update().
Call it in FrameBufferList::attachDepthBuffer() before currentCombiner()->updateDepthInfo
to avoid glError caused by wrong shader program set.

Fixed glError with MarioTennis character selection.
2015-05-13 10:13:18 +06:00
Sergey Lipskiy
b6771dcf0a Correct gDP.colorImage.height calculation for gDPFillRectangle.
Fixed SCARS.
2015-05-13 10:13:18 +06:00
Sergey Lipskiy
5ac66b83fe Clear frame and depth buffers lists when VI width, height or interlaced mode is changed. 2015-05-13 10:13:17 +06:00
Sergey Lipskiy
4aa7528915 Correct buffer's height calculation in gDPSetColorImage. 2015-05-13 10:13:16 +06:00
Sergey Lipskiy
9305d46c94 Roundup calculated VI.width and VI.height.
Fixed Charlie Blast.
2015-05-13 10:13:16 +06:00
Sergey Lipskiy
2cfee3bc51 Revert "Fix gDP.colorImage.height in gDPTextureRectangle."
This reverts commit bb8800cbb163e7498b6558d8c6e059a6985edafd.
2015-05-13 10:13:15 +06:00
Sergey Lipskiy
bda27e0ed1 Update VS project file for MupenPlus build. 2015-05-13 10:13:14 +06:00
Sergey Lipskiy
805cef4225 Correct isLowerField calculation in FrameBufferList::renderBuffer.
It did not work correct for Donkey Kong (E).
2015-05-13 10:13:14 +06:00
Sergey Lipskiy
fb1a28c6db Clear frame and depth buffers lists when interlace mode is changed,
because new mode makes old buffers invalid.
2015-05-13 10:13:13 +06:00
Sergey Lipskiy
2454f70568 Don't call gDPFillRDRAM for frame buffers created in VI_UpdateScreen(),
because VI_ORIGIN is not correct address of frame buffer start.
2015-05-13 10:13:12 +06:00
Sergey Lipskiy
4a568c984d Change VI height correction constant for PAL games.
Fixed Armorines (E).
2015-05-13 10:13:12 +06:00
Sergey Lipskiy
5eac0797f0 Remove VI emulation code, which can't be tested for now.
Star Wars Ep. 1 Racer (E) is fixed.
2015-05-13 10:13:11 +06:00
Sergey Lipskiy
8733c2b3e7 Set m_drawBuffer = GL_BACK in FrameBufferList::destroy().
Fixed crash on rom reset.
2015-05-13 10:13:10 +06:00
Sergey Lipskiy
c0e0df2551 Fix allocation of new frame buffer in VI_UpdateScreen().
Need to compare buffer width with calculated VI.width, not with *REG.VI_WIDTH.

This fixes wrong allocations in Star Wars Ep.1 Racer.
2015-05-13 10:13:10 +06:00
Sergey Lipskiy
c551230a8e Double VI.height in interlaced mode when yScale = 1.
This fixes frame buffer height for Star Wars Ep.1 Racer.
Not sure that this solution is correct!
2015-05-13 10:13:09 +06:00
Sergey Lipskiy
d121144760 Disable frame buffer activiti when H width is zero. 2015-05-13 10:13:08 +06:00
Sergey Lipskiy
de5c0120ed Fix FrameBufferList::renderBuffer for interlaced modes. 2015-05-13 10:13:08 +06:00
Sergey Lipskiy
5ac57395e9 Fix FrameBufferList::renderBuffer compilation errors. 2015-05-13 10:13:07 +06:00
Sergey Lipskiy
f829a0d727 Fix gDP.colorImage.height in gDPTextureRectangle. 2015-05-13 10:13:06 +06:00
Sergey Lipskiy
2bf5c83be1 gDPFillRectangle: gDP.colorImage.height calculation for interlaced modes in G_CYC_FILL mode.
Fixed Turok 2, which set lry=VI.height. With lry++ frame buffer height becomes
wrong and can be deleted wrongly. That cause image flicker.
2015-05-13 10:13:06 +06:00
Sergey Lipskiy
400f674409 Revert VI.height calculation. Add flag VI.interlaced for interlaced mode. 2015-05-13 10:13:05 +06:00
Sergey Lipskiy
4499a6f966 Fix *BufferToRDRAM destroy().
Fixed run 4mb games after 8mb ones.
2015-05-13 10:13:04 +06:00
Sergey Lipskiy
560f1d8118 Code cleanup in gDP. 2015-05-13 10:13:04 +06:00
Sergey Lipskiy
87695ac8a7 Code cleanup in gSP. 2015-05-13 10:13:03 +06:00
Sergey Lipskiy
a6056d4c3c Optimize textures map: store values to avoid malloc/free. 2015-05-13 10:13:02 +06:00
Sergey Lipskiy
44c9dffc54 Refactor: rewrite GBI
Replace GBI_* functions by methods of GBIInfo.
2015-05-13 10:13:02 +06:00
Sergey Lipskiy
cd8f98bc7d Fix FBO buffers attachment in _copyDepthBuffer() 2015-05-13 10:13:01 +06:00
Sergey Lipskiy
86cde946e9 Refactor: replace C style OGL_* functions by OGLRender and OGLVideo classes.
OGLRender performs rendering operations.

OGLVideo initializes OpenGL and performes operations with graphics context.
It has platform-dependent implementations.
2015-05-13 10:13:00 +06:00
Sergey Lipskiy
f42357bb39 Fix posix compilation errors 2015-05-13 10:12:59 +06:00
Sergey Lipskiy
ee4dabbfbb Fix gDPFillRDRAM out of bounds writes. 2015-05-13 10:12:59 +06:00
Sergey Lipskiy
8719d245a4 Fix frame buffer endAddress calculation. 2015-05-13 10:12:58 +06:00
Sergey Lipskiy
475b37eb00 Call PluginAPI methods which use OpenGL in separate thread.
This fixes plugin reset in Project64 1.6
2015-05-13 10:12:57 +06:00
Sergey Lipskiy
245cd1b8b5 add isGLError() function. 2015-05-13 10:12:57 +06:00
Sergey Lipskiy
4f900df0ba Shader combiners deinitialization cleanup. 2015-05-13 10:12:56 +06:00