Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in 
CSDb User Forums


Forums > CSDb Entries > Event id #2846 : The 256b sprite font compo
2019-07-22 00:58
Shadow

Registered: Apr 2002
Posts: 340
Event id #2846 : The 256b sprite font compo

<Post edited by moderator on 22/7-2019 11:21>

* The object of the competition is to generate a sprite-font, in 256 bytes or less code.
* The code should be placed at $0900 and up, but no further than $09ff and must end with an RTS.
* The sprites should be placed at $2000-$2fff, so sprite number $80-$bf.
* 64 sprites are viewed, but it is up to the coder to decide how many he want to generate, but to be considered a font, at least the letters A-Z should be present and readable.
* For the other sprites, you can of course generate the appropriate numbers/punctuation characters, or spaceships or whatever, or not generate them at all and spend all your bytes on doing fancier A-Z, it's up to you to decide what will impress the voters most! :)
* Since the code to actually view the sprites would take quite some space, and the competition should not be about that optimizing the viewer code (or who can do the coolest looking viewer) I will provide the code that displays the 64 sprites on screen, it will occupy $0801-$08ff, and will perform a JSR to $0900 where your font generation code should be.
* The viewer has a number of tweakable parameters that are placed on $0810-$0814:
$0810 - $00=Sprites should be singlecolor. $ff=Sprites should be multicolor
$0811 - Bakground and border color.
$0812 - Sprite base color ($d027-$d02e will be set to this)
$0813 - Sprite multicolor1 ($d025 will be set to this)
$0814 - Sprite multicolor2 ($d026 will be set to this)
Simply change these bytes directly in the viewer code (if you compile it) or in the final binary if you use that, they should not be set from you generator code, as this is also not something that should steal your precious space.
* The generator code may *not* depend on A,X,Y holding specific startup values, or memory being initialized to something specific (you may for example not pull data from the viewer code and use etc.).
* The generator code may use ZP and stack (remember that your code is a subroutine that is being called though, so don't destroy the return address!)
* The generator may use memory up to $3fff
* Max three entries per coder
* The deadline for the compo is two months from now, 2019-09-22 at 23:59:59 CET
* Then follows a voting period of two weeks, a snapshot of the CSDb votes at 2019-10-06 at 23:59:59 CET will be the final result. (modedit: fixed date)
* No prizes except eternal glory.

Here's the viewer code for Kick Assembler usage, with a place to put your generator code at the end:
.pc =$0801 "Basic Starter"
:BasicUpstart($0820)

.pc=$0810 "Constants"
multicol:
.byte $00
bgcol:
.byte $06
sprcol:
.byte $0e
sprmcol1:
.byte $00
sprmcol2:
.byte $00

.pc = $0820 "Code"
sei
lda multicol
sta $d01c
lda bgcol
sta $d020
sta $d021
lda sprmcol1
sta $d025
lda sprmcol2
sta $d026
lda sprcol
ldx #$07
!loop:
sta $d027,x
dex
bpl !loop-
ldx #$00
lda #$20
!loop:
sta $0400,x
sta $0500,x
sta $0600,x
sta $0700,x
inx
bne !loop-
lda #$ff
sta $d015
lda #$80
sta $d010
ldx #$07
ldy #$00
lda #$18+44
!loop:
sta $d000,y
clc
adc #29
iny
iny
dex
bpl !loop-
jsr generatefont
lda #$35
sta $01
mainloop:
lda #$2f
sta ycoord
lda #$80
sta spridx
yloop:
lda ycoord
!wait:
cmp $d012
bne !wait-
clc
adc #4
ldx #$07
ldy #$00
!loop:
sta $d001,y
iny
iny
dex
bpl !loop-
ldx #$00
ldy spridx
!loop:
tya
sta $07f8,x
iny
inx
cpx #8
bne !loop-
clc
lda spridx
adc #8
sta spridx
lda ycoord
adc #25
sta ycoord
cmp #$2f+8*25
bne yloop
jmp mainloop

ycoord:
.byte 0
spridx:
.byte 0

.pc=$0900 "Font generation code"
generatefont:
rts


Yes, code is neither pretty nor optimal, but that's not the point here, the pretty code should be written by YOU! :D

If you prefer some other assembler, here's the prebuilt binary for the $0801-$08ff portion:
sprite_font_view_base.prg

Here are some simple examples I've done to prove that it actually works:
Sprites using ROM font scaled to 3x3 pixel size. $0810 params set to : $00,$06,$0e,$00,$00
example1.prg



Exact same font but with multicolor params set (works this way as well!) $0810 params set to : $ff,$0b,$0c,$0f,$0f
example2.prg
 
... 22 posts hidden. Click here to view all posts....
 
2019-09-22 00:54
Shadow

Registered: Apr 2002
Posts: 340
Right now there's approximately 23 hours left until deadline!
If you have an entry that I've missed (ie. not posted a "verification passed" comment on) - please let me know!
2019-09-22 11:29
hedning

Registered: Mar 2009
Posts: 2918
Successful compo I must say. Congrats!
2019-09-22 14:24
Krill

Registered: Apr 2002
Posts: 1522
Could have done without that pesky 16K limit. Why? Just... why. =)
2019-09-23 09:37
Shadow

Registered: Apr 2002
Posts: 340
Alright, all entries that are in-compo should now be verified and OK as far as I can tell.

