From e984bede52fd3a81046dfeb44032512c164f9421 Mon Sep 17 00:00:00 2001 From: voytas Date: Sat, 24 Jan 2026 15:13:52 +0000 Subject: [PATCH] Replace Spectrum fonts with a single unified font and adjust related styles and sizes --- README.md | 2 +- src/Spectron.Debugger/Controls/CodeList.axaml | 4 ++-- src/Spectron.Debugger/Controls/Cpu.axaml | 4 ++-- .../Controls/HexViewer.axaml | 4 ++-- src/Spectron.Debugger/Controls/Memory.axaml | 4 ++-- src/Spectron.Debugger/Controls/Register.axaml | 8 ++++---- src/Spectron.Debugger/Controls/Stack.axaml | 18 ++++++++++-------- src/Spectron/App.axaml | 3 +-- src/Spectron/Assets/Fonts/zx-spectrum.ttf | Bin 0 -> 17112 bytes .../Assets/Fonts/zxSpectrumExpanded.ttf | Bin 31568 -> 0 bytes .../Assets/Fonts/zxSpectrumStrict.ttf | Bin 9612 -> 0 bytes src/Spectron/Controls/PauseOverlay.axaml | 14 +++++++------- src/Spectron/Controls/TimeMachineTimer.axaml | 4 ++-- src/Spectron/Views/AboutView.axaml | 8 ++++---- src/Spectron/Views/DiskView.axaml | 4 ++-- src/Spectron/Views/KeyboardView.axaml | 4 ++-- src/Spectron/Views/PreferencesView.axaml | 4 ++-- src/Spectron/Views/TimeMachineView.axaml | 8 ++++---- 18 files changed, 47 insertions(+), 46 deletions(-) create mode 100644 src/Spectron/Assets/Fonts/zx-spectrum.ttf delete mode 100644 src/Spectron/Assets/Fonts/zxSpectrumExpanded.ttf delete mode 100644 src/Spectron/Assets/Fonts/zxSpectrumStrict.ttf diff --git a/README.md b/README.md index 6b4b37e9..2a77731c 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,6 @@ More information can be found [here](docs/Debugger.md). - [FFmpeg wrapper](https://github.com/rosenbjerg/FFMpegCore) - [SkiaSharp](https://github.com/mono/SkiaSharp) - [Material Icons](https://github.com/SKProCH/Material.Icons) -- [ZX Spectrum Font](https://github.com/comptic/zx-spectrum-font) +- [ZX Spectrum Font by Patrick H. Lauke](https://fontstruct.com/fontstructions/show/1398596) - [Hack Font](https://sourcefoundry.org/hack/) - [VT220 Font](https://github.com/svofski/glasstty/blob/master/Glass_TTY_VT220.ttf) \ No newline at end of file diff --git a/src/Spectron.Debugger/Controls/CodeList.axaml b/src/Spectron.Debugger/Controls/CodeList.axaml index e66f3afc..07f954e8 100644 --- a/src/Spectron.Debugger/Controls/CodeList.axaml +++ b/src/Spectron.Debugger/Controls/CodeList.axaml @@ -14,8 +14,8 @@ Text="Code" HorizontalAlignment="Center" VerticalAlignment="Center" - FontFamily="{StaticResource SpectrumStrictFont}" - FontSize="20"/> + FontFamily="{StaticResource SpectrumFont}" + FontSize="9"/> diff --git a/src/Spectron.Debugger/Controls/Cpu.axaml b/src/Spectron.Debugger/Controls/Cpu.axaml index 5f4c157d..d3395ea2 100644 --- a/src/Spectron.Debugger/Controls/Cpu.axaml +++ b/src/Spectron.Debugger/Controls/Cpu.axaml @@ -19,8 +19,8 @@ Text="CPU" HorizontalAlignment="Center" VerticalAlignment="Center" - FontFamily="{StaticResource SpectrumStrictFont}" - FontSize="20"/> + FontFamily="{StaticResource SpectrumFont}" + FontSize="9"/> diff --git a/src/Spectron.Debugger/Controls/HexViewer.axaml b/src/Spectron.Debugger/Controls/HexViewer.axaml index f0fe6915..036a04e2 100644 --- a/src/Spectron.Debugger/Controls/HexViewer.axaml +++ b/src/Spectron.Debugger/Controls/HexViewer.axaml @@ -90,8 +90,8 @@ diff --git a/src/Spectron.Debugger/Controls/Memory.axaml b/src/Spectron.Debugger/Controls/Memory.axaml index b62d76ff..b85f94a1 100644 --- a/src/Spectron.Debugger/Controls/Memory.axaml +++ b/src/Spectron.Debugger/Controls/Memory.axaml @@ -14,8 +14,8 @@ Text="Memory" HorizontalAlignment="Center" VerticalAlignment="Center" - FontFamily="{StaticResource SpectrumStrictFont}" - FontSize="20"/> + FontFamily="{StaticResource SpectrumFont}" + FontSize="9"/> diff --git a/src/Spectron.Debugger/Controls/Register.axaml b/src/Spectron.Debugger/Controls/Register.axaml index d6af7512..097b4241 100644 --- a/src/Spectron.Debugger/Controls/Register.axaml +++ b/src/Spectron.Debugger/Controls/Register.axaml @@ -17,16 +17,16 @@ diff --git a/src/Spectron.Debugger/Controls/Stack.axaml b/src/Spectron.Debugger/Controls/Stack.axaml index df8ac9f2..e5aac93b 100644 --- a/src/Spectron.Debugger/Controls/Stack.axaml +++ b/src/Spectron.Debugger/Controls/Stack.axaml @@ -17,8 +17,8 @@ Text="Stack" HorizontalAlignment="Center" VerticalAlignment="Center" - FontFamily="{StaticResource SpectrumStrictFont}" - FontSize="20"/> + FontFamily="{StaticResource SpectrumFont}" + FontSize="9"/> @@ -50,17 +50,19 @@ diff --git a/src/Spectron/App.axaml b/src/Spectron/App.axaml index fb8157ba..7d342dbf 100644 --- a/src/Spectron/App.axaml +++ b/src/Spectron/App.axaml @@ -35,8 +35,7 @@ - /Assets/Fonts/zxSpectrumStrict.ttf#zxSpectrumStrict - /Assets/Fonts/zxSpectrumExpanded.ttf#zxSpectrumExpand + /Assets/Fonts/zx-spectrum.ttf#ZX Spectrum Regular /Assets/Fonts/Hack-Regular.ttf#Hack /Assets/Fonts/Glass_TTY_VT220.ttf#Glass TTY VT220 diff --git a/src/Spectron/Assets/Fonts/zx-spectrum.ttf b/src/Spectron/Assets/Fonts/zx-spectrum.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d555f99e549d47045801517f0b6fa5d8a9e82381 GIT binary patch literal 17112 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 ZchLVoad6?gJU&&@>s>7E>?_Ca{{hl(1>^t# literal 0 HcmV?d00001 diff --git a/src/Spectron/Assets/Fonts/zxSpectrumExpanded.ttf b/src/Spectron/Assets/Fonts/zxSpectrumExpanded.ttf deleted file mode 100644 index 5c9e5c0f3130bc371b6eeb374d90b328e8707250..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31568 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 diff --git a/src/Spectron/Assets/Fonts/zxSpectrumStrict.ttf b/src/Spectron/Assets/Fonts/zxSpectrumStrict.ttf deleted file mode 100644 index d5cd19bcc6c84344af7c40858438789efd98dcb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9612 zcmbVSYm8Lo8GgTWnc3MJtjoBH4D2%CB8#xgIIJ?P9#H`=2ngc+va%ppZh?hRo0yaI z5@W0FuO>GAVQSN)Hfal?rqaZmU#+qHu!(7!#`I#-q)Cw<#{Q#jpXa-r%j~W+p4mCy z<(%(%@9+1Xvm;7GdLbTyZ(9MnFX8vBVA-uA6VO>KWyU`bRZgL2-N8H^1l8k-{s z%ezRBUr8jENPiJ^8LYsZuwInx}U5)3Qm2?(8P>J-1ZEPtddWIuXHrIKM z?Kd~0*T>*I(%cI?(R`O!84qIyH^~wSWGC8%`0$<^2+X5O87XXY0c4Yy^7DrKgGfvgI%>s;dpVX53vkyF{)xnca)+cvf~P27G*bf;{-3vsk{ z+r9VQ|G@SKckJBt(C$4C?|tOa#~y#;$)}!vCP!@E?xeo*oa~$T4t?R-FTOngRUNak z+I}M0D=*6h`Apra_Nb%khw9href1Z0+3WQ-dsE&IybrxA{-{6Yzv92=UkQ4HRl&C4 zK=7^LT=1`OQMe^M9sW4H7+xwZFKsCuEWJ{?Q2Ma+d3kmD(eg{>^W~2_7I$puc(UW= zj<-8LtqfLnR$i!lr}C4^Zz~^lmO9sTKG-?k`J>KvJ1=$hcCG2!*>$?>wXO?Yf9?*t zS9R~~exdvO-RHai)FVA>d!~9`>v_B9qn^vXi+V@#d9L@}UPQlmj0v?Kk>X2P)}B?e zZqvDPAfK#1TM9qgbk6tCm9svlLr$M7m(-O_=imaLtZ(!U^$j=r>dV!_%NH+tZ~b@g za_;~!6Z$$bkuN(2^kWsN825(E2Wmn!YHCQIRTRwt$K4zO zH^Mlg&l^vi(UAetI=HB_Ha zfLANgha%Fio98_d^b0bdCpb|{QIz02-vK>$%}H~araB_)s7+X@Q62FhEVLQoJA^3+ z-zcLU$9T+)^>r0niix2Qc4Ef_I`bXkBTX24(>MAo-8$XFqp-7#MKa)@cFBAS>!^i^ z08ZtDvv?Lg@B@$HnncA|UDi5YX6RuB1u}-E+dxbbr?6lE6mv(M>uUp&9b`L)-49GU z8uSK?8cYWqc%2m1*@1Y74N(!!zF-%l*G_m?m85qYYopnOHu;UG8NKDaigIVrjs#l9aisN^z(eUF;KXklQ&DLXUL8>eUE)Kx@vE># z&VEJI;t2TeAf4FK@ev2o51kAcsnrCmi&zMpx0yvGlDPG31+qF`eQ;ZYU!ztcQV67w zLbg1NAV7DF+K74&L;Sv(*>m7(o5QoH#?HZeN^xgvXFuzh&WIkovP_$?86-$iV7a{iz z7>zUgjhlRs&w|;yL`UpAwDmq=ePGz~fCY0LQc7cjIx)P%k2Lq-n(ct)-h{F?C1h{I ziwhYfAG?(-kG8O7!1b9nnMCVVR4xo>loe1fN|;nZfNMYIn8Gd8zn98T(=`%yCcmcY z+$mK{+b!^olg^C+n6?9a6mYwY3IZOkEjCxY)J zihCn#gBxTe_CIL6Y!f%SD1uljn6QHjI-vGYBmD$lcO($POYs+I-9X#WG%{(;Zww%x zhGgEb-P*BV zM#yNun#!L8C(dI6!%yu{LFPs^k?uB#fPf`*F7+6vDL?=&mxF!mBSZ8;#{Q5INzq3b zu}!e#_2YuZ1Xc!=^?;WiHuL9fYcm{t1QbU8F9r$fCOqJb{%VXVdQ6qQo#u2IQM*d&v2gH}EZ=n5U7l5tegcA3VOKt0SY{j0&3JKl*TDfU@%KeX46gIK z_JtV&1Yk4f%^dgWG8-xQ`TwVD(v{r4WokKFjix&1W^L*@mb~n7J4HXg#}p%-8+t-? z9I-yT6J)`IiH+0iX@h_oD^kUzMh(ZB8CDpI{BpFW0Bh4~s!oFsdD-oN}x8|CnG2PxBsvx-?4n zH&b8mx!+Wm#v?#uCCn3&79UAb*E6};K-VRv@ePUt!m*~7IHB~Y{lt3K*~?WmhAwP} zM^8RS6etYQH^Bv9WB$<>KriQ!xMGi7t~Bp4Y^*~9ptRI5&ctVYqWb2;N$l35&G*|! z^lbPVoXyk(RbyXn(;oQEWxBSNHm<**28BL#Et>jTjwN(8U2Q8tEdsi*1%k!wL|!dS zinqIw%}p`Z=(s?Jh8DFVY$i?LfVn04*2I-~kXOGKflB{FdxaQ$XEzXFDGWKG0ZuIV<&;sUiutf(a)HCe}-&iY9sFEKtzg~UE9sZ z1Aj5>M*hlphO+w{SmSFnfG`1JlyPPt98eO`2p%*+4BCLtyp#~m1c`92h5G#-`O8q+ z94bl=>!;+WqTd8z_psTAb-2gZ1K@}c3&Ta7#SSBJopgp1U=w^MmQTJ7U`8~1vBw8m z)l7I_@n8@b8;aGDu64-~42GADPEx-XWMYa2!BTr>0{_jV4LFm&-8IIf|c@USR26pl#OdESPc)r$||1qH3Bm; zJ75AU@lDz>FbkN}kBGyp<#tZ^5dRQi^_pT41|%k`xeunxyq!W9VX8TnCUP!~d9p{r zXZmd&sP`0IGW%GF{EXtLA8`lriQWJbw|vePjAVXIU!+84p8^`*g5X)?s)h*w0*$A! z#n`Z(W6WGngyAM*;Oa zSG^-+Q%4T5VGC#GJ7$|z3L8OE;D`e~Lp=H*`Kr)n<62jYD`bzjU@okI=0IJ-R6l$Z zRJHjLYp?}jnT>F|pG!l6g*;+?#wl_AbOy+dmjo2-ZlwLkW8O6(pH);2z#zhVqts@6 zvdt{kUZij#Jvm3&U{JK2Y>X?uodTAA$3c^`W?-3ODn9lT4P+24Oui}LmGxf2%m`^9 z6M#&dYIj1#gOLXhPQY6{7lQ?4SMS8IUG_f3RXl0E!+$Ky`UeAOvjQ=ZkXUChH0KU- ztzWS*VfI5C5zM97Frb|PZ_TJACIcL?KF^Ug%mwH=vl-t;*eDB(txaJ=?0`j$#VR%i z$j)gz`f`Gt*abZ21DdB{cw(BR?7Ab5TZtz5iaA1VJS zJzK}XJM7jpR&SE9=id9drLMJ*poe^J|4-*^sq?w^5?D*;^3*djbyyxKvkwgpn_YnK zb5J32A2DSj)+5WPer>BlVsM<;mdHsq2mZjD{v82+i9nAt?~VAjV@$@SC3ncZCf021 z)2)WITQg;lcN@!mm$_+;?yS85o+Uh?Ym{g7R$^5w!v@$ zozjNXsor00$XW&RCj8>$=g7|H2&B{Y75=k7X8ZU-1peD^?(vZkzHa*g?)i=Fhv;9n z{gNzHL!hYw{09pEjijfuuVfGz#q>Stmd&>Bd5Zt6NmQUrzqQT^As-g zR@uIP>d+~)4tC?!5lMLCY}hZs$zE`BLQaC0V{#PIjp8$gU#PGh#aQ<4KXLNVv7>{d zqho7FM@KR9C8)q@dCbJpK%?{^f11*>9<&@FSC`-?9q{rlSf>Y`u>e->lWS04ErQ*z zMTK-7cDu#MElcp;Who+V5OvFP{QqJFo?~xB{H?;jtsjC(_sGNeCB!50 zs5~Z*%M - + diff --git a/src/Spectron/Views/KeyboardView.axaml b/src/Spectron/Views/KeyboardView.axaml index f81b3c7b..567c436d 100644 --- a/src/Spectron/Views/KeyboardView.axaml +++ b/src/Spectron/Views/KeyboardView.axaml @@ -19,12 +19,12 @@ diff --git a/src/Spectron/Views/PreferencesView.axaml b/src/Spectron/Views/PreferencesView.axaml index 3f2376a1..9830b41e 100644 --- a/src/Spectron/Views/PreferencesView.axaml +++ b/src/Spectron/Views/PreferencesView.axaml @@ -603,8 +603,8 @@ VerticalAlignment="Center"/> @@ -29,11 +29,11 @@ - - + + -