Skip to content

Releases: clover-moe/spearmint

Spearmint 1.0.3

10 Jul 23:14
Compare
Choose a tag to compare

Spearmint 1.0.3 fixes a couple issues in Team Arena and a few other obscure issues. Download it at https://clover.moe/spearmint.

The Team Arena non-functional settings issue is important (though it was unnoticed since I broke it in 2014). I think the rest of the issues are kind of obscure to run into. It's not urgent to update dedicated servers since the only change is the server full message.

Changes

Engine (spearmint)

Server

  • Fix local human player not being able to join server full of bots (possible with Team Arena start server menu). Reported by Tobias Kuehnhammer, probably.
  • Display "Server is full." message (like original Quake 3) to network players instead of "Couldn't add local player 1, no free player slots!".

Client

  • Fix crash when r_flares cvar is 2 or 3 in Team Arena Single Player Tournament menu. Reported by Tobias Kuehnhammer.
  • Fix shader sort value for unknown keyword. (Fixes Unholy Sanctuary "us_intro" map.) Reported by Tobias Kuehnhammer.

Game Logic (mint-arena)

UI

  • Fix not being able to change engine latch cvars (sv_maxclients, r_mode, and several other rendering settings) in Team Arena menu. Reported by Tobias Kuehnhammer.
  • Fix player effects color on player models with rgbGen entity for local player 2, 3, and 4 in Q3 menu. Reported by ZaRR.
  • Fix compiling Team Arena with q3_ui. Reported by retro8x.

spearmint-1.0.3-data.tar.xz only includes the docs and pk3s; for when you're going to compile the engine yourself.

Spearmint 1.0.2

03 Nov 23:14
Compare
Choose a tag to compare

Spearmint 1.0.2 fixes IQM player models, using TrueType console font, and some other issues. Download it at https://clover.moe/spearmint.

There are a few bug fixes for things could be used by server game mods (listed under common) but none are used by Spearmint Quake 3 / Team Arena servers.

Changes

Engine (spearmint)

Common

  • Fix filename tab-completion without a specified directory. It affected music, play, and testmodel commands.
  • Fix IQM with no frames crashing R_ModelBounds(). It happened with IQM player head models.

Client

  • Add workaround for client error when using HTTP download. Reported by mecwerks.
  • Fix rendering IQM models between model frames.
  • OpenGL2: Fix cg_fadeExplosions when r_dlightMode is enabled.
  • OpenGL2: Fix DDS loading when GL_EXT_direct_state_access is supported.
  • Fix game resolution when compiled against macOS 10.15 SDK (by Ryan C. Gordon and patch by Tom Kidd).

Game Logic (mint-arena)

Common
  • Fix QVM printf %g trailing zero removal.

CGame

  • Change console to use "LiberationMono-Regular.ttf" TrueType font included with Spearmint 1.0.0. Previously the "LiberationMono-Bold.ttf" font was not found and the console would fallback to using the original Quake 3 bitmap console font.
  • Fix third person lightning bolt when missing Lightning Gun weapon model.
  • Fix lightning bolt being fired from corpses. Corpses didn't have a weapon model and checked the living player to see if lightning bolt should be drawn. Reported by ZaRR.

UI

  • Fix keyboard selection order for "joystick analog" option in Quake 3 controls menu.
  • Fix Quake 3 team orders menu not listing bots that joined before you.

spearmint-1.0.2-data.tar.xz only includes the docs and pk3s; for when you're going to compile the engine yourself.

Spearmint 1.0.1

16 Nov 01:47
Compare
Choose a tag to compare

Spearmint 1.0.1 fixes a few minor issues.

Server

  • Fix kicked clients displaying 'connection interrupted' instead of exiting to menu and displaying kick reason.

CGame (Team Arena)

  • Fix changing Team Arena statusbar (normal or small) in menu while in-game not applying widescreen adjustments for power ups area and voice chat head.
  • Make Team Arena prevTeamMember command loop around player list.
  • Fix drawing Team Arena HUD team member info for 'everyone' (reported by DarkPatro56 on YouTube).

