Nintendo DS News
Woopsi is a BSD-licenced windowing system for the Nintendo DS, written in C++. The aim of the project is to create a simple windowing system that programmers can use for their applications, decreasing the tedious amount of GUI code that people have to write.
The system itself is loosely based on the Commodore Amiga’s “Intuition†windowing system. Everything in the system is treated as a “gadget†(in the same way that Windows treats everything as a sub-class of a window), everything takes place within a “screen†environment, and the look-and-feel of the system intentionally resembles the old Amiga system.
The windowing system is *not* intended to be a complete desktop environment. It is *not* going to be a DS version of GNOME, KDE or Windows Explorer. It will simply provide a system for rapidly building window and gadget-based interfaces.
– Fixes:
– Renamed “font” to “sysfont”.
– Moved font includes out of “all_gfx.h”.
– Removed font inheritance (problematic with many gadgets).
– Made font an optional parameter in all gadget constructors.
– Removed font from constructors of window border gadgets that do not use a font.
– Woopsi height based on top screen offset instead of an arbitrary number.
– Private class members set to protected where appropriate.
– “Gadget::setBorderless()” now invalidates rect cache.
– Removed “Gadget::removeGadget()” function (request 1846590).
– “Window::createBorder()” sets border focus correctly.
– Window border gadgets base their colour on the parent’s active flag rather than by abusing the focus system and their own active flags.
– GraphicsPort was using SCREEN_WIDTH instead of _bitmapWidth when blitting bitmaps.
– Fonts work with const u16* bitmap data instead of plain u16*.
– Woopsi clears its background correctly when a screen closes.
– Gadgets draw only those regions not obscured by children (previously broken by switch to region caching).
– Gradient cache uses new instead of malloc.
– Removed support for external bitmaps from SuperBitmap.
– Renamed Gadget::getRectClippedToParent to Gadget::getRectClippedToHierarchy.
– Making a gadget invisible makes its children invisible.
– Fixed off-by-one error in Gadget::checkCollision() functions.
– Fixed gadget-space to display-space co-ordinate problem in GraphicsPort clipping routines.
– Removed GraphicsPort::clipXORRect() and replaced with bugfixed alternative.
– Various functions in Gadget class now check isVisible() instead of _flags.visible.
– focus() functions ignore the call unless the gadget is not active.
– GraphicsPort will no longer draw to deleted/invisible gadgets.
– Tidied up ambiguities in Gadget::closeChild().
– Gadget::closeChild() function setting the active gadget pointer to top gadget in the stack, but the top gadget could have been the gadget being closed.
– Fixed same problem in Gadget::hideChild().
– New Features:
– Added static system font routines to Woopsi class.
– Gadgets automatically use system font if no font specified (bug 1846003).
– Added “floodFill()” function to SuperBitmap (request 1816931).
– Added “drawBitmap()” function to SuperBitmap (request 1813792).
– Added “newBitmapGraphicsPort()” function to SuperBitmap.
– Added “setFont()” function to Text.
– Split Screen class into ScreenBase, AmigaScreen and SimpleScreen classes.
– Added “permeable” flag to gadgets – if set to “true”, child gadgets can be dragged to exceed the borders of their parents (ie. windows can be dragged off-screen).
– Gadget::getRectClippedToHierarchy clips to entire ancestor tree.
– Gadget::moveTo() enforces permeability of parent gadgets.
– Gadget::resize() enforces permeability of parent gadgets.
– Window::resize() enforces permeability of parent gadgets.
– Changed VBL events so gadgets must register with Woopsi to receive them (request 1847147).
– Centralised gadget deletion queue handling into static Woopsi functions.
– Added Gadget::hideChild() function.
– Added VBL counting and static getVBLCount() function to Woopsi class (request 1847147).
– Split Window class into WindowBase, AmigaWindow and SimpleWindow classes.
– Added text output methods with colour parameter to GraphicsPort and SuperBitmap classes.
http://www.sourceforge.net/projects/woopsi
minishlink has updated his Pong game PongClassicDS. It’s now at v0.4.
http://www.playeradvance.org/forum/showthread.php?t=16372
This is a puzzle game which challenges your memory. Two grids are composed of m shapes (rows) and n colors (columns). The bottom one is for play and the top one is for hint. You must touch the cells of the bottom grid and turn them face up one by one. The next cell touched must match shape or color with the previous cell touched. If so, you can touch another cell. If not, the unmatched cells will be turnt face down and you touch over again.
http://palib.info/forum/modules/newbb/viewtopic.php?viewmode=flat&type=&topic_id=3959&forum=9
Cortes48, one of the board members at http://www.playeradvance.org , is working on a remake of Ballon Fight (known from the NES) for the Nintendo DS.
http://www.playeradvance.org/forum/showthread.php?t=16769
Nethack DS is a port of Nethack to the Nintendo DS.
Release notes:
Version 1.8b is released. This includes all the fixes from 1.8 and 1.8a:
Fixed Adjust (it was horribly broken). Thanks, Scribble!
Moved left-handed mode to OPTIONS (default off).
Added keyboard-based command mode, toggleable with OPTIONS (default off).
Menus and command window can now be controlled using the joypad.
Changed menus so now Left/Right pages up/down, and Up/Down are used to change the highlighted menu item.
Added select all/none in multi-select menus using Select and Select+L/R.
Added double-tap mode in menus and command window, toggleable with OPTIONS (default off).
Added holdmode option, to control whether L/R must be held to keep the command window open (default on).
Added cursor option, to control whether a cursor is displayed (default on).
Fixed the graphics cursor to properly map to the internal cursor position (makes dagger throws, etc, move the cursor like in text mode).
Fixed the text mode cursor to work with “What Is” when it moves off the rendered map.
In addition, 1.8b includes fixes to the touchscreen code, so the inaccuracies should be gone (they are on my DS, anyway). I felt this was important enough that it warranted a new release, despite having put 1.8a out just last night.
And just to draw extra attention to it, you lefties out there, you’ll have to enable left-handed mode in the OPTIONS file now. The old setting will be lost.
Anyway, check out the packaged defaults.nh file to see what new options are available.
http://frodo.dyn.gno.org/~brettk/NetHackDS
MorganDS has posted a screenshot of Rubik’s Cube current status. The goal is to add up a real 3D cube at the top screen.
http://palib.info/forum/modules/newbb/viewtopic.php?viewmode=flat&type=&topic_id=3860&forum=9
sephiroth ff7 has updated his 3D breakout game with a simple 2D mode. This is the only change for this release.
http://www.playeradvance.org/forum/showthread.php?t=7955
Woopsi is a BSD-licenced windowing system for the Nintendo DS, written in C++. The aim of the project is to create a simple windowing system that programmers can use for their applications, decreasing the tedious amount of GUI code that people have to write.
The system itself is loosely based on the Commodore Amiga’s “Intuition†windowing system. Everything in the system is treated as a “gadget†(in the same way that Windows treats everything as a sub-class of a window), everything takes place within a “screen†environment, and the look-and-feel of the system intentionally resembles the old Amiga system.
The windowing system is *not* intended to be a complete desktop environment. It is *not* going to be a DS version of GNOME, KDE or Windows Explorer. It will simply provide a system for rapidly building window and gadget-based interfaces.
Changes:
– Fixes:
– Tidied up a lot of the code.
– Gadget deletion queue now handled solely in the VBL events.
– Optimised TextWriter by preventing it from drawing empty glyphs.
– Changed TextWriter into a static class.
– Optimised TextViewer so that it uses much less memory.
– Text font and glyph font now sent around hierarchy instead of each gadget creating their own font.
– Improved Font class.
– Removed 8-bit code from Bitmap class.
– General refactoring and code tidying.
– Made EventHandler methods virtual instead of pure virtual.
– Split gadget events into “raiseXEvent()” and “x()” functions.
– Clicking a gadget automatically notifies its parent that it is the new clicked gadget.
– Moved dirty child redraw function into gadget class.
– Added horizontal clipping to rect splitting functions.
– Fixed SuperBitmap border.
– Relevant gadget methods are now virtual for subclassing.
– Removed all unnecessary all_gfx includes.
– New features:
– Added non-draggable screens and windows.
– Added show/hide gadget functionality.
– Added ability to hide a window instead of closing it when the close button is clicked.
– Added closed/hidden/shown events.
– Added monochrome output to Font class and definable text colour.
– Added drawText() function to SuperBitmap class.
– Added window depth button.
– Added enable/disable gadget.
– Started work on alert requester.
– Moved text data manipulation out of TextViewer into a separate class.
– Added Gadget::moveTo method.
– Added Gadget::resize method.
– Added resize event.
– Added move event.
– Added value change event.
– Added window resizing (API only).
– Added radio buttons.
– Added radio button groups.
– Added “clicked” glyphs for screen and window depth buttons.
– Most gadget action methods (click(), moveTo(), etc) return bools to indicate success or failure.
– Added enabled/disabled events.
– Added checkboxes.
– Added NDS screen flipping and support for top NDS screen.
– Added screen flipping gadget.
– Updated screens to swap to front when clicked.
– Added a variety of gadget depth manipulation functions.
Thanks to http://www.dev-fr.org for the news.
http://palib.info/forum/modules/newbb/viewtopic.php?topic_id=3606&viewmode=flat&order=ASC&type=&mode=0&start=20
Jayenkai has updated his retrogame collection for Nintendo DS. It now features 18 games!
They are:
Centipede : Shoot the centipede. Don’t let it escape.
Snake : Guide the Snake. Grab the numbered blocks.
Invaders : Shoot the aliens. Don’t let them get to the bottom.
Light Cycles : Try to get your opponents to crash.
Asteroids : Destroy the asteroids before they destroy you.
Pacman : Run around and collect things.
Frogger : Leap your way across 2 busy roads.
Pong : Beat your opponent, “one” ball at a time.
Tetris : Build low!
Buzzard Bait : You might like to call this game Joust. I owned a TRS-80, so I call it Buzzard Bait 😉
QBert : Hop around and change all the bricks.
Spike Dodge : Dodge the spikes, pick up the balls.
Extract : Keep Blue away from Red, and grab the Greens.
Missile Command : Tap to fire. Stop the missiles.
DotPop : Tap the squares. The quicker you tap ’em, the more you score.
Lights Out : Tap to invert a + of lights. Try to turn them all off.
5 In a Line : Shuffle the rows and columns around to make a whole line of a single color.
Tune Tap : Repeat the tune.
http://palib.info/forum/modules/newbb/viewtopic.php?viewmode=flat&type=&topic_id=3888&forum=9