{"id":6383,"date":"2017-05-17T07:42:50","date_gmt":"2017-05-17T07:42:50","guid":{"rendered":"http:\/\/www.icemark.com\/blog\/?p=6383"},"modified":"2017-08-17T09:07:51","modified_gmt":"2017-08-17T09:07:51","slug":"deprecated","status":"publish","type":"post","link":"https:\/\/www.icemark.com\/blog\/archives\/2017\/05\/17\/deprecated\/","title":{"rendered":"Deprecated&#8230;"},"content":{"rendered":"<p>I was feeling a little depressed last night, thought I&#8217;d wallow in the understanding that I was going to end up, moving on&#8230;<\/p>\n<p>I&#8217;m working away, (again), at the moment. So I left my hotel and went for a walk, then into town to get something to eat. Found a nice homely Italian restaurant, and settled on some pasta, and beer, and wine, and desert, and Limoncello, and coffee&#8230;<\/p>\n<p>I got back to the hotel and decided to Kickstart the ZX Spectrum Next. I figured that I might have a play around with it when it comes out. Started to think about finishing off the OpenSourceing of the codebase that I started previsouly. I then decided that I needed to give Timbles one last chance. I&#8217;d been unable to build LoM and DDR as 64 bit, but hadn&#8217;t tried Timbles. It failed! BUT, it failed differently. Hmmm&#8230; interesting.<\/p>\n<p>Marmalade uses a project file called an MKB. The cross platform nature of it means that you create the actual project from the MKB file. So if I&#8217;m developing on Mac under XCode, I don&#8217;t hand the XCode project to someone developing on Windows, just the files and the MKB. From the MKB file they will be able to create a Visual Studio project.<\/p>\n<p>This would be the only thing that would affect the build process of the different Apps. I took a look through the MKB file and found a couple of odd entries, entries that looked like they pertained to processor. These entries were in the iOS section. Now, I didn&#8217;t think there was anything in the project file for processor selection, that happens as part of the build process, AND I didn&#8217;t recognise the config options, I certainly hadn&#8217;t put them there. Now, I&#8217;ve had this before when an older version of Marmalade has added some options, or the options were necessary at some stage, but the system has evolved &#8211; yet the project has not been cleaned up.<\/p>\n<p>I deleted the options and rebuilt&#8230; Success!<\/p>\n<p>Quickly loaded the app onto my device&#8230; fail!<\/p>\n<p>Not disheartended though, the failure was a memory issue. A quick check of my memory configs and I noticed that I don&#8217;t have enough memory allocated against the new devices ( as decided by screen resolution ). I&#8217;m testing on an iPhone7. Change, compile, deploy&#8230; fail!<\/p>\n<p>It got further though&#8230; This time it is complaining that the TME databse is invalid. The MagicNo that I used to identify the database and to check endianness, is wrong. I figure that this is a 64 bit issue&#8230; I check my definitions of u32 ( being an unsigned 32 bit ) and the definition is unsigned long. Longs change to 64 bit, so I&#8217;m reading 8 bytes for the MagicNo and not 4 bytes, I should have used int. I check all the type definitions, check all the places that I&#8217;m using longs in the project. Change, compile, deploy&#8230; fail!<\/p>\n<p>This time no error message, just crash straight out. So I add more logging and identify the image cache sorting routine. It&#8217;s using the c++ qsort function to sort a series of pointers to objects&#8230; in the code I noticed some funky casting going on, which happens to be using *(u32*) &#8211; that should be using longs. Change, compile, deploy&#8230; fail!<\/p>\n<p>Hmmm&#8230; more tracing and I find another sort routine! So I change that and then search the code for any code that is doing a similar thing. Change, compile, deploy&#8230; success!<\/p>\n<p>A quick play through and everything looks ok!<\/p>\n<p>I upload to app store and the upload fails. It doesn&#8217;t like the binary. The reaon &#8211; it&#8217;s because the payload has the iTunesArtwork embedded in it, and Apple stopped doing that a while ago. Change, deploy, upload&#8230; success!<\/p>\n<p>Download the app and everything is ok. So I push a version to external testing. This requires Apple to review and clear it. At 1:45 the app is cleared. I&#8217;m now ready to externally test. I really need to test against all the new devices that have been released by Apple over the last few years. Resolution will be the issue&#8230;<\/p>\n<p>But&#8230; we&#8217;re on. This means that I can now push a new version of LoM and DDR out and buy myself a lot more time to transition to a new system.<\/p>\n<h3 class='related_post_title'>Related Posts:<\/h3><ul class='related_post'><li><a href=\"http:\/\/www.icemark.com\/blog\/archives\/2012\/09\/28\/i-slew-score-upon-score-of-his-foul-creatures-yet-always-there-were-more-to-take-their-place\/\" title=\"&#8220;I slew score upon score of his foul creatures yet always there were more to take their place&#8221;\">&#8220;I slew score upon score of his foul creatures yet always there were more to take their place&#8221;<\/a><\/li><li><a href=\"http:\/\/www.icemark.com\/blog\/archives\/2011\/12\/01\/lords-of-midnight-update\/\" title=\"Lords of Midnight &#8211; Update\">Lords of Midnight &#8211; Update<\/a><\/li><li><a href=\"http:\/\/www.icemark.com\/blog\/archives\/2011\/03\/23\/getting-up-and-running\/\" title=\"Getting up and running&#8230;\">Getting up and running&#8230;<\/a><\/li><li><a href=\"http:\/\/www.icemark.com\/blog\/archives\/2017\/05\/16\/becoming-obsolete\/\" title=\"Becoming obsolete&#8230;\">Becoming obsolete&#8230;<\/a><\/li><li><a href=\"http:\/\/www.icemark.com\/blog\/archives\/2012\/06\/15\/we-fought-side-by-side-on-the-plains-of-blood-in-the-last-war-against-doomdark\/\" title=\"We fought side-by-side on the Plains of Blood in the last war against Doomdark\">We fought side-by-side on the Plains of Blood in the last war against Doomdark<\/a><\/li><\/ul>","protected":false},"excerpt":{"rendered":"<p>I was feeling a little depressed last night, thought I&#8217;d wallow in the understanding that I was going to end up, moving on&#8230; I&#8217;m working away, (again), at the moment. So I left my hotel and went for a walk, then into town to get something to eat. Found a nice homely Italian restaurant, and &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.icemark.com\/blog\/archives\/2017\/05\/17\/deprecated\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Deprecated&#8230;&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"Deprecated... #lordsofmidnight #doomdarksrevenge #timbles","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[63,21,28,209,27,2],"tags":[237,150,172,171,223,152],"class_list":["post-6383","post","type-post","status-publish","format-standard","hentry","category-apple","category-coding","category-ddr","category-development-2","category-lom","category-midnight","tag-ddr","tag-development","tag-ios","tag-lom-2","tag-midnight","tag-programming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pwn4r-1EX","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/posts\/6383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/comments?post=6383"}],"version-history":[{"count":2,"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/posts\/6383\/revisions"}],"predecessor-version":[{"id":6411,"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/posts\/6383\/revisions\/6411"}],"wp:attachment":[{"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/media?parent=6383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/categories?post=6383"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.icemark.com\/blog\/wp-json\/wp\/v2\/tags?post=6383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}