Game (Team Arena)

  • Fix Team Arena voice taunt not being sent if speaking to a bot (reported by DarkPatro56 on YouTube).

See https://clover.moe/spearmint for downloads.


spearmint-1.0.1-data.tar.xz only includes the docs and pk3s; for when you're going to compile the engine yourself.

Spearmint 1.0.0

10 Oct 13:34
Compare
Choose a tag to compare

Spearmint 1.0.0 has many minor attention-to-detail improvements. The most interesting changes being:

  • Console command argument auto completion for model and headmodel and 25 other commands.
  • Random bots added in Quake III: Team Arena team gametypes using bot_minplayers or addbot random use Team Arena's characters instead of Quake 3's bots.
  • Bug fixes and performance improvements for IQM models.

See https://clover.moe/spearmint for downloads.

Spearmint 1.0.0 is not backward compatible with previous network protocol or VMs. If you extract this over a previous version, you need to manually remove spearmint-patch-0.x.pk3 files from the baseq3 and missionpack directories. (New files are named to spearmint-baseq3-1.0.0.pk3 and spearmint-missionpack-1.0.0.pk3.)

The version 1.0.0 is major, minor, patch. 0.6 and earlier should of had a ".0" at the end for patch version.

Known issue; macOS 10.6+ only execute mouse wheel control binds if wheel is turned multiple notches (SDL 2.0.8 bug).

macOS 10.5 / PPC lost support for gamecontrollerdb.txt (requires SDL 2.0.2). macOS PPC build was downgraded from SDL 2.0.3 to SDL 2.0.1 (the last SDL version to officially support macOS PPC). macOS 10.5 now runs the PPC build via Rosette (SDL 2.0.5 dropped macOS 10.5 support).

Future

This release marks the end of 10 years of Spearmint development. There may be updates to fix issues that are reported (and the macOS mouse wheel) but I'm not planning to continue general devil-op-mint.

Changes

Lines beginning with “ioq3:” were also fixed in ioquake3.

CGame VM

  • Move map restart FIGHT message higher in non-splitscreen to match the original Quake 3 behavior (reported by ZaRR).
  • Add command argument auto completion for callteamvote, callvote, follow, give, headmodel, model, team, team_headmodel, team_model, teamvote, tell, testgun, testmodel, and vote. Team Arena exclusive: vosay, vosay_team, votell, vsay, vsay_team, vtell, vtell_attacker, and vtell_target.
  • Increase tell_target and tell_attacker commands' message size from 120 to 150 (max for regular tell command)
  • Use fractional digits in cg_fov and cg_weaponFov cvars.
  • Fix dedicated console with third party transparent console background drawing over the previous frame (ghosting looking effect).
  • Quake 3: Replace control menu's reset cvar to get it's default hack with new system call trap_Cvar_DefaultVariableStringBuffer().
  • Quake 3: Make single player tiers "X arenas ignored to make count divisible by 4" console message be developer only.
  • Team Arena: Add "Random" bot to start server and in-game menus.
  • Team Arena: Fix clearing control bind in menu only affecting the displayed menu and not the actually binds.
  • Team Arena: Make scrolling in-game spectator list be smoother (broke in Spearmint 0.5).
  • Team Arena: Fix unable to type in console when missing menu data files.
  • ioq3: Make testgun command without argument disable test gun model.
  • ioq3: Fix predicting player origin on rotating platforms in third party maps (reported by kungfooman).

Game VM

  • Add capturelimit and g_instagib to callvote command.
  • Add sanity checks for callvote argument, including checking if map exists before starting vote.
  • Add command argument auto completion for addbot, forceTeam, teleport, and (dedicated server) tell.
  • Print log messages for callvote and votes cast, also printed to server console!
  • Fix occasional bot "max chatstate console messages reached" error in team gametypes with 64 players on map restart (reported by Tobias Kuehnhammer).
  • Remove -debug from end of gameversion cvar value in release build of game.qvm.
  • Team Arena: Make bot_minplayers cvar and addbot random command add Team Arena characters in team gametypes.
  • ioq3: Fix dedicated camera followers (team follow1/team follow2) displaying "Connection Interrupted" when there are no players to follow.
  • ioq3: Improve logic for finding Team Arena obelisk entities (reported by Thomas Köppe).

