Scan And Spin

Celebrating 10 years of BigBoxCollection.com

R_000039 2025-05-23 C64 One-File Demo (PETSCII) Tools: PETSCII Editor, C64 Studio, Google Sheets, Goerp's PETSCII Editor Extractor, Exomizer, PetMate 9, DroiD64 Get it from CSDb.dk

Credits

Code & GFX: jmin
Music: Encore
Help: Goerp
Thx: all @ F4CG for motivation & feedback

Tools

GFX: PETSCII Editor
Coding: C64 Studio
Helping Utils: Google Sheets and Goerp's PETSCII Editor Extractor
Packing: Exomizer
DirArt: PetMate 9
.d64 wrangler: DroiD64

tl;dr

This year, my site BigBoxCollection.com reached two milestones

  1. 10 years online
  2. 1,000 3D boxes uploaded

In order to celebrate, the idea of doing a PETSCII pic was triggered by Goerp but this single pic quickly turned into an animation which then again turned into this full blown one-file PETSCII demo here.

GFX: There are 29 spines (+2 for the credits) and 11 covers (+2 for the credits) crammed in, all hand pixeled in PETSCII Editor after taking a quick glance at the boxes on my shelf. Almost all GFX have been done in single sessions without retouching them over and over again, except for reworking their size and correcting errors. This self-imposed limitation wasn't something I decided upon but it just happened that way and I tagged along once I had realized what's going on here subconsciously and in the end, all this hasty roughness kinda tie the demo together visually. Another bonus was builing up lots of material in no time.

Code: it's just one huge coding learning lesson for me, fooling around with various concepts; Goerp helped out with a little ".pe to data&prg" tool for extracting the spines from my workfiles and I've taken some bits and bytes from this tool to learn how to handle multiple PETSCII data blocks within the same subroutine, hence the "help" credits.

Music: Why re-using existing music? Due to C64anabalt being sort-of the kickstarter of BigBoxCollection.com, I've used Encore's Canabalt.sid right from the get-go; at first just as a placeholder but later I just asked him if I could use it. Tried my best to sync up my stuff with the music.

Due to my impatience and the Plain PETSCII Graphics Competition 2025 happening throughout May, I couldn't sit on it until June 12, 2025.

Background

I'm a gamer, always have been and thus this release goes way back to the late 80s with my brothers and me finding a C64 under our christmas tree. While we did of course own tapes with copied games on them, we also went down to the shop spending our pocket money on budget titles by Mastertronic & co.

Grabbing a copy of Castle Master was different though, it wasn't just a tape in a plastic case, it was a cardboard box with a neat cover artwork and details on the back and not only had a tape inside, but also a manual (which got lost somehow). This wasn't just a game, this was something more and in hindsight, I do pinpoint my love for boxed games onto this very moment.

As the 90s passed, my collection of boxed games grew naturally, especially as I've never sold or traded any of my games and in 2000, when moving to Vienna, it all got packed up and put in storage at my parents' place. During the mid 2000s, the common big box PC game got replaced with cheaper (and smaller) plastic DVD cases - and later downloads via Steam - anyway, and thus my hobby of collecting games faded away.

Jump cut to 2012: I've stumbled up on the C64 ports of Canabalt and lo and behold, the game was released in physical form. A box, for a new C64 game, in 2012! What's not to love here? And with that, I started collecting boxed games - now "retro games" - again. According to my statistics, I've added 35 games in 2012 alone.

BigBoxCollection.com

Around the same time, I started to document my collection via photos and shared it as Google Photos albums. This was fun, but not really perfect with an ever growing collection. Two years later, I decided to create a virtual version of my shelf that's accessible, searchable and shareable at any time and on 12 June, 2015 my project BigBoxCollection.com went live.

So, what about the demo?

