Skip to content

Commit 47e4e87

Browse files
committed
v1.12
fix: deprecated windows-2019 build in GHA new: support .pal files fix: prevented ZX_PLAYER from creating the .Spectral/ folder chg: deprecated ZX_SHADER,ZX_FOLDER_WINDOWS,ZX_FOLDER_UNIX options chg: switched to relative paths (.ini options) chg: adjusted Horace's luma detection code so it's compatible with RF modes chg: adjusted hovering areas on ui buttons fix: missing robocop speech in AY=2 mode chg: audio mixing adjustements so L/R channels are closer to mono now chg: added checkbox that toggles Horace chg: added extra options in tv menu fix: macos return key while in basic (osx) fix: macos build in upgraded GH actions environment (objc_msgSend args mismatch) (osx) fix: linux build (reported by @md0-code) new: exposed ZX_BLUR and ZX_BLOOM options lab: x8 zoom mode fix: fixed mid-raster renderer to be more accurate during paper cycles (reported by cafedead) chg: added vivid palette to zx player by default chg: added Z and UP key mappings as secondary and terciary gamepad buttons by default chg: prefer png game-maps over scanned jpegs lab: can edit palette colors (shift+click any toolbar palette color) chg: upgraded zxdb to v1.0.214 new: added remix, hue15, skin5, petit palettes new: parse "-rf"/"-crt" settings as strings in filename prior to ZX_PLAYER launch (via argv[0]) lab: extra options via cmdline new: dream15 palette new: new option to display the palette in use (ZX_PALETTE_PREVIEW) fix: missing Enter keycode while typing in basic (reported by skoolkid)(Linux) lab: attribute clash removal lab: vram changes highlighter lab: sprite outlines lab: lobby chat new: run-ahead 2-frame mode fix: fixed downloading urls with plus chars in them (see: ExplodingFist+ case)(Windows) fix: fixed saving screenshots or videos with disallowed chars in them (see: JackTheNipperII:Coconut case)(Windows, Linux, Mac) fix: fixed plausible crash during audio initialization on some hw specs (since v1.10) fix: fixed missing cp1252 > utf8 conversion in prompt() call (Windows) new: option to paste host clipboard into basic chg: do not patch tap checksums anymore, since we stopped from hotpatching medias. fix: loading medias with no supported file types on them (see: PacmanEmulator) fix: fixed local browser resetting scroll position on enter key new: fantasy15 palette new: adapted dawnbringer palette new: adapted pico8 palette new: adapted amstrad cpc palette new: adapted gameboy palette new: added support to rename files via local folder (F2 key) chg: use crosshair cursor when lightguns are in use
1 parent 5ff8a88 commit 47e4e87

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+12771
-577
lines changed

