The VG Resource

Full Version: Gameboy text antics
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
So, I was making a mini experiment. What if the original Game Boy had a really long RPG with tons of text? The screen resolution would mean less letters on-screen at once, and that's a huge blow on story telling. So, I started to develop a pixel 8x8 monospaced font where the idea is to save up as many pixel space as possible in text windows.

Since the full japanese basic alphabet (that is, all the kanas, plus voiced variants and lowercase characters) total an amount of 150 characters roughly, I made an extended alphabet with many digraphs.

Points:
  • apostrophes are merged with the letter after it. So, the possessive 's and negative 't are their own characters, saving one tile.
  • Frequent digraphs, such as TH, GH, PH were made in a separate tile.
  • Two-letter words, such as IN, ON, AT, AS, AN etc. were made in a separate tile.
  • Repeated letters were made in a separate tile.
  • The rest were made as I felt fit, also taking frequency into account.
The result is this, which looks really crammed when displayed:

[Image: b2664282c879f669a93392aa1b71f17f.png]

And an excerpt of this post, redone with this tileset:

[Image: 8acab5f87013f3ea6e97a696802c395f.png]

Which looks nice considering all the limitations. Here's the same pic, doubled in size.

[Image: 69ec61cd2f65adafe60b109e13cc1e29.png]

One can argue that GB isn't the place for long RPGs, but I decided to do it nonetheless. What do you think?
Ah, yes. I believe you have just reinvented Byte-pair encoding here! Wink A lot of older text-heavy games like Earthbound Zero used this method, where it was called Dual-Type Encoding.

With that being said, you've got a very nice DTE setup here. I've never seen a game that uses this many DTE characters, but if you wanted an entirely text-based adventure, this would work really well. 'E and KG seem a little strange, though. Care to explain those?
'e is for 'em, and Kg is the Kilogram symbol.
[Image: 7e3b0fa82a0561459873af60156a8af3.png]

I have made more tests and made another typeset style that tries to weld the special characters with the normal characters better.
The characters that are "joined letters" kinda look a bit awkward sometimes,
but other than that, I really like it.
Game Boy/GBC is one of my favorite consoles.
it's a good idea, but i wonder just when in a game that would be worth it

see, the gameboy could only load and use 256 sprite tiles at a time, much like the nes except there were almost no expansion chips sold in gameboy cartiridges
so you'd be limited to only showing text in those moments when you want text

