From 9bacd1d28fbaf06bb280c6cc80507ccf1e3c70b7 Mon Sep 17 00:00:00 2001 From: august Date: Tue, 13 Feb 2024 18:07:58 -0500 Subject: [PATCH] annnd we have our character rom!!! --- cozette.bin | Bin 0 -> 65535 bytes cozette.png | Bin 5355 -> 5526 bytes src/main.rs | 54 ++++++++++++++++++++++++++++++++++------------------ 3 files changed, 36 insertions(+), 18 deletions(-) create mode 100644 cozette.bin diff --git a/cozette.bin b/cozette.bin new file mode 100644 index 0000000000000000000000000000000000000000..df644511eca50237eedb24a9e00e51151cf78511 GIT binary patch literal 65535 zcmeI#y^9>l83ypux$!k-U@K6thJ~#=59^LjjisQ1=C<$^Vi3!EgLbB1F$#>CV1f-g zDDTb<8#ok$19J%d0T+rxfec0nqewVBjH1C@uoyF%a5jSpVqBM)#_jvFrOnbJn<)WmAC*!VF&*4a!Me?n0 zYO%yNKL9ZKwBCK*IS=uK`4Zqg5ipWNN25{G%wEKM+${>5-@biYDX;eTV?%03ekK#8 z3gfZ8-Ym;D?&wJ0^gc7@b7OvI%+X;$%i$o^%A}dxf9emC znV|{#d{KdE%2FMLQ_%M3(;+xuM*~v*5IQP|W`blQ@ z_pHx?S10{`@Q9Ky=sIl^tb_(3-1+YDpSAYEPR{-%hO3|v{FW0loDD|LpYV_ePr*~yVnA&MSv+&Tq}tY@U(Bk@X@2pX7=Uj>rwU6mrH<-4fpo5 zarynX>TWZ|b2@6iKOE)OZjPGFhVZ37s-8XsfL{Pir%$Q~aMSbv5Q0Lj)H?Br*B*mn zRI1AmBVaE+0>1Q>?u1PsJ6K1tVfn;JbiJ;gi%fES}WjGiq4dbV+{KPsnVb@GpC zKnOI=`8V*FF-O_*4|{(&)cWtfh!ODPH!a7=0Xyh0vf$$yx1!<{fSiA(4}19_&pWTsX^d}YF$*9Eq<3(a zN&&zj!fax#v3Z_j7SIKr`9W})1}!p=x9*Ndo)v{ZC2k_1iRJE`9+F-;b(+A6TW zSR}!f2v`S@c__{T=izy$eE^mKYY`xw$AuOJ?*Vl!0Mq(O6K8>w%dYIX z3UKArP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo z6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)U zP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZ zKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt z00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun R0u-PC1t>rP3VgJ{e*yP2?kWHP literal 0 HcmV?d00001 diff --git a/cozette.png b/cozette.png index 851f38ec6d203044e49a0d493a72a59abc8e0f8a..fcdbb208c1096a2d7e473ebd24f1e82cfbfb1391 100644 GIT binary patch literal 5526 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 B$!Y)q literal 5355 zcmZ9Qc~laJ_x77?chbuIn&nd2H;NW(%-kVcMlA;|7fMCTnn*28P;p_gsWhpyG&6Id zG6g{)HB&@kCL%zi#Wg zWy_YW_whb?ZrQTcq<`x*tA6U{mxrQ%YOT*n&%osHnUWuoyPVeDsq0t*D~3w}X_&T6 zB-*1UxFlXw(B{2n-JWan*R`WLORO6!uvo2Xbd+`DRKs7}ZvFrKvRq~5x@+SId^43Y4_?w{f^!`B!+$9XXYc8)VgPAtaiK=~r#}$;Dy8WrPda!roxI(_s?>#NI&HcrBuatc7hxjL~3nLirJPeaf zKb1t66TSz;>k?QoP-st&65$(V=w+tq9{&Bms7_w|ld3NDUQ3I**YrzT#0u#*1O9-= zcQ?xyZxU`+IPS{9UP&uy$<85M>T**nEN7c@+IFg%R?@q$*61M$fE;=Y9V6rt^$dY^Dw&z-~H-?I(QEZ zmWvy0pzX*{O*X;&-{!5^4}&6#ChdkzR8^&YQ{i74YDLb1;pwXB#@3Vy#GIRa5g)_6 zEgKu9qMf7(pedq`p`h>px?SKN7AfYG{mj(W2mjiOyiPPM>VgopNEN!<08ALA2M^Uheb=*%}IDKbDFX)um)sl0$p108Rs-2{(9i?(mG~Unikr&#}QLw$Qn1$;;-VftGD` z*0$W*`JmMQ*z%r)q`g^6Xvh5*po4aHEDS4sShu^P!RM5m6aV2=Fe;mw zbwvlCDM7AI8vP=j@h!Wy87>q-nz=*MLd-;ACiUkMhWWnppYmgx$qyIZoZyx3g2K;X zAmcsmFI_>Qkn=Mancb>a9#AP@IEa~a{tNmT{13$Ip2P`Dvou9Wt)HBd7EzsgapJxh zDgASJxU0r#uw1j$dX&9!%&^N4^ofBS0)c+e@pgM`iH>HM<1dD(b7f-+CJ;qVwn07| z@T1$z1fsi3etc{goh;Giw6qa`S(;9Z-hFo-8~5BeY5k~87IF4s&oa^#QpUA%ut|=~ zkH}3Z`}BR?L9gk@{Y@^BEqw9&i+3jAOSf98k1aXGdR;HRl@bkR=XlqUU*>y0dY- z`J;D3=O1G-YH{RoO_YIJtjLS5slx@ycm#t+J=zw5GqgDK1*6M6rdW4W{fa0P0!E*p zf1zYFg%nm-&`(YCaz&P}ioi;%%{4Aqsm-CXYH{TC)TsZc>9wBfr!!Ei!LCaTwb^_U zo${tr&)UQ?*REypwnLTGt)|>xn_RawTD_qV7Rs~{wz?UbZ6_}2*Lgz&t|{5KuOyKv z_JhcFxdE+*uODWoOUf)Kfi7xKJ*A&g#6bMvB~b8c;x?^{W_Ee(QN5#rp&q%10t$Hi z@KjLNyQHQm_35rHV?1-kI>SEhg)f%&eGL6PLub&RUl4(r?o8JPc5%@NJ;|fKXeB}y zOt>sfs2kcWvNB9b9EZX6vgov4qMNBfC&!Ml@>a_?&o^>n*_r(+ zU}l!zWsu07stJGs=w(Qpt(i>{@jsXI$boPz|?qd_z zF}UjtY&gI=*yC1mSiheGiNpJ1EIycm{C@8{!?R^MY<+U{vC<8`1>Si(&u(#E@%X+6 zpa8hV@e}mC+1fwW#T0xu_#h10zC75a;AfNxo3*T%Npm_|N&8BWOYlWoBdFyP3;wly zBeI@RoF(sC-%uAneyN;dTDx!1YdXuwoa(mt7?xcu9*N3*;&jK4Z$&AFYCSL{@pF0+ z&IH${osK3dOAwE?y3YU%S;ifP>$dBi&D$V0hbrX6CO0zy)%KhzGP#Vx)20E!@2CQ8 zE)RH|1pW#fYHFqmD;w|6#)~r>&-VNMCen6nC0h7?ZQe=Pt@c`!4uJm&AD`&uq7U*} zq4tbqiBzU3b5qTfvN*O7o6p+OSv0hW8Y@Qa(^xZKAW`F2TKO76JagM+)W@o;MPz6I z&dvj3kR7xe4g0K)=ptF(7ON4_4Iwm%>>$7tbHPUU0G`BaPx-^K2O8swyOvQAhHK~R zLhA)7NuL}d-$l%?;dr(Y>-u~ZGD)3}?YQzVEimyvX)oWy#&7h>7O)Mdam_0R%Z|_y z{{BekUL5bK-;AA&^BL)!quA4nSv9t6O8g_@YrK>6?{x8085gaxlp6-)b?fBPy1J(w_ho(at6^0%taFpO*|Ne%JnrD z1s~oC39qyuiws4&jT4pr1bTt`rfdhlV;ZK*Z(+6R4T7Vbg`|hzzV=;C$Z!hpi7hw0 zyeuaD38OHbf2_BEQWIQFaVBrw)U>r?%OmUnO?)ttGE3aztl*jmbI2V~t4WOuzhKF$ z>V!pFh-gBPZA0u!I)NACHiH#25*?7~b)cjWoQD=Kwqov4#QXbZHv18Ajmc-L%>Dea z-P+GxxI3ou3_AeJN2(x}WjaR!BRT;2_Iat5jSa#GIQ82M*kpmsi~^72`Ut#i9+e4X z2^%IEE}UjXnhG{<{jc|MS`~_9sFhxOS3d_TZq1A=%;NYW@QrY((#h&xl zbO&m60%NE##3-9*0-#Q&uuGHUzOjAAgV{X1pE<6nh4o&La&+oy`r=Z%GL~1-=z@+I z_u!ub0MbY{v^NEaJ(}YlPg83cEa4hH0~kgL17zb{-c8SlEnnS_8_L54>oPUad^q>h z*n+(xf6N7SP5V+?_OU|)#4rjnXC#&w2k&+NLuDq4_f+xB_dlw7ya2E@5y(Lj#lfk?BB>m>5{ewS_ zI0LdO=`-!hHxs}9K~LV@@yK|;StS28DTVrhu&#FJz3jIX&l_8z`EE7aU4>mI3wbCc zGKj^=vI z(1|X*(PR~QcL}IWa$)K+rDjUf-n!}13H7P?nZ~EHB^(|e@MGd*frN;>X1K#5TRj(p zuigqWphoM8GJBMEGKv*=&eik^#7g))h|tkji7vQp#R8}&=f)~QZNHlr@s)c%me7v0 zHfcA(Ppj0gYNN!41ds8HcSoh@?n?pjM)RIzdZli&0Om4pfp3$ldEK&JLhaoJ83$(7 zl$ZdDpZdo^x)NG!7N{HBDwgmpAcePKXcE|u%NyDTW-NT5zZ|r+7XY<&?tRxmt(d3c z$P)!^7YyqTCj5RkP6P!BS_UT(*Z&e6F%4Fxii-CwOc;+QXW*-a7Wq&Z%**E0$TR}Z zH*;tUa`8fYrtrsWYD3vcAw=k4Lo_coF2Lcmc^?O|dRs`({6)u6O6g-AdG50w2*0cg zZULzDqe!O{A4bAGOvkJ$Mjp*{77z3b;(PhL6CBp3vUQYVu=xmotAh4^{Bxe#k#K=s z=SnNu$d|lG_2s%KUQV0k7(5I)Ik;b@7FH44PCjV5P))XkuYzLUC~Dp}bY^CQd)>?D z+MdC=_fkeKh5Y!Yqmqlh7)Ni-C9U0?QlNeOcMhRa-MF$K5xx_(sj&Tygtn^E_p7-S z=*d{_-_>BpSy#qkhAorA^S|Mr41YVhlr^^2HW#{bs03WY+Sx8S<26#_lej)ztofBr zj)VXGAhAMR#S84>o>nZIrQ-BEza|U0)m(pfAbo0t&e+d2+(a-W-)=LfF(+^i+)uS)GI(o&M5BxvngUe zn?tO`;%((T$N`8LomlOFbH8spWEJ=fqRbZ)gkIX;HBq4F8svN`r;Z#Rxc+g=9a}!Q zV+u{wTbpe6*aaB!foOcN^?DkX`5rFZ#^;@cQmw@p3WBpf7j7cC+Dws5a{;lkF)}e2 zou?}|=7^6gKEEtA+G}!_%AK5Rgj0<95S5XWB3>x?r@zM|;?I`Ul&)ktr*x$vY%<^kua_V@xU;v zo8{9m2#z{ z%3Tn6b-DYXi`T|4mZ^5~v8yd*f_}#B&{MJIx1jp*M3_;~iGM8hGmCyA*~EIsV-2wk zEoVWrBcQ`n3N>2Ae&+n?anG_cN!g-=(}Bwe$A+Ja!^26L_o_s4fR%9jOL3lpGPooc zh3gj`ws@PmSkk7_8&barXOT|+RH5vXy%<+BJ?2*`->v@fl~qLG76-CfY0HqaZs-?7 zQs)oo0yLP9Bz7n}g0tV`!uY32O_U zrIlD0-rlX_yAZxgO8u5lJfbe|n;+t(@L{9iM^|xZwtY0HLdPB9FTJ8>0=af+f*@-6 zn=4v|I$d$5%bKDLG&glLOH>B@nf9(g8(NY`E+i^CEAtN?wT8f{w5xg=DHR{0;66|5wW@n`Pq=<_htD}g%b)bPBDF~b_29p0%g)sLjO z=S;6~s84zY0L_vzbLdVHX>IE=#ty^oebz%c#GgTd)!nd<8$M51nBkx>EgCIM_m-gj znc@+yth^pNpV>$p0P}sc_4^{&yBFR_jd#oYE0skOz*3SbPfr;$Wta|2jqf%R>tZy* z{o?oqEXSf(9a;-rIpdQ$Y_TUg=@b39#pH#)8l2)Ti)7cArgG_vn|Jx@12qafamPz! zxR97skAcjPLvZJ!1#QK5(#0#E!~hDn^B-Y&xlns$7&@3fVYvw5ZP%xv)SGF}463AS ziIPG~4Soi)tr~d8kYPPr?ti~%fcoHXol$i!zvae_a5^yg*C>!DEvB#Q=e<;A%S88D zZ?GT!y>G*L`W~)DynOkLIjFg_5E?HJN~L|oM5_{X`~`5RA=@B69^O@IYCCL93vzF_ z&+VbV#XSfo{M(E5~!HDgx zI_Z7r(%h0AI&HCJV`GFrPBbZCM*Q_R=WgqNGlovbt%&`;u1h}e(}pR7=dQO&+; z6ZMIdV+iub0oFc)M1-=RpDgzhS@3uKu$=EU9)h{BGsgbyb66Q=pp4~Ny(oakmXZqw z+brjnyKsh)ro-y-vBGa)y^Dqs_MF*j96cYY*{BLriIJbW4rcDPKt(JQg?TL9ouy*n xgUG8lMw((*FoDb6FdB*mJ&3V8wnn?Uk9hT}-6P$npHIwXKBpijsmCw=^*^Xbu)_cV diff --git a/src/main.rs b/src/main.rs index 6668847..2f9927d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,10 @@ #![allow(clippy::println_empty_string)] -use std::{fs::File, io, path::PathBuf, u8}; +use std::{ + fs::File, + io::{self, Write}, + path::PathBuf, + u8, +}; extern crate png; @@ -26,26 +31,39 @@ fn to_bitmap(path: &str, max_chars: u16, max_rows: usize) -> Result, io: Ok(finalbuf) } -fn reorder_bitmap(bitmap: Vec) -> Vec { - unimplemented!() +fn reorder_bitmap(bitmap: &[u8]) -> Vec { + let mut reordered: Vec = Vec::new(); + for row in 0..MAX_ROWS { + for character in 0x00..MAX_CHARS { + let mut byte = 0u8; + for i in 0..8 { + // character number + row offset & bitmask = pixel + if bitmap[character as usize + (row * 0xFF)] & 0x80 >> i > 0 { + byte |= 0x80 >> i; + } + } + reordered.push(byte); + } + } + reordered } fn main() -> std::io::Result<()> { let compressed = to_bitmap("./cozette.png", MAX_CHARS, MAX_ROWS)?; - for row in 0..MAX_ROWS { - for character in 0x00..MAX_CHARS { - print!("{:#04x}, {} ", character, row); // character as usize * row); - print!("{:#04x}: ", compressed[character as usize + (row * 0xFF)]); - for i in 0..8 { - // character number * char width + pixel offset + row offset = pixel - if compressed[character as usize + (row * 0xFF)] & 0x80 >> i > 0 { - print!("█"); - } else { - print!(" "); - } - } - println!(""); - } - } + let reordered = reorder_bitmap(&compressed); + let mut outfile = File::create("./cozette.bin")?; + outfile.set_len(0xFFFF)?; + outfile.write_all(&reordered)?; + //for byte in reordered.iter() { + // for i in 0..8 { + // // character number + row offset & bitmask = pixel + // if byte & 0x80 >> i > 0 { + // print!("█"); + // } else { + // print!(" "); + // } + // } + // println!(""); + //} Ok(()) }