little steps near the end #17
remileonard
announced in
Announcements
Replies: 1 comment
-
|
amazing I'm trying this out right now... thanks!! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
libRealSpace v0.4 —
config_build_040New: Graphical Configuration Tool (
config)A brand-new standalone executable has been added —
config— a lightweight ImGui-based configuration editor that lets users tweak all game settings without editing files by hand.config.iniwith a single click.[Controler]section inconfig.iniwith a proper[Input]section pointing to a bindings file.New: Control Mapping UI (
DebugControlMapping)A dedicated control-remapping system is now available, shared between the
configtool and the debugger.default_bindings.cfg.config.ini([Input] bindings_file).New: Post-Processing Shader Pipeline (
RSScreen)A new GLSL post-processing pipeline has been introduced, driven by
config.ini[Video]settings:fx_cpc_palettefx_scanlinesfx_pixel_scaleGLExtensions.h/.cpp, with a no-op fallback on macOS/Linux where extensions are available natively.logical_width/logical_height) to support HiDPI/Retina displays correctly.macOS Build Support
The project can now be built on Apple Silicon (arm64) and macOS in general:
macosCMake preset targetsclangwithvcpkg.__APPLE__to use<OpenGL/gl.h>/<OpenGL/glu.h>instead of<GL/gl.h>.GL_SILENCE_DEPRECATIONis set where needed.vrstrikeis excluded from the macOS build (not supported).-Wl,-no_fixup_chainslinker option added for Apple Silicon targets (neosc,debugger,config).Gameplay features
HUD & Cockpit Overhaul (
SCCockpit)The cockpit and HUD system has been significantly reworked:
TTAG,HINF,ALTI,ASPD,HEAD,LADD), making the HUD faithful to the original game assets.RenderPitchLadder): proper roll-rotated bars, dashed lines below the horizon, tick marks, and degree labels.RenderAltiBandRoll,RenderSpeedBandRoll): scrolling tape instruments reading from asset-defined step sizes.RenderHeadingCompas): scrolling compass tape with waypoint marker.RenderTextTags/printTTAG): all HUD text fields (closure speed, range, weapon name/count, HUD mode, G-force, Mach, waypoint, radar altitude, gear/flaps/airbrake/throttle) are now drawn using the position data embedded in the game's HUD file.weapon_modeenum dispatches toRenderTargetingReticle(LCOS),RenderBombSight(CCIP),RenderMissileHud(SRM/LRM),RenderIrTargetHud(IRST), andRenderStraffingReticle(STRAF).current_targetfiltering: the cockpit now only sets a valid target for the current radar mode (AARD for air targets, AGRD for ground targets).Camerainstance (cockpit_camera) separate from the renderer's camera, correctly positioned and oriented each frame from the player plane's attitude.project_to_screennow delegates to the plane-to-world matrix for 3D cockpit mode.Config System Enhancements
Config::setIntandConfig::setBoolwrite-back methods added.Config::savesaves the current config to a file.Config.hppinclude guard fixed (<SimpeIni.h>→<SimpleIni.h>for case-sensitive file systems).config.iniis now installed to the root of the install directory (not justassets/), and copied to the build directory for Debug builds.config.inisections:[Game],[Video],[Input]— the old[Controler]section has been removed.Performance:
FrameBufferBlit OptimisationAll four blit variants (
blit,blitWithMask,blitWithMaskAndOffset,blitLargeBuffer) have been rewritten to:memcpyfor contiguous opaque spans instead of per-pixel copies.RLEShape: Pre-decoded Sprite Cache
RLEShapenow decodes sprite data once at load time into anexpand_buffer.Expand/ExpandWithBoxcalls blit directly from the pre-decoded buffer usingmemcpyfor opaque spans.rightDistandbotDistare now incremented by 1 at load time to match expected sprite extents.RSImageSet Refactor
InitFromPakEntryrewritten: correctly parses the palette offset (first DWORD) and image offset table (subsequent DWORDs until the first image).InitFromTreEntryandInitFromRamremoved (replaced by the unifiedInitFromPakEntrylogic).GetShapeboundary check fixed (>→>=).removeFirstEmptyShapethreshold changed from== 0to<= 1to handle 1-pixel placeholder shapes.SCRenderer: LOD & Config Integration
config.ini([Game] object_detail) instead of being hardcoded toLOD_LEVEL_MAX.drawModelcall sites passthis->lodLevelcorrectly.if (entries)).cameramadepublicfor external access.fovandlodLevelexposed as public fields.Math / Vector Additions
Vector3D::rotateByAxis(const Vector3D& w)— Rodrigues' rotation formula for angular velocity integration.Vector3D::rotateByAxisInPlaceconvenience wrapper.Vector3D::Length()now has aconstoverload.Vector3D::Norm()removed; all callers updated to useLength().Vector2D::operator-subtraction operator added.Point2D::rotateAroundPointnow casts coordinates tofloatbefore trigonometry (fixes implicit-conversion warnings).Timer: FPS Auto-Calibration
DesktopTimernow runs a 90-frame warm-up phase to measure the actual display refresh rate, then snaps to a standard FPS value (60, 30, 20, or 15) before engaging the spike-detection / smoothing logic. This prevents the first few seconds of play from having incorrect delta times.Bug Fixes
GetAreaBlockByIDnow also validateslodbounds (not justblockID).parseMONI_INST_RAWS_INFOnow readszoom_x/zoom_ycorrectly; ARTP/EJEC/GUNF always initialise from PAK archive.TTAGsub-records (CLSR,TARG,NUMW,HUDM,IRNG,GFRC,MAXG,MACH,WAYP,RALT,LNDG,FLAP,SPDB,THRO,CALA) now read theirzfield beforex/y.CIRCis now a typedMISD_CIRCstruct instead of a raw byte vector. ASPD/ALTI/HEAD/LADD INFO blocks now parse their structured fields before the raw byte dump.Vector3D::Norm()replaced withLength(); AI pilot format string fixed (%dfor integer speed).setMissionnow correctly markedoverride.logical_width/logical_heightinitialised; local variable renamed to avoid shadowingwidth;Setup Mappingmenu item added.logical_width/logical_heightinstead of physical pixel dimensions.GameEngine::init()and activity setup moved outside the loader thread to avoid race conditions.config.iniis now loaded before initialising the VR screen.constcopy constructor and assignment operator added.activate()intodisplayBuffer()so it is always set with the correct dimensions;vSyncpalette loop replaced with a pre-built LUT for performance;super_eagle_2xread from config.PODRentity type parsed (parseREAL_OBJT_PODR/parseREAL_OBJT_PODR_DATA).Build / Install Changes
CMakeLists.txt.configtarget added to the install set;vrstrikeexcluded on Apple platforms.config.iniinstalled to the root install directory and copied to the build directory for all targets.resources/config.rc(Windows app icon) added.resources/default_bindings.cfg(637-entry default binding table) added.This discussion was created from the release little steps near the end.
Beta Was this translation helpful? Give feedback.
All reactions