First and foremost, I don't want to get anyone's hopes up here. I am not
intending to begin actively developing higan again as I've used to.

However, I also don't want the code to rot. The reason there hasn't been even a
single WIP release in a full year has been because the core GUI library, hiro,
has undergone massive changes. It currently only compiles under Linux/BSD with
GTK+ 2.20+. This means that even upon writing a new UI, it wouldn't be usable by
most people. It will take months of effort at my current pace to get hiro fully
compatible with Windows, OS X and Qt again, and I really don't even have the
motivation to start on that.

But it would still be nice to apply bugfix submissions, and keep the code
compilable going forward. So to that aim, I have started on a new GUI using
hiro, with the aforementioned limitations that this will only work under Linux
and BSD. I've decided to call this new UI "tomoko" (if you get the joke, you win
a cookie!) It's going to follow the UI paradigms of v094 very closely (game
folders, etc), but with even more minimialism. I want to keep the codebase as
small and nimble as possible, so that even radical changes to eg hiro can be
applied without a massive amount of effort.

The primary goal of tomoko will be just so that I can build and test bugfixes,
and as such, it'll be entirely devoted to the design I am wanting. It will also
allow new versions of the core library (in other words, the non-GUI portions) to
be compilable under all platforms, which will allow other projects that utilize
higan to use updated versions.

The long-term goal I am really hoping for is to find some people willing to help
maintain a new UI, which I would want to be more in the spirit of bsnes v070/Qt.
In other words, loads of features, ease of use, ability to use regular ROM
images and patches, and all of that. I've realized this isn't going to happen
with me in absentia, so I'll see about possibly setting up a shared repository;
but I'm also not going to be able to drive something like this alone, so if
there isn't much interest, then this won't happen either.

So now for the good news, tomoko's already capable of loading and saving games,
and has video, audio and input hooked up; along with the library and input
manager UIs connected. Still a long way to go, but after a full year of zero
activity, it's at least some form of progress. Here's a
screenshot of it in action.
Not much to look at, of course.

renshuu2015-01-19

My SRS tool is mostly finished now. I am calling it renshuu (練習). Yeah,
unfortunately Anki already took the best Japanese word for this kind of
software. Oh well.

The SM2 model that Anki uses was too complex (or just too poorly explained) to
implement, so for now I'm going with a ten-stage Leitner system. I've designed
the card scoring to allow for model changes at any time without losing all of
your previous review scores.

The deck itself is of course in BML format, and beautiful to look at in any text
editor.

The program itself contains a deck manager, a deck editor, and a deck reviewer.

I ended up receiving a lot more responses to my previous post than I had
expected. Around 100 e-mails, and another 100 or so comments on various forums.

I'm extremely grateful for the kind words from everyone. And I sincerely
apologize, but I haven't really been able to reply to many of the messages. But
please know that your words are appreciated all the same.

Japanese

I picked up the げんき textbook series recently, and I've now finished the first
of the two books. The first book was mostly stuff I already knew, but it never
hurts to polish up on the basics and get some practice in. I even did every
exercise, although it was hard to improvise many of the classroom-based ones.

About half of the content in the second book looks to be stuff I don't yet know.
Along with the new vocabulary words gleaned from the first book, I will need to
stop for a while and get SRS software up and running before I proceed. Otherwise
I will just forget most of what I've learned.

Overall, I'm fairly disappointed that years of studying has resulted in me only
being able to pass the JLPT N5 (equivalent to 450 - 750 hours of study.) The N1,
which is roughly on par with middle-school fluency, requires 4,500 hours of
study. So, a very long way to go still. But, this time I'm changing up my
studying methods.

I would still really appreciate it if any native or N1-level speakers wouldn't
mind chatting with me from time to time so that I can practice. In return, I
could help with teaching English or programming stuff, in which case we'd try
and divide the time 50/50. If you'd be up for that, please ping me at
hotmail.com, setsunakun0.

FreeBSD

I've upgraded to FreeBSD 10.1-RELEASE (amd64). So far, I'm very happy with it.
Lots of the upgrades and enhancements are very much appreciated, so even despite
the issues below, I'm happy with the upgrade.

Now that the base has a stable version of GCC 4.9, I've officially switched to
C++14. Right now, Clang 3.4.1 seems to be unable to run hiro, and a backtrace
isn't revealing any useful clues.

As far as new bugs, I encountered two regressions. The first was Chrome not
displaying properly. Chrome seems to assume that hardware OpenGL acceleration is
available, even when running with the VESA driver now. So, I run with
chrome --disable-gpu to resolve this.