In January 2025, a small package arrived containing three more games for my collection and with that, I've reached a big milestone of having 1000 games on my shelf. I've shared this good news on the net and within the likes and comments, there's also a "Celebratory PETSCII?" reply from Goerp. "Sure, why not", I thought but my brains' already started vibing in the back and a single pic quickly became a single animation which led to even more pics and aaahhhh… something big started to form. And here's a summary of the following 5 months of frantic pixeling and coding.

The full lowdown

Here's a diary like recap of the whats and whens of how Scan And Spin came about:

2025-01-14: Origins

Following Goerp's comment on BlueSky, I've started pixeling in, you've guessed it, PETSCII Editor and the the idea at the time was just pixeling one of my boxes laying on the scanner waiting to be digitized.

Easy. And intriguing!

How about doing another box?

And one more...

OK, this is fun and a neat lunch break challange: Coming up with as many 24x4 spines as possible!

At the same time, having a fixed layout brought up another idea. How about doing a scan animation that can be shown for each spine pixeled? Shouldn't be too hard with a couple of frames for start and end and just a line going from right to left inbetween. Here's a first mockup:

2025-01-15: Frantic pixeling

The next day's evening was spent pixeling spines. Lots of them, really.

2025-01-16: More demo ideas

While spamming the F4CG discord with my spines, I also noted some ideas for the demo, which consisted of:

But I also noted right away, that turning all the covers into PETSCII would be quite a challenge.

2025-01-17: Spine extractor

All the spines pixeled so far are saved witin a single .pe file of PETSCII Editor. Goerp sat down and wrote a ".pe to data" tool which would extract all those 24x4 sections and outputs them as data ready to be used in ASM. He also wrote a .prg that looped through all the extracted spines.

His tool saved me a lot of manual exporting and also turned out to be usable for other .pe to data exports too. Further, peeking at this .asm code for displaying the spines, I've learned the basics of how to loop through multiple data blocks via indirect references. Neat!

Meanwhile, two more spines were pixeled:

2025-01-18: First cover

Spent some time pixeling a cover. Started by copying the spine onto the cover and a rough what-should-go-where thing, before filling in details. Below, I proudly present, Dwarf Barbarian :D

And here's the original cover as presented on BigBoxCollection.com:

(subsequent cover screenshots below have the original boxes superimposed for easier comparison)

2025-01-19: More cover

Sunday was spent pixeling three more covers.

2025-01-28: Teaser

Posted a first teaser over at my BlueSky profile.

2025-02-03: Rough Covers

A quick lunch break doodle brought rough outlines for turning two more covers into PETSCII.

2025-02-04: How about spinning them?

Up until now, the idea was to just show the covers after an scanning animation, but BigBoxCollection.com isn't really about showing boring scans as hundreds of other sites do, it's about showing the box and thus being able to rotate them all around to see it from various angles.

So,... how about a rotating box?

Cover and spines would give me 3 out of the four sides visible already, PETSCII-ing the back is kinda pointless, so let's just have that one black. Hmmm...

Let's do a mockup!

Here's my thoughts shared with the F4CG guys:

