megaman | hive | dir2xml | tuxnes | ports2html
i am, as you can probably assume: tomo at

YADDA this document is out of date.

i am a recent invader to treetown. i live and work here. my hobbies and interests include: skateboarding, snowboarding, hacking, spinning drum'n'bass records (i basically like virus, no u turn, old R., and not much new stuff), techno (detroit, minimal, etc.), linguistics, languages (currently learning: french). there's currently no reason for this page to exist and you have probably stumbled upon this page by removing part of another link.

i have started taking pictures of the various graffiti around ann arbor. it's mostly stencil graffiti, which there is relatively a lot of in this small city. the gallery is here: also, i have been travelling around the world. i have taken some pictures and here are the ones i've had a chance to put up: Los Angeles Hong Kong Manila Jakarta Singapore Kuala Lumpur Montreal Amsterdam

MEGAMAN my current big unfinished project is a rewrite of the capcom megaman engine. the goal is to have a system which can, given proper source files and graphics, emulate the various original megaman games for the NES. then, one can write one's own games in the same style, because we all know one of the reasons that series was so popular was the fun and familiar game play and style. this will let you fulfill your personal dreams of building your own megaman clone.

currently, the system allows you to select a few different stages (heatman, crashman, airman, bubbleman, from megaman 2), and move around in them, fighting a few enemies that have been implemented and finding the boss, if he exists. you can change weapons, get hurt, get powerups, and die. there is also multi-player networking support. there is no sound.

Megaman vs Mario mode

speaking of games, i guess i wrote some gtk/ncurses games before.. if i can find them maybe i will post them too.

here are code-related things i have recently touched.

HIVE hive is an extensible HIERARCHY VIEWER. well, right now it's just an XML viewer. it uses libxml2 to parse an XML document, then gives you a shell to browse through the "tree" and perform operations on your "view". for example, you can hide certain subtrees from view, or open others and recursively open each subtree's subtree to get a complete view of it. then you can close that subtree to get a collapsed view. think of file managers such as windows explorer. i wrote it because i didn't have any good way to view XML in openbsd. it has come in pretty handy when viewing large documents where manually shaping my view takes too much time.
well, here's a "screenshot":

/0/> ls
-         catalog( ) 
+ 1/       company( ) = Now You're Cooking
+ 2/       item( ) 
+ 3/       item( ) 
/0/> open 2
/0/> list
-         catalog( ) 
+ 1/       company( ) = Now You're Cooking
- 2/       item( ) 
+ 2/1/      name( ) = Microwave
+ 2/2/      price( ) = $105.00
+ 2/3/      manufacturer( ) = Hokusai, Jr. 
+ 2/4/      colors( ) 
+ 2/5/      summary( ) = 1100-watt, 900 microwave oven 
+ 2/6/      description( ) = This 1100-watt microwave with its capacity of 900 cubic
               centimeters is ideal for personal use. The rotating plate makes sure you
              r food is cooked evenly. Dinner is served! 
+ 3/       item( ) 
/0/> cd 2
/0/2/> open *
/0/2/> list
-         item( ) 
- 1/       name( ) = Microwave
- 2/       price( ) = $105.00
- 3/       manufacturer( ) = Hokusai, Jr. 
- 4/       colors( ) 
+ 4/1/      color( sku="HM-204G" hex="#cccccc" ) = Gray 
+ 4/2/      color( sku="HM-205M" hex="#993333" ) = Maroon 
- 5/       summary( ) = 1100-watt, 900 microwave oven 
- 6/       description( ) = This 1100-watt microwave with its capacity of 900 cubic 
             centimeters is ideal for personal use. The rotating plate makes sure your 
             food is cooked evenly. Dinner is served! 

XML2DIR included in the hive package is dir2xml, a very simple tool which takes an XML document and creates an analogous directory tree structure. then, you can use your regular file/text processing tools to "parse" the XML.. get it? well, here's an example:
<me name="tomo">
<mom name="hiroko">plays violin</mom>
<dad name="ba">grows bonsai</dad>
<sis name="yumi">studies japanese</sis>
$ xml2dir tomo.xml
$ cd tomo
$ ls
dad	mom	sis
$ ls -a mom
$ cat mom/.text
plays violin
$ cat dad/name

TUXNES tuxnes, a NES emulator, will work on openbsd if properly coerced. first of all, you will need libgnugetopt, which isn't yet an openbsd port, so download libgnugetopt-1.1.tar.gz and make, and manually install it (might not be able to trust it). actually, getopt_long, which is what we need libgnugetopt for, is going to go into a standard openbsd library soon and this won't be necessary. then download tuxnes-0.75-openbsd which is tuxnes-0.75 with some changes i made to make it build (2.9/i386). it's a bit too hacked together to become a port yet, but it should build and be playable. sounds doesn't quite seem to work as the mu-8 format which it says it supports, isn't quite working (this is supposedly now going to be worked on, but hey, if you've got time..)

PORTS2HTML ports2html turns the OpenBSD ports tree into a web browseable web page. example

$Id: index.html,v 1.2 2003/12/22 04:58:20 tomo Exp $