Oct 22, 2012 at 2:32 AM
I worked a little bit on an android version but gave up (your port works much better). As for licensing, to avoid potential issues with redistributing the original game files, what should be done is to add a downloader the app which downloads the data files from a licensed distributor (such as cavestory.org) and have it read the downloaded files. Then all the deb/ipa would contain is the GPL licensed app. If you could send a binary compiled for a jailbreak I could help create a deb package for cydia, including a data downloader script.Not sure if I have to make post here or to create new thread. Anyway.
I'm making the port of NXEngine to iOS platform.
Proof is here:
Project page is here: https://github.com/PIlin/NXEngine-iOS
Work in progress, but, as you can see, game is already in a good state.
There are no packages yet, source only. And I don't think, that the game will appear in appstore in near future. I'm not even sure that it is possible to submit it to appstore due to of legal regulations, licensing, rights and such stuff.
I would appreciate any help. For example:
1. Can someone check the licensing? I think, original game files are free and NXEngine is GNU GPL, but all this legal stuff makes me really confused.
2. Can someone make an icon for application?
3. If someone have experience for packaging apps for jailbroken devices, feel free to help me and distribute it on cydia.
4. I would appreciate, if you manage to build and launch the game, find and report the bugs. And then, make the patches
Thanks to your fixes (and recompiling using the official NDK), the ear-bleeding sound issue and signboard issue in NXEngine AE are fixed. Only two problems now. Sound effects don't seem to play, and its slow. I'll try a release compile and see if it will run fasterpashkoff said:I have established cydia repo for testing purpouses. There is development version of the engine. Link is http://pilin.github.com/NXEngine-iOS/repo/
Issue tacker is on the project page https://github.com/PIlin/NXEngine-iOS/issues?state=open
I am very glad to read that.xperia64 said:Thanks to your fixes (and recompiling using the official NDK), the ear-bleeding sound issue and signboard issue in NXEngine AE are fixed. Only two problems now. Sound effects don't seem to play, and its slow. I'll try a release compile and see if it will run faster
If mods change only game files, than I don't see big problems to port something to mobile device. For beginning, you can try them under NXEngine for Windows or Linux.hate9 said:Works quite well so far, We all know what this means... MOD PORTING!!!!!!!!!!!
Or MAYBE modding program porting, now THAT would be nice...
I fixed the sound effects issue. It was trying to load from sndcache.pcm which is broken. Loading from the .pxt's works perfectly. On a side note, I think in both of our projects we should disable the resolution option in the menu.pashkoff said:I am very glad to read that.
There were two issues with sound:
1. Undefined behaviour when game is rendered sound samples from formulas. Fixed in https://github.com/PIlin/NXEngine-iOS/commit/4fab248cea7a0aab342713a536834bbdff169da2 (and wrong fix was in the previous commit). This issue was only in release configuration when compiler made optimizations.
2. Mixing buffer was not cleaned. It seems, that it worked in SDL1.2, but in newer version it made realy stramge sounds. Fixed in https://github.com/PIlin/NXEngine-iOS/commit/34f2452a2a74ce14e813d67d2a7c2dcd229d54f1
If you interested, you can try to revert changes and check, what caused your problems with music.
Are you sure, that sound effects are enabled in settings? Sure, it's stupid question, but anyway.
Also, about speed. Are there any profiler tools for android? It would be interestiong to see, where game spends morst of the time. I'm almost sure it will be in rendering.
I have moved game to SDL2, where it's possible to use hardware accelerated rendering, but I have not changed how it's rendered. And I have to say, that engine does it in very unefficient way. The next thing I want to do is to remake rendering. Problem is, I don't really have much free time now.
Yes, cahce removal helps with those issues. And I have already disabled resolution switching.xperia64 said:I fixed the sound effects issue. It was trying to load from sndcache.pcm which is broken. Loading from the .pxt's works perfectly. On a side note, I think in both of our projects we should disable the resolution option in the menu.
Good. Also, as android's virtual keyboard doesn't play nice with SDL, NXEngine AE currently requires a physical controller such as a wiimote.pashkoff said:Yes, cahce removal helps with those issues. And I have already disabled resolution switching.
I have written my own implementation of virtual gamepad which uses sdl2 touch events. It's what you can see in video. So it's, probably, biggest cange I made in the engine. It is in vjoy.cpp. Also, I have made support for touch control of in-game button and such stuff. For this I had to intervene into a lot of places around the code (but they are all under ifdef CONFIG_USE_TAPS. Or must be). And also I have done some ios-specific code for tap and gestures support. But this code is located in platform/iOS folder.xperia64 said:Good. Also, as android's virtual keyboard doesn't play nice with SDL, NXEngine AE currently requires a physical controller such as a wiimote.
Here is the app download:
and here is the data download:
(extract the nxengine folder into /mnt/sdcard/data/)
NXEngine AE will probably not be on the google play store any time soon for various reasons. I might upload it to slideme or somewhere like that
Main problem with my port is that it appears to be based off of NXEngine v. 1.0.0. I used the code from the openpandora port as a base (here: http://sebt3.openpandora.org/src/?f=nxengine-pandora-20110624.tar.gz ) . I also tried compiling the 184.108.40.206 core but it was even slower and had graphical glitches (I might try to fix it later, or just start with a fork of the ios port with the android-specific fixes I added).pashkoff said:What do you think about combining our efforts? I think, that the main part - the engine - is the same on both platforms. So we can merge our code and improve it together. I will be traveling for a few weeks, so think about it.
1. Ah, yes. I have heard this argument.Carrotlord said:1. Why are you porting anything? This is Cave Story, NOT your own game.
Nicalis could easily sue you. You're right - they probably won't, but porting it isn't actually legal, especially if you're trying to make a faithful recreation of the game.
Pixel and Nicalis have said very explicitly: they control all ports, and no more ports will be made. This is final.
2. Do not say that you can support mods until you have a working port. I mean a fully working port, not the examples you have now.
3. Do you know how hard it is to port mods to the PSP? Why can't we easily port mods to Mac and Linux? There is a good reason. A very good reason that you should never attempt to fix by yourself unless you are an industry leader.
I consider real mods to be real mods. Also, this is just a minor gripe, but it would be nice of both of you two could get avatars. It is confusing to talk to you right now when I can barely tell who's who.