diff --git a/README.md b/README.md new file mode 100644 index 0000000..e38b70a --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +![](./wiki/graphics/project_icon.png) + +# The helds project + +**helds** is a project for homebrew development of games, tools and applications related to handheld gaming consoles. At the moment the target is specifically Nintendo's Game Boy Advance, keeping a look to the Nintendo DS. This project was created as a testing ground for the helds developers, being newbies at both game and console development, but wanting to share experiences as they go along. Hopefully some of what is created here can be of interest or use to others. + +All software that is part of this project is released under an open source license (GPL or BSD-style), and should also be easily browsable. Though anything found here should be considered unstable and unfinished. + +Enjoy! (well... currently there isn't much to see.. but still) + +*The helds Developent Team* + +--- + +## News + +### 2005-12-22 (tangstad) - progress rant + +Things are moving abit slow, but will have more time to play around with the code when the holidays hit. Just discovered and fell in love with [Magnatune](https://www.magnatune.com/), the not evil record company, which should be a great source for in-game music for non-commercial projects. Looking at using Tepple's [GSM player for GBA](https://www.pineight.com/gba/gsm/), used also by his great lumines-clone, [luminesweeper](https://www.pineight.com/lu/). + +### 2005-12-05 (tangstad) - two player with smoke + +Working on making the cartest demo into a two player minigame. I've put the plans for chasers on ice and currently thinking about adding rockets. Right now the demo is usable by two players at the same time, one using left/right on d-pad and L-button for acceleration and the other one using B/A for left/right and R-button for acceleration. + +![Two cars with smoke.](./wiki/graphics/two_cars_and_smoke.png) + +### 2005-11-24 (tangstad) - nice car driving + +Added some nice rotating controls with variable speed to the cartest demo, together with better wrapping at the screenborder. Now all that remains is to get started on the flocking/swarming algorithms for the green chasers. + +### 2005-11-23 (tangstad) - rotated sprites + +Been a while since last update, but played around abit today with sprite rotating on the GBA (see [source:gba/cartest](./gba/cartest)). Currently it's a test of a simple car sprite ![sprite from cartest](./wiki/graphics/small_car.png), movable by using the d-pad. It uses a single sprite graphic rotated in 45 degree increments using affine transformations. + +### 2005-11-10 (tangstad) - gba tools used by helds team + +To get an overview over what software and are used by the helds development team when programming Game Boy Advance homebrew, see [GameBoyAdvanceDevelopment](./wiki/GameBoyAdvanceDevelopment.md). + +### 2005-11-09 (tangstad) - img2bin.py image/tile converter + +To learn abit more about sprite layouts I made a simple script to convert images of most kinds to a binary that can easily be included when compiling a GBA rom. It can optionally lay it out as 8x8 tiles and create a BGR palette file. It's a python 2.3 script that just requires PIL, Python Imaging Library. For source code and download see [source:gba/tools/img2bin.py](./gba/tools/img2bin.py). + +### 2005-11-08 (tangstad) - sprite debugging + +Been playing around with GBA programming, just making a simple logo splash screen application with a single sprite. Had some problems debugging it as the linux version of [VisualBoyAdvance](https://vba.ngemu.com/) doesn't include memory map viewers as the windows version does. I just found out that the windows version will happily run through [Wine](https://www.winehq.com/) on linux though, as long as you provide the MFC42.DLL. + +### 2005-11-04 (tangstad) - helds.org domain aquired + +Coincidentally I found that the helds.org domain was available and nice to use for this site. We will still be hosted through [PVV](https://www.pvv.org/), but we now have a nice url available. Still haven't decided whether it should just be a simple redirect to the pvv-site, or use cloaking/frames to show the nice short url in the browser all the time. Currently redirect is used. + +### 2005-11-03 (tangstad) - helds is alive + +The helds project is officially open. Source code will be managed through subversion ([browse source](https://dev.pvv.ntnu.no/projects/helds/browser)) and this wiki will be available for subprojects. We even have a cute logo. Welcome! + +## Current Activities + +- Install a better news/blog-interface for Trac (with rss), if they ever release one +- Flesh out this site +- Add current projects to this site (map-displayer) +- Start development of new stuff +- We really need some pictures here... put some up + +## Contact + +For questions or comments about the helds project, please contact The helds Development Team . + diff --git a/wiki/GameBoyAdvanceDevelopment.md b/wiki/GameBoyAdvanceDevelopment.md new file mode 100644 index 0000000..16a0234 --- /dev/null +++ b/wiki/GameBoyAdvanceDevelopment.md @@ -0,0 +1,28 @@ +This is a list of the software/hardware used by the helds development team, so keep in mind that **this is not a complete (or even extensive) list over software or hardware**. Unless otherwise mentioned, **software listed here is for linux.** + +## Software + +### Compiler + +The easiest way to compile GBA homebrew code is using devkitARM, a toolchain based on GCC. devkitARM is part of [devkitPro](https://devkitpro.org/), which contains libraries and compilers for several portable platforms. We also use libgba, a development library containing memory constants and practical functions. libgba is also part of devkitPro. + +devkitARM and libgba can be downloaded from the [devkitPro project page](https://sourceforge.net/projects/devkitpro) on sourceforge ([link to files](https://sourceforge.net/project/showfiles.php?group_id=114505)). Remember to get the [gba_examples](https://sourceforge.net/project/showfiles.php?group_id=114505&package_id=159894) as they make a good structure for basing new projects. + +See [devkitPro](https://www.devkitpro.org/setup.shtml) site for installation and setup instructions. + +### Emulator +To get instant feedback when developing, you really should have an emulator available. The best one found so far for linux is [Visual Boy Advance](https://vba.ngemu.com/). For better debugging it's possible to use the windows version on linux through [Wine](https://www.winehq.com/). The windows version includes memory viewers and state inspection, making it alot easier to figure out when you've set your OAM entries wrong or placed stuff in the wrong memory area. + +### Image editor + +I know there are lots of tile utilities + +## Hardware + +## Game Boy + +You really need to get the hardware if you want to have fun developing homebrew. Playing around in the emulator is nice, but it can't compare to the real thing. + +## Flash cart / Flash2Advance + +To get your newly compiled homebrew running on a game boy, you can use a flash cart. We're using the Flash2Advance usb linker to connect the game boy to a PC, then use the F2A writable cartridge in the game boy to store the rom. After the rom has been transfered, you can take your game boy with the flashcart and show your new creations to your friends. Great work is being done on [if2a](https://if2a.free.fr/), so you can use the F2A linker on linux, OS X or windows. diff --git a/wiki/graphics/project_icon.png b/wiki/graphics/project_icon.png new file mode 100644 index 0000000..3126174 Binary files /dev/null and b/wiki/graphics/project_icon.png differ diff --git a/wiki/graphics/small_car.png b/wiki/graphics/small_car.png new file mode 100644 index 0000000..6d961f0 Binary files /dev/null and b/wiki/graphics/small_car.png differ diff --git a/wiki/graphics/two_cars_and_smoke.png b/wiki/graphics/two_cars_and_smoke.png new file mode 100644 index 0000000..0c231d0 Binary files /dev/null and b/wiki/graphics/two_cars_and_smoke.png differ