A Random QSO Generator

Published: 2013-10-05, Updated: 2013-10-05
Author: Jaeden Amero

A screenshot of qso-generator.rkt running the sample programs


Existing Koch-method Morse code training software waits until all symbols are learned before giving a Morse code student practice with Morse code conversations (known QSOs in amateur radio parlance). The point of this program is to generate random QSOs given a subset of symbols, so that the student can gain practice with the QSO format even before they know all the Morse code symbols.


Download QSO Generator from GitHub

Introduction to Nintendo DS Programming is Now on GitHub

Published: 2013-05-30, Updated: 2013-05-30
Author: Jaeden Amero

Orange Spaceship flying over code

After all these years, I finally got around to releasing the manuscript for the Introduction to Nintendo DS Programming. I converted the manual from Subversion to git and placed it up on GitHub. I hope that it brings some more life to the document, as I haven't updated it in years. It's been a good resource for the Nintendo DS homebrew community, but it wasn't fair for me to be a bottleneck on all change and updates to the manual; that's a recipe for going out of date.


Published: 2012-10-20, Updated: 2012-10-20
Author: Jaeden Amero

A sideways Pokia

Play with the Pokia

First off, go play with it. You'll need Google Chrome. I think you might enjoy composing a song or two.

Conway's Game of Life on the GPU

Published: 2012-08-27, Updated: 2012-08-27
Author: Jaeden Amero


Conway's Game of Life with WebGL


Life's Source Code

Cache Control

Published: 2012-04-22, Updated: 2012-04-22
Author: Jaeden Amero

Are you sick of the cache included with your old Macintosh? Probably not, but if so, you can disable it with this nice utility.

A Screenshot of Cache Control Running on a Macintosh


Cache Control

Dhrystone for 68k Macintosh

Published: 2012-02-22, Updated: 2012-02-22
Author: Jaeden Amero

Some guy named Landon Rodgers asked me to build the Dhrystone benchmarker for 68k Macintosh, so I did. I built it with THINK C 5, using 4-byte ints (instead of the default 2-byte ones), and without global optimizations. I had to modify the source a little bit to get it to build and run properly. (The source code and project file is included in the download.)

Dhrystone running on a 68k Macintosh with 40000 runs entered


Download Dhrystone for 68k Macintosh

68K Adventures

Published: 2011-02-02, Updated: 2011-02-02
Author: Jaeden Amero

Simasimac SE/30

I've had this habit of fixing up old Macintosh computers. Whenever I resurrect a dead mac, or upgrade one to be super awesome, I'll document the project in this series. I'll document some of my past projects, too.


Published: 2011-01-27, Updated: 2011-01-27
Author: Jaeden Amero

I have added a new section to my site, called books. The books page will detail my collection of books. For every book there, I'll also describe why I got that book or why I like it. I hope that you'll be able to learn a bit about who I am through exploring this internet manifestation of my bookshelf.

Each book page links to the book on Amazon, using my referral code. If you find a book you like on my shelf, or if you were already planning to buy one of the books in my collection, please use those links. At no cost to you, you can help a buddy out and grant him more free time to work on the projects that benefit you most.

The book collection isn't complete yet, but I think it is far enough along to launch anyway. I'll slowly be adding books to the page as I have time. I can add around 15 books per day, including writing up my recommendation or condemnation of the book.

Please enjoy!

The Links are Back

Published: 2010-12-17, Updated: 2010-12-19
Author: Jaeden Amero

I used to run the world’s best Nintendo DS links page. Since that time, I’ve migrated my website from static pages, through a few different custom content management systems. Some of these systems didn’t support links pages. My latest website architecture does, but my content is still old, not having been updated since 2007.

To help recover the goodness that once was, and to protect future goodness, I will write a cron job to check for broken links. Checking for squatted links will be a more difficult problem, I think.

I hope you can enjoy the links still. They may provide a nice nostalgic feeling. If you need to, you can use archive.org’s WayBack Machine to view many of these pages that have left the modern internet.

Version 6.1 of Introduction to Nintendo DS Programming

Published: 2008-12-15, Updated: 2010-12-19
Author: Jaeden Amero

After a four day wait lag time, the manual is back and its source code is ready to compile with libnds 1.3.1. Thanks for waiting. Enjoy!