Engine

  • Separate left and right ALT, CTRL, SHIFT, WINDOWS, and COMMAND keys (with support for the original "bind SHIFT +speed" to affect both LEFTSHIFT and RIGHTSHIFT keys). Though this does break moving Spearmint binds config to vanilla Quake 3 or ioquake3.
  • Add mouse wheel left and right keys (MWHEELLEFT, MWHEELRIGHT).
  • Add 161 more 'world keys' to cover (I think) all USB keyboard scan codes of unknown keys (WORLD95 to WORLD255).
  • Add trap_Cvar_DefaultVariableStringBuffer() to allow Game/CGame VMs to get a cvar's default value.
  • Fix auto completing filenames more than 2 directories deep in console (required for testmodel and testgun commands).
  • Remove botlib line from meminfo command output. It was always 0 due to moving botlib into Game VM.
  • ioq3: Add support for WASAPI audio API on Windows via SDL (by Ryan C. Gordon).
  • ioq3: Add audio capture using SDL (by Ryan C. Gordon).
  • ioq3: Update from SDL 2.0.4 to 2.0.8 (by MAN-AT-ARMS and excessive work to keep macOS 10.5 support by zturtleman).
  • ioq3: Make s_useOpenAL cvar say it requires restart when changed.
  • ioq3: Fix parsing OpenGL2 renderer's specularScale in third party shaders.
  • ioq3: Readd r_deluxeSpecular cvar to OpenGL2 renderer (by SmileTheory).
  • ioq3: Fix client not downloading the the latest cgame pk3.
  • ioq3: Some minor improvements to the opengl renderers.
  • ioq3: Fix IQM models with multiple root joints.
  • ioq3: Fix IQM models that have a base skeleton with rotated joints.
  • ioq3: Fix culling unanimated IQM models not using model bounds.
  • ioq3: Improve IQM rendering performance.

spearmint-1.0.0-data.tar.xz only includes the docs and pk3s; for when you're going to compile the engine yourself.

Spearmint 0.6

13 Apr 08:56
Compare
Choose a tag to compare

Spearmint 0.6 adds InstaGib mode, MP3 support, customize-able console font size, and fixes a Windows remote code execution exploit. See https://clover.moe/spearmint for downloads.

Reminder: The Spearmint website has moved from spearmint.pw to clover.moe/spearmint.

Spearmint 0.6 is released on the 6 year anniversary of Turtle Arena 0.6 (April 13 2012) — the first of my Friday the 13th release dates. 666 book-ended by Friday the 13ths with the main Turtle Arena development occurring in the proceeding 42 months. This the final 0.x release and end of the Friday the 13th release date targets. The next release will be 1.0 on October 10 2018; the 10 year anniversary of Spearmint/Turtle Arena development.

Spearmint 0.6 is backward compatible with Spearmint 0.5 network protocol and VMs.

There was an exploit for remote code execution on Windows clients with downloads enabled or manually installing a pk3 containing a malicious vm/mint-cgame.qvm (quake virtual machine byte-code). CGame QVM could write a file named "mint-cgamex86.dll." and Windows API would silently drop the trailing period. Then the CGame QVM could run the commands "vm_cgame 0; vid_restart;" to run the mint-cgamex86.dll it wrote. Enabling downloads is not recommended as QVMs are still insecure. The exploit was reported to The ioquake3 Group by Chomenor.

Lines beginning with "ioq3:" were also fixed in ioquake3.

Engine

  • Add MP3 playback support using libmad and Thilo Schulz's mp3 patch for ioquake3.
  • Allow loading unzipped .txt files when connected to a pure server. (Reported by mecwerks)
  • Fix out of memory error when loading levels such as Team Arena's mpterra2 (Distant Screams) by increasing vm_gameHeapMegs cvar to 24. (Reported by xesarni and ZaRR)
  • Out of memory errors now report which console variable needs to be increased.
  • Disable saving player's real name (operating system user account name) in PNG screenshots. (Suggested by robo9k)
  • Add versionshort cvar that unlike version cvar does not contain the platform. If has the git build version, the date is left out too. It's displayed in the console by CGame VM.
  • ioq3: Enabled compiler optimization for macOS x86 and x86_64. It seems to improve performance.
  • ioq3: Fix not being able to load system OpenAL library on macOS. (Reported by pragmader)
  • ioq3: Support Unicode character hex values greater than 0xFF in cl_consoleKeys. (Fixed by MAN-AT-ARMS)
  • ioq3: Fix possible crash if gamestate contains 8191-chars long configstrings. (Fixed by Eugene C.)

