Pojawiała się nowa odsłona emulatora ZX Poly autorstwa Igora Maznitsa. Głównym celem powstania emulatora nie było jak to zwykle bywa w takich projektach dokładne odtworzenie pracy maszynek Sinclair/Amstrad a rozwiązanie jednego z najbardziej irytujących ograniczeń Spektrusia, tzw. color clash, który ograniczał ilość kolorów do dwóch jakie mogły się pojawić w kwadracie 8x8 piksli. Wizualnie, color clash potrafił niejednemu obrzydzić gumiaczka, kwadraciki mocno irytowały (chociaż bardziej mnie irytowało zbytnia cukierkowatość grafiki na innych platformach;)). A gdyby pozbyć się tego efektu? Możecie sięgnąć po ZX Poly, który wykorzystuje aż 4 emulowane Z80 do przetwarzania grafiki (autor zafascynował się rozwiązaniami Pixar System, w którym za wyświetlanie jednego kanału odpowiadał osobny procesor), w efekcie oprócz pozbycia się irytującego efektu otrzymujemy również możliwość podkolorowania gier (prosty edytor jest dołączony do projektu).
Oczywiście w epoce UlaPlus, który jest praktycznie dostępny w każdym nowym emulatorze ZX Spectrum, efekt końcowy działania ZX Poly jest trochę pomniejszony (zważywszy, że i jego prędkość przez środowisko - Java i sposób emulacji powodują iż zabawa jest trochę śiermiężna), należy jednak pamiętać, iż pracę nad tym rozwiązaniem sięgają roku 1994.
Przy okazji warto też przypomnieć inny projekt, który pozwalał w zasadzie całkowicie zmodyfikować grafikę w grze - czyli Spec256, w którym cały proces wyświetlania grafiki był przechwytywany i pozwalał na podmianę jej w dowolny 256 kolorowy sposób (problem jednak tkwił w ilości pracy jaki trzeba było poświęcić na każdy tytuł - aby cieszyć się podrasowaną grafiką wymagał on przygotowania nowych elementów graficznych, stąd bardzo skromna biblioteka gier, które wykorzystują tą możliwość).
Sky Shark (a.k.a. Flying Shark) (Firebird Software, 1987) z modyfikowaną grafiką w ZX Poly
After the War (Dinamic Software, 1989) zmodyfikowana grafika w ZX Poly
ZX Poly 20/11/2019
- Supported snapshot formats: SNA, Z80
- Supported disk images: TRD, SNA
- Supported tap formats: TAP
→ NOWSZY [ZX] ZX Poly 2.3.3 21/10/2023
2.3.3 (21-oct-2023)
- improved z80 snapshot load to process 0-2 banks among 128 ram banks
- updated embedded JDK to 21.0.1+12
2.3.2 (23-mar-2023)
- added AppImage
- added way to decrease CPU use in non-turbo mode with option "Try use less resources" #35
- updated embedded JDK to 20+37
- minor improvements of Z80 emulation
- added Ula Plus palette support for animation GIF recording
- fixed restore indicator panel view flag after restart #86
2.3.1 (27-aug-2022)
- added support for ULA Plus palette #72
- added support for SZX snapshot
- fix for Virtual keyboard button #83
- added CLI support to define emulator start parameters through command line
- added Virtual keyboard skin Spectrum+2 Style #75
- fixed keyboard layout #66
- fixed turbo menu item sync with fast button #70
- updated embedded JDK to 17.0.4.1+1
→ NOWSZY [ZX] ZX Poly 2.3.0 02/05/2022
2.3.0 02-may-2022
2.2.3 (15-jan-2022)
- added virtual keyboard skin #57
- added emulation of MAGIC button #56
- improved bootstrap ROM selection in Preferences
- added support of ROM image loading as snapshots
- Fix for ZXPlus keyboard skin
- Added Timex2048Pal keyboard skin
- Added configurable fast buttons
- added new ROM sources
- Z80, refactoring of RETI instruction
- improved emulation of ZX128
→ NOWSZY [ZX] ZX Poly 2.2.2 19/12/2021
2.2.2 (19-dec-2021)
- added option 'Volume profile' to select audio volume profile
- added support for TZX tape snapshots #10
- added keyboard skins provided by @Alessandro1970
- provided way to change L&F and application UI scale
- improved Spec256 state snapshot save (works only for loaded Spec256 snapshots) #36
- decreased CPU usage
- embedded JDK updated to Liberica OpenJDK 17+35
- minimal required JDK level is 11+
2.2.1 (07-aug-2021)
- Old Color TV filter is ON by default (can be turned off in preferences)
- added support for interlace TV output (by default ON)
- improvement of border render
- added stereo sound for AY-channels (ABC by default, it is possible turn on ACB)
- embedded JDK updated to Liberica OpenJDK 16.0.2+7
- minor refactoring and improvements
Release 2.2.0 2.2.0 (24-jun-2021)
- improved emulation of index mark for FDD
- video output processing moved into end screen paint
- improved emulation of Command Type I for FDD controller #21
- fixed emulation of Z80 #30
- updated Launch4J launcher for Windows
- embedded JDK updated to Liberica OpenJDK 16.0.1+9
- the sprite corrector now embedded into emulator
- refactoring
2.1.3 (06-mar-2021)
- improved INT tick processing
- added support of WebSocket for streaming
- added auto-restore of sound after turbo mode off
- fixed reading of samples from unsigned 8 bit WAV
- reworked form resize processing #18
- added Old TV Amber and Old TV Green filters #15
- added toggle button to activate virtual ZX-Keyboard #17
- added auto-releasing for SS+CS on virtual keyboard #12
- added configurable Protek joystick and
ZX-Keyboard Off
mode (either pressed F6 or flag in Options menu), to process
events only from selected joystick (ZX-Keyboard keys in the mode works only with pressed
CTRL) #11
- added way define custom ROM path through preferences #9
- added distributive for MacOS arm64 (game controller interface may not work)
- embedded JDK updated to Liberica OpenJDK 15.0.2+10
- added way change virtual keyboard skin through preferences #8
- added support for snapshot and file containers drag and drop into main form #7
- in Preferences added redefinition of keys mapped to Kempston joystick #5
- added support for mouse clickable virtual keyboard (show/hide by F5 pressing) #4
2.1.3 (06-mar-2021)
- improved INT tick processing
- added support of WebSocket for streaming
- added auto-restore of sound after turbo mode off
- fixed reading of samples from unsigned 8 bit WAV
- reworked form resize processing #18
- added Old TV Amber and Old TV Green filters #15
- added toggle button to activate virtual ZX-Keyboard #17
- added auto-releasing for SS+CS on virtual keyboard #12
- added configurable Protek joystick and
ZX-Keyboard Off
mode (either pressed F6 or flag in Options menu), to process
events only from selected joystick (ZX-Keyboard keys in the mode works only with pressed
CTRL) #11
- added way define custom ROM path through preferences #9
- added distributive for MacOS arm64 (game controller interface may not work)
- embedded JDK updated to Liberica OpenJDK 15.0.2+10
- added way change virtual keyboard skin through preferences #8
- added support for snapshot and file containers drag and drop into main form #7
- in Preferences added redefinition of keys mapped to Kempston joystick #5
- added support for mouse clickable virtual keyboard (show/hide by F5 pressing) #4
2.1.2 (22-dec-2020)
- added support of flags
GFXLeveledAND
,GFXLeveledOR
and GFXLeveledXOR
into Spec256 configuration
- added full-screen mode support, menu item
View -> Full Screen
- added black-white video filter
- updated dependencies
2.1.1 (26-sep-2020)
- added support of reading WAV files through TAPE
- fixed ROM work in Spec256 mode
- improved Z80 emulation
- refactoring
2.1.0 (12-sep-2020)
- improved internal timing
- base sound synthesizer frequency increased to 48000 Hz
- added item
Kempston mouse allowed
into Preferences
, by default active
- added item
Default ZX128
into Preferences
to activate ZXMode just on start of the emulator
- improved decode of
#7FFD
port in ZX-mode to increase compatibility
- added support of loading ROM from local
bootstrap.rom
file placed in emulator folder
- added support of TurboSound (NedoPC version)
- embedded GraalVM updated to 20.2.0
- improved Z80 emulation
- improved emulation of AY8910
- improved decoding of AY8910 port
- refactoring
2.1.1 (26-sep-2020)
- added support of reading WAV files through TAPE
- fixed ROM work in Spec256 mode
- improved Z80 emulation
- refactoring
2.1.0 (12-sep-2020)
- improved internal timing
- base sound synthesizer frequency increased to 48000 Hz
- added item
Kempston mouse allowed
into Preferences
, by default active
- added item
Default ZX128
into Preferences
to activate ZXMode just on start of the emulator
- improved decode of
#7FFD
port in ZX-mode to increase compatibility
- added support of loading ROM from local
bootstrap.rom
file placed in emulator folder
- added support of TurboSound (NedoPC version)
- embedded GraalVM updated to 20.2.0
- improved Z80 emulation
- improved emulation of AY8910
- improved decoding of AY8910 port
- refactoring
2.0.7 (16-aug-2020)
- added support for AY-3-8910
- added video filters #1
- added support of Covox on port #FB
- added explicit menu items to scale screen
- minor bug-fixing and refactoring
- minor improvements in Spec256 emulation
- added support of POK trainers
- added support of Spec256 container export into editor
- added dialog to choose sound device for beeper if several devices detected
- GraalVM CE updated to 20.1.0
- improved ubuntu desktop icon script
- refactoring
- added MPEG TS streaming support (beta), requires installed FFmpeg
- improved beeper to render playing TAP sound
- GraalVM CE 20.0.0 as embedded JDK image
- added support for gamepads and joysticks (through JInput library)
2.0.4 (18-jan-2020)
- added support of beeper (turned off by default)
- added more ROM sources
- fixed ROM loading from WoS
- improved CPU sync in Spec256
2.0.3 (31-dec-2019)
- added mix of colors with attribute colors in Spec256 mode
- fixed wrong default BackOverFF flag value in Spec256 loading
ZXPoly 2.0.2 (21-dec-2019)
- fixed interruption restore bug in load-write SNA snapshots
- minor emulator GUI improvements
ZXPoly 2.0.1 (15-dec-2019)
- added support of Spec256 snapshots (as .ZIP with SNA)
- improved simulation of "port #FF"
- refactoring