Just a mock-up (right side of the box isn't really done), but the spinning black box should be easy to do in PETSCII and the covers could just be painted on in various "crunched" (reducing the pics in a fixed pattern by dropping lines/rows in part, so no calculating for merging chars or so) states.
Might even be something that I could manage to implement.

2025-02-06: Spin it!

Tidied up the spinning box and ended up with 12 frames (including one view each of front and spine) and well, yes, OK,... that definitely works!

Next up is setting up a spreadsheet for figuring out how to morph the cover art.

2025-02-08: Oh la la!

And here's an improved mockup and it works better than it should. The crudeness of PETSCII does hide a lot, and having it animated makes you see details, that aren't there, I suppose. Either way, I love it!

Going down this route means all the covers have to be the same size, which they are except the square Barbarian and, as it turned out, X-Out which strangely is a char wider then the rest. Shouldn't be too hard to fix though.

Let's Code

According to the message on Discord, I've started coding on Sunday but there isn't really something to share at that point of time.

2025-02-10: Fillers

Realizing that this might in turn into a real demo, I thought about how to transition from one bit to the next and at the same time, add some demo-isms to it, while still keeping it all plain PETSCII.

Today's lunch break doodle session brought the following solution to both of these questions:

Throwing in big words like Scan, Edit and Spin and faking some rasterbar-y effect using the space above and below the word.
Another bit solved quickly, I'd say :-)

2025-02-10: Face scan

Another bit a demo has is credits, so I thought about how to combine credit info with the overall theme, and an idea as stupid as it could be popped up: let's do a face scan!

Here are the initial sketches:

Trust me, it's a totally pain-free experience and jep, those face scans should indeed look that bashed up.

2025-02-17: More GFX

With the face scans, additional spines are needed, because the boxes do of course spin too.

Also, two more filler pics that reuse the spine GFX:

Edit: The tape didn't make it into the demo, but found it's way out via a compo release dubbed Future proof.

And then, there were another two "big word" screens, that didn't find their way into the demo in the end:

2025-02-18: Blueprint

Spent the early evening hours doodeling a title pic and it turned out to be in a blueprint style; here's the first iteration:

And once again, a new idea was born: "Guess, I need a spinning white wireframe box as well" was posted in the F4CG discord at 17:19.

Later that evening at 21:29, this here happened. It's just a rough sketch and those lines definitely need some optimization, but it does work :)

2025-02-25: Covers

Picked up the Driller concept and finished it.

2025-02-27: Grown up Barbarians

With the idea of spinning those boxes, all covers have to be the same dimensions, so let's resize those dwarf barbarians to full size.

2025-02-28: Credits

The credits sections already has a spine with the function and a face scan for the box, and thus all that's missing is showing names. The first thing that came into my mind was scribbling the handles onto the black back of those spinning boxes:

It has definitely contrast and therefore should be readable, but it's also kinda dull, so let's add a background:

Better, but it's still rather plain. Let's fix that with a more elaborate pattern and we're done here.

And here's the combined version as used in the demo painted in red.

2025-03-03: Intro

The thought of sticking to a 100% PETSCII demo was living in my head for some time now — especially as everything beyond it is way out of my coding skill league anyway — so today's lunch break doodle brought up an intro screen similar to old hollywood movies, with light bulbs flashing all around. Having implemented a color cycling routinge before, animating this pic should be doable.

2025-03-07: Coding

Shared a first .prg that had the following elements:

It's rough all around but it's a start. Go grab it here: Prototype_001

2025-03-08: Some more spines

Added a couple more spines, ramping their number up to 31!

For those who read the intro mentioning that there are 29 covers in the demo, yep, "SimCity" and "Star Wars" didn't make the cut because I've run out of space.

2025-03-09: Stack of Boxes

Added all the spines in for creating a tall tower of boxes scrolling by. Lot's of screen tearing but that's something to figurea out at the end. Go grab it here: Prototype_002

2025-03-11: A Wild Goerp appears

A lunch break doodle lead to a pic of Goerp.

Really liked it, but it absolutely didn't fit the the demo's style. At all. It's just too slick.

A first try for roughing it up didn't lead to any improvement stylewise, but boy, not sure he's all Goth inside, so let's retract.

In the end, the pic wasn't needed, but it sparked an idea and you're gonna see it again soon, promise.

Knowing that this neat pic didn't fit, I channeled my pixel energy into another cover:

2025-03-123: Drop that box

On the coding front, another bit got implemented: dropping boxes onto the scanner.

Having them fall through the scanner was not intentional but the "drop frame one line"-code just happened to do exactly that and to be honest, I quite liked it that way.

If you've watched the released demo already, you know that this effect ended up in the demo exactly as it is here, but there's no way I would have thought that at this point of time.

Go grab this third prototype here: Prototype_003

2025-03-13: More covers & code

Two more covers have been painted.

Ninja 3 was a though one and in the end, I didn't even start drawing any eyes for it. Blasphemy, I know, but it then again, all covers here are more like interpretations rather than direct conversions. Also, having been unsure about the eyes, I did save inbetween and thus can present you two workstages.

In regards to coding, I've added color cycling to the "PETSCII Feature" pic. Go grab this prototype here: Prototype_004

2025-03-13: One more cover and animated Title pic

And another cover done and it's quite a complex one that luckily fell into place rather quickly. Also, those half-char checkerboards are fantastic for fast pixeling and filling up backgrounds on a low-fi level.

On the coding front, animation of the title screen was implemented. Go grab this prototype here: Prototype_005

2025-03-19: Big coding update

The animated big word GFX "Scan", "Edit", "Spin" and "F4CG" have been added to the code. Also, work on painting the covers onto the spining box started.

Go grab this prototype here: Prototype_006 (hit SPACE for advancing one frame of the box animation)

2025-03-19: Exomizing

With the file getting bigger and bigger, packing was mentionend and exomizing saved quite some bytes.

2025-03-20: Last cover

One last cover and of course it has to be C64anabalt.

2025-03-22: Full box animation

Milestone reached! The spinning boxes are in! Go grab this prototype here: Prototype_007 (hit SPACE for advancing one frame of the box animation)

2025-03-23: Full scanning animation and memory troubles

Another key bit implemented: the scanning animation with the scanning GFX being reworked a bit. Go grab this prototype here: Prototype_008 (hit SPACE for advancing one frame of the box animation)

But cramming in more stuff also lead to a problem: memory :/

2025-03-26: Full wireframe animation

Implementing the wireframe animations ate a lot of memory, but it did enhance the spining animation big time, but see for yourself and go grab these prototypes here: Prototype_009 and Prototype_010

2025-04-XX: What?! No progress?!

No posts for April and checking my notes, it wasn't lazyness but I just got side tracked:

2025-05-04: Cut, cut, cut!

With the June deadline inching closer and the demo still unfinished, I decided to stick to a one-file demo, cut down on fancy stuff like the wireframe animation and focus on covers. Good thing, I've never started the "Edit"-sequence.

2025-05-07: It's a wrap!

So far, I've only tested the demo on Denise, Micro64 and of course Vice, but not on real hardware; Goerp kindly tried it out for me.

Also, lots of polishing was done:

Go grab this prototype here: Prototype_011

2025-05-09: Talking business

There had been a discussion on CSDb about re-using existing tunes for new productions and the common understanding was that's it's OK, but getting in touch with the composer is never a bad idea. With me syncing up the demo to the Canabalt title track, I sent Encore a little PM explaining what I'm doing here and that I'd really like his track to be used. Didn't take long to the a friendly reply and a big OK back. Yay!

The Canabalt.sid file includes two tracks and with all the memory problems all around, removing the 2nd track which isn't played during the demo, came up. Googling SID editors didn't really bring up any ready-to-go-fit-for-a-noob solution and tinkering with the file didn't feel right anyways, so I just reached out to Encore again and asked if he could help me here a bit and, well, he already had a trimmed file on his HDD dating back to the day the track got added to the C64anabalt .crt and sent it over. Another yay!

2025-05-11: To compo or not to compo

June is kinda a dead month for demo parties, it seems, there isn't really much going on BUT over the past year I've learned that I'm not a guy who enjoys sitting on finished releases anyway. With the Plain PETSCII Graphics Competition 2025 running till May 23, I just decided that that's close enough for me to the anniversary on June 12, so let's target an entry for the Mixed category.

2025-05-14: Polishing, lots of it

Another tweaking session with the shorter .sid being integrated and a lot of "moving redundand code into sub-routines" which in the end allowed me to add all 11 (+2 for credits) covers and 29 (+2 for credits) out of 31 spines in. Also, the second half of the demo got reworked (re-adding the "boxes falling through the scanner"-sequence) quite a bit, making sure to keep the frantic pacing alive while keeping as much as possible in sync with the music.

2025-05-15: Dir Art

OK, it's a one-file demo, but it's a demo and not just a color-cycling animation like my first coding bit, so why not go all in and pack it into a .d64 file with dir art and all?

PETSCII Editor isn't really usable for dir art, especially with the limited font and the smaller size, but I knew that PetMate can handle it, so let's fire it up.

As with all the other GFX, I didn't really want to work on it for hours, so a what's ended up in the release is more or less what I've came up with in a session. Only the vertical lines were added later-on while writing this blog entry and having decided to just add all the prototypes linked here to the .d64 file as well.

2025-05-16: Post production

Usually, the release comes first and the update here on jmin.at follows whenever I find time to do all the screengrabs and write-up but this time, it's just a too big production and I wanted to have the "workstages" so-to-speak ready to share right away. For this, I've dug though all my files and discord posts and spent the weekend writing this post here. Lesson learned for next time: start documenting while doing the work.

2025-05-18: Release!

OK, all set and done. Let's upload it to CSDb and see what happens :-)

Conclusio

Wow, what a fun way to waste hours and hour of spare time. Only after writing this post I realized that I've worked on this project for three months, and most likely have listed to Encore's track 2-300 times (still loving it!). Not everything that came about could be added, but parts are either already on their way into other productions or are on hold, waiting to be rediscovered and/or implemented siteromeday.


What's CSDb thinking about it

TheRyk (20.05.2025)

wowzers sooo many wonderfully done boxes, cool choice of music and one-filed on top of all!

jmin (20.05.2025)

Never thought collecting dusty ol' cardboard boxes would lead to groupies :D

@Raistlin: Thanks and as always, great work extracting all those pics. Haven't seen the box tower in full before and boy, that's scary looking big and wobbly!

Raistlin (19.05.2025)

Hah, this is very very cool. Great ideas, very nice design, lovely PETSCII.. whats not to like?

Amazing to see a new scener hitting this bar, too.

Very very cool.

Smasher (19.05.2025)

I refrain from voting own group productions, however I must say this is megacool!
it was also fantastic to see all the steps, how this project evolved in the last weeks/months.
however the most amazing thing here is your damn collection!! all those titles!!! ffff!!... grrr! *envy!* jmin, I want a baby from you! lolllol :)

