UFGBA Slideshow Builder

Version 1.0 (build 1)
Copyright (c) 2001 by Ultra Force Development

Contents

Introduction
Credits
Usage & notes
Building your own slide show ROM
Contact information

Introduction

Welcome to Ultra Force GBA slide show builder. An easy to use tool to build a GBA ROM from a list of images.

Credits

Thanks go to the gameboy advance community for sharing knowledge, information and sources.

Image File Formats support via the very handy GraphicEx library (v9.9)
http://www.lischke-online.de
(c) Dipl. Ing. Mike Lischke

Usage & notes

Quick start:

  1. Add one or more images to the list. Select the keep aspect ratio to stretch while keeping the correct aspect ratio; open spaces are filled with color specified in the background color. It is possible to select multiple images in the listbox and set the keep aspect ratio and background color for all the selected items.
  2. Select a target ROM name.
  3. Optional: select a source ROM (default is the UFGBASS.BIN located in the application folder).
  4. Hit the Create ROM button and if everything works ok there should be a newly created ROM containing the source ROM with the images attached to it. When writing the ROM to a Flash card one has to enable the fix header option, so that the writing sofware can make the header valid.

Additional actions:

  1. Projects can be saved and loaded via the file menu.
  2. Via the options menu the application can be associated with the default projects extension '.gsp' or the file association can be removed.

Remarks:

  1. Only the location of the images are stored in the project file. Not the content of the images.
  2. For stretching and conversion to 15 bits color the functions from the windows API are used.
  3. Conversion to 256 colors is not yet implemented and is therefore disabled.
  4. The application stores the images uncompressed (240 x 160 16 bit words).
  5. If too many images are specified, the application will stop adding images when the ROM size will cross the 8 MB boundary.

BUILDING YOUR OWN SLIDE SHOW ROM

The source files used to build UFGBASS.BIN can be found in the file SOURCEROM.ZIP. The main code is located in MAIN.C, it is a simple application that initializes the correct screen mode, copies a certain image to the screen and then waits for the press of the left or right button to browse to a different image. The code is kept very simple and is not optimized in any way or using external library functions.

The application attaches the images to the end of the source ROM (after aligning them to a 32 bit DWORD boundary by padding the source ROM with zero bytes) and searches the source ROM to set a pointer to the start of the image data. To locate entries in the source ROM where the pointer should be updated, the application looks for a 64 bit magic number. The 32 bit DWORD following this magic number will be replaced. 

The application assumes the ROM will be loaded at 0x8000000.

The following is a code snippet from MAIN.C, it defines the structure used by the slideshow to store the images and an entry is defined where the application will insert the correct ROM address.

/**
 * Format of slideshow data:
 * u32 count, number of images
 * u32 start[], start of every images (count entries)
 * u16 pixels, data for every image
 */ 
typedef struct tagImageList 

  u32 count;
  u16 *start[];
} ImageList;

/**
 * ImageInfo is used by the slideshow builder to fill in 
 * the start location of the image list structure.
 */
typedef struct tagImageInfo
{
  u32 magic1;
  u32 magic2;
  ImageList *list;
} ImageInfo;

// will be update by slideshow with start of ImageList structure.
ImageInfo imageinfo = {0x42474655, 0x535341, 0};

Contact information

web: http://www.ultraforce.com

mailto: info@ultraforce.com