From 8f1dd78acd3a5376d7a384a409ebef804ca5cb31 Mon Sep 17 00:00:00 2001 From: Jessie Williams Date: Mon, 7 Mar 2022 08:59:13 -0500 Subject: [PATCH] add title screen graphics Signed-off-by: Jessie Williams --- sprites/Title Screen.aseprite | Bin 0 -> 2249 bytes sprites/Title.png | Bin 0 -> 607 bytes sprites/copyright.png | Bin 0 -> 366 bytes sprites/imperative.png | Bin 0 -> 241 bytes sprites/subtitle.png | Bin 0 -> 390 bytes src/lib.rs | 35 ++++----- src/sh0rk/mod.rs | 4 +- src/sh0rk/palette.rs | 24 +++--- src/sprites.rs | 137 +++++++++++++++++++++++++++++++++- 9 files changed, 167 insertions(+), 33 deletions(-) create mode 100644 sprites/Title Screen.aseprite create mode 100644 sprites/Title.png create mode 100644 sprites/copyright.png create mode 100644 sprites/imperative.png create mode 100644 sprites/subtitle.png diff --git a/sprites/Title Screen.aseprite b/sprites/Title Screen.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..5641e9c6d17e3f845f5bc8cb338c05ee57663896 GIT binary patch literal 2249 zcmcIkdpMNa8vop)h&n~7G1$Z-4yI|l&EP2~mt1Esl2N(L3{n^~O~P*PD4c3+h8PUR zX2KjvTbN0;L)&f4!!$>#L1~N;Bez@zb3S#RXM4`sf1dNMXT9J0*6+98^}g%(eXC0i z07fenfV*Hb02BZKhy?o|rUED^>;k^EKW6`TBM)%@)!Ch2cijnw)d9Pz!Db#?%?^Cg zHBkBYl=4;xz{vqQSi>?8^f#Wzg5EmH5A>@04duEZQ+cy06_5o|KpX@?A{X14Td)$la258lVBDEz0ZPsR+|>k^R17 ztwEu}dYjA&IO`sm-_Dch9sgi#{HmEcwtVpx%yRJU`HkD7!7$BBb;7dj&wVLPH9>`o zNPeNje|g7P-_Oz2(!-GV=)zcDj%ujo2kk}ra8M!+j+Rpk)1F2Mg?5Erh}o|9_Xs21 z*V?Ld@fpm*!}Jku9udejGQVeUHRkAxO>_L-}> zPBA)x{=xBAn&-(2c&yK}SgS}1CwTc)40G}fA{njgh*0M|{fi~@Y?Cy~L@wAPVh(tb z*t%IU?dl!AWCz`68Z|rOMS>m^<$HR_rR{Yr2 zl*17ms4FtisytYLuOqA0n9}dj7@7qyo+#{JOW@~yl|Ttl0gi8x;LcYGxB)%e+pIOX z?s}CGB)Q5Pm+i_GOON(u-pzQ^Fzkk=j_E(($v7KS&j7+iiQw2N%QFYe3M_|D?^}QH z+1%;xd%DT1Xp!&gkE=-0%?jQk?s!2@<(So6hiKx9zR1DRBN384IPY<`Mz(NkCF`iq zsPr6c?Ui#A^+Vyg3P?c^!HSZ4Y>n1Z^r0rcs%_R@fN3SyBN}tpNPSh}9fEUf?4nu@ zlN(rWUo9bW_s%(-ERb^$m1K6j%Z;i9B z^B-lkgrD+=6FO)vDZdrniNd_5-k669!dkjj^O@!R;-k626XSO81ZNzUYMgpx3L~c* zy}H1=Ma4iFPzAPc(IgjufxpFcUQa@s^)8ptTu%>O$ukA@nJ!TGu3f*;)JM0>b? z+1%xnk@>atq}HoGp+}rgIFl@oSi$#wA3`=Q!&9#EQ~T+eNCCD0G4$J^mtKqVz;>*l zwH|_|xPB~8elR{gx%;glE-t{5EfZRNl=Hg~^f|SmVtf93#5oZ(dy;_~x-ZSyV7-f* zRqJOsW^)-`?u!?U2rXCg7+q65{Ku)?4vFP(e#N9FRdaeO2X3w-%SsN#Nykyf1^r9X znft?2UfX7R5dwl~w#lh`Gst3bZ`C6s^Med}5|fXhg>(_|{2^NY?Y`b8e2E_S9}WRw zv@Z0!Mw**HYZqlCp_A^NLHDfVxXnz}xdht`u|kn=7}_tC_GRyyskjU~!U(R`LpM}6 zrw?a!MCXS}uDx-YMjdMFH~M|%uLCz9@@G3~IoI;vlxY}^Q*%~g@SW5sOb$F#I0PjZ z;-yil8GBiNP}Vrvp4>MhMg3Zwt37a?6U>J`ly(aZwQJ4v*(|KI7aW@Zk}PP2G}|TZ zmArqsLxdvO2HEf(G4n<|ALzPs#%u0RH_JWKL&s4K#AR3P&|QwfDRzScluJ2gO^)ao zZfVm_a`S=0u;_-O*9EOw?4CfA0mB=7y(>896t5zwIWK@PLm7f-!ELgZC5!3?hvE`1MTkaG z;#7?39XC2lpka#XwPeYP!rP|E$QP8(5(%+-Av|Gn`1+pOG1N2KHUE#;M&HLF1}DvnP}(b*edYkp+436p=PDYsN_~?aE5EEOtz?p>aET TB)?uN(nt6mYXd+J-`MyUW?j^^ literal 0 HcmV?d00001 diff --git a/sprites/Title.png b/sprites/Title.png new file mode 100644 index 0000000000000000000000000000000000000000..53c2f1a82cceb9c7bd2fb3bc3d1c0dcd59f83fe3 GIT binary patch literal 607 zcmV-l0-*hgP)002M;0{{R3s#T1g00001b5ch_0Itp) z=>Px#4^T{0MP>g0;P}smz-%yRPzM+xed(4v00005bW%=J0RR90{~XXJQUCw}?MXyI zRA_7?KMUP|Gu3fu!{oiV>1(KI~%j#QX zqF{OqrxA_SLsQ)KnK7Z8umwczIu!Fcu>sW6D7i8|qjrEq0Go9t2Lx(2U_tTPe_KG@ zt0NU4e^wGe_Fa{LqN%B+$ZC@Ls0v_^Pz7vwRq+)8YgU?sc0Lv>fcj~6mo-G8M|-Z3 za~A-em15zuH?Df@?*lflbVI$vVl09u$;Lf)^-W*5@0W>(4Gba31{_dqB1 tj#@>#{7_GU-2Tx8lF(|`u3dknz5p}`Db(x`Alm={002ovPDHLkV1hH7`Dp+E literal 0 HcmV?d00001 diff --git a/sprites/copyright.png b/sprites/copyright.png new file mode 100644 index 0000000000000000000000000000000000000000..0b95b6fea8060d9b807ef8d43b14452c4a0eb72b GIT binary patch literal 366 zcmV-!0g?WRP)Px#4^T{0MP>g0;P}smz-%yRPzM+xed(4v00005bW%=J0RR90{~XXJQUCw|{7FPX zR7i>KQ%Md3F$hB{|9^8wQNRm{dg*aEbSMzx5EJp5TRzqfxzFcQB_U3(3e=Uq9X_y8 zwNnlU?H5YL;p~bo?N7pjLB|Q)PTQp9>P*A+{rKn3gTgl+VW@K`0v?INiZ|^$>fj;R zG*Lnw&iv-!VNZz6jRz(8Tzc1olQL=NL8?3QAgLUAIBJL3aUP*OWDE8%cQMlfj5Os= zrY&bd1u8o*Fdk^+9cqH24|{$Hl^1}zq|F0xb~)zZ7t!l>Qn562S{EXc|KVXXDh08e zhJXvpm15KT$s?2pz+@kM8=+VH6K(k`?$qEBYq2^>10hZl66Dv&zHHzN46jLB761SM M07*qoM6N<$g2gzM?f?J) literal 0 HcmV?d00001 diff --git a/sprites/imperative.png b/sprites/imperative.png new file mode 100644 index 0000000000000000000000000000000000000000..4725621667fd52a4829176960578112f1caaa78c GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3-oPT6RhUDaPU;cPEB*=VV?2Is5@WA+D+a z86NyN-*zC!AR~ZXLb3McG;5#~Ye|q_FvEW!kh!1+GO6Cv#WBR9_im6Q-vI@V#|Qr3 z-y(CxONp{X9(}GNYd;aM1*>?U#a^Jf=Qzm=OP1hLOB&X$A#%2eyPOx@tl!%$* z6Oh%IaBD&2r!>ZMuXq-#HSKPCcxeYyk0j5cyw3}4wB@g7f0lnxKF7=|`h@ukp6`)q kT{i7i>a*Hy_xG@G-@sD3y7kv@pi>w;UHx3vIVCg!001Rhg8%>k literal 0 HcmV?d00001 diff --git a/sprites/subtitle.png b/sprites/subtitle.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ce25ce1fd9bf5d340ffad476700287cd48b2e5 GIT binary patch literal 390 zcmV;10eSw3P)000mO0{{R3rrU&S00001b5ch_0Itp) z=>Px#4^T{0MP>g0;P}smz-%yRPzM+xed(4v00005bW%=J0RR90{~XXJQUCw}6iGxu zR7i>KRLc&7FbwM<|NqU?25tN*LSjdH*hrGwsSHLGL7l2_eYs2eIq` zY=W5ASAzN7;n0zlX<)=bkqUz%vdsx)?h&LBq^QveCprq;L724E2NY-o5gt&T;MP>8 zD5?6g1c^5ZW}BEGWg40)M%oGEro~*3--R@c7xV%_ad?QzEx(|X2+n<5WA7Rp>+@$gep)5Mq}C4PvB>vVXD& kFKw{MIz>uG?p;sT2S1<;0Vdgx!~g&Q07*qoM6N<$f_Si^k^lez literal 0 HcmV?d00001 diff --git a/src/lib.rs b/src/lib.rs index c5e0c5d..3938439 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,5 @@ +#![allow(dead_code, unused_imports)] + #[cfg(feature = "buddy-alloc")] mod alloc; mod sh0rk; @@ -17,7 +19,6 @@ struct Game { frame_count: u32, prev_gamepad: u8, rng: Option, - mai_position: Point, mara_position: Point, mara_frame: u32, mara_dir: Direction, @@ -26,7 +27,7 @@ struct Game { gate_count: u8, gate_pos: Point, - song: Song<48>, + // song: Song<48>, } impl Game { @@ -35,15 +36,15 @@ impl Game { frame_count: 0, prev_gamepad: 0, rng: None, - mai_position: Point { x: 76, y: 32 }, - mara_position: Point { x: 32, y: 90 }, + mara_position: Point { x: 16, y: 96 }, mara_frame: 0, mara_dir: Right, mara_speed: 0, bonk_timer: None, gate_count: 4, - gate_pos: Point { x: 40, y: 64 }, - song: Song::new(sh0rk::CHOPSTICKS), + gate_pos: Point { x: 40, y: 80 }, + + // song: Song::new(sh0rk::CHOPSTICKS), } } @@ -81,9 +82,9 @@ impl Game { self.mara_position.x = 0; self.bonk(); } - if self.mara_dir == Up && self.mara_position.y <= 64 { + if self.mara_dir == Up && self.mara_position.y <= 80 { self.mara_speed = 0; - self.mara_position.y = 64; + self.mara_position.y = 80; self.bonk(); } @@ -98,7 +99,7 @@ impl Game { fn update(&mut self) { self.frame_count += 1; - self.song.update(); + // self.song.update(); if let Some(rem) = self.bonk_timer { if rem == 0 { @@ -111,12 +112,11 @@ impl Game { self.mara_speed = 0; let gamepad = unsafe { *GAMEPAD1 }; - let just_pressed = gamepad & (gamepad ^ self.prev_gamepad); - let speed = if just_pressed & BUTTON_2 != 0 { 4 } else { 2 }; - if just_pressed & BUTTON_1 != 0 { - self.song.pause(); - } + let speed = if gamepad & BUTTON_2 != 0 { 4 } else { 2 }; + // if just_pressed & BUTTON_1 != 0 { + // self.song.pause(); + // } if gamepad & BUTTON_UP != 0 { self.mara_dir = Up; @@ -163,6 +163,9 @@ impl Game { } // draw + sprites::TITLE.draw((0,-8).into(), 0); + sprites::SUBTITLE.draw((0,52).into(), 0); + for i in 0..self.gate_count { let mut gate = self.gate_pos.clone(); gate.y = gate.y + (sprites::GATE.height * i as u32) as i32; @@ -176,12 +179,9 @@ impl Game { self.gate_pos.y - 1, ); - palette::set_draw_color(2); - text("Mara: Sh0rk of\nJustice 2", 10, 10); palette::set_draw_color(4); text("From Within, 2022", 10, 144); - sprites::MAI.draw(self.mai_position, 0); sprites::MARA.draw(self.mara_dir, self.mara_frame, self.mara_position, 0); } } @@ -190,6 +190,7 @@ impl Game { unsafe fn start() { palette::en4(); GAME.rng = Some(Rng::with_seed(420)); + // GAME.song.pause(); } #[no_mangle] diff --git a/src/sh0rk/mod.rs b/src/sh0rk/mod.rs index 03b7b48..8284eb7 100644 --- a/src/sh0rk/mod.rs +++ b/src/sh0rk/mod.rs @@ -1,8 +1,8 @@ pub mod palette; pub mod sys; -mod music; +pub mod music; -pub use music::*; +pub use music::{Note, Song}; #[derive(Clone, Copy, PartialEq, Eq, Default)] pub struct Point { diff --git a/src/sh0rk/palette.rs b/src/sh0rk/palette.rs index ec220e2..c96acb8 100644 --- a/src/sh0rk/palette.rs +++ b/src/sh0rk/palette.rs @@ -10,14 +10,6 @@ pub fn set_palette(palette: [u32; 4]) { } } -pub fn warmlight() { - set_palette([0xffd191, 0x66605c, 0x211e20, 0xff924f]); -} - -pub fn moonlight() { - set_palette([0xf3eaab, 0x86a0b7, 0x3d476a, 0x19152a]); -} - pub fn en4() { set_palette([0xfbf7f3, 0xe5b083, 0x426e5d, 0x20283d]); } @@ -30,6 +22,18 @@ pub fn cafe_nouveau() { set_palette([0xf8e6d0, 0xc08e70, 0x683a34, 0x200816]); } -/*pub fn coldfire() { +pub fn coldfire() { set_palette([0x46425e, 0x5b768d, 0xd17c7c, 0xf6c6a8]); -}*/ +} + +pub fn warmlight() { + set_palette([0xffd191, 0x66605c, 0x211e20, 0xff924f]); +} + +pub fn moonlight() { + set_palette([0xf3eaab, 0x86a0b7, 0x3d476a, 0x19152a]); +} + +pub fn t_lollipop() { + set_palette([0xe6f2ef, 0xf783b0, 0x3f6d9e, 0x151640]); +} diff --git a/src/sprites.rs b/src/sprites.rs index bd2d796..5187489 100644 --- a/src/sprites.rs +++ b/src/sprites.rs @@ -1,10 +1,13 @@ -use crate::sh0rk::{Sprite, SpriteAtlas}; +use crate::sh0rk::{ + sys::{BLIT_1BPP, BLIT_2BPP}, + Sprite, SpriteAtlas, +}; pub const GATE: Sprite<12> = Sprite { palette: 0x4210, width: 12, height: 4, - flags: 1, + flags: BLIT_2BPP, sprite: [ 0xfd, 0x5a, 0xa7, 0xf5, 0xaa, 0x57, 0xd6, 0xa5, 0x6b, 0x3f, 0xff, 0xfc, ], @@ -14,7 +17,7 @@ pub const MAI: Sprite<64> = Sprite { palette: 0x1420, width: 16, height: 16, - flags: 1, + flags: BLIT_2BPP, sprite: [ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xdf, 0xf5, 0xff, 0xff, 0x5f, 0xf6, 0x75, 0x9d, 0x9f, 0xf6, 0x59, 0x55, 0x9f, 0xf6, 0x95, 0x96, 0x9f, 0xfd, 0x41, @@ -29,7 +32,7 @@ pub const MARA: SpriteAtlas<384> = SpriteAtlas { palette: 0x3210, width: 96, height: 16, - flags: 1, + flags: BLIT_2BPP, sprite: [ 0x3f, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x36, 0xff, 0xc3, 0x9c, @@ -65,3 +68,129 @@ pub const MARA: SpriteAtlas<384> = SpriteAtlas { width: 16, animated: true, }; + +pub const SUBTITLE: Sprite<320> = Sprite { + palette: 0x31, + width: 160, + height: 16, + flags: BLIT_1BPP, + sprite: [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf1, 0x86, 0x3c, 0x3f, + 0x18, 0x00, 0x07, 0x87, 0x80, 0x00, 0x19, 0x87, 0x7c, 0x07, 0x98, 0xf9, 0xe0, 0x00, 0x00, + 0x03, 0xf9, 0x87, 0x7e, 0x3f, 0x98, 0x80, 0x0f, 0xc7, 0xf8, 0x00, 0x1d, 0x87, 0xfe, 0x7f, + 0xdb, 0xfd, 0xfe, 0x07, 0x80, 0x06, 0x1d, 0x87, 0xc6, 0x31, 0x99, 0xc0, 0x18, 0xc6, 0x38, + 0x00, 0x1d, 0x87, 0x87, 0x7c, 0x1b, 0x0d, 0x8e, 0x1f, 0xe0, 0x06, 0x01, 0x87, 0x83, 0x71, + 0x9b, 0xc0, 0x30, 0x66, 0x00, 0x00, 0x0f, 0x87, 0x80, 0x0c, 0x1e, 0x01, 0x80, 0x18, 0x60, + 0x07, 0xe1, 0x87, 0x83, 0x63, 0x9f, 0x00, 0x30, 0x66, 0x00, 0x00, 0x0f, 0x87, 0xf8, 0x0c, + 0x3e, 0x01, 0x80, 0x00, 0x60, 0x03, 0xfb, 0xff, 0x83, 0x7f, 0x1e, 0x00, 0x30, 0x67, 0xe0, + 0x00, 0x0f, 0x07, 0xfe, 0x0c, 0x3e, 0x01, 0xf8, 0x00, 0xc0, 0x00, 0xff, 0x0f, 0x83, 0x7e, + 0x3c, 0x00, 0x30, 0x67, 0xe0, 0x00, 0x0f, 0x07, 0x3f, 0x0c, 0x3e, 0x01, 0xf0, 0x03, 0x80, + 0x00, 0x0f, 0x07, 0x83, 0xf8, 0x3e, 0x00, 0x30, 0x66, 0x00, 0x00, 0x0f, 0x07, 0x03, 0x1c, + 0x36, 0x0f, 0x00, 0x0e, 0x00, 0x00, 0x0f, 0x07, 0x86, 0xfe, 0x37, 0x00, 0x30, 0xcc, 0x00, + 0x06, 0x0f, 0x07, 0x03, 0x18, 0x37, 0x1f, 0x00, 0x0c, 0x40, 0x07, 0x0f, 0x06, 0xce, 0xef, + 0x33, 0xc0, 0x19, 0xcc, 0x00, 0x07, 0x1b, 0x8f, 0xc3, 0x18, 0x33, 0xff, 0x3c, 0x19, 0xe0, + 0x03, 0xfb, 0x06, 0xfc, 0xc7, 0xb1, 0xe0, 0x1f, 0x8c, 0x00, 0x03, 0xf9, 0xfe, 0xfe, 0x18, + 0x33, 0xfb, 0xfc, 0x1f, 0xe0, 0x01, 0xf3, 0x02, 0x78, 0x43, 0x30, 0xc0, 0x0f, 0x0c, 0x00, + 0x01, 0xf0, 0xf8, 0x7c, 0x18, 0x11, 0xf1, 0xf8, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + ], +}; + +pub const TITLE: Sprite<1280> = Sprite { + palette: 0x41, + width: 160, + height: 64, + flags: BLIT_1BPP, + sprite: [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf8, 0x00, + 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x1f, 0xff, 0xfe, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x80, + 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x1f, 0xf0, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x07, + 0xe0, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0x00, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, + 0x00, 0x07, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x7f, 0xf8, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x00, 0x3f, + 0xe0, 0x00, 0x7f, 0xfc, 0x00, 0x01, 0xff, 0x80, 0x3f, 0xf0, 0x00, 0x0f, 0xff, 0x80, 0x00, + 0x00, 0x3f, 0xc0, 0x00, 0x7f, 0xe0, 0x00, 0x7f, 0xfc, 0x00, 0x01, 0xff, 0x00, 0x0f, 0xf0, + 0x00, 0x0f, 0xff, 0x80, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0xff, 0xc0, 0x00, 0xff, 0xfc, 0x00, + 0x01, 0xff, 0x00, 0x0f, 0xf8, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x7f, 0xe0, 0x01, 0xff, + 0xc0, 0x00, 0xfe, 0xfc, 0x00, 0x01, 0xff, 0x00, 0x07, 0xf8, 0x00, 0x1f, 0xdf, 0x80, 0x00, + 0x00, 0x7f, 0xf0, 0x03, 0xff, 0xc0, 0x01, 0xfc, 0xfe, 0x00, 0x01, 0xff, 0x00, 0x07, 0xf8, + 0x00, 0x3f, 0x9f, 0xc0, 0x00, 0x00, 0x7f, 0xf8, 0x07, 0xff, 0xc0, 0x01, 0xfc, 0xfe, 0x00, + 0x03, 0xfe, 0x00, 0x07, 0xf8, 0x00, 0x3f, 0x9f, 0xc0, 0x00, 0x00, 0x7f, 0xfc, 0x0f, 0xff, + 0xc0, 0x01, 0xfc, 0xfe, 0x00, 0x03, 0xfe, 0x00, 0x07, 0xf8, 0x00, 0x3f, 0x9f, 0xc0, 0x00, + 0x00, 0x7f, 0xfc, 0x1f, 0xff, 0xc0, 0x03, 0xf8, 0x7f, 0x00, 0x03, 0xfe, 0x00, 0x07, 0xf8, + 0x00, 0x7f, 0x0f, 0xe0, 0x00, 0x00, 0x7f, 0xfe, 0x3f, 0xff, 0xc0, 0x03, 0xf8, 0x7f, 0x00, + 0x03, 0xfe, 0x00, 0x0f, 0xf8, 0x00, 0x7f, 0x0f, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0x7f, 0xff, + 0xc0, 0x07, 0xf8, 0x7f, 0x00, 0x03, 0xfe, 0x00, 0x1f, 0xf8, 0x00, 0xff, 0x0f, 0xe0, 0x00, + 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xf0, 0x7f, 0x00, 0x07, 0xfe, 0x00, 0x3f, 0xf8, + 0x00, 0xfe, 0x0f, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xf0, 0x7f, 0x80, + 0x07, 0xfe, 0x00, 0x7f, 0xf0, 0x00, 0xfe, 0x0f, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, + 0xc0, 0x0f, 0xe0, 0x7f, 0x80, 0x07, 0xfe, 0x03, 0xff, 0xf0, 0x01, 0xfc, 0x0f, 0xf0, 0x00, + 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xe0, 0x7f, 0x80, 0x07, 0xff, 0xff, 0xff, 0xe0, + 0x01, 0xfc, 0x0f, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xe0, 0x7f, 0xc0, + 0x07, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xfc, 0x0f, 0xf8, 0x00, 0x00, 0xff, 0x7f, 0xff, 0x3f, + 0xc0, 0x1f, 0xc0, 0x7f, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xf8, 0x0f, 0xf8, 0x00, + 0x00, 0xff, 0x3f, 0xfe, 0x3f, 0xc0, 0x3f, 0xc0, 0x7f, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0x80, + 0x07, 0xf8, 0x0f, 0xf8, 0x00, 0x00, 0xff, 0x1f, 0xfc, 0x3f, 0xc0, 0x3f, 0xc3, 0xff, 0xc0, + 0x0f, 0xff, 0xff, 0xff, 0x00, 0x07, 0xf8, 0x7f, 0xf8, 0x00, 0x00, 0xff, 0x0f, 0xf0, 0x3f, + 0x80, 0x3f, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xff, 0xfc, 0x00, + 0x00, 0xff, 0x07, 0xe0, 0x7f, 0x80, 0x7f, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xf8, 0x00, + 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0x07, 0xc0, 0x7f, 0x80, 0x7f, 0xff, 0xff, 0xe0, + 0x1f, 0xff, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0x03, 0x00, 0x7f, + 0x80, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xe0, 0x00, 0x00, + 0x1f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xff, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0xff, 0xf0, + 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x81, 0xff, 0xf0, 0x3f, 0xf0, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfe, 0x07, 0xfe, 0x00, + 0x01, 0xff, 0x00, 0x00, 0xff, 0x81, 0xff, 0x00, 0x1f, 0xf8, 0x3f, 0xff, 0xff, 0x00, 0x00, + 0x3f, 0xe0, 0x03, 0xff, 0x00, 0x01, 0xff, 0x00, 0x00, 0xff, 0x83, 0xfc, 0x00, 0x1f, 0xf8, + 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0x80, 0x03, 0xff, 0x00, 0x01, 0xff, 0x00, 0x00, 0xff, + 0x83, 0xfc, 0x00, 0x1f, 0xf8, 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0x80, 0x03, 0xff, 0x00, + 0x01, 0xff, 0x00, 0x00, 0xff, 0x83, 0xf8, 0x00, 0x1f, 0xfc, 0x3f, 0xf3, 0xff, 0xf8, 0x00, + 0x7f, 0x00, 0x03, 0xff, 0x80, 0x01, 0xff, 0x00, 0x01, 0xff, 0x87, 0xf8, 0x00, 0x1f, 0xfc, + 0x3f, 0xe1, 0xff, 0xfe, 0x00, 0xff, 0x00, 0x03, 0xff, 0x80, 0x01, 0xff, 0x00, 0x01, 0xff, + 0x87, 0xf8, 0x00, 0x1f, 0xfc, 0x7f, 0xe0, 0xff, 0xff, 0x00, 0xff, 0x00, 0x03, 0xff, 0x80, + 0x01, 0xff, 0x00, 0x01, 0xff, 0x8f, 0xf0, 0x00, 0x0f, 0xfc, 0x7f, 0xe0, 0x7f, 0xff, 0xc1, + 0xfe, 0x00, 0x01, 0xff, 0x80, 0x01, 0xff, 0x00, 0x01, 0xff, 0x8f, 0xf0, 0x00, 0x0f, 0xfc, + 0x7f, 0xe0, 0x1f, 0xff, 0xf1, 0xfe, 0x00, 0x01, 0xff, 0x80, 0x01, 0xff, 0x00, 0x01, 0xff, + 0x1f, 0xf0, 0x00, 0x0f, 0xfc, 0x7f, 0xe0, 0x0f, 0xff, 0xf3, 0xfe, 0x00, 0x01, 0xff, 0x80, + 0x01, 0xff, 0x00, 0x03, 0xff, 0x1f, 0xf0, 0x00, 0x0f, 0xfc, 0x7f, 0xc0, 0x07, 0xff, 0xf3, + 0xfe, 0x00, 0x01, 0xff, 0x80, 0x01, 0xff, 0x00, 0x03, 0xff, 0x1f, 0xe0, 0x00, 0x0f, 0xfc, + 0xff, 0xc0, 0x03, 0xff, 0xe3, 0xfc, 0x00, 0x01, 0xff, 0x80, 0x01, 0xff, 0x00, 0x03, 0xff, + 0x1f, 0xe0, 0x00, 0x0f, 0xf8, 0xff, 0xc0, 0x00, 0xff, 0xc3, 0xfc, 0x00, 0x01, 0xff, 0x00, + 0x01, 0xff, 0x00, 0x03, 0xff, 0x0f, 0xe0, 0x00, 0x0f, 0xe0, 0x7f, 0xc0, 0x00, 0x7f, 0x81, + 0xfc, 0x00, 0x01, 0xfc, 0x00, 0x01, 0xff, 0x00, 0x01, 0xff, 0x07, 0xc0, 0x00, 0x0f, 0xc0, + 0x1f, 0xc0, 0x00, 0x3f, 0x00, 0xf8, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x7f, + 0x03, 0xc0, 0x00, 0x07, 0x00, 0x07, 0xc0, 0x00, 0x1e, 0x00, 0x78, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + ], +};