Bart Trzynadlowski's Home Page [Circuits] [Emulation] [Video Games] [Software] [Links]


My name is Bart and I'm a graduate student at the University of Washington studying Electrical Engineering. My current focus is on semiconductor devices and fabrication. I graduated Summa Cum Laude with a BS in Electrical Engineering from the University of Nevada, Reno in May of 2006. This page is where is I host some of my hardware and software projects; I hope you'll find something of interest here. Thanks go out to Hacking Cult for the web space! Check them out.

Contact Me: I can be reached at this email address:

What's New: (January 23, 2007)   More than a year has passed since my last update and a lot has changed. I graduated UNR and am now at UW in Seattle. I've been busy with school and haven't had much time for projects (and this isn't likely to change until summer) but I was toying around with something in December that I would like to finish. I've also wanted to sit down and play around with OpenGL some more; it's been a couple of years since I've done any coding with that.

[Old News]



Circuits

Being an electrical engineering student, I enjoy designing circuits. This section will grow over time but hardware stuff typically takes more effort and money on my part than software so it'll likely be a while before this section overtakes the other ones.

Z80 Microprocessor

The Zilog Z80 is truly a classic 8-bit processor. It was used in a lot of early computers, arcades, and video game systems, as well as countless other embedded applications and is still being produced today. Since it can be obtained in a DIP package and operated at clock speeds of a few MHz, it is ideally suited for hobby projects. I prefer it to the 8051, which we use at school, because despite its lack of on-chip memory and peripherals (it's not a microcontroller) it has dedicated pins for both its address and data buses. Due to the large number of pins, you may wish to buy a large breadboard and find some 26 AWG wire with thin insulation. I've been using TASM as my Z80 assembler.

  • BartStation: A homebrew video game system which uses a Z80 CPU and Spartan-3 FPGA for VGA video output

[Return to Top]

 
Emulation

Emulating arcades and video game systems is the shiz-nite! I love this stuff; it's what motivated me to learn how to write serious low-level code in high school. I learned X86 assembly language and the ins-and-outs of IBM PCs to emerge a better programmer than I would have been at the rate I was going before I discovered emulators.

Sega Genesis

My ultimate goal in high school was to write a Genesis emulator and I eventually pulled it off. Unfortunately, I decided to name it "Genital" and now that word comes up a lot when you Google my name -- d'oh! I think I wrote it when I was 16 and, obviously, I was stupidly immature. Then again, not much has changed.

Sega Model 3 Arcade System

Another notable project I was involved in was Supermodel, the first Sega Model 3 arcade emulator, but Ville Linde and Stefano Teso really deserve the bulk of the credit for that -- those guys are amazing hackers. That project taught me a lot about reverse engineering, 3D hardware, OpenGL, and project management. Someday I'd like to get around to finishing that PowerPC dynamic recompiler and writing a new Model 3 emulator from scratch with performance in mind but I never seem to have the time anymore. For now, there's always MAME, which has incorporated and continued the work started by Supermodel!

Motorola 68000 Processor

  • Turbo68K v0.6: My 680x0 emulator library, written in X86 assembly language. Discontinued. Use A68K if you need a fast 68K emulator.
  • 68000 Undocumented Behavior Notes: Explains some of the "undocumented" aspects of the 68000 processor. Useful if you want to emulate it yourself.

[Return to Top]


Video Games

Computer and video games are probably what started me on my path towards engineering. That and lights, especially street lights, which I was obsessed with when I was a toddler. Yeah, I was a weird kid. When I was little, we had an IBM-compatible PC of some sort which I'd use to play games that I ordered from a shareware catalog: Commander Keen, Duke Nukem, Crystal Caves, Clyde, etc. I even remember an obscure game called Beast which I wrote a clone of a few years ago. I might polish it up and release it at some point. We eventually upgraded to a 386 and I was taught QuickBASIC by my cousin. I was instantly hooked and have been programming in some form or another ever since.

I lost interest long ago in keeping up with video games but I still love the classics. I'd rather learn about how things are done and how to create new stuff than waste my time with new games that don't appeal to me.

My Games

There's not really much for me to put here. One of these days I hope to write some more complete games.

  • Snake v0.1: A fun (and very simple) snake game for DOS.

Sega Saturn

I never actually owned one of these until a few years ago when I picked up a second-hand system to try my hand at writing some code for it. I managed to obtain a Pro Action Replay and PC Comm Card which allow me to upload code to the Saturn. Lik-Sang may still carry them. The Saturn is a really interesting system to develop for. I ended up moving onto other projects before I did anything really cool but maybe someday I'll try my hand at it again. Below are some of my projects.

  • sat68kdb: A 68K debugger. Interfaces to the Saturn via the PC Comm Card and Pro Action Replay allowing you to run code and debug on its 68K.
  • 8-bit Bitmap Demo: Demonstrates how to display an 8-bit bitmap on the screen.

Some additional programs, not written by me, which are essential are:

  • satdis: TyRaNiD's Saturn debugger program. Use it with the PC Comm Card and Pro Action Replay to upload and run code.
  • SNASMSH2: SH-2 assembler used by Sega developers.
  • SNASM68K: 68K assembler.

Games That Kick Ass

  • Raiden II: My Raiden 2 fan page. (Under construction.)

[Return to Top]

 
Software

Here is some software I've written that doesn't fit under any of the other categories. All of it includes source code.

Graphics

All of the following graphics programs are for 32-bit DOS and require DJGPP to build. I really do miss DOS. :(

I've also written a couple of graphics-related utilities which should be portable.

  • bmp2raw v0.1: Takes 8-bit BMP files and spits out raw image and palette data.
  • Zoom v0.3: "Zooms" 8x8 ASCII characters. Useful for creating ASCII "banners."

Disassemblers

I wrote these as part of various emulation projects and still find them useful for reverse engineering and verifying that unfamiliar assemblers are generating the code and data I expect. They should be relatively bug-free but I can't give a 100% guarantee. If you see any suspicious output, let me know!

Misc.

  • dos2unix v0.1: Converts text files from DOS to UNIX format.
  • unix2dos v0.0: Converts text files from UNIX to DOS format.
  • swap v0.0: Swaps bytes, words (16-bit), double words, or quad words in files.

[Return to Top]


Links

Video Games

Emulation

  • MAWS: A database of every game in MAME. Includes screenshots, information, and even the source code! Wow!
  • MAME: Pretty much the sweetest arcade emulator, ever.
  • Gens: The best Sega Genesis emulator, hands down.
  • Emulator Programmers Resource: Old and out of date but still useful, especially for beginners.

Binary Translation and Compilers

FPGA

Graphics

Electronics Suppliers

  • Jameco: I purchase most of my electronics parts (mostly ICs) here. Great prices and selection. Shipping can be a bit pricey, though.
  • MPJA Online: There's some good stuff here. In particular, the 3220 T/P 4B/P breadboard (stock no. 4447 TE) is totally bad ass. Its huge size makes it ideal for complicated circuits (especially involving CPUs and MCUs) and the price is unbeatable.

[Return to Top]



[Return to Top]
Copyright (C) 2006-2007 by Bart Trzynadlowski