From GameBrew - a wiki dedicated to Video Game Homebrew.
|Author(s)||Ant 512 (Antony Dzeryn)|
|[DS demo and Woopsi Download]|
Woopsi is a Nintendo DS GUI library for rapidly creating user interfaces for homebrew software. Modelled after the AmigaOS windowing system.
It is a BSD-licenced GUI toolkit for the Nintendo DS, written in C++. It features a 2D graphics library with fast clipping routines and a full suite of UI components, including text boxes, scrolling lists, buttons, windows, etc. It can be used to produce everything from simple GUIs to full-blown window managers.
- Support for multiple windows.
- Full set of components of the user interface.
- The elements (windows) can be dragged.
- Windows without frames.
- Debug mode.
- Optimized application to draw and erase.
- System events.
- Automatic application to collect garbage.
- Complete API to build new applications.
- Different types of fonts supported.
- Oriented design to easily adapt to other programs in C++.
- Simple API for rapid creation of a graphical user interface.
- FIFO multitasking, each application runs at a time.
- Unicode strings encoded with UTF-8.
- Support for Windows applications (font2font, bmp2font, etc).
It requires the latest devkitPro and do one of the following things as operating system:
- Windows - 2 methods available. Use the Install.bat found in the folder or copy the folder Woopsi libwoopsi to C:\devkitPro.
- Linux - Same as the second option of Windows, copy the folder libwoopsi to C:\devkitPro.
- MacOSX - Compile what is in the folder Woopsi.
To test the installation:
Open a command prompt and CD to the template folder (relative to the document) and type:
Open the /template/Release/template.nds ROM file in a DS emulator or copy it to your flash cart and load it up.
- Label and TextBox are more efficient when rendering text changes.
- Removed unused GLYPH_MAP_SIZE constant from fontbase.h.
- Header file in template moved into include directory.
- Animation::play() stops if there are no frames to play.
- Animation::getCurrentFrame() returns NULL if there are no frames.
- Animation::getCurrentBitmap() returns NULL if there are no bitmaps.
- Fixed memory leak when deleting SDL framebuffer.
- Removed extraneous globals from woopsifuncs.cpp.
- WoopsiString::subString() passes the correct arguments to the WoopsiString constructor.
- StringIterator::moveTo() ignores attempts to move to negative indices.
- Improved use of DMA hardware.
- Updated C# tools.
- Removed Visual Studio files.
- Added WoopsiTimer::isRunning().
- Added SuperBitmap::setX().
- Added SuperBitmap::setY().
- Added SuperBitmap::getX().
- Added SuperBitmap::getY().
- Added FontConverter, a winforms UI for font2font.
Coding and design - Antony Dzeryn.
Testing, technical advice, other contributions - Jeff Laing.
PALib independence - Steven Harrison.
Testing and suggestions - John Buxton, Chase, Leonelhs, Carpfish.
Unicode work and libfreetype integration - Olivier Binda (Lakedaemon).
Testing and gadget contributions - Mark Adamson.
Simian Zombie logo - John Clay.
Thanks to - The devKitPro team.