mirror of
https://github.com/Meridian59/Meridian59
synced 2026-08-17 18:23:09 -04:00
No description
|
Some checks failed
Palette index 254 is the cutout colour, and the "Transparent" checkbox decides whether it is a hole or an ordinary colour. The software renderer reads the flag per wall, so one bitmap can draw both ways. The hardware renderer decides once per bitmap, at texture upload, where no sidedef exists yet, so every wall using that bitmap got holes punched in it whether or not the box was ticked. Upload two variants instead, keyed on what the sidedef asked for. D3DRENDER_TEXTURE_SOLID rides in the render packet's effect field, already part of both the packet match key and the texture cache key, so no new plumbing is needed. Turning alpha testing off per chunk would have been fewer lines, but the colour under a transparent texel is not the cutout colour: the upload fills it with the last opaque colour on the row so bilinear filtering does not halo along cutout edges. Disabling the test would reveal that bleed as a smear. Two details: - The flag is read per wall, not per face, since a hole belongs to the wall rather than the side you view it from. Rooms commonly tick the box only on the face facing open ground, and reading the near face alone painted the far face cyan along corner silhouettes. - "No vertical tile" falls back to tiling where a face is not drawing holes. That flag fills the wall above the texture with what is behind it, which the texture clamp only achieves through holes; drawn solid it smeared the edge row up the wall. This exposes room data the old behaviour hid: a cutout texture without the box ticked now draws cyan, as it always has in software. 22 shipped rooms have at least one such face - but minimal issues/noticeable areas were found during inspection. Marion was the obvious case and is fixed separately in https://github.com/Meridian59/Meridian59/pull/1486; the rest already look this way to every software renderer player. Verified with a test room containing three sidedefs carrying the same bitmap with different flags, so any difference between them is purely flag driven. |
||
|---|---|---|
| .github | ||
| .vscode | ||
| aws | ||
| bbgun | ||
| bin | ||
| blakcomp | ||
| blakdeco | ||
| blakserv | ||
| clientd3d | ||
| club | ||
| contrib | ||
| dlg | ||
| doc | ||
| docs | ||
| external | ||
| include | ||
| install | ||
| kod | ||
| lib | ||
| makebgf | ||
| manual | ||
| module | ||
| resource | ||
| roomedit | ||
| run | ||
| util | ||
| .clang-format | ||
| .clang-format-ignore | ||
| .gitignore | ||
| blakston.pal | ||
| common.mak | ||
| common.mak.linux | ||
| LICENSE | ||
| makefile | ||
| MeridianPalette.BMP | ||
| README | ||
| rules.mak | ||
| rules.mak.linux | ||
Meridian 59 v1.1, January, 2015 Andrew Kirmse and Chris Kirmse Copyright 1994-2026 Andrew Kirmse and Chris Kirmse All rights reserved. Meridian is a registered trademark. LICENSE This project is distributed under a license that is described in the LICENSE file. The license does not cover the game content (artwork, rooms, audio, etc.), which are not included. Note that "Meridian" is a registered trademark and you may not use it without our written permission. The license requires that if you redistribute this code in any form, you must make the source code available, including any changes you make. We would love it if you would contribute your changes back to the original source so that everyone can benefit. WHAT'S INCLUDED AND NOT INCLUDED The source to the client, server, game code, Blakod compiler, room editor, and all associated tools are included. Audio is handled by OpenAL Soft, whose prebuilt binaries are included in external/. BUILD INSTRUCTIONS The code has been built successfully with Microsoft Visual Studio 2026 Community Edition, which you can download for free at https://visualstudio.microsoft.com/downloads/ 1. Make sure Visual Studio's binaries are in your path, e.g. by using the vcvars32.bat script that comes with Visual Studio. 2. Go to the top-level directory (the one that contains this README). 3. Type "nmake" to build debug versions, or "nmake RELEASE=1" to build release versions. RUN INSTRUCTIONS After building the code, a server install is available in the run\server directory. Type "blakserv.exe" in that directory to run the server. A client install is available in the run\localclient directory. You will need to retrieve the artwork, rooms, and audio files from elsewhere and copy them into the resource subdirectory. The first thing you'll probably want to do is create an admin account on the server so that you can log in. Go to the "Administration" tab on the server's interface and enter the command: create account admin joe.smith password (Don't use this default account name or password, or people will likely take over your server. You'll get back a message like "Created ACCOUNT 4".) Then create a character slot on that account with create admin 4 You'll now be able to log in with this account name and password. Be sure to "save game" from the server interface to save this new account. You can point your local client at your local server by running the client (meridian.exe) with command line flags, like this: meridian.exe /U:joe.smith /W:password /H:localhost /P:5959 RUNNING THE SERVER ON LINUX OR MAC The server can be built on Linux or Mac with the following commands: cd blakserv make -f makefile.linux The blakserv.cfg file requires some manual changes to run on Linux. THIRD-PARTY CODE Meridian uses zlib, libpng, libarchive, and OpenAL Soft. zlib, libpng, and libarchive are built from source. OpenAL Soft is included as a prebuilt binary (LGPL; see external/openal-soft/ for license details). libarchive was configured via cmake with the following cmake environment variables set to use zlib: ZLIB_INCLUDE_DIR points to the include directory ZLIB_LIBRARY points to lib/zlib.lib CONTACT INFORMATION You can contact us at meridian59.email@gmail.com. Our Web site is https://meridian59.com, where you can also read about the history of the game.