nothingzz / iphonenes

Automatically exported from code.google.com/p/iphonenes
GNU General Public License v2.0
0 stars 0 forks source link

NES.app NES Emulator for iPhone Version 0.40 SVN: http://svn.natetrue.com/nesapp

Core: InfoNES Project (based on pNesX) Code: nervegas, stepwhite Cool: nightwatch (CoreSurfaces), bwhiteman (CoreAudio), dshadow (General) wheat-_ (Icon), lg (Pref Groups)

COMPILING FROM SOURCE

  1. You will need to install the arm-apple-darwin toolchain. See: http://iphone.fiveforty.net/wiki/index.php/Toolchain_Project

    You will also need to apply the patches in toolchain-includes-patch.txt Run the patch in your toolchain's include directory. For example:

    cd /usr/local/arm-apple-darwin/include patch -p0 < toolchain-includs-patch.txt

  2. Compile using 'make'. This will create a new NES.app package in ./build.

    Upload entire NES.app directory into /Applications on the iPhone and reboot the iPhone. It should automatically detect the application and add it to the springboard.

  3. Place your ROM files in /var/root/Media/ROMs/NES

KNOWN ISSUES

SOUND In order to have sound, you must disable mediaserverd, which is the iPhone's sound mixer process, which is locked onto the audio device. A couple of easy aliases can be added to your .profile to disable or re-enable mediaserverd if you are using MobileShell:

alias nosound="launchctl unload /System/Library/LaunchDaemons/coreaudiod.plist" alias sound="launchctl load /System/Library/LaunchDaemons/coreaudiod.plist"

While you have mediaserverd disabled ('nosound'), no other system sounds will play, so be sure to re-enable it ('sound') when you're finished playing.

MULTITOUCH The multitouch reports mouseDown and mouseDragged events separately, and so you can run while holding 'B', for example, but the iPhone appears to get pushed to the limits when you are holding a direction and dragging on another. It fails to report the necessary mouseUp events to distinguish which button(s) let up, and so they must all be reset.

As a result, if you are doing something complex, such as running with B held down, then jump with A, you will also need to slide your thumb back off the directional pad (to zero, or to the other size) to stop running as that mouseUp will not be reported.

VOLUME

If you disable mediaserverd with the earbuds connected, no audio will be heard through the speakers. Pull the earbuds out, and then start/stop mediaserverd again. This will correct the problem. If it doesn't, try resetting.

It is recommended you always kill mediaserverd with the earbuds DISCONNECTED to have both speaker and earbud support. If, however, you would like much louder ear buds (and no speaker), resetting it with the earbuds in will have this effect.

SAVE STATE

NES.app automatically saves the state of your game when you leave the game. You can choose to start a fresh game from the "All Games" menu, or tap "Saved Games" and load your previously saved game. This feature is still somewhat buggy, and some games restore with a temporarily mangled character table, until you proceed to a new screen where they are re-loaded.

DEBUG

Debugging writes debugging output to /tmp/NES.debug

Debug also causes the hotspots on the screen to be drawn in vivid colors, for debugging the controls.

LICENSE

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.