Comments (15)
Using -nomip
helps to avoid a bug (unsure if caused by MM1 or dgVoodoo) where the pitch of a surface is half of what it should be (width * (bpp+7)/8
)
from open1560.
agiD3DTexDef::BeginGfx
calculates this->SurfaceSize = 2 * this->SurfaceDesc.dwWidth * this->SurfaceDesc.dwHeight
though it is not clear if this field is used anywhere
from open1560.
agiDDPipeline::CopyBitmap
expects a 16-bit frame buffer when agiCurState.State.PolyMode == 3
from open1560.
When some of the listed issues are hackily fixed, you are able to get in game, though there are still some graphical issues, mostly being broken reflections and traffic lights:
from open1560.
mmCullCity::UpdateSnowTextures
supports 8-bit and 16-bit snow textures, though this is implemented as an if/else
and as such defaults to treating the texture as 8-bit.
from open1560.
agiSurfaceDesc::Reload
only supports annotating 8-bit and 16-bit textures, though this happens before textures are converted to 32-bit so it's not much of a problem
from open1560.
Using -depth -nomip
and setting bAdditiveBlending=0
in video.cfg fixes the graphical issues:
from open1560.
Commit 910dad3 fixes -nomip being required with dgVoodoo by clearing the DDSD_PITCH flag before passing the DDSURFACEDESC2 to IDirectDraw4::CreateSurface. Because the DDSURFACEDESC2 was originally from a 16-bit image, and only the ddpfPixelFormat was overwritten, the pitch was incorrect. It seems native DDRAW doesn't trust this value, but dgVodooo does.
from open1560.
dxiScreenShot only supports 555 and 565 surfaces
from open1560.
Using bAdditiveBlending=1
and premultiplying the alpha in copyrow4444_to_8888 also (mostly) fixes the transparency issues.
from open1560.
Using premultipled alpha with copyrow4444_to_8888 causes certain textures to be darker/less visible. Most noticeably: Smoke, Rain and Snow (maybe all particles?).
from open1560.
With premultiplied alpha the reflections also seem to be over saturated (NOTE: This is only true for RV3, so it may just be a problem with those textures).
from open1560.
It looks like premultipled alpha should only be used with textures that have the "g" flag (in their tex sheet), though since that information isn't stored in the agiSurfaceDesc, it will likely require a rewrite of agiD3DTexDef::BeginGfx
from open1560.
467188a fixes texture conversion by passing agiTexParameters to agiSurfaceDesc::CopyFrom, allowing a check whether the surface needs to have the alpha premultiplied
from open1560.
All 32-bit texture issues should be fixed at this point.
from open1560.
Related Issues (20)
- Add an option to extend rear view mirror draw distance HOT 1
- Fatal Error: Failed to load texsheet "mtl/global.tsh" HOT 2
- Invalid version message appears on launch. HOT 1
- Score bugs HOT 2
- Buggy cancel button in audio options
- Paintjob-dependent wheels are displayed incorrectly ingame HOT 1
- Play Midtown Madness's soundtrack without the need to insert its disc or mount an iso of the game? HOT 3
- I ran into a certain problem while modding unlock flags in the game.... HOT 1
- my ideas for open1560
- Request for more editing options with Audio
- Crash /w Error When Breaking Glass !! HOT 6
- Play Intro Video HOT 2
- Force Feedback no longer working HOT 1
- Fanatec CSL DD doesn't work HOT 1
- Add rumble support
- Add joystick support
- Increase max joystick buttons
- Implement SDL CD wrapper
- Audio Muting When Passing Trains\ Planes (Ambient Sounds Fix)
- Support Traffic Mod HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from open1560.