Releases: r-lyeh/Spectral
Spectral 1.12
v1.12
new: x8 zoom mode
new: palette files (.pal)
new: 2-frame run-ahead mode
new: authored fantasy15,dream15,hue15,skin5,remix palettes
new: adapted classic amstrad cpc,dawnbringer,gameboy,pico8,petit palettes
new: added support to rename files via local folder (F2 key)
new: exposed ZX_BLUR and ZX_BLOOM options within reworked TV menu
new: option to display the palette in use (ZX_PALETTE_PREVIEW)
new: option to paste host clipboard into BASIC
new: ZX_PLAYER binaries can have "-rf"/"-crt" in filename to select the tv mode (via argv[0])
new: added many new cmdline options (suggested by Janko)
chg: added checkbox to toggle Horace
chg: prefer png game-maps over scanned jpegs
chg: use crosshair cursor when lightguns are in use
chg: added vivid palette to ZX_PLAYER binaries by default
chg: added Z and UP key mappings as secondary and terciary gamepad buttons by default
chg: adjusted Horace's luma detection code so it works on RF modes
chg: adjusted hovering areas on ui buttons
chg: do not patch .tap checksums anymore, since we stopped from hotpatching medias some releases ago
chg: reduced separation of L/R stereo channels (note that real ZX is mono, in any case)
chg: upgraded zxdb to v1.0.214
fix: fixed linux build (reported by @md0-code)
fix: fixed macos-build in GHA (objc_msgSend args mismatch)
fix: fixed windows-latest build in GHA (windows-2019 was deprecated)
fix: fixed downloading urls with plus chars in them (see: ExplodingFist+ case)(Windows)
fix: fixed local browser resetting scroll position on enter key
fix: fixed mid-raster renderer to be more accurate during paper cycles (reported by cafedead)
fix: fixed missing cp1252 > utf8 conversion in prompt() call (Windows)
fix: fixed plausible crash during audio initialization on some hw specs (since v1.10)
fix: fixed occasional flashing terminal window while clicking on the first link in a session (Windows release builds)
fix: fixed saving screenshots or videos with disallowed chars in them (see: JackTheNipperII:Coconut case)(Windows, Linux, Mac)
fix: loading medias with no supported file types on them (see: PacmanEmulator)
fix: missing Enter keypress while typing in BASIC (reported by @skoolkid)(Linux,OSX)
fix: missing AY speech in AY=2 mode (regression) (see: Robocop.dsk)
fix: prevented ZX_PLAYER from creating the .Spectral/ folder
lab: lobby chat
lab: sprite outlines
lab: attribute clash removal
lab: can edit palette colors (shift+click any toolbar palette color)
lab: highlight vram changes
brk: switched to relative paths in options (.ini)
brk: deprecated ZX_SHADER,ZX_FOLDER_WINDOWS,ZX_FOLDER_UNIX options (.ini)
Spectral 1.11
v1.11
new: stereo audio
new: tape counter
new: co-op for kids: horace, a companion screenmate.
new: auto-patch .trd disks to be bootable (whenever possible)
new: added multiple local/zxdb filters support. can search for titles, aliases, years, publishers, authors, genres, tags, media types, etc.
new: added demos to zxdb listings by default now. can be isolated by filtering on the word "demo".
new: joffa's ui easter egg
chg: added special zxdb filtering words "mia"/"xxx" to display hidden categories.
chg: allowed horace to duck (down+jump) and be dragged (mouse)
chg: allowed to click on (year)(publisher) zxdb strings
chg: allowed to select .fx shaders via local browser
chg: external shaders support via TV=4 mode (by using ZX_SHADED and ZX_SHADER ini settings)
chg: extra tweaks for horace while doing tape loads
chg: identified visually different browsing areas in tape browser
chg: improved .trd detection
chg: memoized ui glyph dimensions
chg: redesigned tape browser to be more minimalist
chg: re-ordered TV modes, sorted by framerate cost
chg: used tighter spacing while in local browser
chg: gradients palette (thanks Woodster/Chevron!)
chg: support both 128/Pentagon .snas, as long as desired model is selected beforehand
fix: fixed accelerated cpu after aborting a media load and returning back to Pentagon 128 basic
fix: fixed bug that prevented creating snapshots/videos from local files supplied via argc/argv (Windows)
fix: fixed ui_print() dims when ui_monospaced==0
fix: incorrect background blend while filtering.
fix: incorrect background frame while performing a zxdb async search.
fix: fixed gamepad, missed update call (since 1.09b)
fix: using new host keyboard + gamepad case bug
Introducing.Horace.mp4
Spectral 1.10
v1.10
new: use host keyboard layout while in BASIC to ease typing (eg SHIFT+2 for quotes in addition to classic SYMB+P) (Windows/Linux/OSX)
new: rewrote audio mixer: reduced latency + no longer framerate dependant (see: mp3s, fdc sounds, rec sounds)
new: improved 48/128 game detection
new: optimized loading time between tape pauses
new: accelerated media & renderer while holding rshift key
new: added polyduck, fantasy, pcw, amber palettes. removed goblin22 palette.
new: made bootable .scl files by auto-patching them
new: experimental custom ROMs support (drag'n drop, then app restart or clear media button to wipe them out)
new: forced pause while app blurred
new: rough crt bloom in TV=2-3 modes for amber/pcw/bw/negative palettes
new: zxdb entries can swap +3 side-B disks now (MythHistoryInTheMaking)
chg: add large pauses after every tzx block $20 to ease tape seeking
chg: added a more sensitive pause block trimmer
chg: audio mixer optimizations (removed memmoves, added ringbuffer, removed dcoffset from beeper)
chg: centered app within desktop rect (Windows)
chg: changed fdc sounds and volumes (again)
chg: clean audiobuffers during zx model reset
chg: combined mic/ear volume levels
chg: detect "header" of zx/if2 roms by checking first byte (DI opcode)
chg: do not add extra large pauses at beginning of side A tapes (tzx)
chg: do not spin fdc motor audio indefinitely if any +3 game forgets to turn the motor off
chg: duplicated amount of sampling in AY=2 mode
chg: fixed turborom + bleepload (more precise range to detect romloader)
chg: improved host keypresses while in basic
chg: improved turborom compatibility (longer pilots, more precise range to detect romloader)
chg: included pilots as blank pixels in tape preview
chg: input basic detection
chg: maximized zxdb search ratio by using two passes on compound filenames (title:subtitle first, then just title)
chg: more results in tab search
chg: reduced audio latency
chg: removed abnormal initial pauses within basic headers for bad tapes like Shinobi(DroSoft) [60s] or Nautilus [29s] (tzx)
chg: selected YM2419 envelopes in AY=2 mode
chg: upgrade stb_resize2 to latest
dev: added renders_per_second metric (thanks ref!)
fix: amended PRINT IN 32765 hal bug in 128/+2 models
fix: fixed 128 regressions: BlackLamp128, HuntForRedOctober128... (do not reset cpu in HAL10H8/snow scenarios)
fix: fixed AY=2 pitch
fix: fixed bug that prevented cycling a +3/P128 model with a disk inserted
fix: fixed L/R modifier keys (Tigr)(Windows)
fix: fixed Pentagon regressions: 48irons, 1dm_pos.scl, pinball2... (HAL10H8 bugs incorrectly applied)
fix: linux/osx tigrFocused()
fix: fixed tape regressions (myla di'kaich, hysteria, thefury, roadblasters, tt racer, moonlighter, ...)
fix: queued remaining audio samples after a full saudio_push() (they were discarded before)
fix: recently introduced issue with tape polarities while trimming unneeded tape silences (alien8, headoverheels, ...)
fix: removed _ [] X fullscreen widgets (Windows)
fix: tzx loopstart counter off by 1 (does not seem to affect titles)
brk: simplified media loading/mounting code. may break games that used to work.
lab: display a larger floating preview in 6x6 and 12x12 thumbnails modes
lab: added 10KHz lowpass filter to beeper in AY=2 mode
Spectral 1.09b
v1.09b
maintenance release
chg: made TV=2 mode crispier
chg: improved search tab by maximizing the search range
chg: improved zxdb id detection from local filenames by minimizing the search range (see: Saboteur! and Saboteur2-AvengingAngel cases)
fix: display jailbars only in paper area (broken probably since we went full border emulation, 384x304)
fix: display proper RF noise interferences (broken probably since we went full border emulation, 384x304)
fix: dont emit 6 keycode while pressing ALT keys
fix: drag 'n drop support (broken since previous release) (Linux/OSX)
fix: fixed K/L input mode (broken since some prior release)
fix: fixed shader loading code (broken since some prior release)
fix: fixed malformed urls while downloading non-escaped media urls (Windows) (see: Crusoe bonus mp3 track)
fix: preserved ZX_TITLE setting between diff sessions (Linux)
fix: preserved P128 string within titlebar after loading settings file
fix: start local file browser from previously known ZX_FOLDER location (Windows/Linux/OSX)
Spectral 1.09
v1.09
new: ultrawide ula
new: resizable app window
new: tzx block $19 (GDB) support (see: AYankeeInIraq, BookOfTheDeadPart1, GLUF(AstTurbo), WorldCupCarnival, Twister)
new: added zoom/panning into zxdb screen option
new: saved current tab being browsed (ZX_TAB)
new: saved both native and non-native local folders in settings file (ZX_FOLDER_UNIX, ZX_FOLDER_WINDOWS)
new: visualize up to x6 turboAY channels in oscilloscope view (Pentagon)
chg: add tape gap when before a LEVEL text section is found
chg: allowed .folders/ to be listed in local browser (.DS_Store, .git, .github, .svn are excluded, though)
chg: allowed to scroll dialogs only when num_lines exceed vertical app height
chg: allowed to use X1..X4 zoom modes unconditionally
chg: computed zoom/panning on overlays only when needed (maps, instructions, inlays)
chg: decoupled media mounting from .sav file (might break a few things)
chg: dim background in browser text mode to ease reading game names
chg: display messagebox when a tzx message block is found
chg: display warning when critical tzx blocks cannot be parsed
chg: do not issue a stop tape command after inserting a large artificial pause
chg: increased internal resolution of tape browser preview
chg: invert mouse wheel direction when displaying overlays (maps, instructions, inlays)
chg: kept pressed gunstick fire extra frames to ease UX when shooting
chg: relocated play/pause/rec buttons into left/right panels
chg: upgraded zxdb to version 1.0.211
fix: accurate tape seek position when restoring medias from .ini
fix: expand some more characters the visualization of long title names (zxdb)
fix: fixed a recently introduced bug where Clear Medias button was not exactly working as before
fix: fixed crash when quickloading a blank saveslot
fix: fixed warning message that was never displayed when media could not be downloaded
fix: incorrect count field in tzx block $2B
fix: polyfill binary GH action (linux) (does not work yet with lubuntu16)
fix: restored proper INT placement that was broken since a few commits ago (AticAtac, SideWize...)
fix: restored zxdb info when launching app
fix: right-click in zoom setting
fix: try to amend long title UI notifies that would require wordwrap otherwise (zxdb, ui)
wip: resume magnum lightgun work
Spectral 1.08
v1.08
special thanks to Simon Owen and Steven John for sharing their sources for this release.
thanks for the feedback and bug reports! cmal, lethargeek, @md0-code
new: digitally signed Windows binaries
new: oscilloscopes (x3 AY waveforms, x1 beeper)
new: lenslok support (Elite, ACE, Art Studio, GAC, Jewels of Darkness, Mooncresta, Price of Magik, Tomahawk, TT Racer)
new: mikro-plus support (Shadow of the Unicorn)
new: added zoom/fullscreen options
fix: applied higher priority to special +2A/+3 paging mode (fixes Corsarios2x1, paging.tap) (thanks Woodster!)
fix: dont emulate floating bus on pentagon models
fix: fixed fastload for those games that left disk motor spinning (cybernoid2,rickdangerous2,smaily)
fix: fixed ZX_FOLDER not being saved properly over different sessions (linux)
fix: incorrect titlebar after switching models within a ZXDB title
fix: removed invalid linefeeds read from user prompt dialogs (linux/osx)
fix: removed tzx version check (fixes a specific Alien8.tzx file, and probably a bunch of other .tzx files as well)
fix: some generated AY samples were incorrectly ignored during mixing time
fix: unified run-ahead/regular logic flow (fixes terracresta/cobra with run-head enabled)
fix: aligned left options vertically compared to right counterparts
fix: asan out of bounds when looking up unicode glyphs not present in font
fix: canceled finder dialog after clicking on an item list (browser)
fix: ensure alpha sorting is consistent in all desktop OSes (3rd_dir.h)
fix: ensure TIGR_1X is honored (3rd_tigr.h)
fix: exact 32/36/37 tstates per int now
fix: fixed input conflict between tape preview && bottom right clickables
fix: fixed unix dir listing not appending '/' char to dirs, which differed from windows impl (linux/osx, 3rd_dir.h)
fix: improved tape heuristic for turborom && contended memory case (fixes Plyuk after loading with turborom enabled)
fix: inverted highlight of tokens/letters toggle
fix: missing fdc variable in exported gamestates
fix: moved a few temporary files to the .Spectral/ folder
fix: reset scroll when clicking folders in a large listing (local browser)
chg: unified INT/48/128/pentagon timings logic (fixed bonanzabros.dsk, probably rotatrix too)
chg: added +3DOS rom paged-in to fastload disk heuristics
chg: added early/late timings (not exposed yet)
chg: added perf warnings to cpu intensive options (RF, Run-Ahead)
chg: added right-click to record UI (screenshot, video)
chg: added sinclair 1/2 ports to expert setting mode
chg: adjusted volume for disk motor
chg: allowed to click dialog options with RMB
chg: changed heuristics that detect fdc usage
chg: if sinclairs joysticks are not mapped, emulate cursor keys while in basic always
chg: made goblin22 palette brigther
chg: made va() and stb_sprintf() calls asan friendly, hopefully
chg: removed redundant turbosound AY port in .sav files (saved 2 bytes)
chg: support embedded zxdb in .rar form
chg: upgraded zxdb to 1.0.210
brk: floatspy (48k is 1TS late, 128k is 3TS late)
Spectral 1.07 (for Mom)
v1.07 (for Mom)
Thanks to @imneme! Her OMSE emulator (MIT) showed me how the clock should be controlled by the ULA, not the CPU!
new: multicolor (action force 2, buzzsaw, oldtower, gluf, yazzie, multidude, el stompo, space monsters meet the hardy, sunbucket, blacklamp, ringo) (not yet: plyuk)
new: rainbow graphics (eliminator, uridium, bad dream, venom mask 3)
new: border effects (vectron 48, jaws, blade warrior, starion, terrorpods) (not yet: aquaplane, venom mask 3)
new: border overscan (border break, breakspace, defenders of the earth, rotatrix, sentinel 48, bordertrix 48, darkstar 48 hiscore, super wonderboy128 paused)
new: floating bus (emlyn hughes, saucer, wizball, cobra, shortcircuit, terracresta, duet) (not yet: arkanoid, sidewize)
new: fast disk loading option (+3, Pentagon)
new: emulate hardware bugs present in HAL10H8 chip (128/+2)
new: kempston2 joystick support (port 55) (see: BombMunchies)
new: revamped joystick menu screen. added new joystick mappings
new: zipped instructions support (IndianaJonesAndTheLastCrusade)
new: added manual play/stop tape controls. also, disable auto-stop/play when manual tape is enabled
chg: added warning message when bonus tracks are not played in ideal conditions
chg: added leading tape silence (100ms) to help UX when clicking tape preview bar on the left border
chg: allowed backspace key to close game filter dialog
chg: by default, use 48K for load local tapes when no model can be inferred
chg: different ordering of zxdb color flags
chg: highlight loaded game in local browser
chg: if user has changed medias, keep using that when switching different zx models
chg: infer zx model from local filenames whenever possible (Cabal.dsk, Pietro(Pentagon).tap, Manic128.tap, etc)
chg: made media screen layout extra compact (preallocated space for upcoming savegame thumbnails)
chg: updated bescii font to v3.1 (cz/sk/hu/slavic languages support)
chg: updated github workflow to use SignPath signed binaries (Windows)
chg: updated github workflow to use ubuntu22.04, since ubuntu20.04 is deprecated now (Linux)
chg: use polyfill-glibc for backwards/legacy glibc compatibility (Linux)
chg: while toggling turborom, avoid additional reset whenever possible
fix: 1-byte memory stomp
fix: allowed backspace key while browsing local folders
fix: allowed to read embedded zxdb database from any cwd (ie, ../../dir/spectral)
fix: could not change zx model after loading from local .zip files
fix: displayed alias titles in # tab when no digit/punct char is found (zxdb) (see: ¡Hundido!)
fix: fixed pentagon INT timing (borderbreak.trd)
fix: fixed some empty search results in search tab (zxdb) (see: Floromaníaco while searching for "mania")
fix: fixed ¿¡ chars not being sorted (zxdb)
fix: removed slavic entries from # tab (zxdb)
fix: fixed the .scr viewer, that prevented the app from closing
fix: fixed UB in realloc() when game searching for empty strings a few times in a row
fix: fixed bug where window titlebar() might ignore temporary strings built from va() (Windows)
fix: fixed many +3 dsks, which were not being properly initalized/mounted (see: dynasty wars, final fight, forgotten worlds, gng, led storm, last duel, mercs, wrestling superstars, time scanner, the vindicator, ...)
fix: wrong titlebar after loading some local files
Spectral 1.06
v1.06
new: mp3s support. play Side-B bonus tracks (see: EveryonesAWally, KingdomOfKrell, Corruption, DodgyGeezers, etc.)
new: added zoom/panning (see: maps, inlays, instructions)
new: allow mousewheel within dialogs for those games with ridiculous amount of cheats (see: ManicMiner)
new: dimmed thumbnails when search filtering is enabled
new: flash currently loaded game while browsing
new: combined local+wos search tab
new: zxdb 'alias' option
tzx: disable select block (only present in LoneWolfMirrorOfDeath and four minor compilations)
tzx: increased bits for pilot tones (fixes SpecialProgram11-bootleg-ITA.tzx and some other tapes)
tzx: improve tape preview by creating large pause gaps between important blocks. especifically, before any of [ .bas block, glue block, 48KStopTape block ] + any text block with 'side' or 'b' strings in it)
chg: improve texture resampling quality by going cubic instead of bilinear (see: maps, inlays, instructions)
chg: ctrl+mousewheel to advance pages while browsing
chg: auto-scan ZX_FOLDER setting on launch
chg: invert mousewheel (linux,windows)
chg: reduced the time needed to detect long keypresses
fix: fixed wrong characters when writing utf8 filenames (Windows) (see: mp4, mpeg1, png files)
fix: fixed case where repeated zxdb ids in a listing would not display its alt title (see: gremlins2)
fix: made ui_print() to work in any surface resolution
Spectral 1.05
v1.05
new: zxdb: mousewheel
new: zxdb: media selector
new: zxdb: new 'page' option
new: zxdb: new 'media' option
new: zxdb: added bookmarks and compatibility flags to local file browser
new: saved local folder location
chg: zxdb: grouped authors into a single screen
chg: zxdb: able to search release seqs now (see: #id#num
)
chg: added FN key hyperlinks into about screen
chg: changed ui to react to released mouse buttons instead of button down presses.
fix: ejected rzx after new media is inserted (see: afterburner.rzx)
fix: ejected tape after new disk is inserted (see: seraphima.scl)
fix: fixed being redirected to local browser after a wos search
fix: made browsers close any active dialog
fix: disabled accessibility keys while app in use (Windows)
fix: ay: fixed envelope 15 (ay1 core) (thanks @leiradel!)
fix: ay: dropped YM mode from AY2 core
fix: restored glx window attribs to what v1.03 was using (Linux)
fix: fixed Linux/MacOS builds (embedding zxdb build step broken since v1.04)
fix: fixed ui edge case where hyperlinks could not be hovered if they were wider than app canvas
fix: fixed accidental tape interactions while clicking bottom games within browser lists.
fix: expanded va() buffers. changed impl. hopefully addresses temporary file leaks
Spectral 1.04b
v1.04b
fix: reverse order of zxdb entries so we stop being tagged as false positive (Trojan:Win32/Wacatac.B!ml) (Windows Defender)
fix: compilation fixes for zxdb tool
chg: finder: single backspace to delete last char, hold backspace to clear field
chg: zxdb: new shorcuts: ctrl+b toggle bookmark, ctrl+space toggle compatibility flag
chg: zxdb: update db to 1.0.209
lab: irc client