This release is meant to simply get the code compiling again. I don’t yet use the new high level APIs that this version of libnds introduces. I’m saving that work for the next version of the manual. I have a few new chapters in the works that I’ll be slipping in next time, as well.

New devkitARM toolchain. New Introduction to Nintendo DS Programming underway.

Published: 2008-12-13, Updated: 2010-12-19
Author: Jaeden Amero

The new version (r24) of devkitARM is here. Along with it comes the highly anticipated libnds 1.3.1 release. A new libnds means a broken Introduction to Nintendo DS Programming and a lot more other broken source code.

This new release of libnds introduces more high-level APIs and some all new low level APIs. This release renames some registers, preventing the source code included with Introduction to Nintendo DS Programming from building successfully. It also changes how the interrupt system is initialized, no longer requiring (and breaking if you do use) irqInit in main. I do like the new register names, as they match the names as documented in GBATEK.

One reason I started writing the manual was because all the other tutorials (all two of them, at that time) were out of date. I feel strongly about having fresh information available to potential members of the homebrew community; an out of date tutorial is very useless and can be very frustrating. Users of such tutorials blame themselves for the failures and have no idea where to go next, as everything explaining to them where to go no longer applies. Without some positive reinforcement (in the form of a successful build and a graphic on the screen), many would be community members give up. As such, I’m working on updating the Introduction to Nintendo DS Programming source code and will have a new release out soon.

Patater Forums

Published: 2008-11-27, Updated: 2010-12-19
Author: Jaeden Amero

I desire to bring nübs together and lift them from their flounderings in muddy puddles of newbdom, strap them to orange spaceships (not alien ones), and launch them into the Nintendo DS homebrew community. A forum dedicated to doing this is the most effective method.

I often get email from readers of my Introduction to Nintendo DS Programming manual. A lot of interesting questions are asked, and a lot of interesting answers are given. Sometimes the same question is asked numerous times. While I view this as a shortcoming of my manual, and use all email I receive (pertaining to the manual) as a means to improve the manual, it takes me a while to get a new version of the manual out into the open.

A forum dedicated to the cutting edge of user problems particular to my manual will be a benefit to the Nintendo DS homebrew community. I’ll be monitoring the forum constantly to ensure that it is responsive enough to meet the knowledge needs of the now for all readers of the manual.

When you have a question about anything in the manual, I’m sure that many others too shy to ask have the same question. I want all to benefit from the question and answer exchange.

A forum is less personal and private than email, but the questions and answers exchanged will benefit all, and not just the parties involved in the email. In order to benefit other users who may be too shy to send an email my way, I’ve decided to create the a forum dedicated to Introduction to Nintendo DS Programming.

If you are having trouble with something in the manual, need some more guidance on getting started, are sick of grit acting funny, have suggestions to improve the manual, or anything else relevant, please post. Let knowledge flow more freely among more people.

Apologies and the Future

Published: 2008-11-16, Updated: 2010-12-19
Author: Jaeden Amero

This downtime has been the longest that this site has experienced. For that, I apologize.

It is quite surprising when you see a user on your server that you know isn’t supposed to be privileged running about eight wget and eight sendmail processes simultaneously (new ones being created and destroyed all the time), using up a good portion of my CPU time. I came to the obvious conclusion that I had my server broken into (electronically) and immediately shut down the server, locking everyone out, even me.

I contacted my kick ass host and had them send me an archive of my box in a tar ball (tgz). They were very empathetic and set me up a new box with a clean OS install. The response was quick and the transactions smooth. From there, I spend the last few weeks rebuilding my server.

I began researching more deeply into computer security during my rebuild. I’ve been reading the NSA’s guide to securing my operating system and hope that my implementation of many of its recommendations will benefit this site’s security. That said, be nice and don’t test it maliciously please. But feel free to alert me if you find anything that looks a bit off, if you do feel like auditing this site.

On a lighter note, it looks like devkitPro is going to be updating a lot of their toolchains and libraries, devkitARM and libnds included. The Introduction to Nintendo DS Programming manual is alive and well and far from the deadness this site has been in. It is being updated to support the new toolchain and libraries. If you feel you need a certain feature of the new library (perhaps the use of the FIFO, aside from its uses for sound or perhaps libwifi or libfat) covered or feel that something was left out in the previous (currently shipping) version of the manual, I’m open and able to implement some new ideas at this time.

Thanks to nyarla of #dsdev for putting up a copy of the manual for people to download during the downtime.