Engine (Exploits-related)

  • Fix VMs being able to immediately change value of an engine latch cvar. (Reported by Chomenor)
  • ioq3: Fix remote code execution on Windows when cl_allowDownload is enabled. (Reported by Chomenor)
  • ioq3: Fix string buffers formatted using Q_vsnprintf on Windows possibly not being terminated resulting in out-of-bounds memory access. (Reported by birdstakes)
  • ioq3: Fix exploit to reset player by sending wrong serverId. (Reported by Ensiform)
  • ioq3: Fix VMs being able to change CVAR_PROTECTED cvars. (Reported by Chomenor)
  • ioq3: Fix fs_game ".." reading outside of home and base path. (Reported by Chomenor)
  • ioq3: Update libvorbis to 1.3.6 to fix CVE-2018-5146, CVE-2017-14633, and CVE-2017-14632.

Renderers

  • Fix crash when running shaderlist command.
  • Support Quake Live's "depthTest disable" and "novlcollapse" shader keywords.
  • Misc fixes for DDS picmip and r_picmip2.
  • Fix picmip not being applied in OpenGL2 renderer.
  • Don't load detail textures if they are disabled.
  • Made r_detailtextures 2 use nopicmip for detail textures.
  • Fix Wolfenstein: Enemy Territory foliage in OpenGL1 on Intel macOS and non-macOS big-endian platforms.
  • ioq3: Fix dark lightmap on shader in Team Arena's mpteam6 level in the OpenGL2 renderer. (Reported by wareya)
  • ioq3: Fix OpenGL2 renderer crash when BSP has deluxe maps and vertex lit surfaces. (Reported by mickael9)
  • ioq3: Fix r_fullbright 1 allowed when cheats are disabled. (Fixed by IR4T4)

VM Common

  • Add cgameversion and gameversion cvars with name, version, and date like main engine version cvar. Old gameversion cvar (value: "baseq3-4") was renamed to gameprotocol.

Game VM

  • Add InstaGib mode (players have railgun and gauntlet, no level items) for all gametypes. Enable it in the start server menu or set g_instagib cvar to 1. (Requested by myuu on Steam)
  • ioq3: Fix multiplayer vote to use a negative or very large fraglimit or timelimit causing level to continuously restart. (Based on patch by vloup)
  • ioq3: Fix invalid access to cluster 0 in AAS_AreaRouteToGoalArea(). (Reported by Thomas Köppe)