Time to vote people, and try to actually use the available numbers so that we get a fair result, not just 10s for everything! ;)
2019-09-23 20:06
Digger

Registered: Mar 2005
Posts: 365
Would be nice to make a small intro with the winner(s) sprites used in real world context (scroll or DYSP or whatevs). I think Cruzer should code this since he has never delivered his entry! <3
2019-09-23 22:16
Shadow

Registered: Apr 2002
Posts: 340
Quote: Would be nice to make a small intro with the winner(s) sprites used in real world context (scroll or DYSP or whatevs). I think Cruzer should code this since he has never delivered his entry! <3

My plan was actually to make a small result-intro showcasing the top three entries and release as a surprise when the results are in, but now you spoiled it!
2019-09-29 18:16
ChristopherJam

Registered: Aug 2004
Posts: 1078
Ooh, this one’s going right down to the wire. More voting please, and yes, spread out them numbers, at least until voting is over.
2019-10-06 21:34
Mr.Ammo
Account closed

Registered: Oct 2002
Posts: 228
Only a few more hours. The min number of voters for an entries is 10 and the max number of voters for an entry is 36. Highest CSDb score is 9.71 and the lowest score is 6.71. Highest sum of votes is 350 and the lowest is 74.

These entries can use some more votes!! ;-)
Now go vote!!
2019-10-07 00:16
Shadow

Registered: Apr 2002
Posts: 340
And the results are in: Sprite Font Compo Results!
2019-10-07 01:52
Mr.Ammo
Account closed

Registered: Oct 2002
Posts: 228
Some raw numbers for the people who like them. Mind you, the ranking deviates a bit from the ranking Shadow used in Sprite Font Compo Results (rank 15 - 18). I ordered the ranking based on CSDb average and then on the sum of the votes. I added the standard average (sum of votes / voters) to show the difference between the CSDb weighted average and the std. average.
Rank Entry name / Released by               CSDb Avg  Std. Avg  Voters  Sum  downloads
 1)  Fontesquieu 256b by Plush              9.71      9.730     37      360   68
 2)  Foundry 255b by ChristopherJam         9.59      9.594     32      307  110
 3)  Oldskool Sprite Font 256b by No Name   9.10      8.923     26      232   78
 4)  Back to Fourteen Segments 256b         9.00      8.929     28      250  116
                         by ChristopherJam
 5)  Five by Five 256b by Geir Straume      8.90      8.783     23      202   94
 6)  Quasar Sprite Font 256b by No Name     8.88      8.889     18      160   39
 7)  Butt Fat 256b by Elysium               8.79      8.800     25      220   61
 8)  Faery Times 256b by Aleksi Eeben       8.75      8.714     21      183   58
 9)  Hello Sun 1092 by Cascade              8.50      8.357     14      117   38
10)  Battlezone Font by Mixer               8.40      8.444     18      152   55
11)  Joe Petscii + 256b Font by Arise       8.31      8.294     17      141   38
12)  Green Phosphor 153b by ccr             8.28      8.200     20      164   96
13)  Slim Candy 256b by Geir Straume        8.08      8.071     14      113   32
14)  Romulus 1 256b by Camelot              8.00      8.000     18      144   74
15)  NotScii V4 by OMG                      8.00      8.000     14      112   33
16)  Green Behind Ears by Cascade           8.00      7.636     11       84   28
17)  Ransom Note 256b by Geir Straume       7.64      7.611     18      137   71
18)  Legilize 256b by Viznut                7.64      7.647     17      130   62
19)  Crushed Apple Cider by ChristopherJam  7.40      7.364     11       81   27
20)  Single Sprite Poop Font by Smasher     6.58      6.400     20      128   89
21)  Urban City by Rudi                     5.67      5.500     14       77   35
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Acidchild/Padua
The Dark Judge
icon/The Silents, Sp..
Karmic/HVSC/ONS
mankeli/Extend
E$G/HoKuTo FOrCE
Mihai
Bieno/Commodore Plus
zscs
Guests online: 88
Top Demos
1 Uncensored  (9.7)
2 Edge of Disgrace  (9.6)
3 Coma Light 13  (9.6)
4 Memento Mori  (9.6)
5 Comaland 100%  (9.6)
6 The Shores of Reflec..  (9.6)
7 Unboxed  (9.6)
8 Lunatico  (9.6)
9 Remains  (9.5)
10 C=Bit 18  (9.5)
Top onefile Demos
1 Dawnfall V1.1  (9.5)
2 Gumbo Revised  (9.5)
3 Smile to the Sky  (9.5)
4 Daah, Those Acid Pil..  (9.5)
5 Bad Boy  (9.5)
6 Crystal Gazer  (9.5)
7 Cuarentenauta  (9.5)
8 Instinct  (9.5)
9 The Tuneful Eight [u..  (9.5)
10 Listen to Your Eyes  (9.5)
Top Groups
1 PriorArt  (9.4)
2 Booze Design  (9.4)
3 Censor Design  (9.4)
4 Fossil  (9.4)
5 Performers  (9.3)
Top Logo Graphicians
1 Mermaid  (9.4)
2 Pal  (9.3)
3 Jailbird  (8.9)
4 Elko  (8.9)
5 Shine  (8.8)

Home - Disclaimer
Copyright © No Name 2001-2020
Page generated in: 0.074 sec.