Difference between revisions of "User:Madmanguruman/STPP Wii"

From WiiBrew
Jump to: navigation, search
Line 1: Line 1:
 
[[category:Homebrew in Development]]
 
[[category:Homebrew in Development]]
  
[[User:Madmanguruman|Madmanguruman]] 02:26, 13 October 2009 (UTC)
+
[[User:Madmanguruman|Madmanguruman]] 21:44, 18 November 2009 (UTC)
  
 
Latest news:
 
Latest news:
 +
 +
- build works with latest devkitpro, svn sdl-wii rev 82, libogc rev 3807, stppc2x rev 108
 +
 +
- the gettimeofday problem was resolved in this release of devkitpro
 +
 +
- I managed to get in-game screen updates to no longer leave mouse droppings! just have to fix the menus now
 +
 +
[[User:Madmanguruman|Madmanguruman]] 02:26, 13 October 2009 (UTC)
  
 
- new releases of libogc / sdl-wii and devkitpro have, of course, broken the build
 
- new releases of libogc / sdl-wii and devkitpro have, of course, broken the build
Line 160: Line 168:
 
* [[Libfat]] downloaded and compiled from SVN sources
 
* [[Libfat]] downloaded and compiled from SVN sources
 
* stppc2x downloaded from SVN source
 
* stppc2x downloaded from SVN source
* discrete gettimeofday function added (needs to be fixed in [[DevkitPro]] [[libogc]])
 
 
* successful source compilation
 
* successful source compilation
 
* mods to sdl.c (to stop SDL crashes)
 
* mods to sdl.c (to stop SDL crashes)
Line 169: Line 176:
 
In progress (all in sdl.c unless otherwise noted):
 
In progress (all in sdl.c unless otherwise noted):
  
* native resolution is 640x480, engine expects otherwise at points (menus get wonky after maze3d, for instance)
+
* mouse cursor updates are cleaner (in-game seems to work, menus still leaving droppings)
* mouse cursor updates are dirty (mouse droppings / bad background restores on page changes)
 
 
* need to plug in a usb keyboard to see what happens
 
* need to plug in a usb keyboard to see what happens
  
 
Accomplishments so far:
 
Accomplishments so far:
  
* loading screen sort-of displayed (blits to upper-left corner)
+
* loading screen displayed
* game selection screen sort-of displayed, sort-of navigatable
+
* game selection screen displayed, navigatable
 
* in-game menus come up
 
