Most Recent “Requested Topic” is….
RICs and RSOs!
On April 27, 2011, nxtboyIII asked me to ” make a topic about rics and sounds.” So, I will talk briefly about them, and then dive in to them.
RICs and RSOs, for those who are wondering, are two of the proprietary formats that LEGO uses for the MindStorms NXT series. Files with the extension of “.ric” are graphics, and files that end in “.rso” are sounds. These graphics and sounds have some unique qualities/limitations, however. While I have not done anything to study the nature of these files (how they are made, what software is used to interpret them, etc.), I have read a lot and used them some.
First up: RSOs.
These sound files are pretty straightforward: a sound is a sound. These are, as far as I know, pretty much WAV files. There are some differences, but it is fast and easy to convert a WAV file into an RSO. If you have Bricx Command Center (BricxCC), there is, on the Tools menu, an option called “Sound Conversion” that opens a utility known as WAV2RSO2WAV, or something along those lines. This is a simple utility that lets you convert WAVs and RSOs back-and-forth, making it quite useful. For those of you who don’t have BricxCC and don’t want to get it, there is a standalone utility known as WAV2RSO that has similar functionality, but only converts WAVs to RSOs. There are a few other utilities out there, but I have only used these two.
Due to the NXT’s small amount of existing memory and lack of expandable memory, files must be kept small. For example, you cannot (as far as I can tell) convert that favorite MP3 of yours from iTunes into a WAV and then into an RSO and expect to be able to set that as the boot-up sound. You could, however, take a portion of that sound file and convert it, keeping its size to a minimum. I would recommend Audacity for this. 🙂
Other than that, there’s not really much to say about RSOs that I can think of. As I said before, they’re pretty straightforward.
Rics, on the other hand. . . .
RICs are much more complicated. With RICs, you have to think about the X/Y coordinates of pixels, the fact that the images are monochrome, image dimensions, on-screen location, active vs. still sprites, dynamic images, inputs and arguments, etc. It can appear quite daunting, at first.
As Andreas Dreier puts it,“Most users consider the RIC files as normal graphical files like JPEG, BMP or GIF. Only a minority group of users are aware about the hidden potential which comes with the RIC files. RIC files don’t contain only bitmaps! There is also some high level graphical instructions inside like line, rectangle, output of numerical values[,] and you also can define transfer routines for parameter values.”
While I am not the one to have done this research, I can certainly say that this is true. I have toyed around with his program, nxtRICedit, and seen for myself. Unfortunately, I have not taken the time to learn all the functions available in the second version (nxtRICeditv2) but have dropped back to the original, which treats RICs like bitmaps.
Now, I know that some of you (*cough*nxtboyIII*cough*) are here to learn about the actual making of RICs and RSOs.
As far as RSOs go, it’s (almost) as simple as using the aforementioned utilities. There is a small catch that will sometimes pop up, it is described succinctly (and so is the fix) here.
Now that RSOs are done, let’s move on to what should possibly be its own post: making RICs.
Making basic RICs is, to me, the same as making bitmaps in a program like Paint.exe (NOT Paint.NET). It involves foresight, an artistic mind, and some patience and skill. There are a few major limitations however: your images can only be 100×64 pixels large, which is quite small to some artists. Also, your image is entirely black-and-white: no color, not even shades of gray (well, that’s not entirely try, but that’s for a whole different post). Once you have these concepts down, I think it should be easier to make RICs.
When I make my RICs, I use nxtRICedit.exe, version 1. However, I cannot find where to download this, as version 2 is the new (latest and greatest) version. There is nothing wrong with version 2, in my opinion, I just prefer the simplicity of version 1. With version 2, you have access to all the awesome features of RICs that take them well beyond simple bitmaps. However, because you cannot do this with version 1, I (as a beginner) find its interface simpler to understand.
Now to the actual process of making RICs. 😀 The first thing, of course, is to open the program. Once you’ve done that,you see a blank canvas with a handy grid, showing each pixel. You can left-click on pixels to turn them on (black) and right-click on them to turn them off/clear them (white). You can also hold either mouse button down and drag the mouse, drawing basic lines and shapes. You also have the ability to draw rectangles, mathematical lines, filled rectangles, circles, text, and more. The program also lets you move selected objects left/right/up/down, as well as mirroring/flipping them, both in the horizontal and vertical dimensions. Some extra features include Undo, Invert, and the ever useful Import. This feature allows you to open a non-RIC file in nxtRICedit, setting the black-and-white contrast level. Once you get it how you want it, you click the accept button and it creates the RIC. Unfortunately, this process stretches/shrinks the image to a 100×64 image, so you can end up with weird effects.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
I hope this has been useful to you. If there is anything I have missed, or anything you would like to add, please feel free to let me know in the comments (or via e-mail). 🙂