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