The second bug was a lot nastier. It requires three components to trigger.
First, it only happens when using the VESA Xorg driver. Second, it only happens
when using the Thunar file manager. Third, it only happens when using custom
Xorg mouse cursor themes (almost all of them are affected, including
Vanilla-DMZ.)

When opening a folder that has a large amount of files, or is mounted remotely,
the cursor would disappear. It would stay invisible until you moved the mouse,
at which time it would reappear. But the second you clicked again, the cursor
would again disappear. Nothing short of restarting Xorg entirely would restore
it.

I wasn't about to go back to the kernel-panicking nvidia binary drivers, and I
don't yet have my Thunar replacement completed, so I opted to use the hideous
stock black cursor theme instead. Sigh.

Current Plans

I'm currently in the design phase of creating an SRS tool, and I also need to
create a tool to track my article / manga translations, so that I can try and
get them reviewed and corrected.

So, I am forced back into programming for a bit. But I'll need to move quickly;
as I don't want my study habits to decay again. I'm trying to keep up a pace of
studying at least four hours a day, but would really like to get that up higher
still.

Depression2014-12-12

This past year, I've become increasingly disillusioned and unhappy that my only
really serious talent is in computer programming. Everything else I try and
excel at goes absolutely nowhere.

My studying has been off and on, but I realize that I've spent the last fifteen
years of my life drawing and studying Japanese. I'm getting old, and my health
is starting to fail. And yet my drawings look like something a ten year old
would make, and I sound completely retarded whenever I try and say anything in
Japanese. This is insane. It makes my physically ill to think about. Even if
by some miracle, I mastered both of these tomorrow, half of my productive life
in using these tools has been permanently lost, and I can never reclaim that
time. At this rate, I won't be skilled in either before I am too old to do
anything anymore. I'm going to end up dying almost entirely with regrets.

I'm so fucking tired of it all. No amount of studying or practice ever seems to
lead to any meaningful improvement. These human brains, especially mine, are so
unbelievably fucking terrible. Intelligent design my god damned ass. It is
absolutely absurd that to memorize a single word, I have to drill on it
literally thousands of times before my brain takes the fucking hint. And by
the time I do it, I've pushed two other words that I used to know out. Nobody
would design something so unbelievably stupid, cruel and frustrating, unless
they were a sadist.

But I won't ever give up: I'm just going to have to go completely insane on
it and dedicate every last free hour I have to them. Life isn't worth living if
we can no longer better ourselves.

