AGS engine iOS port

Started by JJS, Sun 13/05/2012 16:41:09

Previous topic - Next topic

BigMc

It's probably not required, but strictly speaking the offset information at the end of the data (JJS mentions it) should also be updated to 0. Would be nice to have a small tool to do the cut.

JanetC

Quote from: JJSThat utility cannot directly chop off the engine though. It can only extract everything and then pack it again. It should be trivial to make a script that removes the exe directly (if you don't suck at scripts like me). It is certainly no problem with a hex editor. The engine exe ends with "PADDINGXXPADDING", the data starts with "CLIB". Cut must be made in between. Also the end of the file contains the offset to the CLIB start iirc. Edit: Yeah, it is the 4 bytes directly before CLIB at the end of the file.

I cut everything from the exe before CLIB. Seems to work. Is that right? I don't understand what jjs means about the "Also the end of the file contains the offset to the CLIB start iirc." - I didn't change that. Is that likely to cause problems?

Crimson Wizard

Quote from: JanetC on Mon 04/03/2013 00:50:05
I cut everything from the exe before CLIB. Seems to work. Is that right? I don't understand what jjs means about the "Also the end of the file contains the offset to the CLIB start iirc." - I didn't change that. Is that likely to cause problems?
He meant that there's a value written at the end of file, which tells at which offset (from the file start) the data is written.
Formally that should be 0, since now the file does not contain exe binaries, but for the same reason this offset won't be read at all. It is only being read when the CLIB marker is not found at the file's beginning.

mintymint

Hi all,

I download and try the port yesterday, and I've been struggling with this error since yesterday, and unable to fix it until now.
Any idea what is the cause or which library I was missing to add?

Undefined symbols for architecture armv7:
  "__ZN3AGS6Engine7VersionC1EiiiRKNS_6Common6StringE", referenced from:
      __Z9main_initv in main-687CAE172AE71585.o
  "__ZN3AGS6Engine7VersionC1Eiii", referenced from:
      __Z14start_playbackv in record.o
      __Z9main_initv in main-687CAE172AE71585.o
  "__ZN3AGS6Engine7VersionC1ERKNS_6Common6StringE", referenced from:
      __Z19restore_game_headerPN3AGS6Common6StreamE in game.o
      __Z14start_playbackv in record.o
      __Z22game_file_read_versionPN3AGS6Common6StreamE in game_file.o
  "__ZN3AGS6Engine7VersionC1Ev", referenced from:
      ___cxx_global_var_init in main-687CAE172AE71585.o
      ___cxx_global_var_init1 in main-687CAE172AE71585.o
      ___cxx_global_var_init2 in main-687CAE172AE71585.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Thank you so much in advance. I really interested in this, but my engine related programming is not good.

JanetC

Just thought I'd say thanks for all the help from the AGS port team in getting Gemini Rue on iOS, especially JJS who fixed so many engine bugs and answered so many questions!

Gemini Rue came out yesterday and is doing well :)

Now for the rest of our games!

festilligambe

This thread seems pretty quiet.  Any new updates on the port.
New to programing, old school to adventure games

Sslaxx

Considering the main coder for the port has had a baby, not really.
Stuart "Sslaxx" Moore.

JanetC

Quote from: Sslaxx on Fri 17/05/2013 22:03:57
Considering the main coder for the port has had a baby, not really.

I'm not really the main coder, just used the port commercially. It's in a pretty good state at the moment (at least my branched version is) - Gemini Rue launched without too many problems.

Calin Leafshade

Is your branch open to the public? Are your changes suitable to be merged into the main branch for other users?

Joseph DiPerla

Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

Crimson Wizard

Quote from: Calin Leafshade on Wed 29/05/2013 00:08:43
Is your branch open to the public? Are your changes suitable to be merged into the main branch for other users?
https://github.com/JanetGilbert/ags

tzachs

In the first page it still says that the port is for jail-broken devices only, but since you managed to put Gemini Rue on the app store, I conclude that you managed to work around that.
Can you share some information on that? Can we freely use the port to publish games to the app store or is there some ground work to be done?





