CowBite Source Released Under GPL


Sun Sep 15 23:15:58 2002

After much deliberation, I have finally decided to release the CowBite source code under GPL. The main reason for this being that I have way too much work on my plate to be able to do the emulator justice, and I want to give others the chance to breathe new life into it. I know that there are more than a few people out there who were itching to get their hands on something like this! See the readmes included with the distro for further details.

Also, I have updated the binary to VIIIpa2, which has more of the "debug mode" interface implemented. However, I have somehow introduced a bug that makes many games behave strangely, though not always consistently so. For those interested I think it has something to do with interrupts, CPSR/SPSR swapping, or state changes. It is certainly fixable, but I am too loaded with work at the moment to give it the attention it needs.:(

Sun Aug 4 17:21:40 EDT 2002

At long last the CowBite spec is what we might call "mostly complete". Thanks to Martin Korth, I was able to consolodate the info from no$gba's documentation with the CowBite spec in order to fill in the missing blanks. I can hardly express how detailed and thorough Martin is both in emulation and documentation. I would be remiss if I did not suggest going to his site right now and giving no$gba a whirl, at the very least because it has great help docs.

So all that remains now is for me to touch up the doc, and perhaps reorganize it somewhat. How do you feel about separating each section into a different file? Thoughts, anyone?
Tue Jul 16 16:21:49 EDT 2002

For the GBA programmers out there, I've added a gamma LUT to the downloads section. The idea is to gamma correct your palettes at run time using the table, possibly allowing the user to specify how light/dark they want the game to be (e.g. if they run it on hardware vs. on an emulator, or if they have an AfterBurner kit and don't need extra brightness). I also included the program I wrote to generate the table, so that it can be modified to suit individual needs (and so you can fix any bugs I might not have caught:). I know that gamma does not fix all of the GBA's light problems, but (to me anyway) it looks a little better than just increasing the image brightness.

Fri Jun 28 03:27:01 2002

Though I'm only about half-finished with this release, I've implemented enough of the graphical debugging features that I thought it was time for a pre-alpha of CowBiteVIII. Primary things to look out for:

- A background viewer. This is probably the coolest of the new features. Make sure you turn on dynamic refresh and play around with the different options. Try loading some of your favorite demos to see how they handle the background loading and scrolling. It's possible to actually play a game using the background viewer in place of the normal game screen.
- An obj viewer
- A palette viewer
- Implemented windowing and alpha blends/fades.
- Significant rewrite of many graphics routines; increased speed for you, increased headaches for me
- Many graphical bugs fixed.
- Keep your distance from the source/asm debugging features; they're awaiting an overhaul.
- Note that this is PRE-ALPHA. I shouldn't have to say this, but there are many things that are just plain not implemented. I recommend putting this into a separate directory from version VIIa3.

As always, let me know what errors you find - especially anything pertaining to the features I've just added. For those interested, the next thing on my list is to improve the source debugging.

Mon Jun 10 02:58:23 EDT 2002

Has it really been three weeks since the last update? At any rate, the newest thing (if you can call it that) is that I changed all of the register names in the CowBite Spec to match Eloist's gba.h, which appears to be the most popular naming scheme for registers. Hopefully this will make it easier to search for the thing you are looking for in the doc. There may be other slight additions (such as DMA timings) that I have added since the last update. Have ideas for how I can improve the doc further? Let me know.

CowBite VIII is coming along. It is taking longer than expected, primarily because of grad school and because I decided to re-write large sections of the graphics engine. In addition to being able to support alphas, fades, and windows, CowBite VIII will run significantly faster than CowBite VIIa did. I'm still working on the debugger, though. I wish I could pinpoint when I will be done, but I would guess that the first pre-alpha will be out in a few weeks from now.

Mon May 20 00:17:35 EDT 2002

In addition to the usual corrections/additions (thanks, Kay) I've modified the format of the CowBite Spec to (hopefully) make the IO register bit fields more legible. I also reworded a few things (mainly the sections on alpha blends and on background priorities) in order to clarify a couple of points.
Thu May 16 03:29:38 2002

I've updated the CowBite Virtual Hardware Specifications with various info and corrections people have sent me over the past month. CowBite VIII is still in the works but is undergoing reconstruction. A public pre-alpha might not be available for a few weeks now, unfortunately, but I think it will be worth the wait.

Wed May 1 13:32:33 EDT 2002

Just a quick progress update - I've been significantly reworking the CowBite debugging interface so it may be a week or two before I have a pre-alpha of verion VIII ready. I've also been fixing bugs and working on improving BIOS and graphics emulation. Developers, keep sending me your feedback on version VIIa3; it's been quite helpful in helping me track down those bugs!

Thu Apr 25 04:16:39 EDT 2002

