General > Paul's Projects

Porting Yabause to Android

(1/50) > >>

- This slot is reserved for the latest build, source code, screen-shots, and miscellaneous links -

Since I've really not had the time needed to put into this project, I've decided to hand it of to another developer.  Zack has agreed to take the lead on the project, and I'll be helping him out as I am able.  He has started his own thread here.  I am officially closing this thread, and letting Zack handle updates and support from his thread.

Yabause, Android Edition (AE)

Alpha Testing Underway!

Latest Builds:
Alpha Test APK  (source code)  09 May 2012 (Yabause core: r2892) with audio, VERY slow!
Alpha Test APK  (source code)  03 May 2012 (Yabause core: r2891) using dynarec, GLES rendering

Archived Builds:
Pre-Alpha Test  (source code)  12 March 2012 (Yabause core: r2849) accurate frame width/ stride
Pre-Alpha Test  (source code)  08 March 2012 (Yabause core: r2849) faster

Compatibility Spreadsheet  (editable, please update as you test games, and as app improves)

Bug-fixes completed so far during this round of testing:


Known Issues:

- Need to restructure code for easier compiling/ debugging
- Need to figure out why audio and/or GUI causes extreme lag
- Need way to build multi-APK containing both ARM6 and ARM7 builds
- Need to implement controller 2
- Need to implement NiGHTS controller analog
- Need to make app HC/ ICS friendly (deprecated Menu button)

Notes about building from source:

I am currently in the process of setting the project up in a more normal form (where you can use the simpler ndk-build and ant commands to create the APK), but I need to study the cmake syntax first to figure out how to set up the build flags in  In the mean time, use the following complex procedure to set up and build the project from source code:

(These steps are for setting up the project in Ubuntu Lucid (Linux).  The procedure will be slightly different in other OS's).

1) Install the Android SDK and NDK if you haven't already.
2) Install Sun Java JDK if you haven't already.
3) Install cmake  (sudo apt-get install cmake)
4) Add the SDK tools, SDK platform-tools, and NDK folders to your path   (in ~/bashrc)
5) Set JAVA_HOME if you haven't already   (in ~/bashrc)
6) Create a new folder to contain the android-9 toolchain
7) Follow the steps in "Invoking the compiler (the easy way)" in the NDK doc "STANDALONE-TOOLCHAIN.html" to create the android-9 toolchain
8) Add the android-9 toolchain bin/ folder to your path    (in ~/bashrc)
9) Unzip the source code somewhere on your computer
10) Edit the file yabause/src/android/android.cmake and edit the path to the android-9 toolchain's sysroot/usr/ folder
11) Create a subfolder called build/ under the Yabause source folder if it doesn't already exist
12) From the build/ folder, run cmake ../yabause -DCMAKE_TOOLCHAIN_FILE=../yabause/src/android/android.cmake -DYAB_PORTS=android
13) From the build/ folder, run make.
14) Transfer the file build/src/android/bin/MainActivity-debug.apk to your phone and install

For anyone worrying that I am going to be abandoning Mupen64Plus to work on this project, don't.  I won't be focusing a lot of time on this project (it is more for when I need a short break or when I get burned out).

Yabause AE is not affiliated with, nor authorized, endorsed or licensed in any way by Sega Corporation, its affiliates or subsidiaries. All trademarks are property of their respective holders. All individual games screen shots or audio that are simulated by Yabuse AE are property of their respective copyright holders and are only used for the purpose of informing the customer of the software's functionality.  You must have the right to a given BIOS or ISO before you play it.

- This slot is reserved for the project overview -

Your explanation is a little confusing for me.
What I did :
- downloaded the Windows Version of Yabause
- downloaded an valid bios file.
- downlo... made a valid backup from SonicJam as .bin and .cue.  ;)
- tested these config on Windows, to make sure it works.
- installed your .apk, made roms/saturn
- placed the bios and renamed to bios.bin
- placed and renamen the .bin as SonicJam.bin
- placed and renamed the .cue to SonicJam.cue
- opened the .cue and found the following

  TRACK 01 MODE1/2352
    INDEX 01 00:00:00
    PREGAP 00:02:00
    INDEX 01 59:38:59

--- End code ---
- renamed file to SonicJam.bin and saved the .cue

So what' confusing me is

--- Quote ---CD image must be named SonicJam.cue
--- End quote ---

An image should be the .bin, not the .cue. The .cue is some kind of directory of the CD.

On another ROM, that i've tested on PC, I got the same result than on Android. It ends on the CD Player of Saturn.

Have you tested your SonicJam.bin on PC before, to make sure it works ?

Logcat didn't get much feedback of the emulator. So I can't say what's wrong.  :(

even if I rename the ROM, it semms that the emu starts in player mode.
the onscreen gamepad recognized sometimes input. so it semms to depend on the slow emulation speed, if it will work.
On Windows, the emulator will ask for iso or .cue. So the.cue file semms to start the .bin. Maybe you reversed both extensions somewhere in the code ?

I pointed it to the cue file (you're right the "image" is the bin file, but the cue file is technically also part of the image as well, because a header is needed to show where the audio tracks start.. confusing that this isn't just combined into one format).  Anyway I think the best thing will be to test it on the PC version to make sure my image isn't corrupt.  This is hard-coded into the "front end", so I just need to figure out if I'm hard coding it the right way.

Woo I can finally give this a shot now :)

And I am not sure how it is with saturn emulation but when I created my own ISO's for PS1 games I always deleted the bin file, maybe its needed for saturn games though.

EDIT: The dpad seems to work for me, it just seems unresponsive sometimes because the emulation is so slow.

Video of the emulation:

I got a new app that can record my phones screen, its kind of like fraps for android.


[0] Message Index

[#] Next page

Go to full version