Today I got my chinese PicoPSU-clone in the mail, all the way from China. Fits perfectly on the C-one and allows me to power everything with a simple 12V brick. Click to see it on flickr.
Also, I have written a new "chapter" ... this time a bit more detailed information on the boot and loading process.
I have made a quick and simple addition to the Selector
boot.bin, the file that is responsible for the selection menu. Normaly, the menu
will show an icon if there is a select.raw file, and then it will write the text
from select.txt on top of the icon. If, however, there is no such file, it will
look for a .crt file and extract a name from within that. If such a file is not
available it will look for a .prg file and write out the name of it. My addition
will go one step further. If there is no .prg file, it will look for a .tap file
and write the name of that on the icon. This is of great use with the ZX-one
core, which uses .tap files for tapes, and can only use one such file.
Download it by clicking here.
Remember that selectors can be nested. For example, put the contents of this archive
in a folder in the c1dcores folder on the CF-root, and then put additional cores
in the c1dcores folder inside that to give you a second level of choises. That way,
you could have up to twelve copies of the ZX-one in this sub selector for launching
different tape-files.
Moving on, I have started a piece about how the boot.bin-files work
and how to use custom fonts and font colour in the menu. It's still work in progress,
but if you wish you can read the latest draft by clicking here.
It may still contain errors though and is not completed yet.
I am going to restructure all this in to some more manageable format soon. I hope.
Warning! I tend to ramble on quite a bit and never keep to the subject when writing. This text is also most likely full of bad spelling and punctuation.
The Commodore One is a pequliar monstrosity of an FPGA-board, but despite all the quirks, it's pretty neat. It will happily run Minimig (provided you have the "Extender-board", which adds yet another FPGA in to the mix), the excellent FPGA64, as well as the really nice ZX-one, giving you access to three old machines in one.
Of course, there are yet more cores for it, like one for Amstrad CPC, a Vic 20 and ... and ... well, I think that's it, really.
This board was originally designed by Jeri Ellsworth (great goddess of all things electronic and flippery) and manufactured by Jens Schönfeld (Maker of the Catweasel ... oh how I wanted a Catweasel way back in my A2000 days, nowadays though I'm thinking a KryoFlux would be super neat to get instead).
Bear in mind that the design of the C1 is from 2002, and even though it was later expanded on with the Extender, I would not recommend this board to anyone just interested in playing old games. It is full of weird design decisions, strange connections, features and connectors that can not be really be used sensibly and a few errors and shortcomings.
A much more modern and better alternative would perhaps be the FPGAArcade-board (although you can't really buy that one yet), or just plain old emulation on an ordinary PC.
If you are in it for use as an enhanced C64, I would go for a Chameleon instead. They are bright yellow. And have the same FPGA-power as the Extender, but at the size of a cartridge. Plugs right in to the real C64, or runs stand alone. Quite nifty. Maybe in ten years I will get myself one.
I was at a party once you know. Apart from a few rather ridiculous performances on the stage, it was pretty good. Reyn Ouwehand and Fred Grey was there, thats how good it was.
One weird thing I do remember from it was this guy who suddenly took to the stage to give us a presentation on a little thing he was working on called the Chameleon. He kept insisting that "Chameleons are bright yellow". It was a bit weird to do that presentation in the middle of what some would call kind of sort of a concert. Of course, I am really interested in that sort of thing, seriously, but, in the middle of a concert? :-) Still, all publicity is good publicity, and the audience was most likely largely the correct target for the presentation. Except for all those young people there who didn't even know how to load the games on the TFC3-equipped C64s that where placed here and there. Damn kids these days. Get off my lawn! [waves angrily with my cane] Apparently, Pocahontas was also there, selling hardware in a corner ... but I'm not sure I was sober enough to remeber that clearly, so I could be wrong, but i digress.
The Commodore One still appeals very much to me though, and I have wanted one ever since I first heard about it all those years ago. I have reasonable experience with electronics as a hobby, I work with embedded systems, I make my own PCBs and have been working with microcontrollers since way before they got all "cool" and "hipster" and "art projecty". I also have a big love for old computers, especially my very first computer, the Commodore 64, which I have hacked to bits and back. I also have, amongst other things, a few Amigas (my first one is an A2000 with A2091 SCSI-card, 50 MB HD, 3MB fast RAM, and an A2301 genlock, and the last one is an A1200 with black case, 50MHz Blizzard 030 card with FPU, 16 MB RAM, UltraDMA ATA(IDE) card, internal HD, external HD and CD-ROM, in a black case, oh yeah), a Spectravideo 328, C128, C128D (with 80 col monitor) and an IBM AS/400 with a real terminal on Twinax connection. Even though I have not worked much with FPGAs or CPLDs I did take a course in VHDL back when I was studying at the electronics engineering program at the university, so I kind of knew what I was getting myself in to when I aquired this board. In the past, though, I could never justify the cost of buying the c-one new. Sure, I buy many weird things and collect old junk (I even have one of André LaMothes (he did videoblogging even before the term existed) old X-GameStations (kind of the original one, although it is not really how he originally envisioned it)), but I try not to spend a fortune on things I really have no immediate use for.
But then I suddenly got a chance. During summer 2011, years after everyone else had abandoned the platform, I happend on one of these second hand through an online auction. I got it from someone who had tried to build some kind of Super Commodore 64 with it by putting it in a big tower case and loading it up with 1541 and 1581-drives. I didn't very much care for the bulky cludge of a tower he had shoehorned it in to. It was not very well made, and none of the drives where connected up properly, nor where they powered from the ATX-supply. I choose to disassembled it completely and am currently in the process of building a nicer case. Something along the lines of a slim set-top box, with a "PicoPSU" to power it from a standard 12V brick.
Anyway, the first thing I noticed with regards to the boot menu was how ugly it was. No offence to anyone, but I just could not stand the look of the NewBoot icons. In fact, the old BigBoot Classic is actually a lot more pleasing to my eyes. I just love the monochrome amber on dark blue colour scheme and the crisp letters with small and sparingly used graphic.
Newboot, on the other hand, may of course be a lot better technicaly. Underneath the front end there are some improvements in some ways, but the icons and backgrounds just don't look very good to me.
So that was the first thing I set out to fix. After getting myself aquanted with the system (in order to even get it to run any cores properly I first had to fix a bent pin in the SIMM-slot, that actually took me a good two hours to track down and fix) and the weirdness of the hardware and boot process, I set out to draw myself some new good graphics.
The graphics in the menu is stored as raw pixel-data. One file per picture. One byte per pixel. No headers or anything. The byte is interpreted as colours according to bit order "bbgggrrr". This gives the complete colour space comressed to 256 shades. No custom palettes.
The background is called "selectbg.raw" and is 640x480 pixels, or 307200 bytes, and then there is the "marker.raw", wich is a 160x160 pixel "cursor" that is overlayed on the selected icon, and then each core has its own "select.raw", 160x160 pixel icon. The icon and overlay uses colour number 0 for transparency, which is a little bit silly, because that way there is no pure black colour available on them.
To be able to work a bit easier with the images in my photo editor of choice, Photoshop CS3, I made a colour table for it. I simply converted the 256 3-3-2 bit colours to ordinary 8-8-8 colours in an Adobe Color Table-file. This is just a file with 256x3 bytes, all the colours in order. Simple. I use magenta (FF00FF) for transparent, but this can be changed on the fly depending on what other colours you are working with. When doing the background colour 0 should be change to 000000 (black).
Using this together with Photoshops ability to open and save so called "Photoshop Raw"-files (not to be confused with Camera-Raw) you can easily open and save all the Commodore One raw-images. Just open the file in photoshop, select "Photoshop Raw" and in the Options dialoge, enter the size of the image in pixels (640x480 or 160x160). Set channel count to 1, depth to 8 and header to 0. Boom!
The image will read in as monochrome, each byte just representing the amount of white
in the pixel. To get the colours right, just choose the menu option "Image - Mode - Indexed Color". This changes the image to a 256 colour palette based image. Now select "Image - Mode - Color Table..." and you can edit the palette. To save some time, just download the .act-file I have generated and choose "Load..." to fetch it. Now you can just change the image as you wish, and when done, just "Save" or "Save As..." and make sure "Photoshop Raw" is selected if you use "Save As...". The resulting raw-file can be copied directly to your CF-card.
Photoshop will never change your palette, and will attempt to translate any colour you select or paste in to the image to colours from your palette, with dithering if necessary. This means you can work on your piece of art in "RGB Color" mode and when you are done, just do a merged copy of it and paste it in to the 256-colour raw-image. The colours will be dithered as necessary. This may or may not look like crap. If it does, just adjust your full colour image to have colours more similar to those from the palette, for instance by using the "Eyedropper" in the raw-image to fetch a colour out of the dithered mess and then flood the original area with that. Just just your skills of an artist! Good graphics can be made!
I am not claiming that I am a very good artist in any way, but I still made myself a bunch of icons and backgrounds. I have made some available for download here below. Go ahead and use them if you like. To some extent they are based on images stolen from "the internet" and adapted to the correct size and palette. I claim no copyright on these icons, use them as you wish.
Fixing the palette and making these images took me a few hours at most. I am not really happy with all of it yet, I need to fix some things and make the icons more consistent. Since I was working with them one by one I never thought about how they would look together on the screen. Still, I do consider it a large improvement over the old ones. The plain white background especially makes everything much nicer on the old LCD-monitor I use with the C-One, since it's an old one I found in the electronics recycling bin at work some years ago, and it completely lacks any kind of dithering when scaling the image to fit the physical pixels. This produces sharp images, but looks rather horrible with the "scanline" pattern. An old CRT would of course be a lot nicer in some ways for this kind of project, and I do have a few (like 12) of those in my basement, ranging from 7 to 21 inches, but they are just too troublesome to carry around.
Download files here. See two screenshots below. (Yes, I photographed my screen with a crappy camera in a dark room. The noise in the images is mostly added by the camera.)
--
Niclas Lardh, 2011, Sweden.
This is my main boot screen with the new backgrounds and logos.
This is what you get if you select ZX-one on the main screen.
Since it only handles one tape-file at a time, I simply made eight
copies of the core so I can choose what game to play.