CowBiteVIIa3 fixes the awful local variable viewing bug, the source window resize bug, and increases stabs compatibility somewhat.

Wed Apr 24 03:32:36 EDT 2002

CowBiteVIIa2 is slightly more stable and fixes some source debugger issues.

Tue Apr 23 02:36:49 EDT 2002 - Release VIIa

Well, I finally have implemented (slightly more than) the basic feature set I'd set as my goal for CowBiteVII, it's just a matter of weeding out those bugs. Just as a re-cap, here is what it's got:

- Source debugging. This wasn't what I'd planned on, but I needed it, so there it is. Note that it now has the option to toggle between source and mixed source/asm.
- A variable/symbol viewer
- Direct Sound (This was the main thing I'd wanted to add. I never thought it would take as long as it did!)
- Created a new breakpoint dialog, added ability to use rudimentary conditional breakpoints
- A statistics viewer (i.e. counts interrupts, illegal memory accesses, etc.)
- Revamped internal debugger code
- Made asm debugging interface more fluid (added a scroll bar, etc.)
- Added a hardware register infoviewer/editor
- Added a memory/dissassembler dump/load feature
- Timers and timer interrupts
- DMA interrupts
- Ok, so I didn't implement Joystick interrupts as I'd said I would. But if you need it for your development, I can probably have it implemented within 24 hours - I'll just need a binary (preferably an Elf) and some source, if you are comfortable with letting me see it.

Now, about the bugs. There are a ton of them to be fixed, but there are also a bunch of things I want (need) to add to CowBite, and I don't have the time or resources to do both of these things. What this means is that VII will never be more than an alpha, and I'm just going to move right on to CowBite VIIIpa1, probably introducing new bugs at the same rate I'm finding old ones. However, you (mostly meaning developers) can always help lessen the bugs by sending me bug reports.

Here is what I intend for CowBite VIII:
- Support for types
- Microsoft-like "auto" variable viewing
- Improve source debugging interface
- A sprite viewer and a map viewer
- Alpha/fades
- Windowing (maybe)
- Emulation of more BIOS functions
- More useful info in the hardware register viewer
- Some runtime debugging features (in the form of fake IO regs, most likely)
- Improved configuration options

Got any ideas for what else I should add? Let me know.

There is a CowBite Specification Doc in the downloads section; this is a reference I add details to whenever I work on CowBite, and should be a useful tool for home-brew developers who, like me, don't have an official devkit. I have recently re-written this doc in html, to make it easier to read and browse. Let me know what you think of the new format.

Use CowBite at your own risk. I consider it to be a hobby project and as such I'm happy to provide it for free in case some might find it useful, but provide no guarantee as to whether it will work properly, crash your computer, eat your homework, etc. I do not know if it will ever run any commercial games, but I would guess that if it ever does, it won't be for quite some time.

The CowBite Interface

I feel kind of bad that my emulator is perpetually half-finished. So here's some links to things I've done that are either all-finished or mostly finished. Hopefully someone will find them entertaining.

My Home Page
- Now with gobs of graphics and a glitzy Flash intro. This page has links to all of my projects, film, music, etc. as well as info about me (including a resume).

3D Art - These CG movies are what I make in grad school. Primarily using Maya and 3DSMax.

Goth Girl
- This is an all-java demo game I made in 1999. You play it right in your browser.

- Here is a page full of music I wrote, in mp3 format.

Dark Age FRPG
- This is a tabletop RPG I designed/illustrated when I was in high school, and put on the web when I was a freshman in college.

Game Boy Advance Development Page - A page full of resources for GBA developers. It's also a good source for GBA demos.

Game Boy Advance Developers - A very neatly organized page with docs, tools, apps, etc. related to the GBA.

Marat Fayazullin's Web Page

Eloist's Web Page - Complete with downloadable source for the EloGBA emulator.

The Castlevania Dungeon - The best web page I've found relating to one of the all time best series of games.

Naflign's Ego - A guy who likes Phantasy Star, a lot. He tends to have lots of information related to Phantasy Star (that's retro, not Online), and is working on porting the previously untranslated "Nei's Adventure" video game to the PC.

Cows Are Cool - A site for people who like cows.

Ok, I know that not everyone wants to send hate mail. But the more problems you find, the more likely it is that CowBite's compatibility will increase. For developers it's especially useful for me to know what particular code segment/instruction is failing. Please mail me with comments, bug reports, etc. at

Don't ask me for ROMs or where to find them. Contrary to popular internet hearsay, it is illegal to possess a copy of a commercial ROM for any amount of time (even if you own the original cartridge!).

GBA and game Boy Advance are registered trademarks of Nintendo.
CowBite is copyright 2002 Thomas Happ
Page Last Updated: God only knows

This page has been accessed 198575 times since 6/22/01.