.github/README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ Code is highly experimental and prone to change in the future. I will keep alter
2020
- [x] Unlicensed.
2121
- [x] Single executable.
2222
- [x] Cycle stepped Z80. Z80 Disassembler. 3.5/7/14 MHz.
23-
- [x] Cycle stepped ULA/ULA+ graphics. Multicolor. 25/30/50/60Hz fps lock.
23+
- [x] Cycle stepped ULA/ULA+ ultrawide/multicolor graphics. 25/30/50/60Hz fps lock.
2424
- [x] 16, 48, 128, +2, +2A, +3, Pentagon128 models.
25-
- [x] Issue 2/3 keyboards.
25+
- [x] Issue 2/3 keyboards. Modern native/host keyboard layout while in BASIC.
2626
- [x] Beeper/AY chips. Turbosound/Turbo-AY (Pentagon only). Waveforms.
2727
- [x] Kempston mouse. <!-- @todo: AMX mouse.-->
2828
- [x] Kempston/Fuller/Cursor/Sinclair joysticks. Gamepad support (Windows, Linux). <!-- @todo: invert joystick/mouse axes/buttons -->
@@ -36,17 +36,17 @@ Code is highly experimental and prone to change in the future. I will keep alter
3636
- [x] Nec µ765/Betadisk interfaces.
3737
- [x] Auto load games. Auto play/stop tape. TurboROM.
3838
- [x] Graphical tape browser.
39-
- [x] Run-Ahead.
39+
- [x] Improved input latency via Run-Ahead.
4040
- [x] POK support. <!-- @todo: cheats finder; useful? -->
4141
- [x] Gunstick, Lightgun. Mikro-plus. [Lenslok](https://www.youtube.com/watch?v=GN_vPGQ4BNM). <!-- Cheetah Defender Lightgun, Magnum Light Phaser, Stack Light Rifle -->
4242
- [x] External shaders support.
4343
- [x] Internal savestates.
4444
- [x] Graphical User Interface.
4545
- [x] Portable: Windows, Linux, MacOS.
46-
- [x] Embedded ZXDB.
47-
- [x] ZXDB Browser. ZXDB Gallery. <!-- @todo: 3d tape cases. -->
46+
- [x] Embedded ZXDB. ZXDB Browser. ZXDB Gallery. <!-- @todo: 3d tape cases. -->
4847
- [x] Can translate game menus from some languages into English.
4948
- [x] Games can be appended to executable and get a standalone game viewer.
49+
- [x] Co-op for kids: Horace, a companion screenmate.
5050

5151
# Downloads
5252
Download both source code and binary releases from [these links](https://github.com/r-lyeh/Spectral/releases).
@@ -68,6 +68,8 @@ Hold any F1..F12 key for 2 seconds to redefine it.
6868
# Credits
6969
Andre Weissflog, for their many single-header libraries! (Zlib licensed). Peter Sovietov and wermipls, for their accurate AY chip emulator (MIT licensed). Ulrich Doewich and Colin Pitrat, for their uPD765A floppy disk controller (GPL licensed). Marat Fayzullin for their WD1793/FDI controllers (Proprietary). Sean Middleditch for their gamepad code (MIT licensed). Sergey Bulba for their ay2sna tool (Public Domain). Potapov Vsevolod Viktorovich for their rusfaq website. Andrew Owen and Geoff Wearmouth for their custom ROMs. Simon Owen for their DSK technical websites. Santiago Romero, Philip Kendall, James McKay for their FOSS emulators. Damian Vila for their BESCII truetype font (CC-1.0). lalaoopybee, for their lovely tube shader. Günter Woigk, Juan Carlos González Amestoy and David Colmenero for their floppy sound recordings. Sean Middleditch for their gamepad library (MIT). joric for their irc client (PD). David Reid and Lieff for their mp3 decoding library (PD). Steve John for their waveform display code (MIT). Simon Owen for their LensKey source code. The ZXDB devs. The ZX Spectrum Discord folks. All the ZX community!
7070

71+
Special thanks to zjoYkileR, ZXGuesser, Beginner, arjun, ref and LaesQ! :D
72+
7173
# Unlicense
7274
This software is released into the [public domain](https://unlicense.org/). Also dual-licensed as [0-BSD](https://opensource.org/licenses/0BSD) or [MIT (No Attribution)](https://github.com/aws/mit-0) for those countries where public domain is a concern (sigh). Any contribution to this repository is implicitly subjected to the same release conditions aforementioned.
7375

.github/workflows/release.yml

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,28 @@ jobs:
5353
sudo apt-get update
5454
sudo apt-get install -y build-essential libgtk-3-dev
5555
- name: Build Ubuntu
56-
run: sh MAKE.bat
57-
- name: Patch glibc for backwards compatibility
58-
uses: lmangani/polyfill-glibc-action@main
59-
id: polyfill
60-
with:
61-
glibc: "2.17"
62-
target: "./SpectralNoZXDB.linux"
63-
- name: Compress 'n Package
6456
run: |
65-
upx -9 SpectralNoZXDB.linux
66-
dd if=src/res/embed >> SpectralNoZXDB.linux
67-
dd if=src/res/zxdb/Spectral.db.gz >> SpectralNoZXDB.linux
68-
dd if=src/res/embed >> SpectralNoZXDB.linux
57+
sh MAKE.bat
58+
# strip --strip-all SpectralNoZXDB.linux # this is required for next polyfill step
59+
# - name: Patch glibc for backwards compatibility
60+
# uses: lmangani/polyfill-glibc-action@main
61+
# id: polyfill
62+
# with:
63+
# glibc: "2.17"
64+
# target: "./SpectralNoZXDB.linux"
65+
# - name: Compress 'n Package
66+
# run: |
67+
# #upx -9 SpectralNoZXDB.linux # upx cannot pack polyfill'ed binaries
68+
# dd if=src/res/embed >> SpectralNoZXDB.linux
69+
# dd if=src/res/zxdb/Spectral.db.gz >> SpectralNoZXDB.linux
70+
# dd if=src/res/embed >> SpectralNoZXDB.linux
6971
- name: Upload Ubuntu Artifact
7072
uses: actions/upload-release-asset@v1
7173
env:
7274
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7375
with:
7476
upload_url: ${{ needs.create-release.outputs.upload_url }}
75-
asset_path: ./SpectralNoZXDB.linux
77+
asset_path: ./Spectral.linux
7678
asset_name: Spectral-${{ github.event.inputs.version }}.linux
7779
asset_content_type: application/x-executable
7880

@@ -107,7 +109,7 @@ jobs:
107109

108110
build-windows:
109111
needs: create-release
110-
runs-on: windows-2019
112+
runs-on: windows-2019 #-2022
111113
steps:
112114
- uses: actions/checkout@v3
113115
- name: Build Windows
@@ -124,7 +126,7 @@ jobs:
124126
# Submit signing request to SignPath
125127
- name: Sign with SignPath
126128
id: optional_step_id
127-
uses: signpath/github-action-submit-signing-request@v1.1
129+
uses: signpath/github-action-submit-signing-request@v1.2
128130
with:
129131
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
130132
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}

MAKE.bat

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ git pull
1313
if [ "$(uname)" != "Darwin" ]; then
1414

1515
# setup (ArchLinux) ----------------------------------------------------------
16-
[ ! -f ".setup" ] && [ -x "$(command -v pacman)" ] && sudo pacman -Sy && sudo pacman -Sy --noconfirm gcc && echo>.setup
16+
[ ! -f ".setup" ] && [ -x "$(command -v pacman)" ] && sudo pacman -Sy && sudo pacman -Sy --noconfirm gcc ninja && echo>.setup
1717
# setup (Debian, Ubuntu, etc)
18-
[ ! -f ".setup" ] && [ -x "$(command -v apt-get)" ] && sudo apt-get -y update && sudo apt-get -y install gcc upx libx11-dev gcc libgl1-mesa-dev libasound2-dev mesa-common-dev libudev-dev && echo>.setup
18+
[ ! -f ".setup" ] && [ -x "$(command -v apt-get)" ] && sudo apt-get -y update && sudo apt-get -y install gcc upx ninja-build libx11-dev gcc libgl1-mesa-dev libasound2-dev mesa-common-dev libudev-dev && echo>.setup
1919

2020
# compile -------------------------------------------------------------------- do not use -O3 below. zxdb cache will contain 0-byte files otherwise.
2121
echo gcc src/app.c -I src -o ./Spectral.linux -O2 -DNDEBUG=3 -D_GNU_SOURCE -Wno-unused-result -Wno-unused-value -Wno-format -Wno-multichar -Wno-pointer-sign -Wno-string-plus-int -Wno-empty-body -lm -lX11 -lGL -lasound -lpthread -ludev $* || exit
@@ -24,8 +24,8 @@ echo gcc src/app.c -I src -o ./Spectral.linux -O2 -DNDEBUG=3 -D_GNU_SOURCE -Wno-
2424
cp ./Spectral.linux SpectralNoZXDB.linux
2525

2626
# build polyfill and patch glibc, so our binary works in older linux distros as well
27-
# git clone https://github.com/corsix/polyfill-glibc && cd polyfill-glibc && ninja polyfill-glibc && cd ..
28-
# ./polyfill-glibc/polyfill-glibc --target-glibc=2.17 Spectral.linux
27+
git clone https://github.com/corsix/polyfill-glibc && cd polyfill-glibc && ninja polyfill-glibc && cd ..
28+
./polyfill-glibc/polyfill-glibc --target-glibc=2.17 Spectral.linux
2929

3030
# compress executable
3131
upx -9 Spectral.linux
@@ -251,7 +251,7 @@ ping -n 2 -w 1500 localhost > nul && rem wait 1s between 2 consecutive pings, so
251251
where /q rcedit-x64 || curl -LO https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-x64.exe
252252
where /q rcedit-x64 && ^
253253
rcedit-x64 "Spectral.exe" --set-file-version "!year!.!month!.!today!.!today!!month!" && ^
254-
rcedit-x64 "Spectral.exe" --set-product-version "1.11 Spectral" && ^
254+
rcedit-x64 "Spectral.exe" --set-product-version "1.12 Spectral" && ^
255255
rcedit-x64 "Spectral.exe" --set-icon src\res\img\noto_1f47b.ico || goto error
256256

257257
if "%__DOTNET_PREFERRED_BITNESS%"=="32" (
@@ -260,5 +260,11 @@ if "%__DOTNET_PREFERRED_BITNESS%"=="32" (
260260

261261
exit /b 0
262262

263+
rem note to self: how to make a SpectralPlayer.exe version now
264+
rem replace ZX_PLAYER=0 as ZX_PLAYER=1
265+
rem echo.>src\res\zxdb\Spectral.db.gz
266+
rem make
267+
rem copy /y Spectral.exe + src\res\embed SpectralPlayer.exe
268+
263269
:error
264270
@copy , ,, >nul

src/3rd.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "3rd_tigrrendermap.h"
1818
#include "3rd_tigrwindowed.h"
1919
#include "3rd_tigrfocused.h"
20+
#include "3rd_tigrclipboard.h"
2021
#undef border
2122
#undef run
2223

@@ -88,3 +89,5 @@
8889
#include "3rd_drmp3.h"
8990

9091
#include "3rd_arc4.h"
92+
93+
#include "3rd_ands.h"

0 commit comments

Comments
 (0)