I've just posted in my bennugd-mobile worklog and in the port's Google Code project site a tutorial and a Xcode template for running your BennuGD games in your iOS device right from Xcode. It'll only be useful to those who have paid for a iOS development license from Apple, not for those developing through jailbreak.
It won't work in the iOS emulator yet, either, although I hope it will soon.
http://bennugd-mobile.blogspot.com/2011/06/xcode-4-template-for-running-bennugd.html
I think it's really easy to do.
Also, I'll keep posting major news in this thread, but I recommend those interested in iOS development to follow the blog, as I might miss to announce some things.
[Edit] The template also includes an updated BennuGD build.
iOS template updated, it now includes mod_chipmunk:
http://bennugd-mobile.blogspot.com/2011/06/template-updated-includes-modchipmunk.html
Hope it's useful!
How do I compile it for iOS?
If you've got a developer license, just do as explained in my bennugd-mobile blog.
If you don't have it, compile the dcb normally and add the "main" and Info.plist files found in the template in the google code page in your computer and copy the whole game to your device by SSH.
If you jut want to play the game, just copy your .app foler (bundle) to /Applications in the device. If you want to fully replicate the installation the user will be doing, copy it to /User/Applications, under a folder with the same alphanumerical scheme as those found there.
If you need more info, just ask.
Awesome work! :D
I have updated the monolithic code to be in sync with the latest upstream version.
I believe I didn't break anything as both the Android & the iOS code seem to compile and run just as before.
Would've loved to work on fixing issues with the Android code, but I've run out of time for today :(
Are you compiled again the android version and it work ?
It compiles, but doesn't seem to be working yet.
When the android port comes out, how would we still compile our stuff and could I put a virtual controller on the thing?
The port right now can use the DCBs compiled in most systems (except for Wii).
Appart for that, you'll have to implement some on-screen controls in BennuGD code.
so where is it?
I've just submitted new code to the repo. It now handles mode setting directly through SDL 1.3 (instead of the bogus SDL1.2->SDL1.3 compatibility layer). There's a catch, though: as of now you'll have to set scale_resolution for the screen to redraw.
I'll try to fix that ASAP.
I believe this change also fixes the bug that doesn't allow you to call set_mode in android, although I haven't tested it.
well whenever there is a release and if i can "multitouch" the game (even though on a touch screen its "mouse" controlled, in a way; i can still touch multiple things on screen) my game will be on one more system (im planning on windows, dreamcast, and droid)
I just made an interesnting commit (http://code.google.com/p/bennugd-monolithic/source/detail?r=316) (if you're into commits, that is) to my branch with changes related to SDL 1.3 support. Main changes are:
- Finally got rid of the SDL compat layer! (I'm still using it for the mod_key/libkey modules, but I'm not compiling those for the devices).
- Updated sample bennugd code to include a bouncing PNG.
- Modes set with scale_resolution and normal seem to redraw the screen fine (although the screen pixel format is not yet correct).
- Orientation is starting to get set automatically now (there are things to fix yet, though). If width>height, the iOS device will default to a landscape configuration.
- Other minor changes.
There are still some bugs I must fix before releasing a new binary, but things are progressing nicely :)
I'm publishing a new binary for Android so that people can test it. It's really buggy in the sense that:
* You cannot use set_mode(), just assume the video mode has already been set to fullscreen.
* Rotating your phone seems to make SDL unhappy.
* Sound playback is still very buggy (But this is SDL's fault :P).
* For the program to work, you must install the APK and then place your main dcb file in a folder named "data" in your sdcard and name it "main.dcb".
Binary+test program that shows how to get your phone's resolution.
http://www.megaupload.com/?d=8L12GETJ
http://www.megaupload.com/?d=GGYPT0PU
[Edit] The music playback crash was fixed long ago in SDL_mixer upstream, I just hadn't updated the code.
The first link says unavailable. Is there anything I have to do to get my game to at least boot up?
I'm reuploading the apk with a fix for music playback. In order to get your game running, rename your dcb to main.dcb and put it in /mnt/sdcard/data/main.dcb (in a folder named data in your phone's sdcard). Also, be aware that you'll most likely have to chdir() to /mnt/sdcard/data in your code.
New apk with music fix:
http://www.megaupload.com/?d=HTCLNVN4
Test program:
http://www.megaupload.com/?d=8L12GETJ
Quote from: josebita on September 05, 2011, 05:03:34 AM
I'm publishing a new binary for Android so that people can test it. It's really buggy in the sense that:
* You cannot use set_mode(), just assume the video mode has already been set to fullscreen.
* Rotating your phone seems to make SDL unhappy.
* Sound playback is still very buggy (But this is SDL's fault :P).
* For the program to work, you must install the APK and then place your main dcb file in a folder named "data" in your sdcard and name it "main.dcb".
Binary+test program that shows how to get your phone's resolution.
http://www.megaupload.com/?d=8L12GETJ
http://www.megaupload.com/?d=GGYPT0PU
[Edit] The music playback crash was fixed long ago in SDL_mixer upstream, I just hadn't updated the code.
Nice to see you're getting somewhere with the Android port. I've been looking forward to it :)
If we made an app to put on the app store, how would we put it all in one .apk?
Quote from: DoctorN on September 05, 2011, 11:01:05 PM
If we made an app to put on the app store, how would we put it all in one .apk?
At the moment you cannot. But when it works the idea is that you need to create the apk (through ant) and putting all your resources in a folder named "assets" in the source code folder. Then you'd access your files normally.
I found that the cause of the crash in the Android code to be the way in which I've implemented the SDL_RWops file layer.
I have, however, made some progress and now resources and the DCB are looked for in the APK and BennuGD can peek within it (until seeking within the APK crashes, that is). I also fount the way to change the name the app displays and its icon. Not that I've discovered a great mistery of nature, but I thought some of you might like to see it:
(http://forum.bennugd.org/index.php?action=dlattach;topic=2394.0;attach=2145)
Cool! It looks like the issue I was having with SDL_RWops was actually a bug in the Android code and has been workarounded by the nice people at SDL.
What this means is that your game's resources can now be directly bundled with your game's APK, which was one of the missing key points for BennuGD to work correctly on Android.
I'm leaving a very simple APK below for you to test and tell me if it's really working for you in your phone. Please remind to close the app manually after usage as otherwise it'll stay running in the background.
http://www.megaupload.com/?d=UC19KXDQ
PS: It looks like they added multitouch support in Android, so I'll have to go test it :)
The multitouch module seems to be working. It's still kinda buggy but it can already be used.
I'll later today post how it's used right now so that you can give me suggestions on how to improve the API (if needed).
I tried the application with android 2.3 and it seems to work well :D.
Is there any info on how to create an standaolne APK?
My FMOD Ex binding module has been integrated into the iOS monolithic build; now I can extend it as needed.
You can see a short video of the mic spectrum analyser in action:
http://www.youtube.com/watch?v=vDdzdupm0AA
Just a couple of tips that people developing games for iOS should remember:
- If you want your games to be downloadable through mobile networks, keep their size below 20MiB. Otherwise people on those networks won't be able to download them but your game won't appear in their App Store's either! So, unless they specifically connect through Wifi, your app won't exist for them.
- If you already have a developer account, download, print and carefully read this (https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf). It contains very valuable info about how to package your app and how to manage the upload process, as well as how to keep track of your sales.
Also, I've seen that some people are having trouble with signing their apps for App Store upload; I'll try to write a small step-by-step guide in my blog soon.
I've uploaded a new template:
http://bennugd-monolithic.googlecode.com/files/BennuGD%20Xcode%20Template_iOSSimulator-20110620.zip
It's te same code as the other template but this one targets the iOS Simulator. I haven't tested the code as much as I should've so it might need some tweaking to get it to work.
Work´s perfectly, good job man.
Quote from: Erkosone on November 16, 2011, 08:38:02 AM
Work´s perfectly, good job man.
Good to know :) I had some trouble compiling it and wasn't really sure it'd work as it should.
Thank you for your work, but not use as a primary language BennuGD is a job well done.
Feedback for the new iPhone simulator TemplateProject: - Apparently it works well, you can run games and programs,
but something happens when I close the application remains resitende as usual, this is fine, but when I close at all in the manager iPhone task, the re-run it throws this error:
'Thread 1: Program Received signal: "SIGKILL". '
Just close the simulator and relaunch the application to work, so it's not a problem, but if you are used to improve the template you step information on video:
Record the error in shape. WMV: http://www.megaupload.com/?d=5DWGK59U
Thanks for your feedback.
Changes committed to the tree today (today I focused on Android, but some changes are universal):
- mod_multi now returns an absolute position (considering your screen resolution) and for pressure it returns a value between 0 and 255. It still doesn't take rotation or scaling into account.
- libcurl is now compiled in Android, too.
- mod_curl integrated into the default Android build.
- Added another script to automatically fetch FMOD Ex for Android API from fmod.org. I won't be distributing their binaries on the repo.
- Added a new Android project for the FMOD Ex-enabled build (it's just a placeholder, yet).
Please note that I'm having some trouble with the compilation scripts and I haven't been able to compile the APK today. I'm not in the same computer where I usually code so it might just be a setup issue or maybe I really broke something in the scripts...
Well, some things in the Android port had stopped working with the latest changes to the SDL code and with my focus to the iOS code.
Now that I've finished my exams, I've been working a bit on getting the Android port to work again:
(http://forum.bennugd.org/index.php?action=dlattach;topic=1221.0;attach=2357)
It's not anything too big. I just wanted to share that code is working, again :)
I'm releasing a very early preview release of BennuGD for Android here:
http://bennugd-mobile.blogspot.com/2012/03/bennugd-for-android-preview-release.html
Please, report unknown bugs here (http://code.google.com/p/bennugd-monolithic/issues/list).
Will there be a way to make an app that includes both bennugd and the game itself? Like an app you buy from the app store or whatever?
Quote from: DoctorN on March 11, 2012, 03:01:22 AM
Will there be a way to make an app that includes both bennugd and the game itself? Like an app you buy from the app store or whatever?
Obviously, yeah. I don't see what point it'd have to have any other way of distribution.
Is there a tutorial on your page? google code isnt loading right now on my pc :(
The link I just posted contains detailed instructons. You'll still need the package from google code, though.
thanks! im gonna test this with my samsung galaxy s 4g
mod_multi for windows: Won't give you multitouch in windows but will allow you to compile games that run in ios&android, where you do have multitouch:
http://code.google.com/p/bennugd-monolithic/downloads/detail?name=bennugd-module-multi-fake_win32.7z
New post with info and a video showing the current status of the Android port:
http://bennugd-mobile.blogspot.com/2012/07/android-progress.html (http://bennugd-mobile.blogspot.com/2012/07/android-progress.html)
[Edit] This is how it'll work: if you don't call set_mode() the screen will be set to your devices default resolution. If you do, then a "virtual" resolution will be set in the center of your screen.
Once your device's resolution has been set, you can retrieve it with:
graphic_info(0, 0, G_WIDTH);
graphic_info(0, 0, G_HEIGHT);
[Edit2] If you want to test the code and report on the results, here you have the apk. It should start on your device's native resolution:
https://www.dropbox.com/s/idii1isnjalvu2t/SDLApp-debug_20120719.apk (https://www.dropbox.com/s/idii1isnjalvu2t/SDLApp-debug_20120719.apk)
[size=78%]If it fails, please attach the result of:[/size]
adb logcat Debug:* SDL:* SDL/APP:* *:S
Thanks for your help
I've just tested the package, and it works just fine on a Samsung Galaxy S2, with android 4 ICS. :)
Just a few questions: Is it possible to support the "back" button and the left menu button?
Also Android 4 has support for usb host devices and gamepads, are these kinds of input devices supported? That would be handy, because I've heard of the http://www.kickstarter.com/projects/ouya/ouya-a-new-kind-of-video-game-console (http://www.kickstarter.com/projects/ouya/ouya-a-new-kind-of-video-game-console) OUYA project that is a proposal for a $100 opensource android based gameconsole. It would be cool if we could support it.
Do not doubt it :)
BennuGD will be supported in OUYA no matter what! :D
Awsome! :)
All I have is a galaxy s 4g will that work? Also I am wondering a bit about the resolution (because I havent messed with the droid port).
*Does android have the capabilities of allowing a game regardless of the resolution to play on a phone? The Galaxy S 4G's resolution is 800x480, if I were to put my game on it which is 320x240, would the phones resolution be set to that and make everything all weird, or would the game just be scaled on the phone (while still in the proper aspect ratio)
Galaxy S should work, yeah. It's more of an OS version thing than anything else.
As for the resolution question: you can do that in BennuGD right now using scale_resolution:
http://www.bennugd.org/?q=node/27
Today I've added mod_key to the builds:
http://bennugd-mobile.blogspot.com.es/2012/08/modkey-working.html
mod_regex is still missing, will have to look at it at some point.
Mod_key eh? Does that mean that external bleutooth keyboards can be used? Some tablets like the ASUS transformer and the Galaxy tab support a special keyboard add-on. I wonder if it behaves like a normal pc keyboard. I don't know much about android's device handling. But I suppose such a keyboard would work? Some android phones have a physical (miniature) keyboard too. Keyboard support would be advantages so that I don't have to create a virtual d-pad because I don't want to (they are kind of crap with the emulators I play on the galaxy S2 and feel I don't want to use that for Malvado). With a lot of android devices you can simply plug in a usb device or use some bluetooth periphial and it'll work more or less. A lot of emulators support external devices and I want to use those too because I think it's better for most games. Sony got this right with the playstation phone by including hardware buttons and a d-pad.
Just a side note: does mod_key activate the virtual keyboard? That seems sort of standard in a lot android apps and I wonder if it's an api function that can be activated.
I haven't tested bluetooth/USB keyboards and, really, have no idea on how they work. If anyone can test those in the future, that'd be great as it's a very interesting feature :)
The buttons in the Android phones (Volume Up/Down, call, return...) are treated like keys and that's what this is mainly useful for.
You can, of course, also implement standard keyboard input through mod_key for devices with attached keyboards.
And no, mod_key doesn't -currently- implement a way for displayng the on-screen keyboard. Will have to look at that.
mod_regex built in. I've compiled an apk that implements the wiki's Split example. If you want to try it, it's here:
https://t.co/S549QIfg
Just be warned that it only dumps info to the adb logcat, nothing should happen on the phone more than seeing the app open and close instantly.
I've seen the video on your blog with the Android emulator with the key demo, and I'll think key inputs may work out of the box with the virtual keyboard. The keyboard in the emulator looks very similair to the on-screen keyboard. I'd reckon since Android is linux based, keyboard inputs could be universal regardless of the physical or virtual nature. So you may be in luck here.
I've seen demos of people testing playstation controllers with android devices and they seem to work out of the box because Android 4 has usb host support built-in. So that may possibly make the job a little easier. :D Android looks to me like a very flexible and open system with a lot of pc-like features.
I really cannot test keyboard input myself in anything other than the emulator. It'd be great if someone got one of those bluetooth keyboards and tested it.
Also, today I've added the ability to open links in the Android OS from within BennuGD code:
http://bennugd-mobile.blogspot.com/2012/08/opening-links-from-code.html
And I've published a couple of images of what the packager looks like:
http://bennugd-mobile.blogspot.com/2012/08/packager-update.html
Wow. Looking nice, is there also a packager for windows? Or more specifiacally, can I modify an existing package? Apk files are zip files with a directory structure. Only some xml files seem to have binary content when I view them with notepad++.
Quote from: handsource-dyko on August 10, 2012, 07:10:05 AM
Wow. Looking nice, is there also a packager for windows? Or more specifiacally, can I modify an existing package? Apk files are zip files with a directory structure. Only some xml files seem to have binary content when I view them with notepad++.
The packager currently runs in Windows, Linux and MacOS X. It can be made to run in other desktop systems too, if needed.
Volume keys are now working normally in Android games created with BennuGD:
http://bennugd-mobile.blogspot.com/2012/08/volume-keys-file-saving-on-android.html
This is how the Android packager is looking right now:
(http://forum.bennugd.org/index.php?action=dlattach;topic=1221.0;attach=2497)
(http://forum.bennugd.org/index.php?action=dlattach;topic=1221.0;attach=2499)
Things that are working:
- Selective game packaging (will package your game but ignore *.exe, *.dll and so on)
- Game name changing
- Game icon changing
- Debug/release packaging
- Game installation after packaging
- Automatic detection of installed android virtual machines. They can be launched from the app menu.
I'll probably release a preview version this weekend.
PS: Javis is the author of the icon; thanks a lot!
this looks REALLLLLLY GOOD!
Quote from: gecko on August 18, 2012, 01:58:54 AM
this looks REALLLLLLY GOOD!
Thanks :) I hope it's useful. When all the android packaging code is working as it should, I'll try to add some more platform options: Mac, Linux DEB, Linux TAR...
wow! karma!
Wow! Pretty sweet. I see it supports different cpu architectures.
Hey Dyko, did you get my last email? I need help with my engine, once I can finish all these minor things up and give the enemy AI, then its done (or so I hope). And then I will port it to the Android (the platform I am going to release it to most likely first).
Yes, I got an mail wednesday. The reply with a short solution should have arrived. (The e-mail program says it's send). I think the cause of the problem is a conflict between two routines that scan for the same key inputs.
I have some issues with the android packager, it says it's packaging but doesn't say when it's done. When I select any of the menu items the "packaging..." message disappears and I don't have a clue about the progress or the location where the apk is stored.
The USB OTG adapter has dropped in the mail today, but it seems that only mass storage devices work with it. USB memory stick works fine, keyboard doesn't seem to be reconised. I've seen on some videos that keyboards should work. If I enable keyboard support in the emulator I can type text in the search window and the browser. So I'll guess that keyboards should work with bennu as long as the device plays along.
could you send the email again?
Also, cant you simply install droid os to a virtual machine?
Handsource-dyko. Did you run the included ".bat" file?
eehh.... wich bat file? Maybe I forgot.
Quote from: handsource-dyko on September 01, 2012, 06:44:36 PM
eehh.... wich bat file? Maybe I forgot.
there's a bat file in the latest windows package that configures ant in your windows.
I've run the bat file, but now I get some error message in the dosbox. Something about Jar.... The message disappeared too quikly to read it.
And the packagemanager now gives an error dialog: "APK creation failed with return code 1."
I can launch the avd mangager from the packager, but launching individual AVD's doesn't seem to work. I have the sdk installed, but have I forgotten anything else?
Update: I managed to capture a screenshot of the dosbox, and it says it can't locate tools.jar.
Update2: I've looked at the path, tools.jar seems to be missing in my JRE6 install.
Quote from: handsource-dyko on September 02, 2012, 10:05:15 AM
I've run the bat file, but now I get some error message in the dosbox. Something about Jar.... The message disappeared too quikly to read it.
And the packagemanager now gives an error dialog: "APK creation failed with return code 1."
I can launch the avd mangager from the packager, but launching individual AVD's doesn't seem to work. I have the sdk installed, but have I forgotten anything else?
Update: I managed to capture a screenshot of the dosbox, and it says it can't locate tools.jar.
Update2: I've looked at the path, tools.jar seems to be missing in my JRE6 install.
You need to have the JDK; the JRE is not enough. Also, ensure that after installing the JDK it's used as the default java installation.
I have now installed the Java 7 JDK, and found that the tools.jar file is in the incorrect place. Googled around a bit and it seems to be a common problem with tools.jar. I copied the file manually to place it expects, but it still doesn't work. It now complains about xml stuff. But, I've read somewhere about the JAVA_HOME variable. Java doesn't seem to be in my path variable, but the packager and ant are.
Quote from: handsource-dyko on September 03, 2012, 07:08:31 AM
I have now installed the Java 7 JDK, and found that the tools.jar file is in the incorrect place. Googled around a bit and it seems to be a common problem with tools.jar. I copied the file manually to place it expects, but it still doesn't work. It now complains about xml stuff. But, I've read somewhere about the JAVA_HOME variable. Java doesn't seem to be in my path variable, but the packager and ant are.
Copying tools.jar doesn't convert a JRE into a JDK. You need to set your system's PATH so that java.exe points to the on eprovided by the JDK, not the JRE. Here are Oracle's installation instructions:
http://docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html#path
Ok, I've updated the path variable, but it still fails. However it does not complain about tools.jar anymore. In the dos window it is proceeding to the buildfile, but the packager still gives the same error dialog. There is no difference between debug and release, or whether the install checkbox is marked. The strange thing is that I have two different path variables.
This is the path variable from the control panel/advanced/envoirnment/path setting: C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Users\Pieter\bennu\BennuGD;C:\MinGW\bin;C:\MinGW\MSYS\1.0\local\bin;C:\MinGW\MSYS\1.0\bin;C:\Program Files (x86)\zenity;C:\Program Files(x86)\Java\jdk1.7.0_03\bin
And this is what I get when I type path in the dos prompt: PATH=C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Users\Pieter\bennu\BennuGD;C:\MinGW\bin;C:\MinGW\MSYS\1.0\local\bin;C:\MinGW\MSYS\1.0\bin;C:\Program Files (x86)\zenity;C:\Program Files(x86)\Java\jdk1.7.0_03\bin;;C:\Users\Pieter\bennu\BennuGD Packager\ant_win\bin;C:\Users\Pieter\bennu\BennuGD Packager\ant_win\bin;C:\Users\Pieter\bennu\BennuGD Packager\ant_win\bin
These should normally be same right? ::) In the second path I have two semilcolons. Maybe that's the issue?
Update: it looks like that the apk creation itself fails, but a part of the packaging process seems to complete. It does create the directory with the android pacakage structure in the AppData\Temp directory. I think that build.xml can't build it.
Wow, I've missed a few things the last couple of months. It all looks very good :)
Quote from: handsource-dyko on September 03, 2012, 05:45:08 PM
Ok, I've updated the path variable, but it still fails. However it does not complain about tools.jar anymore. In the dos window it is proceeding to the buildfile, but the packager still gives the same error dialog. There is no difference between debug and release, or whether the install checkbox is marked. The strange thing is that I have two different path variables.
This is the path variable from the control panel/advanced/envoirnment/path setting: C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Users\Pieter\bennu\BennuGD;C:\MinGW\bin;C:\MinGW\MSYS\1.0\local\bin;C:\MinGW\MSYS\1.0\bin;C:\Program Files (x86)\zenity;C:\Program Files(x86)\Java\jdk1.7.0_03\bin
And this is what I get when I type path in the dos prompt: PATH=C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Users\Pieter\bennu\BennuGD;C:\MinGW\bin;C:\MinGW\MSYS\1.0\local\bin;C:\MinGW\MSYS\1.0\bin;C:\Program Files (x86)\zenity;C:\Program Files(x86)\Java\jdk1.7.0_03\bin;;C:\Users\Pieter\bennu\BennuGD Packager\ant_win\bin;C:\Users\Pieter\bennu\BennuGD Packager\ant_win\bin;C:\Users\Pieter\bennu\BennuGD Packager\ant_win\bin
These should normally be same right? ::) In the second path I have two semilcolons. Maybe that's the issue?
Update: it looks like that the apk creation itself fails, but a part of the packaging process seems to complete. It does create the directory with the android pacakage structure in the AppData\Temp directory. I think that build.xml can't build it.
Your system is most likely using the JRE and not the JDK as the default java version.
Could you print the output of executing this command in the windows command prompt?
for %i in (java.exe) do @echo. %~$PATH:i
[Edit] Or directly remove both the JRE and the JDK and then install ONLY the JDK.
When I create a batch file with the command, and saves/excutes it from my c:\users\pieter directory it ouputs: ~$PATH:i niet verwacht op dit moment. It says that it doesn't expect ~$PATH:i at this moment litarally translated.
When I type java.exe, from the same path, it say's it can't find it.
Quote from: handsource-dyko on September 12, 2012, 07:27:44 AM
When I create a batch file with the command, and saves/excutes it from my c:\users\pieter directory it ouputs: ~$PATH:i niet verwacht op dit moment. It says that it doesn't expect ~$PATH:i at this moment litarally translated.
When I type java.exe, from the same path, it say's it can't find it.
Ok, so set your system's path to point to the directory where JDK's java.exe is located.
I removed everyrthing from java (jre and jdk) and reinstalled the jdk and updated the path. Now the android sdk doesn't work anymore. Should I reinstall that as well? The emulator doesn't work anymore as well.
Quote from: handsource-dyko on September 13, 2012, 06:30:55 AM
I removed everyrthing from java (jre and jdk) and reinstalled the jdk and updated the path. Now the android sdk doesn't work anymore. Should I reinstall that as well? The emulator doesn't work anymore as well.
Yep, try reinstalling that, too (the SDK searches for your java installation when installing; after changing the java path, the android SDK must've gone nuts trying to find java).
Ok, I removed the android sdk, now ithe sdk installer complains it can't find java.exe in C:\Windows\system32. Is java.exe supposed to be there anyway? I find that strange. I created a JAVA_HOME enviornment variable with this value: C:\Program Files\Java\jdk1.7.0_03
I installed the 64 bit version of the JDK, maybe this a problem? Oh, and I added this to the windows Path: %JAVA_HOME%\bin.
Still the SDK installer refuses. I believe Oracle are trying hard to frustrate google because of the Dalvik vm. I feel like pulling out my hair. :D
SUN should have never been taken over by Oracle. They pretty much destroyed open office with their corperate culture and it looks like they are deliberately frustrating all of SUN's opensource projects.
Ok, the steps to install the Android SDK in windows (I just googled for these) would be:
* Remove all the Java implementations from your computer
* Install the Java JDK
* Set the environment variable JAVA_HOME to the Java installation path (C:\Program Files\Java\jdk1.7.0_07 in my system)
* After that, complete the Android SDK installation
* Start the SDK manager and at least install the android-10 SDK platform
* If you want better performance and don't have any other virtualization software (VirtualBox, VMWare...) installed, configure and install the Intel Hardware Acceleration Manager as described here:
http://developer.android.com/tools/devices/emulator.html#accel-vm
* Install a x86 image for Android 4.1. In the virtual machine settings, add an option to use GPU emulation and set it to yes, as described here:
http://developer.android.com/tools/devices/emulator.html#accel-graphics
Things _should_ work. If the installer tells you it cannot find your java installation and you set the JAVA_HOME environment variable, you must then close the SDK installer and relaunch it (that's the way windows works).
I tested these few steps this very morning in my computer running windows 7 64 bits (with the 64 bit JDK) and it worked flawlessly.
That's for the Android SDK. It's pretty standard so you should be able to get this going. If you find any problems, please google it or let me know but remember that it's Oracle's and Google's code that you're using yet :)
I've found a small bug in the packager for windows itself, I'll upload a newer version of the binaries for windows ASAP. In the meanwhile, install the SDK and play araoung with the virtual devices :)
PS: The Oracle JRE is the one that installs java.exe to c:\windows\system32\java.exe It does so so that people only installing the JRE won't have to set the JAVA_HOME environment variable by hand.
It seems I had to reboot the computer. The android SDK is now reinstalled.
Quote from: handsource-dyko on September 14, 2012, 07:31:20 AM
It seems I had to reboot the computer. The android SDK is now reinstalled.
Wonderful :) 'll try to upload a new version of the packager for windows with the small error fixed.
I had no idea the Android port had progressed this far, and the packager program seems very handy! Fantastic work!
Will try to port some of my games to Android some day soon! :)
is there an .avi plugin for it? my game needs an .avi plugin
Quote from: DoctorN on October 10, 2012, 09:18:52 PM
is there an .avi plugin for it? my game needs an .avi plugin
no, sorry. There's no video plugin for Android right now. There might be in the future but for now I'm trying to get the official modules going.
any of these NOT ported?
#ifndef __VERSION__
import "mod_sdlevthandler";
import "mod_pathfind";
#else
import "mod_blendop";
import "mod_text";
import "mod_grproc";
import "mod_video";
import "mod_map";
import "mod_screen";
import "mod_path";
import "mod_rand";
import "mod_say";
import "mod_mouse";
import "mod_scroll";
import "mod_math";
#endif
IMPORT "mod_debug";
IMPORT "mod_dir";
IMPORT "mod_file";
IMPORT "mod_key";
IMPORT "mod_draw";
IMPORT "mod_string";
IMPORT "mod_proc";
IMPORT "mod_wm";
IMPORT "mod_sys";
IMPORT "mod_joy";
IMPORT "mod_sound";
IMPORT "mod_time";
IMPORT "mod_timers";
IMPORT "mod_cd"
you need mod_cd to play cd's on your android ? your android is awesome ;D
Quote from: DoctorN on October 11, 2012, 03:33:42 AM
any of these NOT ported?
#ifndef __VERSION__
import "mod_sdlevthandler";
import "mod_pathfind";
#else
import "mod_blendop";
import "mod_text";
import "mod_grproc";
import "mod_video";
import "mod_map";
import "mod_screen";
import "mod_path";
import "mod_rand";
import "mod_say";
import "mod_mouse";
import "mod_scroll";
import "mod_math";
#endif
IMPORT "mod_debug";
IMPORT "mod_dir";
IMPORT "mod_file";
IMPORT "mod_key";
IMPORT "mod_draw";
IMPORT "mod_string";
IMPORT "mod_proc";
IMPORT "mod_wm";
IMPORT "mod_sys";
IMPORT "mod_joy";
IMPORT "mod_sound";
IMPORT "mod_time";
IMPORT "mod_timers";
IMPORT "mod_cd"
I'd say mod_cd is not included and neither is mod_debug. Please leave me a note in the bugtrack so that I won't forget about including those:
http://code.google.com/p/bennugd-monolithic/issues/list
I have sucessfully played monkey vs. robots with a mouse on the galaxy note 10.1. It also worked with the bennugd test app. I may want to create a small test app for keyboard and joystick inputs, but I still have difficulties with the packager on windows. But anyway, I think things are working pretty well on android. The galaxy note 10.1 runs android 4 ICS if I'm not mistaking. But I noticed that USB otg periphial support depends on the android firmware. Samsung seems to have disabled periphial support on the S2 for some strange reason.
Quote from: handsource-dyko on December 07, 2012, 09:45:47 AM
I have sucessfully played monkey vs. robots with a mouse on the galaxy note 10.1. It also worked with the bennugd test app. I may want to create a small test app for keyboard and joystick inputs, but I still have difficulties with the packager on windows. But anyway, I think things are working pretty well on android. The galaxy note 10.1 runs android 4 ICS if I'm not mistaking. But I noticed that USB otg periphial support depends on the android firmware. Samsung seems to have disabled periphial support on the S2 for some strange reason.
Did you install ant? There's an installer bundled with the packager now.
Otherwise, please upload a screenshot of the error.
Also, I'm not 100% sure, but yes, you probably need USB OTG support in your device. I'll test joystick input in a few days.
I have the latest version of the packager with the included version of ANT, but I always get that "APK creation failed with return code 1" error.
I don't know why this happens.
Quote from: handsource-dyko on December 07, 2012, 08:10:28 PM
I have the latest version of the packager with the included version of ANT, but I always get that "APK creation failed with return code 1" error.
I don't know why this happens.
Please try running the packager in a path that doesn't contain spaces in it.
Can this be a relative path or must it be an absolute path? (E.g. C:\bennu\packager) Because If I put it in My Documents the absolute path will still have spaces in it.
Personally I always use filenames and directory names without spaces but with underscores (old habbit from my DOS days).
No spaces in your path at all.
Ok, I've done that, there's is no more error message, but the packager seems to take it's time.....
I had two versions installed. Now I've removed both of them and installed the latest version of the packager. I ran the included winant-install-v7.exe but now the packager says it can't find ant. In the ant installation I selected "C:\Program Files\Java for the java" directory. The java directory contains these two directories: "jdk.1.7.0_03" and "jre7". Is this good? Winant itself seems to create it's own enviornment variables:
- ANT_HOME : C:\Program Files (x86)\WinAnt
- PATH : C:\Program Files (x86)\WinAnt\bin
This is the java envoirnment variable:
- JAVA_HOME : C:\Program Files\Java
B.t.w is is possible to create an apk manually by extracting an modifying an existing bennu apk package? Maybe that could work for me if everything else fails. :(
UPDATE: it works now! :) I had to do some tweaks with the location of ant and the PATH variable. I have sucessfully created my first test APK, but the progam doesn't yet work. I currently gives a black screen on the galaxy note 10.1, enventhough it works fine in windows. It tests keyboard, mouse, joystick and touch input. I haven't tried it in the emulator yet.
I think I know why I get a black screen: There are two dcb's in the package.
I've done a few tests wit the packages I make, and I have some mixed results with them. Mostly they package fine, but sometimes the created package won't install on the device. Often the program does nothing at all while in windows it works. Sometimes the screen stays black and some programs quit instantly, even when I have a loop in it. So, I tried repackaging the test program, and that mostly works. Strangly the bouncher doesn't appear in my modified version or touch routine no longer works (no dots are drawn), eventhough I haven't changed the code.
But the keyboard works fine when I attached one via usb. I added a line of code to the test program to exit when the ESC key is pressed, and that works fine. I use Android 4 ICS. It does not seem to matter if I choose landscape or Portait.
I have attached the modified program, but not the apk's due to size restrictions (just over 4096 bytes).
Edit: the bouncher was missing because I had renamed the filename in the sourcecode to lowercase, but forgot to rename the actual file. :-[
Quote from: handsource-dyko on December 11, 2012, 07:46:09 PM
I've done a few tests wit the packages I make, and I have some mixed results with them. Mostly they package fine, but sometimes the created package won't install on the device. Often the program does nothing at all while in windows it works. Sometimes the screen stays black and some programs quit instantly, even when I have a loop in it. So, I tried repackaging the test program, and that mostly works. Strangly the bouncher doesn't appear in my modified version or touch routine no longer works (no dots are drawn), eventhough I haven't changed the code.
But the keyboard works fine when I attached one via usb. I added a line of code to the test program to exit when the ESC key is pressed, and that works fine. I use Android 4 ICS. It does not seem to matter if I choose landscape or Portait.
I have attached the modified program, but not the apk's due to size restrictions (just over 4096 bytes).
Edit: the bouncher was missing because I had renamed the filename in the sourcecode to lowercase, but forgot to rename the actual file. :-[
Hi,
You should check the logcat to try to see why it's failing. From the packager menu open Android->Monitor and in the lower part of the screen you should be able to see the logcat.
Also, there's a known bug with some Adreno GPUs where the screen remains black after doing a set_mode. Sorry if you already posted but, what's your phone model?
[Edit]Oh, and remember that in Linux/Android filenames are case sensitive. mygraph.png is not the same as MyGraph.PNG
I test with tho devices: a Samsung Galaxy S2 (GT-I9100) and a Samsung Note 10.1 (GT-N8000) (mostly test it with that because of bigger screen and the better, full-fleged usb periphial support). The both run on 4.0 ICS. I will still need to test mod_joy and mod_mouse as well. I've looked at the android documentation from google today, and it seems that a lot neat things can be done from xml code. I.e. menu's and application properties. I don't know about IOS, but that seems to be interessting stuff for the future.
As far as I know both devices have a mali 400 gpu (the S2 is a GT-I9100 revision with a mali 400) There are at least 3 revisions of the S2, and they can differ in gpu as well. There is an Adreno 220 version, the (GT-I9210). But I have the one with the mali gpu.
Side note: I just saw on the spanish forum a talk from Pixel about an Android port of malvado, I have plans to do a port soon, when I have done some more android tests. I want to make sure that I can support keyboard and gamepad, because that makes porting easier. I still have version 1.8 in the works with the new demo mode, but the editor is a bit broken at the moment with the latest bennu version I'm using, and I didn't have the time lately, that's why I haven't releases it yet.
Things I have tested on the galaxy note 10.1 with the attached program:
- keyboard, mouse and joystick devices connected with a usb adapter.
Keys that work with a usb keyboard:
- esc.
- enter (also on numpad).
- space.
- tab.
- left/right ctrl.
- left/right alt.
- left/right shift.
- left/right windows.
- alt option.
- insert.
- delete.
- home.
- end.
- pgup / pgdn.
- scroll lock.
- numpad + and - .
- numpad / .
- numpad * .
- numpad peroid (.).
- numpad numbers.
- f1, f2, f3, f4, f5, f6, f7, f8, f9, f10.
- cursor keys.
- multimedia key search.
- multimedia key back.
Keys that don't work:
- backspace.
- wave.
- capslock.
- prt scr.
- scroll lock.
- pause/break.
- all alphanummerical keys.
- brackets, colon, etc.
Mouse:
- left mouse button works fine.
- middle and right are treated as left mouse button (so it's old-school like macos).
- scroll wheel does not work.
- mouse x and y only update when left mouse button is clicked (to have constant x,y update
you need to keep the mouse button pressed simultaneously while moving the pointer).
Joystick:
- only the digital-dpad works.
- joystick device is not reconised, but digital d-pad is treated as keyboard cursor keys.
- 0 devices, 0 buttons and 0 axis are reported.
The issue with the keyboard keys also occurs in several NES, SNES and C64 emulators I use. Could this be an SDL issue? In the browser and other textinput heavy apps everythings works as expected. For Malvado only the cursor keys, ESC, spacebar, enter and CTRL are used, so that should be fine.
I have attached the modified hello world input test program.
Quote from: handsource-dyko on December 12, 2012, 02:36:42 PM
Side note: I just saw on the spanish forum a talk from Pixel about an Android port of malvado, I have plans to do a port soon, when I have done some more android tests. I want to make sure that I can support keyboard and gamepad, because that makes porting easier. I still have version 1.8 in the works with the new demo mode, but the editor is a bit broken at the moment with the latest bennu version I'm using, and I didn't have the time lately, that's why I haven't releases it yet.
I didn't know that you were porting Malvado already :)
Anyway, I've still to design a good virtual gamepad for Android...
Thank you very much, handsource-dyko for the testing and for the info :)
BTW, Josebita, do you see any chances of getting the native joysticks working without mapping to keys?
Surely OUYA will be working like that.
I've tried an app, called USB/BT Joystick Center 6, and it seems that it handles more than one joystick at a time.
Quote from: PiXeL on December 12, 2012, 11:03:01 PM
BTW, Josebita, do you see any chances of getting the native joysticks working without mapping to keys?
Surely OUYA will be working like that.
I've tried an app, called USB/BT Joystick Center 6, and it seems that it handles more than one joystick at a time.
I've been looking at that, yes, although it requires patching SDL.
I'll try to write the patch and send it upstream to SDL when I get some free time.
What kind of gamepad will OUYA support? I always test malvado with the official "malvado certified joystick" ;D a.k.a the "Suzo Arcade" connected by a USB adapter (you can find review of it on my website and youtube channel). Anyway, I'll see if I can get malvado up and running with keyboard support. I've just added some code for the "back" button to it.
(https://lh3.googleusercontent.com/-8LF6iNGzzQY/TwG9Nht3NWI/AAAAAAAAH6M/iibRZ8Tw0Co/s800/M5110192.JPG)
It's like this:
(http://forum.bennugd.org/index.php?action=dlattach;topic=2394.0;attach=2749)
Nice controller! Looks quite like an xbox 360 and ps3 controller plus a touchpad. I wonder how it's implemented in it's device class. Some products like the Icade emulate a keyboard, but under android this is not a requirment as it supports true usb-hid joystick/gamepad class devices.
just made a malvado package, but I get a black screen... This is the logcat:
12-13 18:55:19.181: D/dalvikvm(4159): Trying to load lib /data/data/com.dyko.malvado/lib/libpng.so 0x40514eb8
12-13 18:55:19.181: D/dalvikvm(4159): Added shared lib /data/data/com.dyko.malvado/lib/libpng.so 0x40514eb8
12-13 18:55:19.191: D/dalvikvm(4159): No JNI_OnLoad found in /data/data/com.dyko.malvado/lib/libpng.so 0x40514eb8, skipping init
12-13 18:55:19.191: D/dalvikvm(4159): Trying to load lib /data/data/com.dyko.malvado/lib/libmikmod.so 0x40514eb8
12-13 18:55:19.201: D/dalvikvm(4159): Added shared lib /data/data/com.dyko.malvado/lib/libmikmod.so 0x40514eb8
12-13 18:55:19.201: D/dalvikvm(4159): No JNI_OnLoad found in /data/data/com.dyko.malvado/lib/libmikmod.so 0x40514eb8, skipping init
12-13 18:55:19.201: D/dalvikvm(4159): Trying to load lib /data/data/com.dyko.malvado/lib/libSDL2.so 0x40514eb8
12-13 18:55:19.252: D/dalvikvm(4159): Added shared lib /data/data/com.dyko.malvado/lib/libSDL2.so 0x40514eb8
12-13 18:55:19.252: D/dalvikvm(4159): Trying to load lib /data/data/com.dyko.malvado/lib/libSDL2_mixer.so 0x40514eb8
12-13 18:55:19.271: D/dalvikvm(4159): Added shared lib /data/data/com.dyko.malvado/lib/libSDL2_mixer.so 0x40514eb8
12-13 18:55:19.271: D/dalvikvm(4159): No JNI_OnLoad found in /data/data/com.dyko.malvado/lib/libSDL2_mixer.so 0x40514eb8, skipping init
12-13 18:55:19.281: D/dalvikvm(4159): Trying to load lib /data/data/com.dyko.malvado/lib/libbgdrtm.so 0x40514eb8
12-13 18:55:19.301: D/dalvikvm(4159): Added shared lib /data/data/com.dyko.malvado/lib/libbgdrtm.so 0x40514eb8
12-13 18:55:19.301: D/dalvikvm(4159): No JNI_OnLoad found in /data/data/com.dyko.malvado/lib/libbgdrtm.so 0x40514eb8, skipping init
12-13 18:55:19.322: D/dalvikvm(4159): Trying to load lib /data/data/com.dyko.malvado/lib/libmain.so 0x40514eb8
12-13 18:55:19.322: D/dalvikvm(4159): Added shared lib /data/data/com.dyko.malvado/lib/libmain.so 0x40514eb8
12-13 18:55:19.322: D/dalvikvm(4159): No JNI_OnLoad found in /data/data/com.dyko.malvado/lib/libmain.so 0x40514eb8, skipping init
I attached the apk and the binary and source archives of the very latest malvado version with new demo mode:
https://dl.dropbox.com/u/43665695/malvado2012-binary-distribution-android.tar (https://dl.dropbox.com/u/43665695/malvado2012-binary-distribution-android.tar)
https://dl.dropbox.com/u/43665695/malvado2012-binary-distribution-android-sources.tar (https://dl.dropbox.com/u/43665695/malvado2012-binary-distribution-android-sources.tar)
https://dl.dropbox.com/u/43665695/malvado-debug.apk (https://dl.dropbox.com/u/43665695/malvado-debug.apk)
When the apk is installed, the screen is black and the app quits instantly.
Remove mod_debug :)
I removed mod_debug, now the game starts (only sound) but no graphics. I quits after a few seconds. Does the android version support scale modes? By default Malvado starts in scale_mode x2 and in window mode. (it saved in a .dat file).
I don't know, just try commenting those lines :1
I renamed malvado.cfg, so that the game doesn't look at it, now it display's the "V.1.8" text in the upper-left corner, for the rest it's still the same. This is going te be a lot of trial and error.... ;D
I'll have a look at it later today to see what might be happenning.
Here's the version that I tested last evening (with the V.1.8 text) The file malvadoconfig.dat in the "dat" folder is renamed so that the game ignores it, so that i uses the default settings (no scale mode). The compilation scripts do not work with this archive because I haven't put everything in it.
https://dl.dropbox.com/u/43665695/malvado-v18-text.apk (https://dl.dropbox.com/u/43665695/malvado-v18-text.apk)
https://dl.dropbox.com/u/43665695/malvado-v18-text.zip (https://dl.dropbox.com/u/43665695/malvado-v18-text.zip)
Ive got the feeling that it's failing on loading the fpg file's. I made another package with a few small changes and still got the same result.
When I look at the logcat, it stops executing at some point. On windows, everything is working just fine.
This is the log before it fails:
12-17 17:18:23.495: W/SDL/APP(1007): demo 1 now playing.
12-17 17:18:23.514: W/SDL/APP(1007): fpg file exists? (intro screens): 0
12-17 17:18:23.524: W/SDL/APP(1007): title screen
12-17 17:18:23.524: W/SDL/APP(1007): demonum: 1
12-17 17:18:23.684: I/DEBUG(31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-17 17:18:23.684: I/DEBUG(31): Build fingerprint: 'generic/sdk/generic:2.3.3/GRI34/101070:eng/test-keys'
12-17 17:18:23.684: I/DEBUG(31): pid: 1007, tid: 1015 >>> com.dyko.malvado <<<
12-17 17:18:23.684: I/DEBUG(31): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr ffffffff
12-17 17:18:23.684: I/DEBUG(31): r0 00000001 r1 00000000 r2 00000000 r3 00000000
12-17 17:18:23.694: I/DEBUG(31): r4 00000000 r5 ffffffff r6 00315bd0 r7 002cbb6c
12-17 17:18:23.694: I/DEBUG(31): r8 00000002 r9 80894b3c 10 80894b44 fp 80894b50
12-17 17:18:23.694: I/DEBUG(31): ip 80879db8 sp 4413ea00 lr 80634a57 pc 80634a66 cpsr 00000030
12-17 17:18:23.904: I/DEBUG(31): #00 pc 00034a66 /data/data/com.dyko.malvado/lib/libSDL2.so
12-17 17:18:23.904: I/DEBUG(31): #01 pc 0001fe8c /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:23.915: I/DEBUG(31): #02 pc 000202d0 /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:23.915: I/DEBUG(31): #03 pc 00019b4e /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:23.915: I/DEBUG(31): #04 pc 00019c52 /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:23.915: I/DEBUG(31): #05 pc 00019fc6 /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:23.915: I/DEBUG(31): #06 pc 00000ade /data/data/com.dyko.malvado/lib/libmain.so
12-17 17:18:23.924: I/DEBUG(31): #07 pc 000009ce /data/data/com.dyko.malvado/lib/libmain.so
12-17 17:18:23.924: I/DEBUG(31): #08 pc 00017d74 /system/lib/libdvm.so
12-17 17:18:23.924: I/DEBUG(31): #09 pc 00048ecc /system/lib/libdvm.so
12-17 17:18:23.935: I/DEBUG(31): #10 pc 00041a86 /system/lib/libdvm.so
12-17 17:18:23.955: I/DEBUG(31): #11 pc 0004e624 /system/lib/libdvm.so
12-17 17:18:23.955: I/DEBUG(31): #12 pc 0001cfd4 /system/lib/libdvm.so
12-17 17:18:23.964: I/DEBUG(31): #13 pc 000220dc /system/lib/libdvm.so
12-17 17:18:23.964: I/DEBUG(31): #14 pc 00020fd0 /system/lib/libdvm.so
12-17 17:18:23.975: I/DEBUG(31): #15 pc 0005f430 /system/lib/libdvm.so
12-17 17:18:23.975: I/DEBUG(31): #16 pc 0005f656 /system/lib/libdvm.so
12-17 17:18:23.975: I/DEBUG(31): #17 pc 00053b4e /system/lib/libdvm.so
12-17 17:18:24.005: I/DEBUG(31): #18 pc 00011a7c /system/lib/libc.so
12-17 17:18:24.005: I/DEBUG(31): #19 pc 00011640 /system/lib/libc.so
12-17 17:18:24.015: I/DEBUG(31): code around pc:
12-17 17:18:24.025: I/DEBUG(31): 80634a44 000499c0 b083b530 a8019001 f7ff1c0d
12-17 17:18:24.025: I/DEBUG(31): 80634a54 2400ff33 d0052800 6a199b01 dd0442a9
12-17 17:18:24.025: I/DEBUG(31): 80634a64 5d5c6a5b 1c20b003 4802bd30 f7d84478
12-17 17:18:24.035: I/DEBUG(31): 80634a74 e7f7f833 0004999c b082b570 a8019001
12-17 17:18:24.045: I/DEBUG(31): 80634a84 ff1af7ff d0052800 6ac39801 62c33b01
12-17 17:18:24.055: I/DEBUG(31): code around lr:
12-17 17:18:24.055: I/DEBUG(31): 80634a34 2001f853 e7f64240 42402001 46c0e7f3
12-17 17:18:24.055: I/DEBUG(31): 80634a44 000499c0 b083b530 a8019001 f7ff1c0d
12-17 17:18:24.055: I/DEBUG(31): 80634a54 2400ff33 d0052800 6a199b01 dd0442a9
12-17 17:18:24.065: I/DEBUG(31): 80634a64 5d5c6a5b 1c20b003 4802bd30 f7d84478
12-17 17:18:24.075: I/DEBUG(31): 80634a74 e7f7f833 0004999c b082b570 a8019001
12-17 17:18:24.075: I/DEBUG(31): stack:
12-17 17:18:24.075: I/DEBUG(31): 4413e9c0 8060cb69 /data/data/com.dyko.malvado/lib/libSDL2.so
12-17 17:18:24.075: I/DEBUG(31): 4413e9c4 8067bd14 /data/data/com.dyko.malvado/lib/libSDL2.so
12-17 17:18:24.095: I/DEBUG(31): 4413e9c8 8068994c /data/data/com.dyko.malvado/lib/libSDL2.so
12-17 17:18:24.095: I/DEBUG(31): 4413e9cc 80894b3c /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:24.095: I/DEBUG(31): 4413e9d0 00010007 [heap]
12-17 17:18:24.095: I/DEBUG(31): 4413e9d4 4413e9f8
12-17 17:18:24.095: I/DEBUG(31): 4413e9d8 00000002
12-17 17:18:24.095: I/DEBUG(31): 4413e9dc 00000000
12-17 17:18:24.095: I/DEBUG(31): 4413e9e0 00000000
12-17 17:18:24.105: I/DEBUG(31): 4413e9e4 00315bd0 [heap]
12-17 17:18:24.105: I/DEBUG(31): 4413e9e8 002cbb30 [heap]
12-17 17:18:24.105: I/DEBUG(31): 4413e9ec 80634a77 /data/data/com.dyko.malvado/lib/libSDL2.so
12-17 17:18:24.105: I/DEBUG(31): 4413e9f0 8067e410 /data/data/com.dyko.malvado/lib/libSDL2.so
12-17 17:18:24.105: I/DEBUG(31): 4413e9f4 00000000
12-17 17:18:24.105: I/DEBUG(31): 4413e9f8 df002777
12-17 17:18:24.105: I/DEBUG(31): 4413e9fc e3a070ad
12-17 17:18:24.105: I/DEBUG(31): #00 4413ea00 00000000
12-17 17:18:24.115: I/DEBUG(31): 4413ea04 00313560 [heap]
12-17 17:18:24.115: I/DEBUG(31): 4413ea08 8082b201 /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:24.115: I/DEBUG(31): 4413ea0c 00000001
12-17 17:18:24.135: I/DEBUG(31): 4413ea10 00315bd8 [heap]
12-17 17:18:24.135: I/DEBUG(31): 4413ea14 8081fe8f /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:24.135: I/DEBUG(31): #01 4413ea18 00391c78 [heap]
12-17 17:18:24.135: I/DEBUG(31): 4413ea1c 808202d5 /data/data/com.dyko.malvado/lib/libbgdrtm.so
12-17 17:18:25.069: W/AudioFlinger(34): write blocked for 86 msecs, 61 delayed writes, thread 0xc658
12-17 17:18:27.525: D/Zygote(33): Process 1007 terminated by signal (11)
12-17 17:18:27.537: I/ActivityManager(61): Process com.dyko.malvado (pid 1007) has died.
12-17 17:18:27.545: E/InputDispatcher(61): channel '4069dd00 com.dyko.malvado/com.dyko.malvado.MyGame (server)' ~ Consumer closed input channel or an error occurred. events=0x8
12-17 17:18:27.545: E/InputDispatcher(61): channel '4069dd00 com.dyko.malvado/com.dyko.malvado.MyGame (server)' ~ Channel is unrecoverably broken and will be disposed!
12-17 17:18:27.555: I/WindowManager(61): WIN DEATH: Window{4069dd00 com.dyko.malvado/com.dyko.malvado.MyGame paused=false}
12-17 17:18:27.575: I/WindowManager(61): WIN DEATH: Window{406e4050 SurfaceView paused=false}
12-17 17:18:27.625: I/WindowManager(61): Setting rotation to 0, animFlags=1
12-17 17:18:27.635: I/ActivityManager(61): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=1/1/2 nav=3/1 orien=1 layout=34 uiMode=17 seq=12}
12-17 17:18:27.865: W/InputManagerService(61): Got RemoteException sending setActive(false) notification to pid 1007 uid 10034
12-17 17:18:30.194: D/dalvikvm(61): GC_EXPLICIT freed 25K, 50% free 4171K/8263K, external 3125K/3903K, paused 85ms
12-17 17:18:41.224: D/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol
12-17 17:23:41.255: D/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol
12-17 17:28:41.265: D/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol
12-17 17:33:41.294: D/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol
12-17 17:38:00.106: D/dalvikvm(117): GC_CONCURRENT freed 311K, 52% free 2788K/5767K, external 2168K/2674K, paused 4ms+6ms
https://www.dropbox.com/s/i732676i6rrh7mq/malvado-17-12-2012.apk (https://www.dropbox.com/s/i732676i6rrh7mq/malvado-17-12-2012.apk)
https://www.dropbox.com/s/jvl66zkscjwj3rj/malvado2012-binary-distribution-android.tar (https://www.dropbox.com/s/jvl66zkscjwj3rj/malvado2012-binary-distribution-android.tar)
https://www.dropbox.com/s/is2wy8q47liwolc/malvado2012-binary-distribution-android-sources.tar (https://www.dropbox.com/s/is2wy8q47liwolc/malvado2012-binary-distribution-android-sources.tar)
The code has a few small changes and I added some missing files for compilation. To compile, extract the binary and source files in the same dir.
Sorry for not doing this, I'll try to have a look at it ASAP.
Your app is crashing and that's why it stays black. Will have to have a look at why.
Also, I've published a post in my blog with a summary of the latest news on the port:
http://bennugd-mobile.blogspot.com/2012/12/progress-update.html
Could it maybe caused by compressed fpg files? I use smartfpg editor and I think it compresses them. I will update the packager, right now I'm doing the Android SDK update. In the weekend I looked at the galaxy S2 again, and guess what, the keyboard and mouse are now reconised perfectly fine by the device. I bought a very cheep mouse and keyboard at a second hand store, and they got detected by the S2, turns out that the other keyboard and mouse that I tried before now also work. Maybe Samsung fixed something with their over-the-air updates. :D
I've read somewhere that android won't load uncompressed asset files that are over 1mb in size, unless they have a specific file extension.
I've got a couple of ogg and fpg files in my project that are bigger. Maybe that's why malvado crashes?
http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/ (http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/)
Quote from: handsource-dyko on December 29, 2012, 10:27:00 AM
I've read somewhere that android won't load uncompressed asset files that are over 1mb in size, unless they have a specific file extension.
I've got a couple of ogg and fpg files in my project that are bigger. Maybe that's why malvado crashes?
http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/ (http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/)
Sorry for the wait. I've been busy adding joystick support.
I'll review this today and try to give you an answer; I hope it won't be difficult.
As a test measure, try to check the values returned by the load_* functions. I'll give it a look and write back to you.
Sorry for the wait and thanks for your patience.
Oh, don't mind, joystick support is more important, and I'm currently working on some other stuff. I fixed the scrolling in the game (by using scale_resolution), but I still need to figure out why my editor scrolling goes crazy.
Hi handsource-dyko, here are a few things I've noticed in your game (list is a WIP, I'll update it):
- Most of your (FPG, MAP, FNT & PAL) resources are compressed. BennuGD for Android cannot read compressed resources inside the APK. Besides, it's redundant since APKs are ZIP files themselves.
If you're in linux (or you use cygwin in Windows) you can determine if files are compressed by running "file *.fpg", it will output something like this:
bear.fpg: gzip compressed data, from NTFS filesystem (NT)
bee.fpg: gzip compressed data, from NTFS filesystem (NT)
bonus.fpg: data
The first two are compressed and the third one isn't.
The latest version of my packager will try to uncompress all the resouces, but it'd be great if you compilation scripts handled that. - I'm missing a few letters in the intro text portrayed below :)
- Apparently the game is crashing after the demo while doing some joystick-related stuff...
The game does start now after uncompressing the resources, here's a small screenshot (ignore the ad):
(http://forum.bennugd.org/index.php?action=dlattach;topic=2394.0;attach=2778)
The game still crashes after the intro, though.
Is it possible to uncompress them with a program like 7zip under windows? They seem to use gzip compression. I have created most of the files with smartfpg editor. I expected the possibility of compression as source of the problem. Do bennu's own fpg_save, map_save, fnt_save and pal_save functions apply compression to them or is it possible to save them without compression? Then I could make a small conversion tool.
Quote from: handsource-dyko on December 29, 2012, 02:55:14 PM
Is it possible to uncompress them with a program like 7zip under windows? They seem to use gzip compression. I have created most of the files with smartfpg editor. I expected the possibility of compression as source of the problem. Do bennu's own fpg_save, map_save, fnt_save and pal_save functions apply compression to them or is it possible to save them without compression? Then I could make a small conversion tool.
Yep, you can use 7zip. I don't really know if you can give BennuGD any flag to tell it not to compress files...
I figured out why malvado crashed and the menu didn't appear: I removed all the joystick code (and the import for mod_joy) in malvado and replaced it by keyboard code, as a quick test to see whether this was the cause. Now, the menu appears! :) But the keyboard doesn't respond. I used the latest packager, so should I use android scan_codes perhaps?
I need to rewrite my input system anyway because it's kinda ugly and complicated because it had to work with the WIZ / CAANOO and Dreamcast (platforms I never tested, and I remove support for these in favour of android). With the latest version, my hello world input test program doesn't see the keyboard anymore.
Quote from: handsource-dyko on January 01, 2013, 05:20:11 PM
I figured out why malvado crashed and the menu didn't appear: I removed all the joystick code (and the import for mod_joy) in malvado and replaced it by keyboard code, as a quick test to see whether this was the cause. Now, the menu appears! :) But the keyboard doesn't respond. I used the latest packager, so should I use android scan_codes perhaps?
I need to rewrite my input system anyway because it's kinda ugly and complicated because it had to work with the WIZ / CAANOO and Dreamcast (platforms I never tested, and I remove support for these in favour of android). With the latest version, my hello world input test program doesn't see the keyboard anymore.
I'll have to review it because joystick input _should_ be working (at least not crashing) in Android.
Please, replace the "templates/android/libs" with the contents of this:
https://www.dropbox.com/s/ya8idw7kf09zktp/libs.7z (https://www.dropbox.com/s/ya8idw7kf09zktp/libs.7z)This should -hopefully- give you your keyboard back.
[Edit] Puff, don't bother. I must update the Packager code with a lot of new stuff (including joystick support on Adnroid > 4.1) but it's a bit more complicated than just replacing the libs.
I'll let you know when it's done.
Here's an updated build apk without working controls but with the self-playing demo working.
https://www.dropbox.com/s/oy1brekfg4sybi7/malvado-02-01-2013-2.apk (https://www.dropbox.com/s/oy1brekfg4sybi7/malvado-02-01-2013-2.apk)
Here's the binary package : https://www.dropbox.com/s/jvl66zkscjwj3rj/malvado2012-binary-distribution-android.tar (https://www.dropbox.com/s/jvl66zkscjwj3rj/malvado2012-binary-distribution-android.tar)
Here's the sources: https://www.dropbox.com/s/is2wy8q47liwolc/malvado2012-binary-distribution-android-sources.tar (https://www.dropbox.com/s/is2wy8q47liwolc/malvado2012-binary-distribution-android-sources.tar)
It can be played on windows with a keyboard, but on android the controls don't do anything. Anyway, you can watch the game play itself. :D
I noticed that in the latest version of BennuGD Packager, it isn't possible to package a game without using admob. It says "The AdMob Publisher ID cannot be empty." even though I have not checked the Show AdMob ads option.
I noticed it as well.
Quote from: Imerion on January 09, 2013, 11:23:55 AM
I noticed that in the latest version of BennuGD Packager, it isn't possible to package a game without using admob. It says "The AdMob Publisher ID cannot be empty." even though I have not checked the Show AdMob ads option.
Yep, the latest windows version has that particular issue fixed. I'll update the PPA version ASAP.