plus, text in games are stored inside the ram in a highly optimised manner (there aren't many characters, so you can make yourself a low byte-per-character memory storage method)
and so, you would ideally have the console dynamically calculate the occurences of these characters whose tiles are to be joined together when shown onscreen
that is, except for the fact that having slow hardware like a gameboy do all these loops while the game is running might cause some minor slowdown

the other solution is to have the writers for your game actually type their dialogs with these additional characters being used and so the ingame text would be stored that way

but i don't know which is more important, between keeping the ROM a little lighter or having the machine execute less code per frame (even then i say per frame, but it would only have to do the text conversion when loading it)

in any case the big game-changer is that this would use up an entire sprite bank, and that's pretty annoying
perhaps there would be a way to have it load up just the characters that are needed for the text to be displayed
the ideal is to manually write them with it - no actual conversions involved. That would be quite extensive but it allows for choosing when picking the additional characters, and when not, to improve text spacing. It all depends on the situation.

I made another test, by remaking some digraphs and trying to find the lowest common denominator in order to minimize the number of tiles.

[Image: a71792ea182d6c73498375c67747292f.png]


Also, part of the reason why I want to do this is that you can translate japanese NES games with this font. If you replace all the japanese letter tiles (the total different tiles for the japanese syllabary is roughly 150) for the latin alphabet and ligatures, you could translate them while avoiding to abbreviate things or using weird-ass spacing like I've seen before (if I recall correctly, the english fan translation of the NES Captain Tsubasa fit each syllable into one tile so it could display the character's name, but the result was really shit).
the font looks pretty nice atm, but just to throw in my 2 cents, on old PDA's italic fonts would often be used to give better representation of letters on the low resolution aliased screens, I assume it was to save some cases where a letter would touch another letter which you don't seem to have too bad of a problem with here, just figured its worth a mention.
Maybe if you make character sprites for all letter variations (aa, ab, ac, ad, and so on)
it would look less weird (but probably it would "waste" more space)
but right now it already looks much better than before.
but that would effectively be over 700 characters, like so
Code:
aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,a ,
ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,b ,
ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,c ,
da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,do,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,d ,
ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,e ,
fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,f ,
ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,g ,
ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,h ,
ia,ib,ic,id,ie,if,ig,ih,ii,ij,ik,il,im,in,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,i ,
ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,jt,ju,jv,jw,jx,jy,jz,j ,
ka,kb,kc,kd,ke,kf,kg,kh,ki,kj,kk,kl,km,kn,ko,kp,kq,kr,ks,kt,ku,kv,kw,kx,ky,kz,k ,
la,lb,lc,ld,le,lf,lg,lh,li,lj,lk,ll,lm,ln,lo,lp,lq,lr,ls,lt,lu,lv,lw,lx,ly,lz,l ,
ma,mb,mc,md,me,mf,mg,mh,mi,mj,mk,ml,mm,mn,mo,mp,mq,mr,ms,mt,mu,mv,mw,mx,my,mz,m ,
na,nb,nc,nd,ne,nf,ng,nh,ni,nj,nk,nl,nm,nn,no,np,nq,nr,ns,nt,nu,nv,nw,nx,ny,nz,n ,
oa,ob,oc,od,oe,of,og,oh,oi,oj,ok,ol,om,on,oo,op,oq,or,os,ot,ou,ov,ow,ox,oy,oz,o ,
pa,pb,pc,pd,pe,pf,pg,ph,pi,pj,pk,pl,pm,pn,po,pp,pq,pr,ps,pt,pu,pv,pw,px,py,pz,p ,
qa,qb,qc,qd,qe,qf,qg,qh,qi,qj,qk,ql,qm,qn,qo,qp,qq,qr,qs,qt,qu,qv,qw,qx,qy,qz,q ,
ra,rb,rc,rd,re,rf,rg,rh,ri,rj,rk,rl,rm,rn,ro,rp,rq,rr,rs,rt,ru,rv,rw,rx,ry,rz,r ,
sa,sb,sc,sd,se,sf,sg,sh,si,sj,sk,sl,sm,sn,so,sp,sq,sr,ss,st,su,sv,sw,sx,sy,sz,s ,
ta,tb,tc,td,te,tf,tg,th,ti,tj,tk,tl,tm,tn,to,tp,tq,tr,ts,tt,tu,tv,tw,tx,ty,tz,t ,
ua,ub,uc,ud,ue,uf,ug,uh,ui,uj,uk,ul,um,un,uo,up,uq,ur,us,ut,uu,uv,uw,ux,uy,uz,u ,
va,vb,vc,vd,ve,vf,vg,vh,vi,vj,vk,vl,vm,vn,vo,vp,vq,vr,vs,vt,vu,vv,vw,vx,vy,vz,v ,
wa,wb,wc,wd,we,wf,wg,wh,wi,wj,wk,wl,wm,wn,wo,wp,wq,wr,ws,wt,wu,wv,ww,wx,wy,wz,w ,
xa,xb,xc,xd,xe,xf,xg,xh,xi,xj,xk,xl,xm,xn,xo,xp,xq,xr,xs,xt,xu,xv,xw,xx,xy,xz,x ,
ya,yb,yc,yd,ye,yf,yg,yh,yi,yj,yk,yl,ym,yn,yo,yp,yq,yr,ys,yt,yu,yv,yw,yx,yy,yz,y ,
za,zb,zc,zd,ze,zf,zg,zh,zi,zj,zk,zl,zm,zn,zo,zp,zq,zr,zs,zt,zu,zv,zw,zx,zy,zz,z ,
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z,  ,
(07-08-2015, 04:31 PM)Bombshell93 Wrote: [ -> ]but that would effectively be over 700 characters, like so
Code:
aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,a ,
ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,b ,
ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,c ,
da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,do,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,d ,
ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,e ,
fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,f ,
ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,g ,
ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,h ,
ia,ib,ic,id,ie,if,ig,ih,ii,ij,ik,il,im,in,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,i ,
ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,jt,ju,jv,jw,jx,jy,jz,j ,
ka,kb,kc,kd,ke,kf,kg,kh,ki,kj,kk,kl,km,kn,ko,kp,kq,kr,ks,kt,ku,kv,kw,kx,ky,kz,k ,
la,lb,lc,ld,le,lf,lg,lh,li,lj,lk,ll,lm,ln,lo,lp,lq,lr,ls,lt,lu,lv,lw,lx,ly,lz,l ,
ma,mb,mc,md,me,mf,mg,mh,mi,mj,mk,ml,mm,mn,mo,mp,mq,mr,ms,mt,mu,mv,mw,mx,my,mz,m ,
na,nb,nc,nd,ne,nf,ng,nh,ni,nj,nk,nl,nm,nn,no,np,nq,nr,ns,nt,nu,nv,nw,nx,ny,nz,n ,
oa,ob,oc,od,oe,of,og,oh,oi,oj,ok,ol,om,on,oo,op,oq,or,os,ot,ou,ov,ow,ox,oy,oz,o ,
pa,pb,pc,pd,pe,pf,pg,ph,pi,pj,pk,pl,pm,pn,po,pp,pq,pr,ps,pt,pu,pv,pw,px,py,pz,p ,
qa,qb,qc,qd,qe,qf,qg,qh,qi,qj,qk,ql,qm,qn,qo,qp,qq,qr,qs,qt,qu,qv,qw,qx,qy,qz,q ,
ra,rb,rc,rd,re,rf,rg,rh,ri,rj,rk,rl,rm,rn,ro,rp,rq,rr,rs,rt,ru,rv,rw,rx,ry,rz,r ,
sa,sb,sc,sd,se,sf,sg,sh,si,sj,sk,sl,sm,sn,so,sp,sq,sr,ss,st,su,sv,sw,sx,sy,sz,s ,
ta,tb,tc,td,te,tf,tg,th,ti,tj,tk,tl,tm,tn,to,tp,tq,tr,ts,tt,tu,tv,tw,tx,ty,tz,t ,
ua,ub,uc,ud,ue,uf,ug,uh,ui,uj,uk,ul,um,un,uo,up,uq,ur,us,ut,uu,uv,uw,ux,uy,uz,u ,
va,vb,vc,vd,ve,vf,vg,vh,vi,vj,vk,vl,vm,vn,vo,vp,vq,vr,vs,vt,vu,vv,vw,vx,vy,vz,v ,
wa,wb,wc,wd,we,wf,wg,wh,wi,wj,wk,wl,wm,wn,wo,wp,wq,wr,ws,wt,wu,wv,ww,wx,wy,wz,w ,
xa,xb,xc,xd,xe,xf,xg,xh,xi,xj,xk,xl,xm,xn,xo,xp,xq,xr,xs,xt,xu,xv,xw,xx,xy,xz,x ,
ya,yb,yc,yd,ye,yf,yg,yh,yi,yj,yk,yl,ym,yn,yo,yp,yq,yr,ys,yt,yu,yv,yw,yx,yy,yz,y ,
za,zb,zc,zd,ze,zf,zg,zh,zi,zj,zk,zl,zm,zn,zo,zp,zq,zr,zs,zt,zu,zv,zw,zx,zy,zz,z ,
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z,  ,

Not to mention that wouldn't even account for upper case letters, so that would give you a lovely 1400 characters in total for the alphabet alone, and it'd still be a lot even after throwing out the unused combinations
I gave the ligature font a time and now I'm trying to replicate the Fraktur typeface in 8x8 font.

[Image: ba5b0560f90a166554fc51ef9c4244cd.png]
the uppercase letters (especially A, I, J and K) look strange, other than that, i like it
(07-10-2015, 07:53 PM)lu9 Wrote: [ -> ]the uppercase letters (especially A, I, J and K) look strange, other than that, i like it
That's because it's replicating the Fraktur font.
[Image: Fraktur.gif]
(07-10-2015, 07:58 PM)Shade Wrote: [ -> ]That's because it's replicating the Fraktur font.
[Image: Fraktur.gif]

oh

well in that case, it looks really accurate
Pages: 1 2