Stee

Just a guess but check the xcode folder in /ios
<Babar> do me, do me, do me! :D
<ProgZMax> I got an idea - I reached in my pocket and pulled out my Galen. <timofonic2> Maybe I'm a bit gay, enough for do multitask and being romantical

JJS

The jailbreak requirement is only for the version in this thread as it is the only way to install non-store apps. Other changes for submitting to the store would be mostly adding meta files like all the required images for the different devices. You can see these changes in JanetG's repository linked above. It also has modified controls that are more suited for touch control.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

JanetC

Quote from: tzachs on Wed 29/05/2013 12:31:02
In the first page it still says that the port is for jail-broken devices only, but since you managed to put Gemini Rue on the app store, I conclude that you managed to work around that.
Can you share some information on that? Can we freely use the port to publish games to the app store or is there some ground work to be done?

Quote from: Calin Leafshade on Wed 29/05/2013 00:08:43
Is your branch open to the public? Are your changes suitable to be merged into the main branch for other users?

If you want to use my branch, you are welcome!

As JJS says, it has some control changes to make it more suitable for Wadjet Eye games, but they also require scripting changes to make the best of them. For instance, I had to remove all right-click events because my version of the engine can't handle them, for simplicity.

It is set up to take only one compiled game script, which is compiled into the game, unlike the "real" version that requires jailbroken devices, and allows you to install as many compiled game scripts (.exe files) as you like. This is to make it suitable for the App store.

To sell a game on the app store you will need to get your own developer account and replace the references to my developer account with yours.

winz

Hi all!!
First, congratulations to JJS for this thread!
And hi to Janet :) and congrats you too!
Sorry for my bad english, i have a question...

You could do a sort of step by step for porting? I have read the entire thread several times but I don't understand where i have to start.
I have my own .exe, and then what?
It would be useful a guide like at least the novice like me that would know where to start ... if you have time to do it naturally!

Another thing: there is a way to test the game without owning a jailbroken device or developer account ? Perhaps through an emulator like that of the Apple software (that for xcode)?

TY and have a good day!!

Winz

powerslyde

I have a similar question as well. I can build the xcode project, but I do not know where to put the AGS game file.
I get an error message : (Unable to find game data file in any of the known locations.)

jannar85

You can now install on non-jailbreaked devices.... I don't know how they did it, but here's an example:
https://github.com/rileytestut/GBA4iOS

And this: http://appadvice.com/appnn/2013/07/how-to-install-a-game-boy-emulator-on-your-idevice-jailbreak-free

Could this be done with AGS too?
Veteran, writer... with loads of unreleased games. Work in progress.

JanetC

Quote from: winz on Fri 21/06/2013 16:00:27You could do a sort of step by step for porting? I have read the entire thread several times but I don't understand where i have to start.
I have my own .exe, and then what?
Sorry, too busy with my new baby to write a walkthrough!

The exe you need to rename to ac2game.dat and put in a resource folder via xcode (along with any other data files) to be built into the app.

Quote from: winz on Fri 21/06/2013 16:00:27
Another thing: there is a way to test the game without owning a jailbroken device or developer account ? Perhaps through an emulator like that of the Apple software (that for xcode)?

Yes, xcode provides an emulator with the iOS libraries.

Gord10

I have been struggling to port an old game to iOS for a long time. Finally, I've managed to compile JJS's AGS engine version in Snow Leopard (the actual machine is Mountain Lion. I had to use virtual machine for a lower OS). I can see the "Unable to find game" error in my iPad now. That's something! I couldn't manage making ac2game.dat and other files be visible in iPad or simulator, despite I had put them on Resources/game folder.

Then I have tried Janet's version. I am getting errors like UInterfaceOrientationMaskAllButUpsideDown, I think it's because I'm using iOS SDK 4.3.

How can I get those ac2game.dat files compiled with engine (in other words, what should I have done besides placing them under Resources/game)? Or how is that UInterfaceOrientationMaskAllButUpsideDown problem solved?

---

Games are art!
My horror game, Self

SMF spam blocked by CleanTalk