emiliollbb's brewery

Brewing software for fun since 1999

GBA

The last 2D gaming system from Nintendo. With the same spirit as the original NES, but with all the 2000's computing advances. My favourite system.

My Brews

Duck Hunter

Duck Hunter screenshot

Tribute to NES Duck Hunt [source] [ROM]

Crazy Road

Crazy Road screenshot

Far away in the 80's, before videogames were mainstream, my favourite toy was this artifact: Tomy Racing Turbo. Let's make a GBA 'port' of it. WIP [source] [ROM]

Learn to Brew

Tools

Devkitpro install

  1. Download Devkitpro pacman deb package
  2. Install it
    apt install devkitpro-pacman.amd64.deb
    dkp-pacman -Sy
    dkp-pacman -Syu
    dkp-pacman -S gba-dev
  3. Add to /home/user/.bashrc the following lines
    export DEVKITPRO=/opt/devkitpro  
    export LIBTONC=${DEVKITPRO}/libtonc
    export DEVKITARM=${DEVKITPRO}/devkitARM
    export PATH=${DEVKITPRO}/tools/bin:$PATH
  4. Install emulators
    apt-get install higan
    apt-get install visualboyadvance

Libs

  1. Ray Tracer
  2. Cable Link

Notes

  1. Release: Japan 2001
  2. CPU: ARM7 RISC @ 16.78 MHz
  3. Resolution: 240x160 pixel (30x20 tiles)
  4. Palettes: 2 of 256 different 15-bit-colours. One for background. One for sprites
  5. Each palette can be divided into 16 sub-palettes of 16 colors
  6. Tiles of 8x8px. (s-tiles 16 colors) (d-tiles 256 colors)
  7. Sprites: 128 sprites of 1x1 to 8x8 tiles.
  8. Sprite shape: ATTR0_SQUARE, ATTR0_WIDE, ATTR0_TALL
  9. Square sprites: ATTR1_SIZE_8x8, ATTR1_SIZE_16x16, ATTR1_SIZE_32x32, ATTR1_SIZE_64x64
  10. Tall sprites: ATTR1_SIZE_8x16, ATTR1_SIZE_8x32, ATTR1_SIZE_16x32, ATTR1_SIZE_32x64
  11. Wide sprites: ATTR1_SIZE_16x8, ATTR1_SIZE_32x8, ATTR1_SIZE_32x16, ATTR1_SIZE_64x32
  12. 4 Backgrounds
  13. Regular background sizes: 32x32t (256x256px); 64x32t (512x256px); 32x64t (256x512px); 64x64t (512x512px)
  14. TILE 8x8@4bpp: 32bytes; 8 ints
  15. CHARBLOCK 512 s-tiles
  16. SE (screen entry) is 2bytes (16bit) (16 SE = 1 s-tile)
  17. 6 Charblock of 512 s-tiles. 4 for backgrounds (0-3). 2 for sprites (4-5)
  18. Each charblock is 16kb (4000h bytes). 512 s-tiles or 256 d-tiles
  19. 8 screenblock into each charblock (64 tiles / 1024 SE in each screenblock)
  20. Each screenblock can fit a map of 32x32 tiles (256x256px)
  21. Mode 0: Tiled. 4 backgrounds (BG0, BG1, BG2, BG3). None of them can be rotated or scaled
  22. Mode 1: Tiled. 3 backgrounds (BG0, BG1, BG2). BG2 can be rotated and scaled
  23. Mode 2: Tiled. 2 backgrounds (BG2, BG3). Both can be rotated and scaled
  24. Mode 3: Bitmap. 240x160px. 16 bpp. No page flip
  25. Mode 4: Bitmap. 240x160px. 8 bpp. Page flip
  26. Mode 5: Bitmap. 160x128px. 16 bpp. Page flip
  27. Keys: KEY_A, KEY_B, KEY_SELECT, KEY_START, KEY_RIGHT, KEY_LEFT, KEY_UP, KEY_DOWN, KEY_R, KEY_L, key_tri_horz(), key_tri_vert()

Clones

  1. PocketGO
  2. revo-k101-plus
  3. retromini
  4. Pocket

Podcasts