| |
jamiefuller Account closed
Registered: Mar 2018 Posts: 25 |
Generate better looking chars from ROM
Hi All,
I'm trying to create a font using the smallest amount of ram possible, It doesn't have to be the best font in the world but just something that looks at least a little different from the standard font.
This is the best I have come up with so far (71 bytes), it copies the font from ROM and "translates" parts of the font to make it look slightly different.
*=$0900
main
inc $DC0E
lda $01
and #$fb
sta $01
ldy #$01
@lp1 ldx #$00
@lp2 lda $d000,x
cmp #$76
bne *+4
lda #$7A
cmp #$60
bne *+4
lda #$70
cmp #$66
bne *+4
lda #$72
cmp #$6C
bne *+4
lda #$74
cmp #$6e
bne *+4
lda #$76
@lp3 sta $3000,x
inx
bne @lp2
inc @lp2+2
inc @lp3+2
dey
bpl @lp1
lda $01
ora #$04
sta $01
dec $DC0E
rts
Any suggestions for improving/reducing size? |
|
... 10 posts hidden. Click here to view all posts.... |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
cruzer already won that compo if both size and niceness is considered, imho :) |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
Quote: Funny, I was just thinking about this! I want to morph the ROM into a half-sized charset. I wonder if I could just pick 3 columns from it...
you could do it just as my code does, but with more cmp's
cmp #$40 checks if bit #$40 is set if yes C is set then set according column bit in the result etc etc. just take a column from both sides and one from middle. |
| |
Shadow Account closed
Registered: Apr 2002 Posts: 355 |
Quote: Of the three examples in post #5, the top one is my favourite. Compare the M's in "COMMODORE" for instance.
Anyway, this should totally be a compo.
The problem with a compo is that you have two dimensions - size and how good the font looks.
Perhaps having a fixed size limit like 64 or 128 bytes code, and then see who can come up with the nicest looking font could work? |
| |
Glasnost Account closed
Registered: Aug 2011 Posts: 26 |
@jamiefuller:
Your code can be better in 2 ways:
1.(-4 bytes) No need for
lda $01
and #$fb
sta $01
unless it runs while the datasette is loading :)
just..
lda #$33 (#$37 later)
sta $01
2. (-1 byte) by using the "illegal" opcodes dcp or isc in the loop to cancel use of y. dcp and isc are usefull for looping in some cases.
Illegal opcode ref:
http://www.oxyron.de/html/opcodes02.html |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Quoting lftAnyway, this should totally be a compo. Agree. We have way too few coding compos. I would definitely do some experiments, and compete if anything good came out of that. |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Setting rules will be difficult, the code-size restriction is simple: less code: more 'points'.
But what constitutes a 'better looking charset', how does one weigh that against the code size? |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Just set a sensible code size like 128b and let the voters decide. |
| |
4mat
Registered: May 2010 Posts: 66 |
I remember a while ago making the classic 'data 70' font out of the rom font in code. Can't remember if that was for a competition or something else. Anyway if you're looking for a target style that might be useful. |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
"Data Seventy is a high-tech style font, with the look of old computer lettering. Data Seventy gives any text a futuristic appearance."
Not so sure if the prefix "retro" should be there in front of "futuristic". :) |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Retrofuturism is a thing. |
Previous - 1 | 2 - Next |