* in-game menus come up
* playable games! (you don't get the same indication of success like on PC / Palm OS)
+
* playable games!

Revision as of 23:44, 18 November 2009


Madmanguruman 21:44, 18 November 2009 (UTC)

Latest news:

- build works with latest devkitpro, svn sdl-wii rev 82, libogc rev 3807, stppc2x rev 108

- the gettimeofday problem was resolved in this release of devkitpro

- I managed to get in-game screen updates to no longer leave mouse droppings! just have to fix the menus now

Madmanguruman 02:26, 13 October 2009 (UTC)

- new releases of libogc / sdl-wii and devkitpro have, of course, broken the build

- i forgot to mention - smalloc.c needs the POSIX file sys/mman.h (use these lines):

/*      $OpenBSD: mman.h,v 1.18 2003/07/21 22:52:19 tedu Exp $  */
/*      $NetBSD: mman.h,v 1.11 1995/03/26 20:24:23 jtc Exp $    */

/*-
 * Copyright (c) 1982, 1986, 1993
 *      The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *      @(#)mman.h      8.1 (Berkeley) 6/2/93
 */

/*
 * Protections are chosen from these bits, or-ed together
 */
#define PROT_NONE       0x00    /* no permissions */
#define PROT_READ       0x01    /* pages can be read */
#define PROT_WRITE      0x02    /* pages can be written */
#define PROT_EXEC       0x04    /* pages can be executed */

/*
 * Flags contain sharing type and options.
 * Sharing types; choose one.
 */
#define MAP_SHARED      0x0001  /* share changes */
#define MAP_PRIVATE     0x0002  /* changes are private */
#define MAP_COPY        0x0004  /* "copy" region at mmap time */

/*
 * Other flags
 */
#define MAP_FIXED        0x0010 /* map addr must be exactly as requested */
#define MAP_RENAME       0x0020 /* Sun: rename private pages to file */
#define MAP_NORESERVE    0x0040 /* Sun: don't reserve needed swap area */
#define MAP_INHERIT      0x0080 /* region is retained after exec */
#define MAP_NOEXTEND     0x0100 /* for MAP_FILE, don't change file size */
#define MAP_HASSEMAPHORE 0x0200 /* region may contain semaphores */
#define MAP_TRYFIXED     0x0400 /* attempt hint address, even within heap */

/*
 * Error return from mmap()
 */
#define MAP_FAILED      ((void *)-1)
 
/*
 * Mapping type
 */
#define MAP_FILE        0x0000  /* map from file (default) */
#define MAP_ANON        0x1000  /* allocated from memory, swap space */
#define MAP_FLAGMASK    0x17f7

/*
 * Advice to madvise
 */
#define MADV_NORMAL     0       /* no further special treatment */
#define MADV_RANDOM     1       /* expect random page references */
#define MADV_SEQUENTIAL 2       /* expect sequential page references */
#define MADV_WILLNEED   3       /* will need these pages */
#define MADV_DONTNEED   4       /* dont need these pages */
#define MADV_SPACEAVAIL 5       /* insure that resources are reserved */
#define MADV_FREE       6       /* pages are empty, free them */

/*
 * Flags to minherit
 */
#define MAP_INHERIT_SHARE       0       /* share with child */
#define MAP_INHERIT_COPY        1       /* copy into child */
#define MAP_INHERIT_NONE        2       /* absent from child */
#define MAP_INHERIT_DONATE_COPY 3       /* copy and delete -- not
                                           implemented in UVM */

/*
 * Flags to msync
 */
#define MS_ASYNC        0x01    /* perform asynchronous writes */
#define MS_SYNC         0x02    /* perform synchronous writes */
#define MS_INVALIDATE   0x04    /* invalidate cached data */

/*
 * Flags to mlockall
 */
#define MCL_CURRENT     0x01    /* lock all pages currently mapped */
#define MCL_FUTURE      0x02    /* lock all pages mapped in the future */

#ifndef _KERNEL

#include <sys/cdefs.h>

__BEGIN_DECLS
/* Some of these int's should probably be size_t's */
void *  mmap(void *, size_t, int, int, int, off_t);
int     mprotect(void *, size_t, int);
int     munmap(void *, size_t);
int     msync(void *, size_t, int);
int     mlock(const void *, size_t);
int     munlock(const void *, size_t);
int     mlockall(int);
int     munlockall(void);
int     madvise(void *, size_t, int);
int     mincore(void *, size_t, char *);
int     minherit(void *, size_t, int);
void *  mquery(void *, size_t, int, int, int, off_t);
__END_DECLS
 
#endif /* !_KERNEL */

Madmanguruman 18:36, 28 September 2009 (UTC)

Light Up (in-game)

  • latest SVN builds of libogc and sdl-wii have helped!

This project is a port of Simon Tatham's Portable Puzzle Collection to the Wii, using ledow's SDL GP2X port as the baseline.

For reference:

Current status:

Done:

  • libogc and SDL_wii downloaded and compiled from SVN sources
  • Libfat downloaded and compiled from SVN sources
  • stppc2x downloaded from SVN source
  • successful source compilation
  • mods to sdl.c (to stop SDL crashes)
  • mapped GP2X controls to Wiimote / classic controller buttons / D-pad
  • background music works (files must be renamed to .MP3, duh)
  • screenshots can be saved

In progress (all in sdl.c unless otherwise noted):

  • mouse cursor updates are cleaner (in-game seems to work, menus still leaving droppings)
  • need to plug in a usb keyboard to see what happens

Accomplishments so far:

  • loading screen displayed
  • game selection screen displayed, navigatable
  • in-game menus come up
  • playable games!