Originally a DOS game, it was later ported on many platform, including web pages. Under DOS, it achieved its graphics using redefined fonts, as a primitive tile engine.
The redefined fonts were stored in files with .chr extensions.
I tried to load them with FreeBasic, here is the result:
Code: Select all
type Font
w as long
h as long
d as any ptr
end type
enum
FB_FONT_8 = 0,
FB_FONT_14
FB_FONT_16
end enum
extern Fonts(2) alias "__fb_font" as Font
sub reverse(byref b as ubyte)
b = (b and &HF0) shr 4 or (b and &H0F) shl 4
b = (b and &HCC) shr 2 or (b and &H33) shl 2
b = (b and &HAA) shr 1 or (b and &H55) shl 1
end sub
sub LoadChar (fontname as string)
open fontname for binary access read as #1
dim as long y
dim row as ubyte ptr, b as ubyte
row=Fonts(FB_FONT_14).d
for y = 1 to 8*256
get #1,,b
reverse b
*row=b
row+=1
next
close #1
end sub
screenres 800,600
width 100, 42
LoadChar "Mario_1.chr"
for i as integer=0 to 255
locate 1+2*(i\25),(i*3) mod 75
Print chr(i)
next
sleep