The (unofficial) VMU FAQ
1.1 : What is a VMU ?
A VMU is the Memory card used to save your game positions on a Sega Dreamcast games console. Without one you would be unable to complete many games, as there is just too much gameplay to be able to fit into a normal gaming session, and besides, it's nice to be able to go away to play something else safe in the knowledge that when you return you won't have to restart right from the beginning. A standard SEGA VMU has 200 blocks of save space, which is enough for lots of game saves (the amount depends on the games you have, but most will use roughly 20 to 30 blocks, meaning that a single VMU can have saves for eight different games.)
VMUs plug into the console through the controller, and normal Sega joypads have two slots, with the top one having a window that lines up with the VMU's screen. As you can plug in four controllers, then you can have eight memory cards in at once and most games give you the option of which VMU to save/load to.
The big advantage of the memory card being plugged into the controler is the fact that when you look down you have your own personal screen. This can be used, for example, in multiplayer games to hide your statistics or tactics from the other players.
However that isn't all there is to a VMU. It also has a DPad and 4 buttons. These can be used for two purposes:
- Mobile file manager. You can delete save games on your VMU when it is not connected to your Dreamcast! This is very handy for games that don't have built in file managers! You can also plug two VMUs together and exchange save files.
- Mini games system. Many Dreamcast games have VMU minigames built in. At certain points in the game you will get an option to copy the game to your VMU, at which point you'll be able to unplug it from the Dreamcast controller, and play the game. Most of the time doing well in the minigame will unlock new features in the main Dreamcast game. It is also possible to download Mini games for free via the Internet.
1.2 : What's the difference between a VM, a VMS and a VMU?
Basically, the answer to this question is the region you live in, or the region your VMU/VMS/VM was bought.
When SEGA originally released the Dreamcast in Japan, they called the memory card the "VMU" (which stands for Visual Memory Unit). However, due to copyright and trademark problems, it had to be renamed to the "VMS" (Visual Memory System) when released in America. The European devices call themselves VMS on their file manager screen, but all the supplied packaging and documentation refers to them as simply the "VM" (Visual Memory), and to avoid confusion (or typing VMU/VMS/VM every time) I will simply refer to the device as a VM (or VMs in plural) throughout this FAQ.
There are also a couple of cosmetic differences. The American and Japanese VMs have the Dreamcast Swirl logo, plus the name "Dreamcast" above the screen, European ones just have the name. Also the menu text on a Japanese VM (in the file and clock modes) is all in Japanese. However all VMs are compatible with all Dreamcasts, no matter what region, and likewise VM games are not regioned at all (although the websites may impose download limitations).
Using these points it should be easy to work out where a VM originates:
- Text in Japanese, has Swirl logo - Japan
- Text in English, has Swirl logo - America
- Text in English, no Swirl - Europe.
1.3 : What's a Nexus card?
There are two 3rd party VM cards available, the Nexus 4x and 16x memory cards. These are switched memory cards which basically function as 4 memory cards in one, or 16-in-1 in the case of the 16x card, thus giving 800 memory blocks and 3200 blocks respectively. To select a different bank, you have to press a button.
One advantage of the Nexus cards is that you can get special cables and software for them which allows you to transfer save files to a PC, and vice versa, but they are also limited in the fact that they are a plain memory card, and do not offer an LCD screen or buttons for playing minigames.
1.4 : My VM has locked up! What do I do!?
Don't panic! This happens occasionally, either when A mini game goes wrong, or something odd happens when transferring data from a Dreamcast or another VM. To fix the problem, all you need to do is push the tiny silver button on the back of the VM (you may have to do it fairly hard). Your VM should beep, the screen go black for a moment, then go to the Time/Date entry screen. The time and date is all that your VM will have forgotten - your save files will be completely unaffected (unless they were damaged by the same event that caused it to lock up in the first place.)
1.5 : I Don't own a VM. Can I play the games on my computer?
Yes, you can play VM games on your computer. All you need is a VM emulator, install it on your computer and download the games.
When downloading games, make sure you download the .VMS file and not the link file (also known as .VMI) which only points to the game file.
Some of the games may behave slightly different as on the real VM as the emulator is usually faster than its real counterpart.
1.6 : Why do some people refer to the VM as "the potato?"
The VMU's central processing unit consists of a chip that is labelled with the manufacturer, the product code name and some product identification numbers. So if you open your VMU and have a look at the chip you will find some text printed on it that reads:
Manufacturer SEGA JAPAN
Product Code POTATO
Product ID 315-6124-03 / 5J49 8LGJ
As you can see the product code name is "POTATO" and now you have your answer!
1.7 : How do I email game saves to people?
Currently I can only answer this for people with European or Japanese Dreamcasts.
One drawback with the DreamArena email portal that you start at when using the Dreamkey web browser is that you cannot send email attachments, and so you cannot email your saves. However there is a solution.
If you have a game that is "Network Compatable" (i.e. has an option to connect to the internet to visit the game's website) then you are in luck! When you connect, press the left trigger button, and select "mail" This will take you to the GameMail email system, which is different to the standard DreamArena email, and uses a different email address (somebody@gm.dreamcast.com). From here you can attach a single file per email and send it to another Dreamcast user who also has a network compatible game. (make sure you use an @gm.dreamcast.com address though)
Note that although you can email save files to other email addresses (such as an email account on your computer) the saves are stored in an encrypted manner, and so cannot be edited and sent back to the Dreamcast.
You can also reach this mail program using the normal Dreamkey browser disk if you have a keyboard, by pressing Control + M
Note to American users: Although I do not know if you can send attachments using the American Planetweb browser software, the American release of Chu Chu Rocket contains the European Dreamkey webbrowser, meaning that you can send attachments as mentioned above.
1.8 : How do I hack game saves?
This is a fairly complex process, and not something that a complete beginner should attempt.
Here's a quick checklist of what you need:
- A Dreamcast, some games, and a memory card (well, duh!)
- A Computer of some kind (I'll assume the use of windoze for simplicity)
- A nexus card and link cable (It's also possible to hack saves downloaded from the web if you don't have a nexus card, but it will make your job much harder)
- A hex editor (Try Hex Workshop from BreakPoint Software)
- A program to convert .dci files to .vms and vice versa (dcivmi and dci2vms by Alessandro Sanasi)
- A checksum calculator (vms_crc by Alessandro Sanasi)
(Note that the requirement of a computer is essential. There is currently no way you can hack game saves using just a Dreamcast)
Now here's the basic process:
1) Save your game, and note down any statistics you think are important (i.e. your character has five lives)
2) Copy the save across to your PC, and convert to .vms
3) Save again, with statistics changed (say you've got six lives now)
4) Copy this new save across (to a different filename)
5) In a hex editor, compare the two saves for locations where there was a "5" in the first file, and a "6" in the second file. If you find only one place, then there's a chance that this is where the stat is saved. If so go to step 7
6) If you don't find a single location, create more saves with different values until you do manage to narrow it down.
7) Now you know where your stat is saved, you can edit the number in the file, save the .vms.
8) Now run the checksum calculator over the save (this is needed because the Dreamcast can detect if a game save is valid using the checksum)
8) Convert your hacked .vms back to a .dci file
10) Transfer it back to your nexus, and try it out. With luck it will have worked
Bare in mind that this is a basic rule of thumb, and not a guaranteed method, as all games use a different technique to store their save data, some games will be very easy to change, others very hard, so please don't email me saying that you couldn't hack a certain save, and why not, or asking me to hack a save for you, as I simply don't have the time (or a copy of the game in many cases)
1.9 : How do I convert a .vmi file to .vms (or to .dci)?
This is a question that gets asked a lot, and stems from a misunderstanding of what .vmi files actually are.
Basically a .vmi file is just a link file that sits on a website. When a Dreamcast downloads the file it finds a new filename given within the .vmi file. This new filename is the name of the actual data file which the Dreamcast then downloads (after prompting the user if he/she wants to continue).
Therefore it can be seen that it is nonsence to try and convert a .vmi file into the actual data file, since the .vmi itself contains no real data. It would be like trying to derive the entire text of a book from just the blurb given on the back cover - there just isn't enough information!
Instead you should download the .vms file manually, as this contains the actual game data which you are after.
1.10 : What is a .vmi / vms / dci / etc file?
Here's a brief description of all the different file types you may come across:
.DCI files
This is a file format used by the software for Nexus which contains a dump of an entire bank of a memory card.
.LCD files
This is a special graphic format designed for creating animations for display on a VM's screen. They can be created on a Windows based PC.
.VMI files
This is a special type of file that is generally 108 bytes long. It contains information about a file so that a dreamcast can display a "Do you want to download this?" box before downloading the proper (.VMS) data file. Because of this, you are most likely to see links to the .VMI file on a website. ) if you obtain their .VMS file. On most websites you'll only see a link to the .VMI file though, so you'll need to manually download the .vms file.
2.1 : Where can I get Mini Games from?
Mini games within Dreamcast games:
- Powerstone - has a 3-in-1 game pack, with "Falcon's Aerial Adventure" a vertically scrolling game where you try to fly the furthest, "Ayame's Shuriken Training" where you have to throw shurikens at ninjas, and "Gunrock's Gun-Gun Slots" a one-armed-banded slot machine game where you gamble coins won in the other games.
- Sonic Adventure - hatch a Chao, and drop it into the big VM in the corner of the garden to get "Chao Adventure" - You can improve your Chao's stats in the mini game, and then race it against other Chao back on the Dreamcast.
Trickstyle - contains a mini VM game called "Trickstyle Jr" which is a classic "snake that eats the dots and grows" type game.
- Zombie Revenge - contains three VM minigames which allow you to improve your game character's stats; "Meal" where you can feed food items found within the main game, where different items effect different stats; "Zombie Doubt" a " spot the odd one out" game that improves your defence and "Zombie Fishing" in which you catch zombies from a pond by repeating strings of button pushes.
- ...
Mini games on the Web by Official Developers:
- Godzilla / Mothra by ? - can be downloaded from http://www.newmanfamily.freeserve.co.uk/dc/ - this is the game that was included in some special edition Godzilla VMs
- Mini Rushing Football by SEGA - can be downloaded from http://www.dreamcast.com - note that currently this game doesn't seem to be available officially any more, but you can still find it on one of the many sites around now which offer other peoples games for download.
- Soul Callibur 3-in-1 (in English) by NAMCO - can be downloaded from http://www.dreamcast.com
- Soul Callibur Mini Games (original Japanese versions) by NAMCO - can be downloaded from the Namco Japanese webpage if using the web browser built into the Japanese version of Soul Callibur. The 3-in-1 game can now be downloaded in English (see above) but there is no official way for American or European users to download the text adventure game yet, (although there are sites which offer it for download, which is possibly illegal) However, the game is all in Japanese, and for a text adventure, it won't make much sense if you can't read the language!
Mini games on the Web by 3rd Party Developers:
- Minesweeper by Soren Gust - can be downloaded from http://soeren.infoserv.de/vm/minesweeper.html - It's minesweeper! What more need we say! One of the few 3rd party VM games to have sound (and not just a single beep either!)
- Sliding Puzzle by Loren Peace - can be downloaded from http://www.booyaka.com - this is a typical "re-arrange the picture by sliding blocks around" game
- Snakey - a game where you guide a "snake" around without crashing into your tail (a bit like the Light cycles from the film Tron). It can be downloaded from http://www.dreamfiles.com - Has problems in America - won't download using the American PlanetWeb browser, but if you have the American Chu Chu Rocket (which uses the Japanese/European browser) then you can dowload it using that.
- Tiny Tetris by Marcus Comstedt - A very small, but perfectly formed version of Tetris. It can be download from Marcus' website - http://marcus.mangakai.org/dc/
- VM -a- Sketch by Richard Munn / RAMTronics Software - An Etch-a-sketch simulator - can be downloaded from http://rvmu.maushammer.com
- VMU Mini Pacman by Alessandro Sanasi - Possibly the best VM minigame you can download (in my opinion, anyhow.) A wonderful little implementation of one of the oldest games in the world. Say goodbye to your VM batteries!!. It can be downloaded from http://www.franken.de/users/deco/myfiles/pacman.html
Mini games on the Web by Booyaka Interactive Animations:
- Booyaka.com's interactive animations service offers anyone with little or no programming experience the ability to create simple games. There are way too many of these available to list every single one, but The VM Development Directory lists some sites which link to games such as these.
2.2 : Can I make my own Mini Games?
Assuming you have the talent, the necessary skills, and the tools required, then anyone can make their own mini games for the VM. There are two roads you can go down, depending on your level of programming knowledge, and what you want to do:
- Booyaka.com's interactive Animations.
This is suitable for people with average, or less programming skills. The tools you require are a program that can create .LCD files (such as Dream Animator for Windows) and a simple text editor (Notepad that is part of Windows will do fine).
Interactive animations are exactly as they sound. The VM will play various animation frames, which can be controlled depending on which button(s) are pressed / not pressed on the VM. This works fine for simple choose your own adventure like games, or games like Dragon's Lair, where you aren't really in control of the main character most of the time. However, if you plan on creating something as complicated as Chao Adventure, then you are going to have big problems with DC Animator.
-Assembly programming.
Currently, the only real option if you want to write proper games is to write in assembly. There is a very good assembler available for free which will produce code that can be loaded into a VM, and anyone with a decent programming knowledge, and an understanding of how computers work (or more importantly, how processors work) should be able to pick up the language. However, if you're used to languages like Basic or C, then you may initially find it difficult to get your head around assembly language. The best advice I can give here is to grab all the source code that is available (most of the 3rd party developers also give out their source code to anyone who wants it) and tinker around, until you understand how it all works!
2.3 : How many mini games can I have at once?
The simple answer here is "One per VM" as the standard Sega VMs have the limitation that only one mini game can be saved at a time. Also note that a game can be up to 128 blocks in size, so ensure you have enough space before you try to download something.
2.4 : Do you have any cheats for xxyy mini game?
There isn't space or time to start supplying tips for every VM game under the sun in this FAQ. If you want help then try looking at the sites on the web that offer tips for Dreamcast games, as they generally cover VM games too.
3.1 : What is Booyaka.com?
Booyaka.com is a website devoted to the 3rd party development of software for Games Consoles, most notably the Sega Dreamcast's VM (otherwise, why would it be mentioned here?)
If offers many things, such as some very useful message boards (which are often frequented by Sega of America's Alexander Villagran, and lots of other knowledgable people), DC Animator (a service that lets you create animations and simple games which run on your VM), and loads of save files to download.
To use the services available on Booyaka.com, you will have to create an account. This is very easy to do - all you need to do is enter your email address and your name, and the system sends you a mail with a default password. You can change this to something that you can easily remember later on.
3.2 : It's Ali G, Innit?
Nope, Booyaka.com has absolutely nothing to do with The 11 O'clock Show's Voice of Youth. Perhaps you should look at www.booyaka.co.uk or www.boyakasha.co.uk instead ;-)
3.3 : How do I use the message boards?
The message boards on booyaka.com allow you to post messages that can be seen by all the other users of the site. The usage is pretty simple : for each message board you'll see a list of "threads" (An original posting followed by all the replies). Each message is a link, and clicking on one of the message titles will take you to a page containing the message, plus links to the replies. If you wish to respond to the message then just click on "Reply".
On the front page of each message board you'll also get the option to post a new message, which will form a new thread.
There are currently five different message boards on booyaka.com:
- General Discussion: This board is a place for people to discuss booyaka.com in general. Questions, problems and ideas for booyaka.com should be posted here.
So if you're message is not directly related to the topics of the other boards, or is just a general post, put it here!
- Game Development: This board is intended for discussion of ideas, problems, and experiences from game development. This generally means Dreamcast development, although most people on it use it for discussion of material that really fits into the VMU and Animator boards.
- VMU Development: This board is intended for discussion of ideas, problems, and experiences from VMU development. This is also the place to discuss ideas for VMU games/utilities and the VMU development tools from booyaka.com. So if you're having difficulties with assembly, or can't get the VM emulator to work, or have just made the best ever game, and want to tell the world, post a message here. If you're asking about interactive animations, then post to the DC Animator board.
- DC Animator: This board is intended for discussion of ideas, problems, experiences, and suggestions for DC Animator. In other words, if you're having problems making animations, or want help with a control file, here is the place to ask.
- Saved Games: This board is intended for discussion of saved games posted on booyaka as well as ideas, problems, experiences, and suggestions for Saved Games. If you've just uploaded the best ever save, or have discovered that there is a problem with a particular save file, then post a message here. Note that continually posting messages pleading for a save for a particular game is likely to make you look a bit silly!
Board Etiquette
There aren't any official rules for using the message boards, but here are some general pointers which should prevent you upsetting anyone:
- Don't post the same message to all the boards.
Each board has a different topic, so please only post your message to the board that is relevant to the subject. Most people on booyaka.com read all the boards regularly anyway, so your message will get noticed even if it is only on one of the boards.
- Don't write ALL IN CAPITALS.
This is often considered rude (it looks like you are shouting everything) and is often quite a lot harder to read than normal mixed case writing.
- Read the FAQ, and other postings before you post something.
If a question has been asked before, what is the point in asking it again? ;-)
- Be careful with HTML.
HTML tags don't work in subject headings, so don't try to use them there. If you are trying to quote some html, rather than use it as part of your message then make sure you tell it not to interpret HTML.
- Don't click post multiple times
If you click post, but nothing happens, please don't just press post again and again, as sometimes this can lead to the same message getting posted lots of times.
3.4 : What Are the Animations?
Booyaka.com's Animations are small "movies" made by other people who have used Booyaka. They can be downloaded into your VM when your Dreamcast is on the Internet, and can then be played back whenever you like, when your VM is disconnected from the Dreamcast controller.
3.5 : How do I create my own Animation?
First of all you'll need a computer. (Currently it is not possible to create animations using just a Dreamcast with Booyaka.) Then you must download a program that will let you draw the animation frames. At the time of writing there are two different programs available to you (there are others, but are in Japanese, and so will be ignored in this FAQ):
- Dream Animator - This is the original tool for creating .LCD files. It was originally only available in Japanese, but an English translation has since been produced. It requires Microsoft Windows, and can be downloaded from a page on Booyaka.com's website, which also includes a quick explanation on how to use the program.
- VMU Animator - this is a much better program, with many more features. It is the tool that I would recommend to anybody who wants to try animating. It also needs Windows, and can be downloaded from its website. Some very good tutorials to using it are available on David Freeman's VM Animation website.
3.6 : I've downloaded this Animator thing, and have now got a .ZIP file that Windows doesn't seem to understand. What do I do now?
Most programs and data you can download from the Internet is delivered in so-called packages or compressed archives. There are several types of packages and archives. The most common compression used in the Windows world is ZIP.
A .ZIP file usually contains several files and in order to uncompress these files from the archive you need a program that can do the job. One of the most common for Windows is called "WinZIP" and can be downloaded from http://www.winzip.com/. You can download an evaluation version there.
In case you want to look at other programs that do the job you might want to have a look here: http://winfiles.cnet.com/apps/98/compress.html
For DOS users there exists a program called pkzip/pkunzip and UNIX/Linux users can use the free zip/unzip utilities available.
After you have been able to unpack the files (make sure you put them in a separate directory!) you will find an executable you can click on :-)
3.7 : How many frames can my animation have?
Firstly, please note that due to a bug in the current booyaka.com website, interactive animations can only have a maximum of 127 frames. This limit does not apply to non-interactive animations.
The number of frames that a VM animation can contain can be worked out mathematically:
- Each frame takes up 32*48 bits [= 192 bytes]
- Maximum .VMS file size = 65536 bytes,
- Therefore the maximum number of frames we can cram into a .VMS file is 341. (65536 / 192). However, this does not leave any space for the actual code that lets the VM play the animation.
A rough estimation using the Code Veronica VMUv demo on www.dreamcast.com makes me believe that their code takes up about 4096 bytes (give or take a few hundred) and the code for an old non-interactive Booyaka.com animation seems to be about the same (I don't know if any redundant code for interactivity is used in current non-interactive animations.)
So using the VMUv or Booyaka.com code, we can hold about 320 frames in a single animation. ((65536-4096)/192)
However, it would probably be possible to make a much smaller player code. Here is what I've found through experimentation:
- The minimum size of a .VMS file is about 1200 bytes, to accommodate all the necessary header information.
- I can create a .VMS file which contains my own home-made player code (which doesn't support user-defined frame delays, or any form of interactivity, but does let the user send the VM to sleep, and exit with the mode button) in about 1400 bytes in total (including the header).
- Using my code, each frame takes up 192 bytes for its image, and two more for its entry in the frame table (so 194 bytes in total per frame)
- Therefore, using this, you could cram 330 frames into an animation. ((65536-1400)/194) Which is a bit closer to that maximum limit.
Now, it is also (theoretically) possible for a VM game to access other files on the VM. In this case, you could create a simple player program, which would take up about 3-4 blocks, leaving around 196 blocks free for animation data. (This equals 100352 bytes, or a little bit over 500 frames) but currently I don't have any code that can do such a thing.
Also, in theory, if this approach was taken, then you could have multiple animations downloaded into your VM (as long as there are enough free blocks) and then get a menu when you select game mode that would let you select which animation to play. I personally think that this would be very cool!
3.8 : How do I get my Animation onto my VM?
Assuming you have drawn an animation using one of the tools described in Question 3.5 and have saved it to disk, you should have a file with a .LCD extension (I'll call it MYANIM.LCD, but yours can be called anything you like!)
Now connect to the Internet with your computer, and follow these steps:
- First go to the main Animator page.
- If you get asked for an email address and password, then enter your address and booyaka password (or click on the "Create new account" button if you've never used any of Booyaka.com's services before)
- Now you should see a new screen, with boxes to enter the animation's name, and select an .LCD file.
- Enter a suitable name for your animation (which should describe what the animation is about)
- Click on the "Browse..." button next to where it asks for an .LCD file, and select the animation file that you drew earlier.
- (Ignore the control file section at the moment. This is used for interactive animations, which are described in Question 3.9)
- Click on "Upload"
- After a moment, the animation should appear at the bottom of the screen, showing the name you entered, along with the first frame of the animation.
Now disconnect from the Internet from your PC, and connect with your Dreamcast instead.
- Go back to the Animator page using the Dreamcast, and log in using the same password as before
- Now you can click on the name of the animation to download it into your Dreamcast's VM.
On the screen that lists your animations, it will say "Make Public" below each one. If you click on this link then your animation will be shown in the public animations listing (which is linked to at the top of the Animator page). If you enter an email address here then you will see only the animations created by that person, otherwise you will see all the animations available (with the newest ones first).
3.9 : What about Interactive Animations?
An interactive animation is an advanced version of the standard animation available on booyaka.com It works in basically the same way. You can use the same program to create all your animation frames as you do for a standard animation (see Question 3.5) but you also provide a control file, which gives the Animator part of the booyaka website instructions on what your final VM program will do. (Note that the "Animator" program that you run on your computer to create .LCD files is not the program that takesthe control file - the booyaka webpage is used for this!)
A control file allows you to make different parts of your animation play when you press buttons on the VM.
Basically, once you have a control file, and an .LCD file you can login to the Animator page, and upload both files. This will then create an interactive animation which you can download using your Dreamcast.
Tips for interactive animations:
- The preview image shown on the list on booyaka is always the first frame in the .LCD file. Therefore it makes sense to make this image your title screen, even if it isn't the first frame displayed when you play the game (the order of frames in the LCD file does not matter when you decide the actual play sequence in the control file).
- The delay time you define in the LCD creator is still used when a frame is displayed in an interactive animation, so you can easily adjust the speed of your game sequences without editing the control file.
3.10 : What are control files?
A control file is a standard text file which contains a list of commands which the Animator on booyaka.com uses to produce interactive animations. It is basically a list of commands which can draw a frame of animation onto the screen, wait for a button to be pressed, and other things. The following is a simple tutorial which will help you produce a very basic control file.
Okay, first you need a text editor (Notepad will work nicely - if you use something else then make sure you save as plain ascii text)
Now go to this page on booyaka.com where you'll find a list of all the commands that you can use in a control file, along with a simple example control file to download and play with. The basics you'll need to know are:
To draw a frame from your LCD file, use the command
draw_frame( x );
where x is the frame number to draw. Note the semicolon at the end, this is necessary
you can also place labels, using a name followed by a colon (:) at the beginning of the line.
For example the following control file would continually loop frames 1 and 2 (pretty useless, I know)
loop: draw_frame( 1 );
draw_frame( 2 );
goto( loop );
You can also do things depending on what key is pressed. We can expand the previous example to make frame 3 get displayed when you press button A, like so:
loop: draw_frame( 1 );
draw_frame( 2 );
if_buttons_goto( A, a_hit );
goto( loop );
a_hit: draw_frame( 3 );
goto( loop );
Basically, using this kind of structure, you can create all sorts of things! (Refer back to the page I mentioned earlier for descriptions of all the commands)
I'll say this again here, as it seems to cause slight confusion in some places. When you have a control file, don't go searching the menus of your .LCD editor program, as this is not where you put the finished file. Instead you must upload the control file at the same time that you upload your .LCD file to booyaka.com. ( See Question 3.9 for more information.)
3.11 : When will the new version come out so I can do variables and random numbers?
Loren Peace (who created Booyaka.com's Animator service) has promised an updated version that will support more advanced features in the control files, such as variables, if/then statements and random numbers, which will make it much easier to create proper games. However, this has been "comming soon" for quite some time now...
Keep an eye on this spot for an official word from Loren (hopefully..)
3.12 : Why does it say "Copyright so-and-so" at the end of my game/animation?
You may be wondering why after you've spent so much of your time and effort creating the best game/animation ever in the history of the VM that it pops up a copyright message at the end to "some guy you've never heard of who had absolutely nothing to do with the game."
If you think this, then please let me explain something.
The actual message will read something like this:
CODE ©1999
LOREN PEACE
BOOYAKA.COM
VER 2.0.4
Loren Peace is the guy who made booyaka's Animator service possible. If it wasn't for him you wouldn't be able to make your game, as it was his software (running invisibly behind the website) that converts the .LCD and control files into actual data that a VM can recognise as a runable program. Think of his code as the "operating system" that your animation runs on, and if you don't want to credit the hard work he's done in making it so easy for anyone to make their own VM downloadables (even if "downloadables" isn't a word) then I suggest you produce your own alternative (but just don't expect any thanks)
3.13 : How do I download the save files?
Connect to the Internet using your Dreamcast and follow these steps.
- First go to the main Save Games page, (using the link here).
- If you get asked for an email address and password, then enter your address and booyaka password (or click on the "Create new account" button if you've never used any of Booyaka.com's services before)
- You will be presented with a list of games. Under each one you will see options for Japanese, American or European saves (if they are available)
- Select the correct option for the game / region that you are interested in
- You will now see a list of available saves, along with a description for each.
- Now you can click on the name of a save to download it into your Dreamcast's VM.
3.14 : I've already got a save for xxyy. Will downloading a save from Booyaka overwrite it?
In most cases, yes. Most games only allow you to have a single save file on a VM, which may possibly contain the saves for multiple people.
In some cases you can have multiple saves on a card. You can recognise saves like these, as their filename on the VM will be unique for each player (such as containing your initials), or will have a different number per save (which is the way Resident Evil Code Veronica does things).
If you have a save like this then there is no danger of it getting overwritten (unless the new save uses the same initials.) However, the game may not be designed to handle multiple saves on the same card.
The best advice is to back up your save first to a second VM, and then try downloading the file. In this way if anything goes wrong you will not lose your original save.
3.15 : How do I upload my own saves?
Currently you need two things to upload your own game save to booyaka:
- A nexus-style memory card, with the correct connection cable and software
- A PC with internet access
You then save to the Nexus card, connect the card to your computer using the necessary cable and software, and then upload the files to the save games page on booyaka.
There is no way, as yet to upload your files directly to booyaka using a Dreamcast (New versions of the Dreamcast web browser may support file upload, but booyaka still doesn't recognise the format that the browser uploads in).
3.16 : Why isn't a save for xxyy available?
This could possibly be the simplest answer in the whole FAQ. There are only saves available if someone with the necessary equipment uploads them.
3.17 : Will a Japanese save work on My American / European Dreamcast? (etc)
There is no general rule here, as all games developers have different standards to which they work. However, from experience, it seems that a good chunk of games use the same save format for all regions (meaning that one save fits all, so to speak). The best way to find out, is just to try!
3.18 : How do I download saves to my PC and get them to my Nexus card?
This is a subject that seems to get a huge number of people stuck, so I'll try to go though this in a nice and easy step-by-step manner
Firstly, when you download a save from Booyaka, don't download the .VMI file. This file just contains a description, the file's creation date, and some other information useful to the Dreamcast when it downloads.
Instead, you must download the .VMS file. This contains the actual game data.
On Booyaka.com the process you need to follow to get the .VMS file is thus:
- Find the save that you want to download
- Note down the filename at this point - It's the bit in rounded brackets on the first line of the save game's description
- Right click on the save's name link
- Select Copy to Location to clipboard (or equivalent)
- Paste this into the browser's URL bar
- Edit the extension from .VMI to .VMS (this tells the browser to download the data file, not the header)
- Press enter
Now you should download the file. To check if it worked, look at the .VMS file's size. It should be 512 bytes * size in blocks. (so a 10 block save would be (512*10) = 5120 bytes.)
Next you need to convert this .VMS file into a .DCI so that it can be transferred to your Nexus card.
- Download dci_vmi.zip from here
- Unzip it into the same directory that you have put your .VMS file
- Open a Dos prompt window, and CD to that directory
- Type DCI_VMI myvmsfile.vms (where myvmsfile.vms is the name of the .vms file you downloaded)
- When prompted for a VMS filename, type the name that you noted down earlier
That's it. You should now have a .DCI file which you can copy across to your Nexus card using the DCLinker software.
4.1 : What programs are available? Do they exist for xxyy computer?
There are currently many different tools available for creating .LCD files, emulating the VM and producing code for them (along with tools for creating VM Internet link .VMI files). Tools currently exist for Windows, DOS, MacOS, AmigaOS, Linux and other Unix based systems. Source code is available for many of the tools, meaning you can port it to other systems yourself.
The best place to look for tools for your computer (along with links to lots of other VM related websites and programming resources) can be found in The VM Development Directory.
4.5 : VMU tool - create and inspect .VMI files
You only need to be concerned with .VMI files if you plan to provide home-made games on your own website. If you are content using a service like Booyaka's then you needn't worry.
To find out more about why .VMI files are needed, then see Question 6.1.
The VMU tool, by VirtuaMUnstaz (http://virtuamunstaz.de) is available in two forms, an executable that you can run on your computer (if you have a C compiler, and create your own executable, that is) and an online web version.
I'll describe here how to use the web version, as I assume that if you have the executable version working then you will be able to work out how to use it by yourself.
To use the service, simply go to this page on the VirtuaMUnstaz website.
The first usage of the VMU tool is to gain information about a .VMI file (for example, to find out the filename of its corresponding .VMS file. To do this, click on the "Browse..." button within the upper "Decode vmi" box, and click "View Info".
The right hand side of the screen will now change to contain information about the file, such as its title and copyright information. The part that is most useful is the "Resource" - this is the name of the .VMS file on the webserver, minus the .VMS extension.
The other use is to create .VMI files for your own applications. Click on the "Browse..." button in the lower "create vmi" box and type in the game's title, and some copyright information (such as your name).
Ensure that the correct GAME/DATA selection is made, and then click on "generate vmi file". A new screen will appear with a link to the .VMI file, which you can then download and save to disk.
4.8 : Where can I get SEGA's official VM tools? I read they were going to be available for free.
The current situation is that for copyright reasons, the official SEGA VM development tools are unlikely to be released any time soon. However, the upside is that certain people at SEGA are willing to help out, by providing technical documentation and support, to allow 3rd party authors to make their development software 100% compatible with the official tools.
The following was posted to a Sega run mailing list:
We hope that this list will help to improve the base of installed VMU games. We think that by encouraging this kind of communication we will see more and better VMU games being developed.
To answer one of the FAQs: at this time, we haven't released our internal VMU development software publicly. We have some important relationships with Sanyo and other technology suppliers that we need to consider before these tools can be released. But we're working on it, and we'll let you know.
Sincerely,
John Byrd
Senior Manager, Developer Technical Support
Sega of America Dreamcast
And this was was posted on another list:
Now of course this might still take a while, but Sega has finally grudingly agreed to look at releasing the VMU development kit to the general public. They are currently contacting Sanyo (Compiler Developer) and Hudson Soft (VMU Emulator), and finding out if there would be any problem if their tools were released publicly. I have no idea how long that process will take. If there is no problem with either company, then the tools will be released.
Alexander Villagran
Senior Software Engineer
Sega.com, Inc.
This implies two things:
- Sega are happy that people are making their own third party games (so we hopefully won't see any of the "You're not allowed to make games for our console" suits that we've seen in the past.
And
- Sega actually want to support people making their own games too!
The future's looking bright !
5.1 : Can't I write in C / Basic / Pascal / My favourite language?
The short answer to this question is "No - you've got to use assembly".
The slightly longer answer would be "Wait a bit - people are working on things. You don't know what may appear". There are people working on a C compiler that can produce VM code (although I don't know the current status of this project) and I'm sure, with time, people will create compilers for other languages too. However till then you'll either have to wait, learn to program in assembly, or write a compiler for the language yourself!
STOP PRESS: There is now a compiled language available called LIME, which is similar to basic. It is in early stages, and doesn't work too well on Windows at the moment, but is worth a look! You can find out more information on the LIME homepage.
5.2 : I can program in x86 assembly. Will that do?
If you are already skilled at using x86 assembly language (or assembly language for any other machine, come to that) then you are already past the first hurdle when it comes to assembly programming - getting you mind round the way an assembler works.
However, you'll still need to learn the instruction set of the processor used by the VM, (as it isn't x86 compatible!) and get used to programming within the confines of the VM system (like only having 256 bytes of available memory, and a maximum executable size of 64k!)
5.3 : Can you suggest any good websites / books that I can look at to learn assembly language?
- Websites
The VM Development Directory contains links to lots of websites that contain information relevant to programming a VM, such as the CPU's instruction set, and what all the registers do. It also lists all the sites belonging to people making software for the VM, or software to help you develop for the VM.
- Books
An important thing to remember with assembly language, is that unlike standardised languages like C or Pascal, assembly language is different for every different type of computer (or more correctly, every different type of processor). This is because assembly language works at the lowest level possible - each command in your source code translates directly to a single instruction of the processor.
This means that any book on assembly language will be able to help you understand how an assembler works, and to understand the basics of assembly language (and the fundamental instructions that virtually all processors have, like load, store, add, etc) but it is unlikely that you'll be able to find a book that is 100% relevant to the processor of the VM (a Sanyo LC86k processor).
David John Springate recommends the following book: (which covers the generals of assembly, but isn't VM specific)
"An Introduction to Assembly Language Programming and Computer Architecture" by Joe Carthy (a lecturer in a Dublin university), published by Thomson Computer Press.
David says "I would recommend this book to anyone and I find its SO useful! So there is my recommendation. :-) "
6.1 : Putting Mini games and game saves on your website
If you are going to put VMS games / saves acquired from a different website, rather than created yourself using the assembler, then please see Question 6.2 first. (But note that placing other people's games / saves on your site without their permission may constitute a breach of copyright, and so may be illegal - If you have any doubts then email the author!)
In order to put a Mini games on your website, you'll need to do the following things:
- Create a .VMI file for each .VMS file
- Setup your webserver to support VM file types
- Upload the files
- Provide a link in your HTML to the files
6.1.1 : Creating .VMI files
If you already have a .VMI file (if you have downloaded the files from somewhere like Booyaka.com, using the instructions in Question 6.2) then you can skip straight to part 6.1.2. (But before you do, note that if using a pre-made .VMI file then do not rename the accompanying .VMS file, since it's filename is given in the .VMI however, you can rename the .VMI file to whatever you like, as long as you keep the .VMI extension.)
The first thing you'll need to do is create the necessary .VMI files.
A VMI file, is a file that is 108 bytes long, and contains information which the Dreamcast uses when downloading the actual game or save.
For example, you might have a mini game with the filename MYGAME.VMS In order to download this, you'll need to create a corresponding .VMI file, which tells the Dreamcast's web browser the filename of the actual .VMS file, how big it is, along with a copyright message, and a creation date.
To create a .VMI file, the easiest thing to do is to use the tool described in Question 4.5
6.1.2 : Setting up the webserver
This is the part that gets most people stuck. In order for a Dreamcast to be able to download your files, it isn't enough just to place the files on a website, you have to get the webserver to tell the Dreamcast what file type the files are, otherwise the Dreamcast will attempt to display your game or save as if it were a text file!
What needs to be done, is to get the Webserver to provide the following MIME types when someone tries to download a .VMI or .VMS file:
application/x-dreamcast-vms-info vmi
application/x-dreamcast-vms vms
Here is how you can go about this: (follow the part that applies to you)
- I run my own webserver
In this case your job is simple - simply configure your webserver software to provide the relevant MIME types (refer to the server's documentation for details on how to actually do this.)
- I pay for commercial webspace
As you are paying a company for the webspace, you should be entitled to specify your own MIME types. Send them a mail specifying the two lines (the application/xxx ones) and describe what you need them for (i.e. to provide my users with free mini games for their Dreamcasts)
- I pay for Internet access, and get webspace included
Again, as you are paying for a service, you should be able to simply mail your provider as described above. However, as this is a company that does more than just provide webspace it is likely that the change may take a long time to be made! If this is the case and you simply can't wait, then you'll need to get a free web account and follow the final option.
- I use a free web provider, or get webspace included with free Internet access
To be honest, it is unlikely that you will be able to find a free provider that already has the correct support for VMS files. You can try emailing them as described above, but the chances of anything happening are very remote.
However there are ways that you can manually get the server to send the correct types:
Using a .htaccess file.
If the webserver that your provider uses is Apache (the easiest way to find out is to go to their main site and look, and if you can't find out then ask them.)
Then you can create a file in the root directory (i.e. the "top level" directory, where your index.html file lives, not the subdirectories) of your webspace called ".htaccess" and make sure it is named exactly like that when the file reaches your webserver - This goes out to Windows users, as Internet explorer has a habit of saving the file as something like "[0].htaccess" which is obviously wrong (and worse still, Windows won't let you rename a file to something that is just an extension) In this case, it's best to leave the name as it is, and remember to rename it to ".htaccess" using your FTP software when the file reaches the site.
The file must contain the following lines:
addtype application/x-dreamcast-vms-info vmi
addtype application/x-dreamcast-vms vms
The easiest way to achieve this, is to download the .htaccess file that I use on the rvmu website (from here) and upload it directly to your site, without renaming the file, or editing it in any way. (Being again careful as Internet explorer may rename it to something else!)
Thanks to bri I. Sfuzzy who worked this out!
Using a .cgi script.
If your server allows you to have your own cgi scripts, then you can use one of these to supply the correct MIME type on downloading. Unfortunately I don't have an example script here at the moment (please contact me if you have one that can be supplied here.)
Question 6.3 has a list of free web providers that are known to work with VMS downloads. If you are going to create a new account for VMS download, then you might like to sign up with one of these.
6.1.3 : Uploading
This part is easy, simply upload each .VMS and .VMI file to the same directory on your website (in the same manner you upload your html files)
6.1.4 : Linking to the files
Now, assuming that you have followed the previous steps, and now have a properly configured web server, with .VMI and .VMS files for each minigame / save file, you can place links on your webpage.
This doesn't require anything special, simply a normal link to the .VMI file.
Hopefully, at this point, assuming everything went well (and your VMS file is valid) you should be able to connect to the webpage using a Dreamcast, and download the file!.
6.2 : Downloading VMS files using a PC
When you see a link to a VM mini game or save file on a web page, the link will be to a .VMI file. This file (in most cases) will be a 108 byte descritptor file, which contains copyright information for the VMS file, along with the actual name of the VMS file to be downloaded. In order to get the actual game or save file you will need to find out the filename of the actual .VMS file, and download that as well.
When you know the VMS file name (see below) copy the URL for the .VMI file, and paste it into the URL box of your web browser. Edit the last part of the address (i.e. SOMEGAME.VMI) to the VMS name, and press enter. You should now start downloading the actual .VMS file.
There are two things you can try to work out the VMS name:
- Assume the filename is the same but with a .VMS extension instead of .VMI (so if the file is 00006432.VMI change to 00006432.VMS) - this method works for the files on Booyaka.com.
- Inspect the VMI file to find out the actual name. You can do this either by using the VMI tool (described in Question 4.5) or by opening the VMI file with a hex editor. In the latter case, the filename is at offset $50 (hex) into the file, and is a maximum of Eight letters (ignore any $00's added at the end of the name), and don't forget to add a .VMS extension.
Note that it is vital that you do not rename the .VMS file, otherwise the Dreamcast will not be able to find it. However, you can rename the .VMI file to anything you like (as long as you keep the .VMI extension, that is)
Also note that sometimes, instead of a VMI/VMS pair, the game / save will be stored as an encrypted .VMI file (you can tell if you've got one of these, if the VMI file is larger than 108 bytes and is a text file that says things like PACKED=YES REALSIZE=xxxx at the top.) In this case, all you need to do is place the .VMI file on the site, and not worry about a .VMS file.
6.3 : Free web providers that work with VMS download
Here is a list of Free web providers that can be used for VMS downloading. For details on how to get it to work, see Question 6.1
- Portland - A UK based company that offer http://yourname.port5.com, http://yourname.portland.co.uk or http://yourname.8bit.co.uk addresses along with good deals on buying your own domain name.
Pros: 15mb of space, Nice domain name, full cgi access, excellent log statistics, no advertising banners, boxes or frames at all!
Cons: Sometimes the server goes down unexpectedly, or ftp access fails to work properly.
Works using the .htaccess method.
Tested by Richard Munn (The rvmu website).
- VirtualAve
Works using the .htaccess method.
(N.B. the "root" directory in this case is the public_html/ directory. This is where you should put the .htaccess file, along with all of your website stuff, not the directory that you get when you ftp to your space.)
6.4 : Severs known NOT to work
Here's a quick list of web providers that are known not to work with VMS downloads (in no particular order):
- Demon no cgi, .htaccess file ignored, slow response to request to add MIME types (although customer support did seem to be helpful!)
- WebHostMe .htaccess file ignored. (but .cgi scripts are supported, so I'll try again when I have a suitable script)
- Tripod UK no cgi, ".htaccess" is an illegal file name!
Maybe their presence here will be enough to shame them into getting something done! ;-)
(Note that many of these sites may offer very good services otherwise - for example I'm very happy with the service Demon gives, it just seems that they don't seem to want to rush in getting MIME types updated!!)