THIS DOCUMENT IS NOT COMPLETE, AND IS A WORK IN PROGRESS. [12/22/01] Initial Version (0.1 is up). Sections missing.
About
Ahh... the DreamCast Web Browser. This application has made the dreamcast attractive to not only gamers, but those wishing a low-cost web-browsing and e-mail platform. However, I have a different future in mind for it...I want to be able to create customized browser CDs with my own content.. Images, MP3s, even Emulators or Homebrew DC games.
The Browsers
Now, lets get a bit more technical here, as to how exactly I plan to accomplish this perticular marvelous feat of wizardry.
To begin with, here is a chart of available browsers, and to my knowledge their features. Click on the version number to download an image:
If you know of any information here that is wrong, or have any additional information (* signifies unconfirmed data), E-mail me now!
Lets start at the beginning... The very first dreamcast web browser was created by PlanetWeb for Sega. I don't know if v1 ever existed, and if it did, I have never been able to get a hold of it to analyze. However, v2.0 and v2.6 are both available out in the wild (and 2.6 was given out for free by sega, but no more).
This browser wasn't the most packed with features or anything, it was a bit slow, but it has one very attractive characteristic. It supports GINSU and so will allow us to launch programs (using a special URL) from right inside the web browser! This PlanetWeb v2.6 browser is a very attractive choice for a menu platform, even if it can't show that much content (but it will play MP3s, although they must be smaller then 6MB). It doesn't use any .PVR files for the US, everything is either .GIF or .JPG .. so there are tons of small files, and if they're not put onto the cd in the proper order it would slowly destroy your poor dreamcast. It was also lacking support for Java.
While all this is going on, Sega released a different web browser to europe called DreamKey. To sum it up, it sucked. It wouldn't let you use your own ISP, only the Sega one, had support for almost nothing (I'm not sure exactly what it did support as I've never been able to track down a copy). Basically, it's uninteresting, as it doesn't do much but browse the web (and sometimes not even that, if you're using a version that's built into a game). If you have one of these in-game DreamKeys and want to try to browse the web with it, Read This
The DreamPassport browser is one that that's interesting. It supports almost everything you could want, even Java, is stable, and has BBA support. It however, doesn appear support GINSU so can't be used to launch other programs. The UI is contained inside .PVR files, which are much more efficient, but more difficult to customize. The string settings however (and general browser settings) are stored inside /DP3.INI (or /DP2.INI) and /DPETC/MESSAGES.INI in the browser CD. Using messages.ini it should be theoretically possible to translate at least parts of 3.0+ into English. It's interesting to note that v3.0 has been ripped from Phantasy Start Online, and that v3.16 came from Crazy Taxi 2.
Later versions of PlanetWeb and DreamPassport supported dreamcast extensions to web pages, mainly the ability to make the controller shake (if that addon was installed), as well as show images on the VMS (as well as download games, trade saves, and lots of other cool stuff). I've collected some of the necessary HTML code and tools for these VMS features below. But first, lets go into more techincal detail on the browsers.
VMS Features of DreamPassport and PlanetWeb
There are 3 special tags that can be used in a page to dreamcast-enhance it. One will allow you to display animation on the LCD, another allow an easy way to scroll a message across the LCD, and the last will make the controller vibrate.
Vibrating
To cause the DC Rumble Pack to vibrate, you have to insert the following (or similar) EMBED tag into your code (explanation follows).
type
Tells the DC to shake it up
name
A name assigned to this particular vibrate configuration
loop
How many times to loop before stopping
freq
Vibration Frequency
power
How hard to shake (1-9)
on
Time to shake for
off
Time not to shake for
hidden
Should be true
autostart
Set to true if you want to start shaking when page loads, otherwise false
Using JavaScript, we are able to manipulate one or more vibrate configurations, and turn them on or off as we please. If the below JavaScript code is placed onto a page:
Then if the target of a link, for example, were to read "javascript:vib1_on()" then once the link was clicked, the shaking would start.
You can define more then 1 vibrating configuration per page, just make sure you give them unique names, and only one can be set to autostart.
Scrolling a message on the LCD
Use the below code to make your page scroll a message across the LCD of the VMU when a DreamCast browser is used to access it (explanation follows):
type
Tells the DC to shake it up
name
A name assigned to this particular scroller configuration
loop
How many times to loop before stopping (or infinite)
scrolldelay
How long to wait
scrollammount
How much to scroll by
text
The text that will be scrolled
hidden
Should be true
direction
Which way to scroll (left, or right)
behavior
scroll, slide, or alternate
font
Font size
Using JavaScript, we are able to turn the scroller on and off. If the below JavaScript code is placed onto a page:
Then a link to it will toggle the scroller (read above for more info). A modified version of the above _on and _off procedudes would also work fine.
Showing an Image on the LCD
If you create your image and save it as an .LCD file (using Dream Animator or using a command-line conversion tool) then you can make it display on your visitor's VMUs using the below code:
I think it's fairly straightforward and requires little explanation, other then to note that port and slot are optional. The JavaScript code above will work for this embed as well.
Special URLs
There are a number of special urls supported by recent PW and DP browsers, and here's a list of the ones I'm aware of. This list was based upon this list and this list. Please note that this is NOT a complete list, the only way to get one is to look at the String Dumps below.
CD Recording
CDRecord & MKISOFS (you WILL need this one, even if your burner won't support it)
DiscJuggler
DiscJuggler Jinxter Driver (if your CDR isn't supported)
CDR-WIN
Nero
String Dumps
I've analyzed the binaries of the below browsers and extracted all the strings. If you're curious, take a look at what's contained in the browser. This includes a *complete* list of special URLs, however, some of them may not work, others may work in unexpected ways. A list of common special URLs with descriptions and syntax comes later.
Generated with strings -o -n 10 1st_.read.bin
Crap has been cleaned out for your enjoyment.
(Do NOT view in a web browser. Save to HD and use Wordpad)
This page is not done.
This page contains innacurate or incomplete information.
This page is out of order.
This page should likely not be all one page.
However, I am but one man, and I'm slowly putting up all my research. E-mail me.