This will be probably the longest shot I've ever taken, but ... if anyone out
there is fluent in Japanese (as in, not "I took a college course once and I have
a Japanese girlfriend"), and is willing to chat with me about anything, I would
truly appreciate that more than words could express. I'd be happy to return the
favor with lessons on English, programming, emulation, reverse engineering, ROM
hacking or server administration. I need someone to have actual communication
with. But I know what a tall order that is: who would want to talk to someone
they could barely understand, right? It drives me up the wall trying to listen
to people who can't speak English, so it's only fitting that the reverse would
apply to me. It's not that I choose to be annoyed by bad English, yet it's still
karmic justice, right?

Still, if anyone were interested, my e-mail is the same as always. On
hotmail.com, the user name is setsunakun0. Note the zero, not capital 'o'.

But ... I have to refocus my time. I can't spend it all on the billion and a
half programming projects I've started. I need to start dropping projects. There
is no intellectual pursuit in continuing something I've already mastered, and I
simply don't have the time for it if I want to seriously study other things.

I'm so hesitant to just outright quit on higan, but I don't want to be like the
authors of the major SNES emulators who dick people along and pretend they're
still active projects that just haven't had an update in 8+ years now. So at
this point, I will just painfully say ... higan is dead for now, sorry. If and
when I can attain some joy out of other pursuits in life, I might resume it
then. But if history is any indication, I wouldn't count on it.

As for my other projects ... a lot of them are basically "complete" in a way
that an emulator never can be, so there's no great loss to not receive updates
to eg libco. And I'll still probably push out some new builds for bass and beat,
just to get them up on the new site.

I'm still going to have to do some programming: I need to build out SRS
learning tools and such. But I can no longer ask or recommend anyone to use any
of my libraries such as ruby or hiro. Which is probably for the best, as I never
did manage to produce anything resembling a stable API in all of my years as a
programmer.

My dreams of building a programming language, GUI library (not wrapper), and
forum software are going to have to die here.

Well then, off to study ...

More Updates2014-11-04

The site is now being generated via Document Markup Language (DML), along with
server-side CSS variables for styling. Very nice to not have to manually write
out HTML tags anymore.

All old forum accounts with at least 15 - 20 posts have been activated on the
new forums. For anyone else waiting on an account, please be patient: I'll open
up registration again as soon as I have the time.

Updates2014-10-28

The higan, loki and about pages are now up once again. I still need to recreate
the remaining pages. Note that the URLs to the emulators have been updated.
Rather than byuu.org/higan/, the URL is now byuu.org/emulation/higan/

For the past week, I've been revamping nall/string to scale better by combining
small-string-optimization with copy-on-write semantics. I've also revised the
API and made all but the match/tokenize functions fully binary-safe.

With that out of the way, I need to resume work on phoenix/gtk. I am currently
battling a tough issue with GTK+ lacking a way to deparent a widget once
attached to a container, and GtkNotebook destroying all child controls when it
has been reparented. As of yet, I've been unable to think of a non-hackish way
to work around this. But until this is overcome, I won't be able to proceed on
to updating higan to compile again with all of the new, and extensive,
underlying library changes.

To those waiting on forum accounts, I apologize for the excessive delay. I have
to migrate the accounts manually, one at a time, and it just takes hours to do
so this way. Please understand it's nothing personal, I'm going by the top
posters when I have time. I hope to get some more accounts migrated over soon.

IE8 support2014-10-18

So it turns out that html5shiv does indeed work great, it was just IE8 forcing
compatibility mode on because I was running it locally.

But like everything in the comp sci world, it seemed kind of bloated at over
10KB. So I wrote my own version. It's 574 bytes. If you'd like it, you can
download it here. I'm sure it won't handle as many
edge cases, but it works perfectly for my site at least.

On Ten Years of Emulation2014-10-15

My emulator, higan, is now over ten years old.

I must stress right away that work will continue on the project into the
foreseeable future. But, there's no denying work has slowed down immensely. In
fact, there hasn't been much of any progress since January. There are several
reasons for this, which I'll go over.

In January, I was in the process of wrapping up the finishing touches on loki,
my SNES debugger, in preparing for a v095 release.

The first major roadblock was Debian's decision to acquiesce on systemd. At that
time, Debian was my primary development operating system. Having suffered
through years of broken audio by the same egomaniacal Redhat developers, I
wasn't eager to repeat the experience by introducing such fascinating features
as having an HTTP server that generates QR codes as part of my init system. I
fundamentally believe systemd to be poorly designed and a major step backward
for Linux. But with Linus asleep at the wheel while Redhat turns Linux into
Windows, the writing was on the wall: it was time for me to move on.

This led to a few months of crash-course learning FreeBSD. Now, FreeBSD makes
for a wonderful server, but is not exactly the best way to run a desktop. It can
be done, and to great effect, but it requires an immense amount of effort and
dedication.

Due to most developers only considering Linux, this leads to lots of portability
issues that result in bugs which slip past port maintainers. I battled through
issues with font rendering, libvte crashing terminal instances, Thunar
refreshing and resorting on every gedit save due to the latter's insistence on
creating temporary files for every save, mousepad crashing when opening any file
an even multiple of 4KB due to an out-of-bounds memory access which apparently
was hidden by the Linux implementation of mmap, more Thunar issues in failing to
update file types and file sizes in its displays, ibus issues with anthy and
mozc, browser issues with large images, and on and on.

The worst part was probably the horribly buggy binary nvidia driver. It was so
unstable, taking my entire system down, that I went back to using vesa. By some
miracle, my graphics card actually has a 2560x1600 vesa mode. After manually
rewriting my MTRR tables, I've found I actually get rather decent performance.
By multi-threading my software XShm renderer, I can even run my emulator and
watch movies just fine.

For the most part, I was able to work around these software issues. In many
instances, I had to switch to new software programs, or revert to older ones.
For instance, the Firefox team decided to completely change its user interface
to the braindead Australis design, and to hell with anyone who didn't like it.
Classic Theme Restorer may get something about 80% close to what you're used to
on Windows, but is an unmitigated disaster on Xorg.

After Metro, Unity, Gnome 3, KDE 4, Firefox Australis, and on and on; it has
become painfully clear to me that I cannot rely on software vendors to not
radically disrupt my workflow whenever some wide-eyed kid fresh out of college
decides it's time to completely redesign applications that were perfectly fine
already. I'm not against change when it leads to better ways of doing things.
But I am vehemently opposed to change for the sake of it. And my desktop is not
a god damned tablet, you stupid fucks. But well, as they say, if you want
something done right, you have to do it yourself.

Upon attempting to write replacements for critical programs, such as a file
manager and text editor, it became clear that my UI abstraction layer, phoenix,
was not going to cut it. I had to go back to the drawing board and work on the
largest redesign that the project has ever seen. This required many new
components in my template library, nall, such as shared objects and IPC. I then
added a lot of power to phoenix, mostly focusing on the GTK2 target. I've added
new widgets, new functions, and an entirely new shared memory model that will
greatly aid in writing dynamically generated interfaces, among other things.

And just as I was finishing this up, the godawful web host I was using, InMotion
Hosting, decided to reveal their gross incompetence. First, they managed to
botch an Apache upgrade, resulting in all of my PHP files being accessible as
plain-text. So anyone typing in /config.php would be greeted with the plain-text
login credentials for MySQL. Then, a few weeks later, another update corrupted
half of my phpBB SQL tables. Repairing didn't work: permissions were completely
broken, allowing any user to edit any other user's post, page refreshes were
broken, and many other similar issues arose. I had no choice but to drop five
years worth of posting history and start over. But no way in hell was I going to
start over on that host.

And so now, I've had to move my site over to a new host. This time, I decided to
go the VPS route so that I could be in control of software updates. I certainly
couldn't do any worse than my previous host. Thankfully I have plenty of
experience in running and securing web servers, so this wasn't very painful.

But frankly, I've grown sick of Apache, PHP, and phpBB. I am so tired of
bloated, buggy, poorly designed software. So now I am further working on
designing lighter weight replacements with my usual emphasis on minimalism. Just
because it's the web, that doesn't mean I want to throw away native code
performance and compile-time type safety. And I am so tired of fighting
mod_rewrite to do simple things like map a subfolder to a subdomain.

I've been having frequent chest pains and issues with lethargy, which my GP is
either too incompetent or apathetic to help me with. So my output has been
reduced quite significantly. I've been trying to take up healthier eating and
exercise to try and improve my health. All the same, I find it increasingly
difficult to pull off marathon coding sessions any longer. And even when I do,
it leaves me out of commission for the next day or two.

So as you can see, it's just been one hell of an awful year. I've been jumping
from fire to fire, struggling to keep everything afloat. And it's been taking a
toll on my enjoyment of programming. It seems like the more work I try and do,
the more work I have waiting for me. I can never really complete anything when I
keep getting new things dumped on me all of the time.

I have an incredible backlog spanning years worth of work here. I have to map
out and scan nearly 1500 games, I have to do all of the programming work for a
fan translation of Tengai Makyou Zero, I have to finish up the Windows, Cocoa
and Qt4 phoenix targets, so that I can continue on the design of higan and loki,
I have to write a myriad of desktop applications, up to and possibly including a
web browser frontend (for either Webkit or Gecko), and then I have all of my
backlogged hardware research on the BS-X, Cx4, etc, and it just keeps going. All
the while dealing with diminishing health.

Yet when it comes to all of this ... I really feel that I've already
accomplished more than I ever wanted to or thought I could on SNES emulation. I
no longer feel like I am facing strong challenges that force me to grow, but
rather an infinite stream of tedium and maintenance. I'm not saying I necssarily
hate programming, just that it's lost its magic.

The most fun I've been having lately has been in attempting to improve my
Japanese knowledge through some fan translations of manga (holy hell is that
language a nightmare to learn), and getting a bit back into drawing again.

So, what I hope to do from this point out is to start winding down on my
programming projects, and focus on new ventures while I'm still young enough to
take on large new challenges in fields I have little to no experience in. Again,
I don't mean to seek to abandon my projects, but to get them more suitable for a
slower development pace, so that I can start branching out into new areas.

New Host, New Site2014-10-10

I now have a new host, and a new site to go along with it. The site itself is
styled the same, but is now written in HTML5.

Unfortunately, it seems IE8 and earlier does not support HTML5, and html5shiv
only seems to make rendering worse. After countless years catering to the broken
mess that was IE6, I swore off ever doing that again. So I won't be supporting
IE8 on this site at all. Sorry for any inconvenience this may cause, but please
use a better browser (read: any other browser), or upgrade to IE9 to view this
site.