CGame VM

  • Gametype name is now displayed on the scoreboard.
  • Add cg_consoleFontSize cvar to allow changing the console font size. It's now smaller by default to be more similar to Quake3. Set cg_consoleFontSize to 16 for the size in previous Spearmint versions. (Requested by Calinou)
  • Display cgame version in console in addition to the engine version.
  • Changed website URL in menu to clover.moe/spearmint.
  • Don't draw ammo warning when spectating and following player (player name is drawn over it).
  • Fix fraglimit and timelimit in Team Arena start server menu being blank on first run. (Reported by Tobias Kuehnhammer)
  • ioq3: Support more addon levels. Increased scripts/*.arena limit to allow about 273 files. (Requested by nonickname)
  • ioq3: Restore Color Depth option in setup -> system -> graphics menu. 16-bit probably doesn't work, see graphics -> driver info menu for used values.
  • ioq3: Fix -1 (unlimited) ammo decreasing estimated ammo time remaining.
  • ioq3: Fix Team Arena server browser refresh time format (minutes less than 10 start with 0 now, 7:1 -> 7:01).
  • ioq3: Fix invalid model frame developer warnings for Team Arena holdable medkit and invulnerability effects.
  • ioq3: Fix map list in Team Arena start server menu only showing single player maps after previously entering single player menu.
  • ioq3: Fix out-of-bounds access when loading baseq3/consolehistory.dat file that is 1024 bytes. (Reported by devnexen)

spearmint-0.6-data.tar.xz only includes the docs and pk3s; for when you're going to compile the engine yourself.

Spearmint 0.5

13 Oct 12:43
Compare
Choose a tag to compare

Spearmint 0.5 focused on text quality, multi-game support, and improving the user experience.

Spearmint 0.5 uses Liberation Sans/Mono TrueType fonts by default as a replacement for Quake 3’s gfx/2d/bigchars.tga and Team Arena’s fonts. The HUD fonts have a black outline for improved visibility. Work on this started in 2011. See the readme on the Spearmint website for font configuration documentation.

Spearmint 0.5 introduces support for playing the demo versions of Quake 3 and Team Arena and OpenArena 0.8.8 (without the additional game modes).

Spearmint 0.5 is not backward compatible with Spearmint 0.4 VMs. The network protocol number was changed from 10 to 11 in order to separate Spearmint 0.5 game servers from previous Spearmint versions.

Engine

  • Fix skipping to main menu instead of displaying Team Arena Single Player postgame menu. This was broken since before the first Spearmint release.
  • Fix reading usercmds after voip data. It was broken since Spearmint 0.3.
  • Fix Windows dedicated server crash at start up.
  • Fix dedicated servers delist from master after 23 days (sv_public was forced to 0).
  • Disable automatically window scaling for High DPI on Windows Vista and later.
  • Add fs_pakWarningDialog cvar to allow disabling pk3 checksum mismatch warning. It must be set on the command line.
  • Add top-level fonts directory available to all games.
  • Add fontlist command to show currently loaded fonts.
  • Add support loading bitmap TrueType, OpenType, and Windows .fon fonts.
  • Add drag and drop demo playback support to macOS AppBundle. It was already supported on Windows and GNU/Linux.
  • Make play demo command support any demo file extension.
  • Make demo playback set fs_game from system info in demo file.
  • Allow percent sign (%) and semicolon (;) in chat messages.
  • Allow mint-game.settings to specify demo extension (com_demoext) and game name for dpmaster (com_gamename).
  • Get default fs_game from spearmint-gamelist.txt based on what games are installed.
  • Change system homepath to use XDG_DATA_HOME (/home/user/.local/share/spearmint) instead of /home/user/.spearmint on Unix-like platforms.
  • On Unix, convert com_homepath (e.g., Spearmint) to lowercase and replace spaces with hyphens.
  • Move say/tell for dedicated server into Game VM.
  • Allow Game VM to reject splitscreen player dropout (for games that only allow add/removing splitscreen players between matches).
  • Remove botlib from engine. It use to be exposed to Game VM API.

Renderers

  • Change renderer filename prefix from mint to spearmint.
  • Add view weapon fov to CGame API.
  • Add cheat protection to r_lightmap cvar.
  • Remove cheat protection from r_lodCurveError and OpenGL2's r_forceSun cvars.
  • Disable OpenGL2's r_autoExposure by default as it does not work correctly in splitscreen.
  • Don't use occusion query for OpenGL2's sun rays by default as it does not work correctly in splitscreen (r_drawSunRaysOcclusionQuery).
  • Add alphaTest shader keyword for American McGee's Alice.
  • Add r_dlightImageSize cvar which affects the generated dynamic light image. Setting it to 16 (instead of the default 128) uses the vanilla Q3 image.
  • Add r_marksOnBrushModels cvar to allow disabling marks on moving platforms (the original Quake 3 behavior).
  • Fix first person player model OpenGL2 sun shadows only appearing if player is close to ground.
  • Fix floating point precision loss in renderer at high level times.
  • Fix lightningDiffuseEntity on ppc with altivec.
  • Fix dlights being invisible in OpenGL2 renderer. They were broken since Spearmint 0.2.
  • Fix dlights in splitscreen with sun shadows enabled
  • Get all OpenGL functions at run-time instead of partially at compile time.
  • Many fixes and improvements to the OpenGL2 renderer.

VM Common

  • Add command argument auto completion support for commands in CGame/Game VM.
  • Use separate global define lists in engine for Game and CGame.
  • Add trap_PC_RemoveGlobalDefine(const char *name) and (per-file) trap_PC_AddDefine(int handle, const char *name) to Game/CGame API.
  • Fix segfault when printing invalid UTF-8.
  • Fix crash when pmove_msec is 0.
  • Fix splitscreen corpse origin moving when player respawns.

CGame VM

  • Add trap_S_StopAllSounds() to CGame API.
  • Add mouse wheel support to UI list boxes.
  • Set r_lodCurveError and OpenGL2's multisample cvar in Quake 3 graphics menu.
  • Add cg_weaponFov cvar for controlling first person weapon view model field of view independent from world field of view.
  • Add support for screenPlacement keyword to Team Arena menu files for widescreen. See the commit for details.
  • Add weaponToggle command for switching to a weapon and then back to previous when the command is run again.
  • Add (per-player) cg_cyclePastGauntlet cvar for allowing Gauntlet to be selected with weapnext and weapprev commands. It in the controls menu under the name "skip gauntlet".
  • Add cg_crosshairHealth and cg_splitviewThirdEqual to Quake 3 game options menu.
  • Add cg_drawPickupItems cvar to allow disabling in Q3 / enabling in Team Arena.
  • Add +vstr command like in OSP mod and ET.
  • Add game filter to Quake 3 server browser.
  • Display 8 maps instead of 4 in Q3 start server menu.
  • Make server browser default to Internet and fetch servers from all master servers.
  • Make UI continue searching for local servers until found.
  • Load deferred player models when a splitscreen player is added.
  • Remove 'Snow/Rain' from Quake 3 Game Options menu.
  • Fix several issues with the Team Arena server browser.
  • Fix lightning trail when cg_drawGun is 0.
  • Fix HUD placement of Team Arena power ups in widescreen.
  • Fix Team Arena single player end of round camera orbit.
  • Fix clearing edge of screen after Team Arena UI kills server.
  • Fix nonresponsive favorites in Quake 3 having no hostname.
  • Fix team chat box (cg_teamChatHeight 8) being shared by all splitscreen players and messages appearing on screen twice (chat box and notify text).
  • Add tell messages from team mates to team chat box.
  • Fix lightning and grapple trails when missing models.
  • Fix cinematic file not being closed on CL_Disconnect.
  • Fix playing demos on macOS by opening demo via finder.
  • Fix splitscreen notify text line gap being 2x size.
  • A lot of improvements for using proportional width TrueType/OpenType fonts.

Game VM

  • Add botlib from engine for greater mod capabilities, except the C pre compiler used for file parsing.
  • Add dedicated server say/tell command, which were previously in the engine.
  • Allow persistant powers without team to be picked up.
  • Don't start a vote after vote passed for map change.
  • Fix team chat meant for bot getting sent to wrong player if bot client number does not equal player number.
  • Fix swapping bot bounding boxes in AAS files on powerpc.
  • Fix multiple delayed "addbot random" commands sometimes picking the same bot.
  • Fix hit accuracy stats for lightning gun and shotgun kills.
  • Fix score bonus for defending the flag carrier in CTF.
  • Restore not giving defense score bonus to flag carrier.
  • Add score bonus for defending the flag carrier in 1 Flag CTF.
  • Make bots use crusher on other q3tourney6 maps.
  • Make bots only use q3tourney6 crusher to kill their enemy.
  • Don't turn game commands into chat at intermission.

spearmint-0.5-data.tar.xz only includes the docs and pk3s; for when you're going to compile the engine yourself.

Spearmint 0.4

13 Jul 13:43
Compare
Choose a tag to compare

Spearmint 0.4 provides a few bug fixes and improves dynamic memory handling for Game and CGame VMs.

Spearmint 0.4 is not backward compatible with Spearmint 0.3 VMs. The network protocol number was changed from 5 to 10 in order to separate Spearmint 0.4 game servers from previous Spearmint/Turtle Arena versions.

VM Heap Memory system

  • Improved and unified DLL and QVM memory allocation code.
  • Allocate space on hunk but use zone memory functions to allocate and free blocks.
  • Replace vm_qvmMinHunkMegs with vm_cgameHeapMegs and vm_gameHeapMegs which affect both DLLs and QVMs and are separate for CGame and Game VM.
  • Remove name string from VM memory allocate function that was used for sharing memory between Game and CGame DLLs.
  • Add system call to get available memory.
  • Add system call to free memory!
  • void *trap_HeapMalloc( int size )
  • int trap_HeapAvailable( void )
  • void trap_HeapFree( void *data )

Engine

  • Fix cvar default override in mint-game.settings causing error if same name as VM cmd
  • Explicitly set cull type for skybox
  • Don't colorize missing lightmaps by default
  • Add setu2, setu3, setu4 commands
  • Don't list mods that only have Spearmint patch pk3s

VM common

  • Make using Yacc optional, disabled by default

CGame VM

  • Improve keyboard/joystick input in Team Arena UI
  • Fix 4-player splitscreen HUD in 5:4 window
  • Make TrueType fonts match Q3 bitmap sizes
  • Improve TrueType text input cursor fallback
  • Resize cinematic when window is resized
  • Prevent third person from near clipping wall in 16:9
  • Fix team order menu not being centered

Game VM

  • Restore bot activating blocking entity even if predicting obstacles
  • Fix bot team order to kill last player it killed

spearmint-0.4-data.tar.xz only includes the docs and pk3s; for when you're going to compile the engine yourself.

Spearmint 0.3

13 May 17:56
Compare
Choose a tag to compare

Spearmint 0.3 adds new features and extends the mod APIs.

Spearmint 0.3 is not backward compatible with Spearmint 0.2 VMs or renderers. The network protocol number was changed from 4 to 5 in order to separate Spearmint 0.3 game servers from previous versions.

Engine

  • Added trap_DebugPolygonShow to Game VM.
  • Added support for loading demos from system paths using demo command.
  • Added support for passing demo filename to commandline now loads the demo (i.e., spearmint_x86 /home/sarge/Downloads/major-q3dm1.mintdemo)
  • Added r_colorize2DIdentity cvar to colorize 2D rgbGen identity for Q3Test and Heavy Metal: F.A.K.K.2.
  • Added r_globalLinearFogDrawSky cvar to use RTCW behavior of not drawing sky if there is far clipped globabl linear fog.
  • Added far clip to refdef_t and trap_R_GetGlobalFog and trap_R_GetViewFog.
  • Added fs_game to statusResponse.
  • Fixed loading uncompressed DDS images.
  • Made window resizable by default.
  • Made client snaps cvar default to "" and have the server use current sv_fps value when client's snaps is blank.
  • Made trap_GetEntityToken stateless by passing a pointer to an integer to track the position in the entities string.
  • Improved VoIP quaility by switching from Speex to Opus codec.

VM common

  • Add dummy assert macro for QVMs so that native builds can use assert without ifndef Q3_VM.
  • Enabled/fixed byte swapping functions available to QVMs for loading binary files.

CGame VM

  • Fixed RTCW sky box portal being far clipped when linear fog was enabled by props_skyportal.
  • Added centerecho console command.
  • Made centered text wrap around when it's too long to fit on the screen.
  • Make cg_teamChatsOnly only affect team gametypes.
  • Draw gappling hook at impact point (unless cg_drawGrappleHook is 0).
  • Added cg_drawBBox cvar option to draw player bounding boxes.
  • Readded spmap and spdevmap commands.
  • Synchronize Team Arena voice icon time/voice text time.

Game VM

  • Removed gamename ("baseq3") from statusResponse (conflicted with gamename Spearmint in infoResponse required by dpmaster protocol).
  • Added gameversion ("baseq3-4") to statusResponse containing the value that CGame checks to see if it's compatible (currently unused).
  • Fixed regression that caused bots to be stuck standing on the floor door in q3dm7.
  • Keep walker bots walking when blocked.
  • Dynamically compute bot formation space.
  • Make bots unblock teammates.
  • Make bot ignore some enemies when activating entity.
  • Make bots activate entities in battle chase/retreat/NBG.
  • Make bot only activate entity if it's blocking route.
  • Give bot more time to get item after activating entity.
  • Make bots return to previous AI node after activating entity.
  • Added teleport server command like setviewpos but specifies which player (for debugging bots).
  • Fix "brought in 1 skulls" Harvester message.
  • Make grappling hook move with platforms and pull player with using flight power up.
  • Allow spectators to use noclip.

spearmint-0.3-data.tar.xz only includes the docs and pk3s; for when you're going to compile the engine yourself.

Spearmint 0.2

13 Nov 12:14
Compare
Choose a tag to compare

Spearmint 0.2 adds new features for mods, primarily from Return to Castle Wolfenstein and Wolfenstein: Enemy Territory.

Spearmint now has all of the renderer features needed to create RTCW and ET game ports. There are a few minor renderer features that need to be added in the future for more accurate ports. There are features that need to be added in other areas (primarily sound and bot systems) before the games will be fully supported.

Spearmint 0.2 is not backward compatible with Spearmint 0.1 VMs or renderers. The network protocol number was changed from 3 to 4 in order to separate Spearmint 0.2 game servers from 0.1. Compared to 0.1, 0.2 contains all the 0.1.1 improves which are not listed here.

Added support for

  • per-font black outline width and force auto hint options for TrueType / OpenType fonts.
  • specifying wall mark poly sort order for World of Padman's spray logos.
  • controlling MDS and MDM model torso axis and frame for RTCW / ET player models.
  • custom dlight shaders, used by RTCW.
  • ET dynamic lights (level is lit using vertex light instead of using an image).
  • ET global directed light (lightning).
  • real-time "junior" dynamic lights that effect dynamically lit models but not the level.
  • making non-world model using world dynamic light, for ET HUD head. (RF_LIGHTING_GRID)
  • controlling alphaGen normalZFade and negative frequency waveform using vec3_t fireRiseDir like RTCW.
  • finding multiple model tags with the same name by specifying the start index to look for name and getting the lerped tag index back, for RTCW.
  • checking if a model tag exists without having to store the tag info (e.g., pass NULL for tag).

Removed unused argument int gradientType from trap_R_DrawStretchPicGradient().

Spearmint 0.1.1

11 Nov 13:26
Compare
Choose a tag to compare

Spearmint 0.1.1 is a bug fix and new feature release that is compatible with Spearmint 0.1. It is essentially Spearmint 0.2 without the new CGame/Game/Renderer API changes. No future 0.1 releases are planned.

Spearmint (Engine) changes:

  • Fixed bullet marks on doors and platforms not rendering correctly for splitscreen players.
  • Made the third player in splitscreen have equal viewport size (controlled by cg_splitviewThirdEqual cvar).
  • Added cg_splitviewTextScale to allow drawing HUD text larger in splitscreen.
  • Added support for using (.otf) OpenType fonts, before only .ttf could be used.
  • Added r_fontBorderWidth for adding black outline to TrueType / OpenType fonts.
  • Added r_fontForceAutoHint to allow forcing Freetype's autohinter to be used on TrueType / OpenType fonts.
  • Added fs_cdpath that can be used to specify the Q3 installation directory.
  • Added support for more shader keywords.
  • Added DDS image support (uncompressed and DTXn) for Elite Force 2.
  • Lots of other bug fixes and changes.

mint-arena (Q3 Gamecode) changes:

  • Made Q3 UI controls menu always bind control to joystick for correct player.
  • Fixed corpse being added on player join.
  • Fixed inserting text in console input losing text at end.
  • Improved console line wrapping.
  • Improved text drawing for TrueType / OpenType fonts.
  • Added anisotropic filter, MSAA, and r_lodbias -2 to Q3 UI graphics options.
  • Added center print for capturing skulls in Harvester.
  • Lots of other bug fixes and changes.

Shader keywords that were implemented:

  • tcMod offset, tcMod swap, clampTexCoords, alphaGen normalzfade, fog on, allowcompress, nocompress, noTC, subdivisions, cull front.