tag:blogger.com,1999:blog-5266405677089722582024-03-18T09:47:51.074+00:00Kazade's Internet AddressMy thoughts on programming, open source, games, Dreamcast, Linux and Android. <a rel="me" href="https://mastodon.social/@kazade">Mastodon</a>Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.comBlogger75125tag:blogger.com,1999:blog-526640567708972258.post-84527388760145550332018-07-17T21:15:00.000+01:002018-07-17T22:01:54.158+01:00DreamPi 1.7 Released!<br>
I've just uploaded a new version of the DreamPi image. This is a *big* upgrade!<br>
<ul>
<li>The whole image has been rebuilt on the latest minimal Raspbian OS.</li>
<li>The image is now nearly a gigabyte smaller.</li>
<li>There are now some workaround for bugs in the Raspberry Pi built-in WiFi. WiFi now works! </li>
<li>Pcwzrd13's WiFi utility is now pre-installed </li>
<li>Adds support for future NFL & NBA 2K titles </li>
<li>Better baud-rate speed detection.</li>
<li>Minor bug fixes.</li>
<li>It's currently disabled, but there is now a backup system in the event of the DreamPi DNS going down unexpectedly. </li>
</ul>
Special thanks to PC for being chief tester! And extra-special thanks to Jonas for figuring out how to workaround the WiFi issues and of course for the 2K2 support!<br>
<ul>
</ul>
<a href="https://mega.nz/#!hUsX1QLD!zCKROn8P2DHclHc78mkHB_YsW28sPivgOB1iJkBouMk" target="_blank">Download the new image here.</a> Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com56tag:blogger.com,1999:blog-526640567708972258.post-70637804740488898672017-06-06T08:37:00.001+01:002017-06-06T08:42:55.822+01:00Gotchas When Porting C++ and OpenGL Applications to the DreamcastOver the past month or so I've been steadily working on porting my game engine Simulant to the Dreamcast. While it's not quite ready for prime-time, I did discover a lot of road-bumps along the way, and I thought I should write some of them down so that anyone else porting to the Dreamcast will at least have some results on Google to look at!<br />
<br />
<h3>
Compile the Dreamcast SDK with GCC 4.x</h3>
It didn't take very long to compile my code, but when it came to linking all kinds of trouble awaited me. Whenever I tried to link, most of the C++ symbols (things like string and vector) were missing. After several days trying different linker flags I decided the problem must be with the SDK itself. A quick `nm` of libstdc++.a showed up the problem; only a handful of symbols were in there!<br />
<br />
I've been using a Docker container to compile my code, which is fortunate because it allowed me to gradually roll back the Fedora version until I hit one that correctly compiled libstdc++. Fedora 21 is where it worked!<br />
<br />
The moral of the story is that for some reason, GCC 5.x and above will not correctly compile libstdc++.a from GCC 4.x - so if you're compiling the SDK for C++ code, you're going to need to use an old GCC version.<br />
<br />
<h3>
Don't rely on std::atomic or std::async</h3>
The SH4 CPU only has a single limited atomic instruction which rules out support for std::atomic. That by itself wouldn't be so bad, but it turns out that even though the standard defines that std::async can be implemented without atomics, GCC hasn't done that.<br />
<br />
In most cases it's trivial enough to build what you need using std::mutex and std::thread - but it is a bit of a hassle.<br />
<br />
<h3>
std::chrono::high_resolution_clock ... er... isn't</h3>
This had me confused for a while. I had a sample GL application running; a spinning cube, and it would run at a consistent 1FPS. I know the DC is slow compared to modern machines, but, 1FPS for a cube?!<br />
<br />
Turns out that the "high resolution" timer had an accuracy of 1 second! Using the built-in KallistiOS timer functions fixed it.<br />
<br />
<h3>
libGL is still a WIP</h3>
The GL port for the DC is a great little library, but it has some rough edges. I recommend that you get your application runnable on both your PC and the DC and focus on targetting GL 1.1. If the graphics in your application don't work on the Dreamcast but do on the PC then investigate and submit a patch!Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com30tag:blogger.com,1999:blog-526640567708972258.post-29314412638743418182016-12-10T14:25:00.001+00:002016-12-10T19:18:39.334+00:00DreamPi 1.6 Released!'This'is really just a bug fix release, although it's a pretty good one!<br />
<ul>
<li>Incorporated a program called dcgamespy which was written by Jonas Karlsson which manipulates packets of games like Starlancer to avoid your ISP blocking them as a security measure. Thanks again Jonas!</li>
<li>Reduced the modem communication rate which should hopefully fix a lot of those weird "DreamPi doesn't work for me?!" issues, and may restore support for serial modems. Maybe.</li>
<li>The script now waits for an Internet connection before doing anything, this should fix the issue where the AFO routing rules wouldn't take effect.</li>
</ul>
<a href="https://mega.nz/#!MIlXXZDI!kYZKdeiPh0ju4FLWeEh-NH0HETahQxUlyWv0P8ekONw" target="_blank">Download the new image here</a>.Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com30tag:blogger.com,1999:blog-526640567708972258.post-13776603439194230062016-11-06T15:26:00.000+00:002016-11-06T16:10:06.331+00:00DreamPi 1.5 Released!This is a big release with new features and multiple bugs fixed:<br />
<br />
<ul>
<li>New software is included written by Jonas Karlsson called "dcvoip" this system process makes the VOIP communication in Planet Ring work! The software is distributed with permission.</li>
<li>There is now built-in support for the upcoming Alien Front Online servers that will allow your vanilla normal AFO CD to work without a boot disc! (Thanks again for Jonas for the information to do this).</li>
<li>The Pi's firmware has been updated which should bring better device support</li>
<li>A bug has been fixed where the DreamPi software wouldn't shut down correctly</li>
<li>The modem command timeout has been increased which fixes a number of bugs on modems which are slow to respond (for some reason...). Thanks to Neoblast <a href="http://dreamcast-talk.com/forum/viewtopic.php?f=3&t=9559#p94247" target="_blank">on the DC-talk forums</a> for finding this.</li>
<li>Fixed a bug where the DreamPi process would boot before there was an internet connection (mainly affected WiFi) and would require restarting multiple times to get things to initialize correctly.</li>
</ul>
<br />
Special thanks to PCwzrd13 for being an awesome tester!<br />
<br />
You can <b><a href="https://mega.nz/#!pJ0iWZQR!u64vpHwgmG4XZZsO3DsDZox73SyS8h9g1WcIe-JKYLQ" target="_blank">download the new release here</a></b>. If you have any problems please post on <a href="http://dreamcast-talk.com/" target="_blank">DC-talk</a> or create an issue on <a href="https://github.com/kazade/dreampi" target="_blank">GitHub</a>.<br />
<ul>
</ul>
Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com37tag:blogger.com,1999:blog-526640567708972258.post-41623081775087500272016-09-10T10:48:00.001+01:002016-09-10T13:51:15.519+01:00SEGA Should Resurrect the Dreamcast Brand<style type="text/css">h2.western { font-family: "Liberation Sans",sans-serif; font-size: 16pt; }h2.cjk { font-size: 16pt; }h2.ctl { font-family: "Lohit Devanagari"; font-size: 16pt; }p { margin-bottom: 0.25cm; line-height: 120%; }</style>
<br />
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
Yesterday, it was
the 17<sup>th</sup> anniversary of the SEGA Dreamcast in the U.S. and
the occasion caused Twitter and Faceback to fill with birthday
greetings for the console that refuses to die. If you're reading this
you are probably well aware of the stubborn and ever-growing
“Dreamcast Scene”, but if this is news to you then I'll give you
a quick overview.
<br />
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
After SEGA stopped
supporting their last home console, homebrew developers made tools to
create games for it, and every year more and more games created by
indie developers are released. On top of that, the Dreamcast
continues to gain more and more online multiplayer games as aspiring
geniuses reverse engineer the old game servers. Just in the past year
alone, Chu Chu Rocket, Toy Racer (dial up), PAL Quake 3 and The Next
Tetris, have returned from the dead. On the horizon is Alien Front
Online, and there are sure to be more to come. There are weekly game
nights scheduled for both the U.S. and UK, and well over 100 people
now regularly play online. Which is quite some achievement
considering you have to actually do some soldering to get the dial-up
Dreamcast to connect in a fibre-optic world.
<br />
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
In summary, the
Dreamcast isn't dead, it's alive and well. Sure it doesn't compete
with current gen consoles but no other console in history has had as
much community support. Which brings me onto the main topic of the
article; SEGA should bring the Dreamcast back.
<br />
<div style="line-height: 100%; margin-bottom: 0cm;">
</div>
<a name='more'></a><br />
Let me get one thing
clear here. SEGA should not release a “Dreamcast 2” - at least
not in the traditional sense – it just wouldn't succeed and it
would cost SEGA lots and lots of pennies. But, SEGA should take a
leaf out of Nintendo's book, and resurrect the Dreamcast in a similar
way to Nintendo has with the NES mini. Some of you may know that SEGA
actually has already attempted something similar to the NES mini with the SEGA
Genesis (Mega Drive). You can go to a shop now, and buy a cheap,
third-party developed, badly-emulated box of plastic that looks
nothing like a Genesis, and use it to play a number of built in
games.
<br />
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
This was a terrible
idea, it's diluted the SEGA Genesis brand, and it was entirely
avoidable. Recreating the original Genesis hardware in modern silicon
and components is *cheap* perhaps not as cheap as emulation, but the
resulting product would be of far better quality. It would be a
Genesis, not a pseudo-Genesis.
<br />
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
SEGA can avoid this
mistake with the Dreamcast. And here's how…<br />
<br /></div>
<h2 class="western">
Step 1: Recreate the Hardware</h2>
<h2 class="western">
</h2>
<br />
This really isn't a lot of work. It would take a small team of
proficient electronics engineers to take the original Dreamcast
circuit boards, shrink them down just by using modern components, and
add an HDMI output and WiFi (the modem can be easily emulated). Adding these two features isn't outside the capabilities of most electrical engineers, we all know an HDMI output for the Dreamcast exists, and I myself have examined the DC modem, and emulating it using a WiFi adapter is certainly doable. In fact, the man behind the HDMI output has already designed a half-size Dreamcast mainboard. If one very talented hobbyist can do it, I'm pretty sure a small team from SEGA's arcade hardware department can!<br />
<br />
They
should probably add in an additional modern ARM chip to power the system
firmware before handing off to the original SH4 processor to allow
more flexibility. They could also double the RAM, which would allow
the Dreamcast-related NAOMI Arcade games to be played too.
It's worth mentioning that the SH4 processor used in the
Dreamcast and the counterpart PowerVR graphics chip will both have their patents
expiring over the next couple of years. Re-licensing these old chips
will be <b>cheap</b><span style="font-weight: normal;">.</span><br />
<br />
<span style="font-weight: normal;">The GD-ROM was just essentially
a modded CD-ROM drive, so those components are easy enough to
acquire, and then you just need a plastic shell around the whole
thing. We're talking a small team of engineers a few months to get a
prototype together. </span><span style="font-weight: normal;">The
controller can literally be a re-issue of the original one. Maybe they could make one with the cable coming from the top (controversial!). Hell, they could make nice rechargeable VMUs with modern screens. </span><br />
<br />
<h2 class="western">
Step 2: Build a Digital Store </h2>
<br />
The SEGA Dreamcast
has one of the greatest back catalogues in console history.
Franchises like Craxy Taxi, Shenmue, Skies of Arcadia, Phantasy Star
Online, Soul Calibur… the list goes on for a while. These games
exist, they don't need to be developed, or ported, or brought up to
date, they just need a new platform to be showcased. They're almost
free-money for SEGA, if only SEGA had some vehicle to distribute
them.
<br />
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
This is why the addition of an ARM chip would make sense. SEGA
could use that to power a lobby which connects to an online digital
store which would quite literally, download ISOs of the original
Dreamcast games. It doesn't have to be extravagant: allow selecting a
game, paying by Paypal or similar then an ISO is downloaded to some storage
on the Dreamcast. Job done.<br />
<br />
<h2 class="western">
Step 3: Open Source the KATANA SDK </h2>
<br />
This is essentially supporting homebrew on the “Dreamcast Mini”
- it would be an extra selling point. Along with the outstanding
existing back-catalogue of Dreamcast games, SEGA could take a cut of
homebrew games purchased from the store.<br />
<br />
The KATANA SDK is the original developer kit for the Dreamcast,
and the source code for it is surely just pointlessy bit-rotting
somewhere at SEGA's offices. It would cost them nothing to post that
code on GitHub and start accepting improvements and updates from a
community of developers.<br />
<br />
<h2 class="western">
Summary </h2>
<br />
That's it. A simple 3-step plan for SEGA to make a bunch of money
on a load of stuff it basically already has. A new revision of the
original Dreamcast hardware, shrunk down a bit in the same style as
the NES mini, with modern components and HDMI and WiFI connections. A
digital store for selling the existing back catalogue of games, and
for taking a cut on new homebrew releases.<br />
<br />
Most importantly though it should focus on quality – not cheap
crappy third-party emulated rubbish – but a serious, sturdy little
machine with the resilience and design of the original.<br />
<br />
<br />
<br />
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com42tag:blogger.com,1999:blog-526640567708972258.post-20492856959254301372016-05-14T18:58:00.002+01:002016-05-14T18:59:31.106+01:00DreamPi 1.4 ReleasedThis is a bug fix release.<br />
<br />
<ul>
<li><b>New image</b>. Fixes corruption issues with the previous release.</li>
<li><b>Improved Pi 3 support</b>. This release is tested to work with the Pi 3.</li>
<li><b>Updated firmware</b>. Includes the latest Raspbian updates (Linux kernel 4.4)</li>
<li><b>Improved IP allocation</b>. This code has been completely rewritten to use the arping command and seems much more reliable and fixes several known issues.</li>
</ul>
You can download the release <a href="https://mega.nz/#!0R9gwSzL!EZYQ_lPlFJMR5RfT5HosyOSU2lpGJET1PmTzIGw-Qn4" target="_blank">here</a>. Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com114tag:blogger.com,1999:blog-526640567708972258.post-20557350638994725722016-04-22T09:34:00.000+01:002016-04-22T09:34:04.292+01:00Avoid C++ Typo-bugs with this One Cool Trick!<br />
Recently I found an online quiz created by a company which develops some static code analysis tool. You were presented with buggy C++ code which the tool had detected and you had to click on where the bug in the code was.<br />
<br />
The large majority of the bugs in the questions were down to typos. These normally occurred when someone had written the same line of code 3 or 4 times, but with different attributes (e.g. .x, .y and .z for a vec3)<br />
<br />
Well, here's a neat trick that will allow you to avoid such typos. In the following example I recalculate the min/max values of a bounding box given a vector (pos):<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">/* Iterate the X, Y and Z attributes and assign them if necessary */<br /> auto attrs = { &Vec3::x, &Vec3::y, &Vec3::z };<br /><br /> for(auto& attr: attrs) {<br /> if(pos.*attr < bounding_box.min.*attr) bounding_box.min.*attr = pos.*attr;<br /> if(pos.*attr > bounding_box.max.*attr) bounding_box.max.*attr = pos.*attr;<br /> }</span></span> <br />
<br />
By using C++11 initializer lists, and auto, you can elegantly create a list of pointers to member attributes. C++11 range-for loops allow you to iterate them easily without a bunch of type definitions, and then you can just apply the pointers to the two vectors. This ensures that you never accidentally check the value of .y against .x or something like that. It's also fewer lines of code than repeating the if checks (4 vs 6). You could also tidy it up more if you create some extra reference variables in the loop. Win.Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com24tag:blogger.com,1999:blog-526640567708972258.post-11796335022805253772016-04-16T15:07:00.000+01:002016-04-16T15:07:02.003+01:00DreamPi 1.3 Released!This is a minor release which simply updates the Raspberry Pi firmware on the image. This <b>should </b>mean that the Pi 3 is supported, but I don't have one to test that!<br />
<br />
You can download the new release <a href="https://mega.nz/#!VItR3C5A!Pi2kBoLkajEPubVirppZvZtxVy4JIk_xYJjgdWBqo_g" target="_blank">here</a>!Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com16tag:blogger.com,1999:blog-526640567708972258.post-65287767130366607832016-04-16T09:28:00.004+01:002016-04-16T13:59:46.042+01:00Being Spread Too ThinIt's come to my attention that I have way too many projects on the go. This post is going to summarize what needs to be done to each of them in a kind of semi-apology for why things you are waiting for might take a while...<br />
<br />
It's also worth remembering I can only work on some of these projects in certain locations. DreamPi stuff must happen at home where I have a Dreamcast and a DreamPi set up. Electronics stuff needs to happen near electronics kit, SDL 2 needs a PC with a Dreamcast emulator, access to a Dreamcast and KallisitiOS which I only have at home. Most of my computer time happens on the train, so... yeah.<br />
<br />
<h3>
<span style="font-weight: normal;">DreamPi</span></h3>
<br />
The DreamPi software image has been a huge success. <a href="https://www.twitter.com/pcwzrd13" target="_blank">pcwzrd13</a> of Dreamcast Live recently reported the most active online Dreamcast game session ever as a result of more people getting their Dreamcast connected. Even though the software works, here's a list of things that are still left to do:<br />
<ul>
<li>Better IP address allocation, what is there now is incredibly buggy</li>
<li>Cutting down the image, and swapping the init system for systemd then writing a proper systemd service file</li>
<li>Detecting modem hotplugging and handling it gracefully</li>
<li>Hanging up and reconnecting every 5 minutes or so when generating the dial-tone to workaround the modem apparently going to sleep</li>
<li>Speeding up the connection process by removing excess AT commands</li>
<li>Upgrading the image to support the Pi 3</li>
<li>Coming up with a way to easily configure Wifi dongles</li>
</ul>
<h3>
<span style="font-weight: normal;"> </span></h3>
<h3>
<span style="font-weight: normal;">Dreamcast Now </span></h3>
<br />
Connected, but separate, Dreamcast Now has become a useful tool, here are the things I'd like to fix:<br />
<ul>
<li>Add more game domain hashes (e.g. Toy Racer)</li>
<li>Add Dreamcast Live and Dreamcast-talk versions of the listing so that those sites can iframe them in</li>
</ul>
<br />
<h3>
<span style="font-weight: normal;">DC-Pheonix (DreamArena)</span></h3>
<h3>
<span style="font-weight: normal;"> </span> </h3>
This is working amazingly well considering I hammered it out in a few hours. Still left to do though:<br />
<br />
<ul>
<li>Add Quake 3 PAL support</li>
<li>Add a clone of the DreamArena registration site so users can register with DreamKey 1.0</li>
<li>Database-backed user registration so that the entire process works as it did back in the day</li>
</ul>
<br />
<h3>
<span style="font-weight: normal;">Serial Connector / Link Cable </span></h3>
<br />
I'd like to design and manufacture these, but this is on hold until I have some line voltage inducers made. The whole process for making a PCB is pretty time consuming so don't expect this stuff soon!<br />
<br />
<br />
<h3>
<span style="font-weight: normal;">Line Voltage Adapters</span></h3>
<br />
I have 3 prototype PCBs. I need to manually hot-plate solder the components, and then 3D print cases for them. At that point I can decide whether I have the time to sell them and whether it's worth it. This can only be done when I'm at my work's electronics club which unfortunately I can only make occasionally. Don't expect these any time soon either :(<br />
<br />
Also, I need to fix some bugs in Fritzing (the PCB software) to make these PCBs export correctly without me manually fixing up the Gerber export files.<br />
<br />
<b> </b><br />
<h3>
<span style="font-weight: normal;">Dreamcast SDL 2 Port</span></h3>
<br />
This is about 70% done. It needs testing and fixing. I'll get around to this when I start porting my game engine to the Dreamcast....<br />
<br />
<br />
<h3>
<span style="font-weight: normal;">My Game Engine (KGLT)</span></h3>
<br />
This is the main project I really want to focus on. Here's what I intend to do:<br />
<ul>
<li>Improve rendering performance</li>
<li>Fix Quake 2 BSP lightmap loading </li>
<li>Add an OpenGL 1.x renderer for Dreamcast support</li>
<li>Port to the Dreamcast</li>
<li>Write a game for the Dreamcast</li>
</ul>
<br />
As you can see, I have a lot going on, and that's ignoring all the support requests / questions I get about the Dreampi and all the other things I'm helping individuals with. It also ignores the non-Dreamcast related stuff that I already have out there.<br />
<br />
So, if you are waiting for something, I apologise, but all of my code is open source, I'd appreciate the help if you can contribute!<br />
<br />Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com10tag:blogger.com,1999:blog-526640567708972258.post-1912962416038974732016-04-07T16:01:00.002+01:002016-04-07T18:42:27.505+01:00Toy Racer Back Online for Everyone!<p dir="ltr">I'm excited to announce that an experimental replacement server for Dreamarena is now online and as a result, Toy Racer is back online for everyone, even if you don't have a BBA!</p>
<p dir="ltr">DreamPi users have this support right now, just try it! Anyone else on dial-up will need to point their DNS at 46.101.91.123 to use the new server.</p>
<p dir="ltr">As I said, this server is HIGHLY EXPERIMENTAL. It will likely crash, not work, behave weirdly etc. the server will keep improving as I gain more understanding of the authentication protocol.</p>
<p dir="ltr">Quake 3 PAL doesn't work at the moment, but that support is coming soon too!</p>
<p dir="ltr">Special thanks go to Jonas Karlsson who did the hard job of deciphering the protocol!</p>
Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com12tag:blogger.com,1999:blog-526640567708972258.post-34546937054661954672016-02-22T16:12:00.002+00:002016-02-22T16:12:45.878+00:00Debugging Issues with your DreamPiSometimes despite your best efforts, your DreamPi setup just isn't working. This blog post will summarize some of the things you can do to debug the issue!<br />
<br />
<h3>
SSH is Your Friend</h3>
The first thing you need to do is to be able to connect to your DreamPi to see what is going on. Now you could do this by connecting a keyboard, then connecting it to the TV and switching between outputs. This works, but it's fiddly, if you do this you can't really see in real-time what is going on.<br />
<br />
SSH is a protocol for allowing you to remotely connect to a machine and run commands as if you were directly logged in. If you use Windows you'll want to use <a href="http://www.putty.org/" target="_blank">Putty</a>, if you use another (more sensible :p) operating system SSH should be built in or easily installable and usable from the built-in terminal.<br />
<br />
If you do use Putty, there is a <a href="http://www.hostknox.com/tutorials/ssh/putty" target="_blank">tutorial here</a> for setting it up. The key thing is that you are connected to the same network as your DreamPi, and the hostname you use to connect is "dreampi.local". The username must be "pi" and the password is "raspberry". Once connected you will be dropped to a Linux command shell. If you want to disconnect press CTRL+D at the same time.<br />
<br />
<h3>
Watch the Logs!</h3>
Whether you're directly connected to the Pi or over SSH the next thing you'll need to do is run a Linux command. This one:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo tail -f /var/log/syslog</span><br />
<br />
I'll break it down so you know what it's doing:<br />
<ul>
<li>sudo - runs the command as an admin, you'll be asked for the password again</li>
<li>tail - the "tail" command shows the end of a file</li>
<li>-f - this flag tells the tail command to stream the file in real-time </li>
<li>/var/log/syslog - this is the file we're watching</li>
</ul>
Now, that's all you need to do. Now if you connect your Dreamcast you can see the output from the DreamPi software but also from the PPP service which is responsible for routing the connection.<br />
<br />
<span style="font-family: inherit;"></span><br />
<h3>
<span style="font-family: inherit;"> </span></h3>
Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com11tag:blogger.com,1999:blog-526640567708972258.post-85548585481748433642016-01-30T10:26:00.005+00:002016-01-30T10:42:36.020+00:00Setting up KallistiOS on FedoraKallistiOS (or KOS for short) is the open source SDK for Dreamcast development. It can be a little tricky to understand the installation process so I'm just explaining it here, this is more for my own benefit than anything.<br />
<br />
There are instructions for configuring KallisitiOS on the website, but they are focused on installing globally in /opt/ whereas I'm going to explain how to setup KOS in your home folder.<br />
<br />
<a name='more'></a><br />
<h3>
Step 1. Clone all the things</h3>
<br />
Firstly you need to get the code. KOS and its counterpart library port repository both use GIT. So, let's make a directory called "Dreamcast" and clone those things:<br />
<span style="font-family: "courier new" , "courier" , monospace;"><br />mkdir ~/Dreamcast<br />cd ~/Dreamcast<br /> git clone git://git.code.sf.net/p/cadcdev/kallistios <br /> git clone --recursive git://git.code.sf.net/p/cadcdev/kos-ports </span><br />
<br />
At this point you'll have two folders, kallistios and kos-ports. Forget about kos-ports for the time being.<br />
<br />
<h3>
Step 2. Building the toolchain</h3>
<br />
The "toolchain" is the GCC cross-compiler you need to build for the Dreamcast. There are two architectures to build: sh-elf and arm-eabi.<br />
<br />
KOS has some scripts for helping you to build the toolchain, and these are found in the "utils/dc-chain" folder.<br />
<br />
The first thing we need to do is alter the installation location to our "~/Dreamcast" folder.<br />
<br />
Open "utils/dc-chain/Makefile" in a text editor, near the top of the file you'll find the following lines:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">sh_prefix := /opt/toolchains/dc/$(sh_target)<br />arm_prefix := /opt/toolchains/dc/$(arm_target)</span><br />
<br />
You'll need to change them to:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">sh_prefix := /home/YOUR_USERNAME/Dreamcast/toolchain/$(sh_target)<br />arm_prefix := /home/YOUR_USERNAME/Dreamcast/toolchain/$(arm_target)</span><br />
<br />
Now, we need to make sure we have all the required dependencies, run this command first:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo dnf builddep gcc</span><br />
Once that's done, run the following commands:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">cd ~/Dreamcast/kallistios/utils/dc-chain</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">./download.sh</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">./unpack.sh</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">make</span><br />
<br />
You'll have to wait for each step to complete in full. Watch for any errors during the build, you may having additional missing dependencies. Hit up Google if that's the case :)<br />
<br />
<h3>
Step 3. Building KOS</h3>
<br />
OK, at this point you should have a "~/Dreamcast/toolchain" folder with stuff in it. You now need to set up your environment. Run the following commands:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">cd ~/Dreamcast/kallistios</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">cp docs/environ.sh.sample environ.sh</span><br />
<br />
Now open "~/Dreamcast/kallistios/environ.sh" in a text editor and change the KOS_BASE export so it's something like this:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">export KOS_BASE="/home/YOUR_USERNAME/Dreamcast/kallistios" </span><br />
<br />
Also change any references to sh-elf or arm-eabi to point to the folders in "~/Dreamcast/toolchain".<br />
<br />
Edit your ~/.bashrc file and add the following to the end of it:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">source /home/YOUR_USERNAME/Dreamcast/kallistios/environ.sh</span><br />
<br />
Now, open a new terminal, run the following:<br />
<br />
cd ~/Dreamcast/kallistios<br />
make<br />
<br />
<h3>
Step 4. Build the ports you need</h3>
<br />
From now on it's up to you, you can "cd" into the individual ports that you want and run:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">make install clean</span><br />
<br />
Everything is now ready to go!<br />
<br />Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com9tag:blogger.com,1999:blog-526640567708972258.post-75441443985547019132016-01-29T16:27:00.001+00:002016-01-29T16:27:59.401+00:00An Update on those Line Voltage Inducer CablesI mentioned on the <a href="http://www.thedreamcastjunkyard.co.uk/2016/01/dreampod-episode-24-dreampi.html" target="_blank">Dreamcast Junkyard Podcast</a> that I was intending to build and sell some special phone cables which add the required voltage for a Dreamcast to connect with a DreamPi setup - official DreamPi cables if you will. At the time I was waiting for a test run of PCBs to arrive, and they have!<br />
<br />
There are some minor issues with this PCB revision, but I have a working cable, here it is in all its glory:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pbs.twimg.com/media/CZ4-8xkUAAIorH9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://pbs.twimg.com/media/CZ4-8xkUAAIorH9.jpg" width="179" /></a></div>
<br />
As you can see, the power comes directly from the Raspberry Pi itself providing you have a spare USB socket. I've been forced to test this by playing PSO online for an hour, and I can confirm that the circuit works perfectly!<br />
<br />
So straight onto manufacturing right? Well.. not quite.<br />
<br />
Firstly, obviously I don't intend to sell cables with exposed circuitry, so before I sell any cables I need to get some boxes 3D printed. But more importantly, I think I can do better than this. <br />
<br />
I think it should be possible to create an adapter box that plugs directly into the Dreamcast, leaving you to just connect any standard modem cable. Not only will this be more robust, but also be quicker and cheaper for me to manufacture (the cable costs £3-4 alone for a decent one).<br />
<br />
The next revision of boards I send off will probably an attempt at this, and as end-to-end design, manufacture, shipping, soldering and testing takes about 3 weeks, I'm afraid I won't be shipping these for a little while.<br />
<br />
Still, I've proven that it works, and this is a thing I can build. I'll keep you all updated!<br />
<br />
P.S. This has all only been possible because of the electrical know-how of my mate <a href="https://www.twitter.com/kirberich" target="_blank">Rob!</a>Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com29tag:blogger.com,1999:blog-526640567708972258.post-90557347987436277562016-01-25T11:21:00.000+00:002016-01-25T11:21:39.365+00:00DreamPi 1.2 Released!This is a bug fix release:<br />
<br />
<ul>
<li><b>Pi to Modem communication now uses a fixed-baud speed. </b>This will hopefully fix some issues that people were having sending commands to the modem but I'm not sure.</li>
<li><b>Earlier disconnection. </b>The software now disconnects from the modem as soon as the handover to PPP is complete, this should allow for a faster disconnect/reconnect cycle when you finish a game and avoid the DreamPi software interfering with PPP.</li>
<li><b>More reliable startup. </b>Occasionally there was an error on startup while detecting the modem. Now this will be caught and will fall back to ttyACM0 rather than crashing. A better fix would be to wait until the modem is ready - this will happen in a later release.</li>
</ul>
You can <a href="https://mega.nz/#!0FUXlCQC!0_zJ63QdtiDRtSOJsS2idpGr-3EWT5VohOyYpMPkj7c">download the new release here</a>. Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com9tag:blogger.com,1999:blog-526640567708972258.post-75094342652931256392016-01-21T13:24:00.000+00:002016-01-21T13:24:31.916+00:00DreamPi 1.1 with Dreamcast Now! ReleasedI'm happy to announce that version 1.1 of the DreamPi software image is <a href="https://mega.nz/#!lUkhkJKK!8_tRiYiy7J-0P1ny2lDs6-8RupNiHi9hUw0-dCrL6lc">now available</a>. This release introduces the <a href="https://dreamcast.online/now/">Dreamcast Now!</a> service (as discussed <a href="http://blog.kazade.co.uk/2016/01/announcing-dreamcast-now.html">here</a>) and also lays the foundations for a web-based configuration system.<br />
<br />
As this release introduces some new features, this is probably a more unstable release than 1.0. <br />
<br />
Once you have the new image up and running on your Raspberry Pi, you should head over to <a href="http://dreamcast.online/now/configure/">http://dreamcast.online/now/configure/</a> to configure the Dreamcast Now! service.<br />
<br />
This release also includes updated firmware for the Raspberry Pi and so it should now run on the PiZero.<br />
<br />
Keep an eye on this blog for more updates! Lots more exciting things in the works!<br />
<br />
<a href="https://mega.nz/#!lUkhkJKK!8_tRiYiy7J-0P1ny2lDs6-8RupNiHi9hUw0-dCrL6lc">Download the new release here!</a>Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com6tag:blogger.com,1999:blog-526640567708972258.post-88259593094835183972016-01-05T09:27:00.000+00:002016-01-05T09:28:10.872+00:00Announcing Dreamcast Now!I'm excited to announce a new feature of the DreamPi software which will be coming in the unstable 1.1 release!<br />
<br />
Dreamcast Now! is a new service which allows players to see which and how many DreamPi users are online, and also what they are playing. You can preview the Dreamcast Now! service at the rather spectacular URL: <a href="http://dreamcast.online/now/">dreamcast.online/now/</a><br />
<br />
It looks something like this (on mobile):<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyZyuH7qj2xd0h1CauThhc9atE_cDzUq6vMoa5ooBTMsb9LU4i2hM9uVpZnNP-BFmokoIpJT7YCAdGL7bk9i9Z8xeecSjHXcfoTEsoV-_f9yihU1ySSEnSyqRrwP2Zlfi-ADZJ-Oj3F84/s1600/DMRBR35M.jpg" imageanchor="1"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyZyuH7qj2xd0h1CauThhc9atE_cDzUq6vMoa5ooBTMsb9LU4i2hM9uVpZnNP-BFmokoIpJT7YCAdGL7bk9i9Z8xeecSjHXcfoTEsoV-_f9yihU1ySSEnSyqRrwP2Zlfi-ADZJ-Oj3F84/s320/DMRBR35M.jpg" width="204" /></a></div>
<br />
But there's more! I'm working closely with the <a href="http://dreampipe.net/">dreampipe.net</a> team to provide a level of integration with their site which will allow you to see who's online without ever leaving the confines of the Dreamcast.<br />
<br />
I'll also be providing user-specific URLs for widgets that can be embedded in forum signatures to show when you are online. <br />
<br />
I hope to release this over the next couple of weeks, a few select testers will be receiving test DreamPi images over the next few days so keep an eye on the page for online gamers!<br />
<br />
<h3>
How does it work (technical stuff ahead)?</h3>
<h3>
</h3>
<h3>
</h3>
It's all just a little bit clever. On boot a unique identifier is generated from your Raspberry Pi, this is your secret key which allows the service to know which DreamPi is online. When you connect to an online game, the DreamPi sends a message to the Dreamcast Now! service indicating that the user with that unique identifier came online. This is all pretty much anonymous, the whole communication happens securely over SSL and the only thing that is sent is the Pi's unique ID.<br />
<br />
Once the game is connected, the first thing it will do is perform a DNS lookup for the game's server. The DreamPi software watches for the domain query, creates a non-reversable hash of the domain (using SHA256) and sends this to the server. Again, this is all over SSL and the server has no way of knowing what the domain was unless it happens to match one of the game domain hashes we have on the server. These domain hashes are never stored.<br />
<br />
This is how the server detects when a DreamPi comes online and what game is being played.<br />
<br />
<br />
<h3>
What about usernames and profile images?</h3>
<br />
These are entirely optional. If you don't do anything you'll get an auto-generated username (e.g. Unnamed_12345) and just a default profile image will be shown. However it will be possible to browse to the DreamPi's IP address in your browser (e.g. dreampi.local) and enter a username, and a Gravatar email. The email is MD5 hashed before being sent to the server, the only data sent to the server that isn't just a hash value is the username. Usernames are not permanent, you "lease" them. They are associated with your DreamPi's unique ID but if you fail to go online for 30 days then they are free to be associated with another DreamPi. This is necessary so that if your DreamPi breaks, you'll be able to regain your username after 30 days by associating it with another DreamPi.<br />
<br />
<br />
<h3>
I don't like the sound of this, can I disable it?</h3>
<br />
Yes. It can be switched off from the same page you configure your username. It will be enabled by default though.Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com15tag:blogger.com,1999:blog-526640567708972258.post-56944192488341298692015-12-23T10:09:00.001+00:002015-12-23T10:09:58.519+00:00DreamPi 1.0 Released!A few years ago I purchased a cheap USB modem with the idea of building a "PC/DC server" and connecting my Dreamcast to the Internet. When it arrived I couldn't find the time (and didn't have the skill) to build the required line voltage inducer, so the modem sat in a drawer untouched.<br />
<br />
Later, the Raspberry Pi was released, and I bought one. I figured it was time to finally build that PC/DC server! But alas, like most Raspberry Pi purchases it ended up in the drawer alongside the USB modem, like pieces of an incomplete jigsaw puzzle.<br />
<br />
Fast-forward to 5 months ago. Since buying the modem my electronics skills had improved considerably so I finally built that line voltage inducer, and tried to configure the PC/DC server with the Raspberry Pi. It didn't work. I tried everything! Different resistors, different batteries (up to 12V) , I rebuilt the line voltage inducer twice. It still didn't work.<br />
<br />
Then someone on a forum said it seemed like there wasn't enough voltage. I couldn't understand that - all the tutorials had said 9V was plenty, I was using 12! One day I got reckless and connected two 9V batteries rather than one, and straight away Phantasy Star Online connected! It was at that point that I realized that I'd never actually seen anyone with a PAL Dreamcast manage to get a PC/DC server working, I'd seen plenty of people with PAL Dreamcasts complaining it didn't work however. This was the mystery solved! PAL Dreamcasts need more voltage than the U.S. counterparts.<br />
<br />
At this point connecting was a pain. I had to connect to the Pi, launch a program, and then dial on the Dreamcast, then answer manually on the Pi. "Surely there's a better way", I thought.<br />
<br />
It occurred to me that the USB modem could "listen" for the Dreamcast dialling. If it could then I wouldn't need to answer manually, I could write some code for that. I opened up my editor and started learning HAYES commands to talk to the modem. I put it online and waited until the Dreamcast dialled, and then answered. Success! After making sure that I could repeat the process automatically I pushed out a release of the DreamPi image. People were happy, but there were still problems...<br />
<br />
Most games look for a dial tone before they will try to connect to a remote server. Obviously there is no dial tone when you've just connected one modem to another. While browsing for information I discovered that someone had built an interesting solution by connecting the line-out of a computer to the phone line, and played a recording of a dial tone into the line until the Dreamcast dialled. Then there was another "eureka!" moment. I already had the line open while I was listening for the Dreamcast to dial numbers, I could definitely play the sound of a dial tone through the modem at the same time.<br />
<br />
It took a lot of fiddling to find the right set of HAYES commands, but eventually I succeeded. Now all Dreamcast games would work! It took several more bug fixes and releases to get to where we are today. But here we are at version 1.0.<br />
<br />
So, today I'm announcing 1.0. <a href="https://mega.nz/#!kZlBxawS!2WA3LEWYz67tahlhUu4oZ_wIw9_EyLrwnshgz3Kr3Vg">This release</a> extends the timeout for waiting for command responses, and doesn't echo our commands back to the modem which was confusing things.<br />
<br />
There is still more to be done. I'm not happy with the IP address allocation, and WiFi support has always been on the list. But I'm happy to call this release complete. You can now play your Dreamcast games online with nothing more than a USB modem, a Raspberry Pi and a simple electrical circuit.<br />
<br />
My next challenge is to get a Dream Arena authentication server running. At that point the last remaining games (Toy Racer and PAL Q3 Arena) will work and the DreamPi will allow playing every online game that still has servers.<br />
<br />
<a href="https://mega.nz/#!kZlBxawS!2WA3LEWYz67tahlhUu4oZ_wIw9_EyLrwnshgz3Kr3Vg">Merry Christmas everyone!</a><br />
<br />
<br />Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com9tag:blogger.com,1999:blog-526640567708972258.post-65666785955343839062015-12-16T22:19:00.001+00:002015-12-16T22:19:03.819+00:00DreamPi 0.99 ReleasedThis is a major bug fix release.<br />
<br />
<ul>
<li><b>Switched to using "arp -n" rather than "arp-scan". </b>This command was used to detect IPs in use but would cause the DreamPi to hang sometimes. Hopefully this will go away now.</li>
<li><b>New upstream DNS server. </b>The internal DNS server has had all its rules removed except for one pointing to a new hosted DNS server. This means that the DreamPi retains the DNS caching and allows overriding but configuration changes can be made without pushing a new release.</li>
<li><b>Better command sending. </b>The serial modem communication no longer echoes back the commands it's sent. Hopefully this will fix the problems with command responses not being recognized.</li>
</ul>
<a href="https://mega.nz/#!BdVzWS7Y!yFQapt60BRmOaDW0GJZc_zHFd_kADGm3115gaD43pn8">You can download the new release here.</a> Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com7tag:blogger.com,1999:blog-526640567708972258.post-64495036439295327232015-12-06T09:28:00.002+00:002015-12-06T09:28:42.788+00:00DreamPi 0.98 Released!This is a bug-fix release:<br />
<br />
<ul>
<li><b>More reliable modem command sending. </b>Some modems insert a newline character occasionally midway through a response. This was causing the software to get stuck in an infinite loop. This should now be fixed.</li>
<li><b>Faster Starlancer connecting. </b>Starlancer attempts a reverse DNS lookup several times during connection, this PTR record doesn't exist and so it eventually times out. The DNS server built into the DreamPi now responds to this reverse DNS lookup immediately making the connection happen instantly. See video below!</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/-T2hHqNeNRE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/-T2hHqNeNRE?feature=player_embedded" width="320"></iframe></div>
<br />
<a href="https://mega.nz/#!lE0GwJ5b!BoUwz6xxTzCF-CJEcahwDExMR0EFG8oDcVgTt3EXWKg">Download the new release here.</a>Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com4tag:blogger.com,1999:blog-526640567708972258.post-152138932131709542015-11-29T16:22:00.003+00:002015-12-06T09:29:40.563+00:00DreamPi 0.97 Released! This release is a <b>major </b>release!<br />
<br />
<ul>
<li><b>Near complete rewrite</b>. The code is now much cleaner</li>
<li><b>Fewer modem commands used. </b>Fewer commands == fewer places to go wrong!</li>
<li><b>Starlancer now supported!</b> Starlancer now works with 100% connection success rate!</li>
</ul>
<a href="https://mega.nz/#!hc8T2aSZ!S8UAmsmDWuVCw4rHoXsbT41U55iVhv_XnPxRzbrryK8">Download it here!</a> Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com5tag:blogger.com,1999:blog-526640567708972258.post-91668185885447509362015-11-28T19:16:00.003+00:002015-11-28T19:17:07.668+00:00DreamPi 0.96 released!This version is a minor release:<br />
<br />
<ul>
<li><b>IP address autoconfiguration. </b>The DreamPi now tries to use IP addresses .98 (for the Dreamcast) and .99 (for the Pi). If these IP addresses are taken it adjusts downwards to find the next available IPs.</li>
<li><b>DNS now available to other machines. </b>For testing the DNS server is now accessible by any machine on the network, not just the Dreamcast.</li>
</ul>
<a href="https://mega.nz/#!lMkxRBZZ!2xqFHdX_GCWVShj3PiGH_aEBlGN9VJUcNdio7WFBDjM">Download the new release here!</a> Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com6tag:blogger.com,1999:blog-526640567708972258.post-34894933212275973012015-11-26T12:14:00.002+00:002015-11-26T12:15:14.235+00:00DreamPi 0.95 ReleasedThis is a bug fix release:<br />
<br />
<ul>
<li>Pi <> Modem communication now happens at a constant safe baud rate</li>
<li>The PPP peers file is now configured with the max speed of the modem, this increases performance and hopefully fixes connection issues that some people were having during PPP negotiation</li>
<li>The Starlancer DNS is now configured in the dnsmasq configuration directly rather than hitting an upstream nameserver. This should hopefully fix DNS issues</li>
</ul>
<a href="https://mega.nz/#!4d8lhKaR!d8RylpWzgEaVmP_2fwyodK6qiAJ1cOXzJRgEkGevehY">Go download here!</a> Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com6tag:blogger.com,1999:blog-526640567708972258.post-91394142184828257642015-11-23T21:34:00.001+00:002015-11-23T22:25:25.982+00:00DreamPi 0.94 Released<div dir="ltr">
This is a minor bug fix release:</div>
<ul>
<li>Fixed a bug in the DNS configuration</li>
<li>Cleaned up the log output</li>
<li>Added a pause before answering to hopefully make things more reliable</li>
</ul>
<div dir="ltr">
<a href="https://mega.nz/#!pFs00aab!2PsgzvoPklDYjA0WotIPR8sVkTD-g66VYs440Puc_3I">Download it here!</a></div>
Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com2tag:blogger.com,1999:blog-526640567708972258.post-16335402926014530422015-11-07T11:39:00.001+00:002015-11-07T11:39:33.198+00:00DreamPi 0.93 Released!This release is a minor release.<br />
<br />
<ul>
<li><b>New DNS servers added</b>. Starlancer and Quake 3 should work now.</li>
</ul>
<a href="https://mega.nz/#!cd0m2YpI!U_RUlEeUUmVrXqPEONzgunspDr7Pv0GKpBSRys0xE9Q">Download it here.</a> Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com1tag:blogger.com,1999:blog-526640567708972258.post-9456244790599169882015-11-06T21:19:00.002+00:002015-11-06T21:22:40.202+00:00DreamPi 0.92 ReleasedThis release includes the following new features:<br />
<ul>
<li><b>Dial-tone generation</b>. The DreamPi software now plays an 8 bit audio recording of a dial tone across the phone line to trick the Dreamcast into dialling. Blind dialling is no longer a requirement!</li>
<li><b>Custom DNS server.</b> There is a DNS server now running directly on the Pi. Not only does this cache DNS requests which makes things a little quicker, but also it allows us to convince the Dreamcast that old sites and game servers are back online! To see this in action, try entering the "Internet" section on Sonic Adventure and visit the website!</li>
<li><b>Bug Fixes!</b> Lots of bug fixes to the order of AT commands etc. hopefully more modems will be able to work with the Pi</li>
<li><b>Auto-configuration. </b>On boot the software will detect your network subnet and update its configuration accordingly. </li>
</ul>
You can download the new release <a href="https://mega.nz/#!8JEXAKDa!N-q7JCSOSn-VoFWZ4Bn_b7HeP5Hcp7eGHvwBJYxHuUE">here</a>.Kazadehttp://www.blogger.com/profile/03056852907859085092noreply@blogger.com1