Kreator (19.05.2025)

Great work! Pure Ace!

jmin (19.05.2025)

Wow, thank you all for the fantastic response!

@Freeze: visiting a VCC meeting is on my todo list, but not sure I'll manage anytime soon.

Xiny6581 (19.05.2025)

What a lovely presentation! This felt really nice and love all the game titles spinning around :) Easy a winner <3

Freeze (19.05.2025)

wow, what a cool production! Congratulations from the south of Austria to the capital Vienna - maybe we can meet someday in person to do some retro talking... keep on with your great work!

4gentE (19.05.2025)

Wow! I love this!
Congratz on 10 years/1000 scans!

Dr. Doom (19.05.2025)

what SHINE said.
keep up the good work F4CG!

Twoflower (18.05.2025)

<3

goerp (18.05.2025)

Congrats on this monster production!
Your making-of blog is a great read too!
(totally forgot I made that little tool haha!)

Digger (18.05.2025)

Yay! Its awesome and better than most demos
Everything will eventually be made with PETSCII.

Brittle (18.05.2025)

This is too fucking good, never seen so much style in petscii since G*P's "Nothing but PETSCII". Take my 10 <3

Maxlide (18.05.2025)

Awesome production!

Katon (18.05.2025)

Super !

zscs (18.05.2025)

Wow! Shut up and take my 10! <3

Rebel 1 (18.05.2025)

Very cool!

Shine (18.05.2025)

L O V E L Y
P E T S C I I
D E M O
<3

(The Rotator ... WOW!!!)