GBA Development with HAM 2.71 SDK for Windows

30. September 2013 13:17 by Cameron in GBA  //  Tags: , , , , , ,   //   Comments

I'm starting development for the GBA with Jonathan S. Harbour's book and the HAM SDK. Jonathan's website links to the HAM 2.80 SDK, but I have read many reports that this version of the SDK does not compile C++ code properly and that one should use the HAM 2.71 SDK for Windows. It was quite difficult to find the HAM 2.71 SDK for Windows because nobody seemed to have it and the original website, www.ngine.de, has been down for quite some time. This is not surprising as the peek of GBA development was over 10 years ago. However, some of us are nostalgic for the old GBA especially if we can manage to get ahold of a flash cart like the discontinued EZ-Flash IV (Best GBA flashcart in existence and super rare) or the SuperCard MinSD (not so great for commercial roms but acceptable for development). Provided below is a link to the Windows version of the HAM 2.71 SDK:

HAM 2.7 SDK

HAM 2.71 Update

Dropbox Mirror HAM 2.7

Dropbox Mirror HAM 2.71

QUnit, JSCoverage and Jenkins

24. September 2013 10:09 by Cameron in Continuous Integration, Jenkins, PhantomJS  //  Tags: , , , , , , ,   //   Comments

A few years back I worked with a colleague of mine on getting JSCoverage integrated with QUnit to generate code coverage reports for QUnit. The process was fairly simple. We learned a ton about how to setup JSCoverage from this blog: http://www.eviltester.com/index.php/2008/06/08/test-driven-javascript-code-coverage-using-jscoverage/ You can either build the sources from JSCoverage's Subversion repository or if you are running Ubuntu, you can use the apt package manager to install JSCoverage. After obtaining JSCoverage, we were able to generate html coverage reports from JSCoverage for our unit tests that we wrote using QUnit, a unit testing framework for jQuery.

To generate coverage with JSCoverage, we used the command:

jscoverage [source_dir] [destination_dir]

Understand that the all files in the source directory will be copied to the destination directory and will be instrumented. We had to be careful not to instrument jQuery or QUnit so we put our tests in a separate folder. 

After that command has been run, one can browse to jscoverage.html and run the tests through the browser. JSCoverage also has a nice API that can accept querystrings to open test pages that will intrument the javascript. JSCoverage provides a summary for all instrumented files in the Summary tab and with each file in the summary, one can view a detailed breakdown of the coverage. 

As far as integrating this into Jenkins, there are a number of possible options, but it is not critical since JSCoverage provides its own reporting. Integration with Jenkins might be possible in the future however.

When you are working with JavaScript it's great to do unit testing, but integrating these tests into an automated system can be tricky.  Your code is made to be run in a browser, not on the command prompt.  Furthermore, you are probably manipulating the DOM and are dependant on HTML pages, so how could you automate something like this without opening up a browser? 

Enter PhantomJS and QUnit. 

PhantomJS is a headless browser with JavaScript API that will print any console.log() call to the command line. 

QUnit is a unit testing framework from the guys at JQuery.  It is made to display the results of your tests in a browser window.  Fortunately, QUnit provides callbacks that allow us to hook into the tests and provide proper output to PhantomJS.  In our case, this format is JUnit XML format. 

I followed someone who was doing something similar, but unfortunately his code was incomplete and also weird/broken.  Niltz's blog is: http://www.niltzdesigns.com Unfortunately Niltz's website is no longer online.

He did provide a nice .js file that hooked into QUnit's callbacks and stored the tests in a nice JS object.  From there, I edited his QUnit result printer to be able to output the correct XML.  These files were working great and they did their work without changing the way that our QUnit tests displayed when we viewed the tests manually in a browser.

The real trouble was the driver js file.  This Niltz guy had a driver, but it didn't properly use PhantomJS' interface and broke on execution.  I was able to use some of his code as a guide, but I was forced to almost completely re-write my own driver file. 

var page = require('webpage');

(function() {
    page.onConsoleMessage = function (msg) { 
        if(msg === 'phantomexit')
            phantom.exit(0);
        console.log(msg);
    };

    page.onLoadFinished = function(status){
        var PAGE_FAILED = 1;
        var TEST_FAILED = 2;
        var EXCEPTION = 3;

        if (status === 'success') {
            page.evaluate(function() {
                var testDone = function() {
                    var r = QUnitLogger.results;
                    var msg = qunitResultPrinter.print();
                    console.log(msg);
                    console.log('phantomexit');
                };

                if (QUnitLogger.done) {
                    return testDone();

                } else {
                    QUnitLogger.addEventListener('done', testDone);
                }
            });
        } else {
            console.log('Page failed to load: ' + phantom.args[0]);
            phantom.exit(PAGE_FAILED);
        }
    };

    try {
        if (1 !== phantom.args.length) {
            console.log('Usage: phantomjs-driver.js URL');
            phantom.exit();
        } else {
            phantom.state = 'phantomjs-driver-running';
            page.open(phantom.args[0]);
        }
    } catch(e) {
        console.log('Unhandled exception: ' + e);
        phantom.exit(EXCEPTION);
    }
})();

The tricky part here is the page.evaluate() function.  This allows me to execute code within the context of the loaded page, but the problem here is that it is run in a completely different scope, unaware of the variable 'status' for example.  The only way I can communicate with the code inside this function is either by a return or a console.log().  PhantomJS provides a nice callback for any console.log() inside of this phantom.evaluate() function called page.onConsoleMessage().

Using this we were able to fully integrate with QUnit and output the results of my tests in an XML format using the command:

./phantomjs phantomjs-qunit-driver.js ../test/index.html

An example of output is:

<testsuites><testsuite name="utilities" assertions="32" failures="0" time="38"><testcase name="setupValItems and cleanupValItems" assertions="5" time="20">....

From there, integration into Jenkins is fairly trivial.

Attached is the modified QUnit PhantomJS driver. I have left the tests out since your unit tests will be different.

qunit.zip (3.37 mb)

Super 8 by Innovation - Review

7. April 2013 18:34 by Cameron in   //  Tags: , , , , , , , , , , ,   //   Comments

I recently purchased a rare accessory for my SNES that allows me to play NES and Famicom games on my SNES called the Super 8, designed by Innovation in 1993.  One can also play SNES and Super Famicom games using the pass-through slot. The system uses a NOAC for playing NES and Famicom games in a similar fashion to how the Super Gameboy used Gameboy hardware for playing Gameboy games on the SNES. Since I have an NES, it's more of a novelty item for being able to use only one console to play each set of NES and SNES games. It's compatible with most NES and Famicom games out of the box including Castlevania III with the MMC5 mapper and Akumajou Densetsu, the Japanese version of Castlevania III, with the VRC6 mapper and enhanced audio. Some games do not work due to the system being a NOAC and not original NES hardware. The NES PowerPak by RetroZone does not work on the Super 8 for some reason, but perhaps this will be fixed in a later firmware update for the PowerPak.

Once my unit arrives, I will begin compiling a list of compatible games and how it compares to the NES.

Known issues with fixes:

  • The Super 8 does not include native support for SNES games that use co-processors, but this can be fixed by adding a few solder points on the mainboard - I will update this later with the exact guide on how to fix
  • The Super 8 suffers from the same jailbars issue that the top loading NES and some Famiclones experience - this can be fixed by soldering a 470micro farad cpacitor - I will update this post with where to solder later

My NES and SNES game collection

7. April 2013 18:01 by Cameron in   //  Tags: , , , , , , , , , , ,   //   Comments

It's been a while since I've posted a new blog post. I've been fairly busy with life and work lately. Over the past couple of weeks, I've been expanding my NES and SNES game library. I plan to collect several original titles that I enjoyed playing as a kid. Some of the games that I recently acquired for the NES are:

  • Donkey Kong Classics
  • Tengen's Pacman
  • Tetris
  • Othello
  • Mario Bros. Arcade Classics
  • Castlevania I
  • Castlevania II
  • Castlevania III
  • Duck Tales
  • Dr. Mario
  • Caesar's Palace
  • The Bugs Bunny Birthday Blowout
  • Tengen's Road Runner
  • The Bugs Bunny Crazy Castle
My NES collection is rapidly growing as I previously only had these games in my library:
  • Super Mario Bros. / Duck Hunt
  • Super Mario Bros. 2
  • Super Mario Bros. 3
  • Home Alone
  • The Legend of Zelda
I plan to add the Teenage Mutant Ninja Turtles trilogy, Megaman 1-6, Metroid, and several other great games to my collection. Megaman collections can easily go for $150 or more on eBay while a single copy of Megaman can be easily $30. I'm hoping to find a collection with all six games when I'm ready to add them to my collection. I love super Metroid on the SNES so I'm sure that the original Metroid will be an excellent addition. Metroid has held its value fairly well over the years. Copies of Metroid typically sell for $30 or more. I will also be adding a RetroZone NES PowerPak to my library so I can play translated Famicom games and homebrew. I would like to try my hand at NES development with 6502 assembly too.
 
For my SNES, I recently added these games:
  • Sim City
  • Donkey Kong Country 3
  • Buster Busts Loose
  • Kirby's Avalanche
  • Super Mario World 2: Yoshi's Island
I've got quite a large collection of SNES cartridges that I've been building on over the past few years:
  • Super Mario Kart
  • Super Mario All Stars + World
  • Super Off Road the Baja
  • Jurassic Park
  • Donkey Kong Country
  • Donkey Kong Country 2
  • Final Fantasy Mystic Quest
  • The Legend of Zelda: A Link to the Past
  • Chrono Trigger
  • Starfox
  • Mario Paint
  • Final Fantasy II
  • Final Fantasy III
  • Super Battletank: War in the Gulf
  • Super Caesar's Palace
  • Super Mario RPG
  • SNES PowerPak
  • Super Gameboy
  • Super Metroid
Since I have a SNES PowerPak, I can play most all translated Super Famicom games, homebrew, and almost all of the SNES games available. I've used my SNES PowerPak for development of my own and playing various hacks or ROM translations. Even though I can play nearly every game available for the SNES using the SNES PowerPak, I still enjoy collecting the original carts. 
 
One may say that it's cheaper to just use a NES/SNES to USB adapter and play games on an emulator, but it's just not the same as playing on the original hardware. I grew up in the 1990's and the NES/SNES were a big part of my childhood. Arguably, I'd have to say the SNES is my favorite console as it's one that I played the most. I didn't have an NES at home as a kid, but I used to play at friend's houses. I have all the emulators and ROMS, but nothing compares to the feeling of playing a game they way it was meant to be played, on the glorious consoles themselves.

SNES SDK

12. January 2013 20:21 by Cameron in   //  Tags: , , , ,   //   Comments

Over the past few days, I have been playing around with the SNES SDK that compiles C code to SNES ROMs for running in emulators or on real hardware. The SDK supports floating point emulation, 16-bit integers, controller input, and a basic graphics system. There is no sound support in the SDK for the SPC of the SNES (yet). Libraries can be added to the SDK pretty easily by writing C code and compiling to assembly to be linked with other programs.

In playing with the SNES SDK, I noticed that in math.h, a lot of the ANSI C math functions were left out due to hardware limitations of the SNES. However, without much effort, I was able to create working functions for the six basic trig functions and a square root function.

In mathematics, sine and cosine can be approximated by Taylor polynomial expansions. This makes it easy to implement functions in C to compute the sine and cosine of a value to a certain degree of precision. The following is the Taylor expansion functions for sine and cosine:

// taylor series expansion of the sin function
float sin(float x)
{
  return x - (mult(x,  3) / fact(3)) + (mult(x, 5) / fact(5)) - (mult(x, 7) / fact(7))+ (mult(x, 9) / fact(9)) - (mult(x, 11) / fact(11)) + (mult(x, 13) / fact(13));
}

// taylor series expansion of the cos function
float cos(float x)
{
  return 1 - (mult(x,  2) / fact(2)) + (mult(x, 4) / fact(4)) - (mult(x, 6) / fact(6)) + (mult(x, 8) / fact(8)) - (mult(x, 10) / fact(10)) + (mult(x, 12) / fact(12));
}

I had to create helper functions for x^n and x! (x factorial) since those aren't built into the compiler. The function, mult(x, n), raises x to the power n. The function, fact(x), computes the factorial of x. There is a pow(x, n) function implemented in the SDK, but it doesn't produce as accurate of results as my mult(x, n) function. The result can be seen when running pow(2, 12) versus mult(2, 12). The pow function returns 4095 while mult returns 4096 (the correct result).

The other trig functions were built on the sin and cos functions. There is a Taylor expansion for tan(x), but I decided to go with sin(x)/cos(x) since I couldn't properly expand tan(x) for enough accuracy. Below is the rest of the trig functions:

float tan(float x)
{
  return sin(x) / cos(x);
}

float sec(float x)
{
  return 1 / cos(x);
}

float csc(float x)
{
  return 1 / sin(x);
}

float cot(float x)
{
  return 1 / tan(x);
}

I understand the practicality of computing trig values on the SNES might not be huge for everyday use. However, this was more of a "Can I do this?" type of exercise. Games like Starfox for the SNES may have used trig calculations on the Super FX co-processor, but I doubt many games needed cosine or sine functions calculated on the main CPU. Perhaps game demos with oscillating text used sine or cosine as a function of time. 

The square root function is based on Newton's method. I found the code for this method here: http://www.codeproject.com/Articles/69941/Best-Square-Root-Method-Algorithm-Function-Precisi

// babylonian method for square roots
float sqrt(int n)
{
  // double a = (eventually the main method will plug values into a)
  float a = (float) n;
  float x = 1;
  int i;
 
  // For loop to get the square root value of the entered number.
  for( i = 0; i < n; i++)
  {
    x = 0.5 * ( x+a / x );
  }
 
  return x;
}

double newton_sqrt(double n)
{
  double x = 0.0;
  double xn = 0.0;
  int iters = 0;
  int i;
  for (i = 0; i <= (int)n; ++i)
  {
    double val = i*i-n;
    if (val == 0.0)
      return i;
    if (val > 0.0)
    {
      xn = (i+(i-1))/2.0;
      break;
    }
  }
  while (!(iters++ >= 100 || x == xn))
  {
    x = xn;
    xn = x - (x * x - n) / (2 * x);
  }

  return xn;
}

There are tons of different ways to compute an approximation to the square root, but I was more concerned with precision vs. speed.

Here's the code I used including the SNES SDK:

snessdk.zip (1.27 mb)

 

Here is where I found the SNES SDK Win32 binary:

http://forums.nesdev.com/viewtopic.php?f=12&t=6253

You will need Windows XP or higher for the SDK. The source for the SDK may be found here: http://code.google.com/p/snes-sdk/source/checkout

Here's a screenshot of my test program running in ZSNESW:

Beginning with Neo4j and Neo4jClient

4. January 2013 18:07 by Cameron in   //  Tags: , , , , , , , , ,   //   Comments

I will try my best to include everything necessary to get started with Neo4j. This is not meant to be a guide on how to program with C#, Visual Basic, Java, Cypher, or Gremlin. You will need to either have prior experience with those languages or read other resources to learn about them. If you don’t understand some of the computer science jargon, please let me know and I will try and make the wording more clear.

I'm not going to go into too much graph theory in this tutorial. You should have a basic understanding of what a directed graph is and how to create a data model since you seem to be interested in graph databases. All that you really need to know about graph theory is that a graph is a set of related nodes representing entities with relationships connecting the nodes.

Graph databases are an excellent way to model social data compared traditional relational databases. Social networking websites such as Twitter and Facebook use graph dbs for quickly querying through millions of users and their relationships to other objects or users. It would be much slower to use an RDBMS for a website like Facebook because of the need to select from tables with millions of records and perform joins on those tables. Joins are expensive operations in SQL databases and graph databases don't require explicit joins due to the nature of a graph's structure.

About Tools

Java is a programming language that runs in a virtual environment allowing it to run on thousands of different devices that have a Java virtual machine. Neo4j is an enterprise level graph database written in Java. Neo4jClient is a .NET client for interfacing with Neo4j’s REST API.

About Neo4jClient

Neo4jClient serializes  and deserializes objects to and from JSON to interact with the server which makes it very easy to store and retrieve objects.

Installation

Java

I’m assuming you already have Java installed, but if you don’t, you will need the JRE for Windows installed in order to run Neo4j. You can download the JRE from Oracle. When downloading the JRE, you can choose either the standalone JRE or the JDK, which includes the JRE. The JDK is mainly for Java developers and is not required if you don’t do Java development. Also, about whether to choose x86 or x64, I’d recommend that you choose x86 for simplicity. Most likely, you won’t need 64-bit addressing with your Java installation. This would only be if you have another project that requires the x64 release. The easiest download is any of the .exe installers as it will guide you through the installation process. Installation should take about 5 minutes and then you’ll be ready to move to setting up Neo4j.

Neo4j

Next, you should download Neo4j from neo4j.org. Unless you want to be bleeding edge, it’s recommended to download the Major Stable Community Version. At the time of writing, this is version 1.8.1. Make sure to get the Windows specific download. Follow the directions on the download page and open up a command prompt with administrator privileges to start your newly installed Neo4j server. Once you have started the server, you can browse to your web admin interface at http://localhost:7474. From there, you can use the Data browser page to create nodes and relationships. In the console tab, you can query your database using Cypher or traverse the graph using Gremlin. You can even send HTTP requests to the REST API if you want to learn about how to talk to Neo4j from other tools. In the Indexes tab, you can create indexes for fast retrieval of nodes or relationships. I will talk more about indexes later. You are now ready to setup Neo4jClient.

Visual Studio and Neo4jClient

You need to have Visual Studio 2010 Professional or higher or Visual C# 2012 Express Edition (free) installed to be able to install Neo4jClient using the Nuget package manager.  Unfortunately, Nuget does not work with Visual C# 2010 Express Edition. 

Create a new Visual C# or Visual Basic project and then proceed to installing Neo4jClient. You can install Neo4jClient by managing Nuget packages on your project or by running the following command in the Package Manager Console:

Install-Package Neo4jClient

Brief Overview of Neo4j and Neo4jClient

Indexes

Indexes are created for fast retrieval of information at a later point. This is extremely useful when querying a graph database on the order of millions of nodes. Manual traversal is slower and less efficient. One of the advantages of graph databases is speed and it is important to utilize indexes to increase speed.

Full text vs. Exact

A full text index is for searching on a node’s properties text, allowing partial or complete text to be searched. For example, if you have a set of nodes representing the Star Wars movies, if you search for nodes in the Movie index with a name like “Star Wars” with a full text index, you will get all nodes containing the text “Star Wars” in the name property.

However, an exact index requires that you search on a node’s properties text with exact text. For example, if you have a set of nodes representing the Star Wars movies, if you search for just the text “Star Wars” in an exact index, it will not return anything because there are no nodes with just the text “Star Wars”

Relationship Properties

In addition to adding properties to nodes, relationships can also have properties. This can be helpful if you are trying to better describe a relationship. If you want a more complex data model, you can add a payload class to your relationship class to store properties on your relationship. This is often referred to as attributes of a relationship in graph theory.

For example, you could add a property called “comment” to the Directed relationship to add extra information about the direction of a movie from a director. This would improve the data model to provide more information about movies as a whole.

Sample Database Setup

Once Neo4jClient is installed, you can setup a sample database by using the following code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Neo4jClient;
using Neo4jClient_Tutorial.Models;
using Neo4jClient_Tutorial.Models.Relationships;

namespace Neo4jClient_Tutorial.DAL
{
    /// <summary>
    /// Class to provide sample data for the graph
    /// </summary>
    public class Scaffolding
    {
        GraphClient client;

        public Scaffolding()
        {
            client = new GraphClient(new Uri("http://localhost:7474/db/data"));

            client.Connect();

            CreateNodesRelationshipsIndexes();  
        }

        private void CreateNodesRelationshipsIndexes()
        {
            // Create Indexes
            client.CreateIndex("Movie", new IndexConfiguration() { Provider = IndexProvider.lucene, Type = IndexType.fulltext }, IndexFor.Node); // full text node index
            client.CreateIndex("Director", new IndexConfiguration() { Provider = IndexProvider.lucene, Type = IndexType.exact }, IndexFor.Node); // exact node index
            client.CreateIndex("Genre", new IndexConfiguration() { Provider = IndexProvider.lucene, Type = IndexType.fulltext }, IndexFor.Node); // full text node index

            // Create Entities
            // Movies
            Movie swI = new Movie() { Name = "Star Wars: Episode I - The Phantom Menace", Description = "Begins the story of Anakin Skywalker" };

            var starWarsEpisodeI = client.Create(swI,
                new IRelationshipAllowingParticipantNode<Movie>[0],
                new []
                {
                    new IndexEntry("Movie")
                    {
                        { "Name", swI.Name },
                        { "Description", swI.Description },
                        { "Id", swI.Id.ToString() }
                    }
                });

            Movie swIV = new Movie() { Name = "Star Wars: Episode IV - A New Hope", Description = "First Starwars movie to debut on the big screen" };

            var starWarsEpisodeIV = client.Create(swIV,
                new IRelationshipAllowingParticipantNode<Movie>[0],
                new []
                {
                    new IndexEntry("Movie")
                    {
                        { "Name", swIV.Name },
                        { "Description", swIV.Description },
                        { "Id", swIV.Id.ToString() }
                    }
                });

            Movie indy = new Movie() { Name = "Indiana Jones and the Temple of Doom", Description = "Second movie in the original Indiana Jones trilogy" };

            var indianaJonesTempleOfDoom = client.Create(indy,
                new IRelationshipAllowingParticipantNode<Movie>[0],
                new[]
                {
                    new IndexEntry("Movie")
                    {
                        { "Name", indy.Name },
                        { "Description", indy.Description },
                        { "Id", indy.Id.ToString() }
                    }
                });

            Movie jp = new Movie() { Name = "Jurassic Park", Description = "First Jurassic park movie" };

            var jurassicPark = client.Create(jp,
                new IRelationshipAllowingParticipantNode<Movie>[0],
                new[]
                {
                    new IndexEntry("Movie")
                    {
                        { "Name", jp.Name },
                        { "Description", jp.Description },
                        { "Id", jp.Id.ToString() }
                    }
                });

            Movie et = new Movie() { Name = "ET", Description = "ET phone home" };

            var ET = client.Create(et,
                new IRelationshipAllowingParticipantNode<Movie>[0],
                new[]
                {
                    new IndexEntry("Movie")
                    {
                        { "Name", et.Name },
                        { "Description", et.Description },
                        { "Id", et.Id.ToString() }
                    }
                });

            // Directors

            Director lucas = new Director() { Name = "George Lucas" };

            var georgeLucas = client.Create(lucas,
                new IRelationshipAllowingParticipantNode<Director>[0],
                new[]
                {
                    new IndexEntry("Director")
                    {
                        { "Name", lucas.Name },
                        { "Id", lucas.Id.ToString() }
                    }
                });

            Director spielberg = new Director() { Name = "Steven Spielberg" };

            var stevenSpielberg = client.Create(spielberg,
                new IRelationshipAllowingParticipantNode<Director>[0],
                new[]
                {
                    new IndexEntry("Director")
                    {
                        { "Name", spielberg.Name },
                        { "Id", spielberg.Id.ToString() }
                    }
                });

            // Genres
            Genre sf = new Genre() { Name = "Science Fiction" };

            var sciFi = client.Create(sf,
                new IRelationshipAllowingParticipantNode<Genre>[0],
                new[]
                {
                    new IndexEntry("Genre")
                    {
                        { "Name", sf.Name },
                        { "Id", sf.Id.ToString() }
                    }
                });

            Genre adv = new Genre() { Name = "Adventure" };

            var adventure = client.Create(adv,
                new IRelationshipAllowingParticipantNode<Genre>[0],
                new[]
                {
                    new IndexEntry("Genre")
                    {
                        { "Name", adv.Name },
                        { "Id", adv.Id.ToString() }
                    }
                });

            // Create Relationships
            client.CreateRelationship(starWarsEpisodeI, new PartOf(sciFi));
            client.CreateRelationship(starWarsEpisodeIV, new PartOf(sciFi));

            client.CreateRelationship(indianaJonesTempleOfDoom, new PartOf(adventure));
            
            client.CreateRelationship(jurassicPark, new PartOf(sciFi));
            client.CreateRelationship(jurassicPark, new PartOf(adventure));

            client.CreateRelationship(ET, new PartOf(sciFi));

            client.CreateRelationship(georgeLucas, new Directed(starWarsEpisodeI, new Models.Payloads.Payload() { Comment = "George Lucas' second Star Wars trilogy" }));
            client.CreateRelationship(georgeLucas, new Directed(starWarsEpisodeIV, new Models.Payloads.Payload() { Comment = "First Starwars movie that George Lucas directed" }));                             client.CreateRelationship(stevenSpielberg, new Directed(indianaJonesTempleOfDoom, new Models.Payloads.Payload() { Comment = "Lucas wrote the story while Spielberg directed" }));
            client.CreateRelationship(stevenSpielberg, new Directed(jurassicPark, new Models.Payloads.Payload() { Comment = "Huge box office success" }));
            client.CreateRelationship(stevenSpielberg, new Directed(ET, new Models.Payloads.Payload() { Comment = "One of Spielberg's most successful movies" }));
        }
    }
}

I've attached a sample ASP.NET MVC 4 project for Visual Studio 2012, but you should be able to get it working in Visual Studio 2010 by importing the code without any issues. It includes all entity, relationship, and payload models. I added a few basic views for visualizing the data. Feel free to fill out the method stubs to create views to view the rest of the entities. I will look at creating another tutorial building on this project for adding/deleting/updating items from the database. I've also attached an image of the final graph. It should be easy to determine which nodes are what type of entity based on the relationship definitions. Please let me know if you have questions in the comments below.

Neo4jClient Tutorial.zip (12.48 mb)

Planned features for the Gamer Footprint desktop client

6. December 2012 11:42 by Cameron in   //  Tags:   //   Comments

With the IGA's name change in the spring, I will also be launching the first version of the Gamer Footprint desktop client. The new Gamer Footprint desktop client will feature a complete code rebase meaning that it will be built from the ground up. There were a lot of things that needed improving in the IGA desktop client that will be addressed in the Gamer Footprint desktop client.

Some features:

  • Website integration - view full profile, achievements/trophies, upload videos/pictures/music/etc
  • Friends List - Xbox Live, PSN, Steam, Gamer Footprint
  • Achievement/Trophy tracking on Xbox Live, PSN, Steam - possibly later Ubisoft's Uplay, Starcraft II achievements
  • If Nintendo creates a web interface for the Nintendo Network, it is possible that there will be Nintendo Network integration in the desktop client
  • Video capturing (provided I can figure out how to do cross platform video capturing using FFMPEG) - this will allow you to capture game play of your PC, Mac, Linux, and console games (capture card required for consoles)
Those are just a few features that I plan to implement eventually. They may not all make it into the first release of the Gamer Footprint client, but they are definitely on the road map for some point in the future.

IGA name change in the spring of 2013!

6. December 2012 11:36 by Cameron in Gamer Footprint, IGA  //  Tags: , , ,   //   Comments

In the spring of 2013, the IGA will be known as Gamer Footprint. Work is being done on the new Gamer Footprint website and will officially launch this spring. The new website address will be https://www.gamerfootprint.com/ and the old web address, http://www.iga-home.net/ will no longer be active. Registration is currently active on the Gamer Footprint website, but the site is not fully functional yet so don't expect much yet. Stay tuned for updates! Updates are posted to the Gamer Footprint Twitter and Facebook.

Progress on the IGA Desktop Application

10. October 2012 14:05 by Cameron in IGA, Xbox Live  //  Tags:   //   Comments

I have the core functionality for showing friends online statuses for Xbox Live, PSN, and Steam. I've also managed to load achievement/trophy data for Xbox Live and PSN. I'm currently working on a web service for interacting with the database for displaying achievement/trophy data on user profiles.

Here's some sample data from my Xbox Live scraper:

"Name: Batman: AA GOTY" 
"Box Art: https://live.xbox.com/consoleAssets/5343080c/en-us/smallboxart.jpg" 
"Large Box Art: https://live.xbox.com/consoleAssets/5343080c/en-us/largeboxart.jpg" 
"Large Tile: http://image.xboxlive.com/global/t.5343080C/icon/0/8000" 
"Last Played: 21:01:28 10/09/2012" 
1349833405310 

"Name: Halo 2 (PC)" 
"Box Art: https://live.xbox.com/consoleAssets/4d53080f/en-us/smallboxart.jpg" 
"Large Box Art: https://live.xbox.com/consoleAssets/4d53080f/en-us/largeboxart.jpg" 
"Large Tile: http://image.xboxlive.com/global/t.4D53080F/icon/0/8000" 
"Last Played: 20:43:25 10/09/2012" 
1349716049660 

"Name: UNO" 
"Box Art: https://live.xbox.com/consoleAssets/584107f3/en-us/smallboxart.jpg" 
"Large Box Art: https://live.xbox.com/consoleAssets/584107f3/en-us/largeboxart.jpg" 
"Large Tile: http://image.xboxlive.com/global/t.584107F3/icon/0/8000" 
"Last Played: 12:07:29 10/08/2012" 
1349715952810 

"Name: Trials Evolution" 
"Box Art: https://live.xbox.com/consoleAssets/58410aad/en-us/smallboxart.jpg" 
"Large Box Art: https://live.xbox.com/consoleAssets/58410aad/en-us/largeboxart.jpg" 
"Large Tile: http://image.xboxlive.com/global/t.58410AAD/icon/0/8000" 
"Last Played: 12:05:52 10/08/2012" 
1349711554510 

"Name: Borderlands" 
"Box Art: https://live.xbox.com/consoleAssets/545407e7/en-us/smallboxart.jpg" 
"Large Box Art: https://live.xbox.com/consoleAssets/545407e7/en-us/largeboxart.jpg" 
"Large Tile: http://image.xboxlive.com/global/t.545407E7/icon/0/8000" 
"Last Played: 10:52:34 10/08/2012" 
1349711046157
"http://live.xbox.com/en-US/Activity/Details?titleId=1396901900" 
"Batman: AA GOTY" 
1342725836330 
"Name: Breaking And Entering" 
"Description: Gain access to Arkham Mansion after it is locked down by the Joker" 
"Score: 10" 
"Earned On: Thu Jul 19 14:23:56 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/V-/w-/1ICLiGJhbC9MFQUcXFBRFzBjL2FjaC8wLzgAAAAA5+fn+xD8TA==.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342725356503 
"Name: Cryptic Investigator" 
"Description: Solve 10% of Riddler challenges" 
"Score: 20" 
"Earned On: Thu Jul 19 14:15:56 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/zK/WJ/1YCLiGJhbC9GCBoDG1tTWTBjL2FjaC8wLzIyAAAAAOfn5-qmpdA=.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342555171910 
"Name: Baneful Payback" 
"Description: Defeat Bane" 
"Score: 25" 
"Earned On: Tue Jul 17 14:59:31 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/We/gY/14CLiGJhbC9DFQUcXFBRFzBjL2FjaC8wLzcAAAAA5+fn+DfoQg==.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342481560030 
"Name: Daydreamer" 
"Description: Survive the nightmare of the Scarecrow's fear gas" 
"Score: 10" 
"Earned On: Mon Jul 16 18:32:40 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/yh/D4/1oCLiGJhbC9CFQUcXFBRFzBjL2FjaC8wLzYAAAAA5+fn+dcQ0Q==.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342480369850 
"Name: Just What The Doctors Ordered" 
"Description: Save all the doctors in Medical" 
"Score: 10" 
"Earned On: Mon Jul 16 18:12:49 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/fx/nZ/1ICLiGJhbC9BFQUcXFBRFzBjL2FjaC8wLzUAAAAA5+fn+-YZZA==.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342480045567 
"Name: Arkham Analyst" 
"Description: Solve 5% of Riddler challenges" 
"Score: 20" 
"Earned On: Mon Jul 16 18:07:25 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/ea/yo/14CLiGJhbC9FCBoDG1tTWTBjL2FjaC8wLzIxAAAAAOfn5-iHrGU=.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342392092637 
"Name: Born Free" 
"Description: Escape from Intensive Treatment to the island surface" 
"Score: 10" 
"Earned On: Sun Jul 15 17:41:32 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/7O/E5/1YCLiGJhbC9AFQUcXFBRFzBjL2FjaC8wLzQAAAAA5+fn+hbh9w==.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342390423820 
"Name: Freeflow Combo 10" 
"Description: Complete a combo of 10 moves (any play mode)" 
"Score: 5" 
"Earned On: Sun Jul 15 17:13:43 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/uo/-4/0YCLiGJhbC9DCxoDG1tTWTBjL2FjaC8wLzE3AAAAAOfn5-7Xj6Y=.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342384653220 
"Name: Malpractice Needs More Practice" 
"Description: Survive the onslaught from the deformed Joker henchman" 
"Score: 10" 
"Earned On: Sun Jul 15 15:37:33 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/FQ/qb/0ICLiGJhbC9HFQUcXFBRFzBjL2FjaC8wLzMAAAAA5+fn-7QKDg==.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342384012453 
"Name: Leave No Man Behind" 
"Description: Rescue the guards and henchman from the Joker toxin in Decontamination" 
"Score: 10" 
"Earned On: Sun Jul 15 15:26:52 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/hv/J7/0YCLiGJhbC9GFQUcXFBRFzBjL2FjaC8wLzIAAAAA5+fn-lTynQ==.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342383496733 
"Name: Shocking Rescue" 
"Description: Take down Zsasz in the Patient Pacification Chamber" 
"Score: 10" 
"Earned On: Sun Jul 15 15:18:16 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/M-/ta/04CLiGJhbC9FFQUcXFBRFzBjL2FjaC8wLzEAAAAA5+fn-HX7KA==.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
1342382893667 
"Name: Freeflow Combo 5" 
"Description: Complete a combo of 5 moves (any play mode)" 
"Score: 5" 
"Earned On: Sun Jul 15 15:08:13 2012" 
"Is Offline? false" 
"Unlocked Tile Url: https://live.xbox.com/tiles/BP/3D/0YCLiGJhbC8XCBoDG1tTWTBjL2FjaC8wLzJjAAAAAOfn5-7s-Rg=.jpg" 
"Is Unlocked? true" 
"Is Hidden? false" 
  
0 
"Name: " 
"Description: " 
"Score: 10" 
"Locked Tile Url: " 
"Is Unlocked? false" 
"Is Hidden? true" 
  
0 
"Name: " 
"Description: " 
"Score: 10" 
"Locked Tile Url: " 
"Is Unlocked? false" 
"Is Hidden? true" 
  
0 
"Name: " 
"Description: " 
"Score: 25" 
"Locked Tile Url: " 
"Is Unlocked? false" 
"Is Hidden? true" 
  
0 
"Name: " 
"Description: " 
"Score: 25" 
"Locked Tile Url: " 
"Is Unlocked? false" 
"Is Hidden? true" 
  
0 
"Name: " 
"Description: " 
"Score: 50" 
"Locked Tile Url: " 
"Is Unlocked? false" 
"Is Hidden? true" 
  
0 
"Name: " 
"Description: " 
"Score: 50" 
"Locked Tile Url: " 
"Is Unlocked? false" 
"Is Hidden? true" 
  
0 
"Name: " 
"Description: " 
"Score: 50" 
"Locked Tile Url: " 
"Is Unlocked? false" 
"Is Hidden? true" 
  
0 
"Name: Big Bang" 
"Description: Complete story mode on Easy difficulty" 
"Score: 50" 
"Locked Tile Url: https://live.xbox.com/tiles/Qz/2r/0zc8P2NhbC9ECxoDG1tTWTBjL2FjaC8wLzEwAAAAAVBQUPyEPV8=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Bigger Bang" 
"Description: Complete story mode on Normal difficulty" 
"Score: 50" 
"Locked Tile Url: https://live.xbox.com/tiles/Il/Xz/1Tc8P2NhbC8VCBoDG1tTWTBjL2FjaC8wLzJhAAAAAVBQUPrcVT4=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Biggest Bang" 
"Description: Complete story mode on Hard difficulty" 
"Score: 50" 
"Locked Tile Url: https://live.xbox.com/tiles/0M/VL/0jc8P2NhbC9FCxoDG1tTWTBjL2FjaC8wLzExAAAAAVBQUP1kxcw=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Party Pooper" 
"Description: Time to break up this party" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/Zc/xq/0Dc8P2NhbC9GCxoDG1tTWTBjL2FjaC8wLzEyAAAAAVBQUP9FzHk=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Freeflow Combo 20" 
"Description: Complete a combo of 20 moves (any play mode)" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/9j/SK/0Tc8P2NhbC9HCxoDG1tTWTBjL2FjaC8wLzEzAAAAAVBQUP6lNOo=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Freeflow Combo 40" 
"Description: Complete a combo of 40 moves (any play mode)" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/D9/8o/1Dc8P2NhbC9ACxoDG1tTWTBjL2FjaC8wLzE0AAAAAVBQUPsH3xM=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Night Glider" 
"Description: Glide continuously for over 100m" 
"Score: 5" 
"Locked Tile Url: https://live.xbox.com/tiles/nC/fI/1Tc8P2NhbC9BCxoDG1tTWTBjL2FjaC8wLzE1AAAAAVBQUPrnJ4A=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Rope-A-Dope-A-Dope" 
"Description: String up one henchman and drop him to surprise a second (any play mode)" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/Hf/I8/1zc8P2NhbC9MCBoDG1tTWTBjL2FjaC8wLzI4AAAAAVBQUPgT8gE=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Mano-A-Mano" 
"Description: Take on a beast in hand to hand combat" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/jg/rc/1jc8P2NhbC9NCBoDG1tTWTBjL2FjaC8wLzI5AAAAAVBQUPnzCpI=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Catch!" 
"Description: Catch a Batarang (any play mode)" 
"Score: 5" 
"Locked Tile Url: https://live.xbox.com/tiles/E+/Yb/1Dc8P2NhbC9DCBoDG1tTWTBjL2FjaC8wLzI3AAAAAVBQUPs05g8=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Freeflow Perfection" 
"Description: Perform a perfect combo including all of Batman's combat moves (any play mode)" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/KS/7p/1zc8P2NhbC9CCxoDG1tTWTBjL2FjaC8wLzE2AAAAAVBQUPjGLjU=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Freakshow Rodeo" 
"Description: Ride a beast and unleash its power" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/tM/Iu/1Tc8P2NhbC9MCxoDG1tTWTBjL2FjaC8wLzE4AAAAAVBQUPoBwqg=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Freeflow Bronze" 
"Description: Achieve 8 medals on combat challenges" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/-U/+Q/0zc8P2NhbC8QCBoDG1tTWTBjL2FjaC8wLzJkAAAAAVBQUPy-T+E=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Freeflow Silver" 
"Description: Achieve 16 medals on combat challenges" 
"Score: 25" 
"Locked Tile Url: https://live.xbox.com/tiles/Jz/rO/1Dc8P2NhbC9NCxoDG1tTWTBjL2FjaC8wLzE5AAAAAVBQUPvhOjs=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Freeflow Gold" 
"Description: Achieve 24 medals on combat challenges" 
"Score: 50" 
"Locked Tile Url: https://live.xbox.com/tiles/i2/Xh/1zc8P2NhbC8VCxoDG1tTWTBjL2FjaC8wLzFhAAAAAVBQUPjOZZc=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Predator Bronze" 
"Description: Achieve 8 medals on predator challenges" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/Pm/zA/1Tc8P2NhbC8WCxoDG1tTWTBjL2FjaC8wLzFiAAAAAVBQUPrvbCI=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Predator Silver" 
"Description: Achieve 16 medals on predator challenges" 
"Score: 25" 
"Locked Tile Url: https://live.xbox.com/tiles/rZ/Qg/1Dc8P2NhbC8XCxoDG1tTWTBjL2FjaC8wLzFjAAAAAVBQUPsPlLE=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Predator Gold" 
"Description: Achieve 24 medals on predator challenges" 
"Score: 50" 
"Locked Tile Url: https://live.xbox.com/tiles/VH/+C/0Tc8P2NhbC8QCxoDG1tTWTBjL2FjaC8wLzFkAAAAAVBQUP6tf0g=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Invisible Predator " 
"Description: Complete one predator challenge by using only Silent Takedowns and without being detected" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/x4/di/0Dc8P2NhbC8RCxoDG1tTWTBjL2FjaC8wLzFlAAAAAVBQUP9Nh9s=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Flawless Freeflow Fighter" 
"Description: Complete one combat challenge without taking damage" 
"Score: 10" 
"Locked Tile Url: https://live.xbox.com/tiles/co/5D/0jc8P2NhbC8SCxoDG1tTWTBjL2FjaC8wLzFmAAAAAVBQUP1sjm4=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Crack The E Nigma" 
"Description: Solve every riddle on the island" 
"Score: 20" 
"Locked Tile Url: https://live.xbox.com/tiles/6g/25/0Tc8P2NhbC9ECBoDG1tTWTBjL2FjaC8wLzIwAAAAAVBQUP6WDfY=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Lateral Thinker" 
"Description: Solve 25% of Riddler challenges" 
"Score: 20" 
"Locked Tile Url: https://live.xbox.com/tiles/br/dw/0jc8P2NhbC8RCBoDG1tTWTBjL2FjaC8wLzJlAAAAAVBQUP1ft3I=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Mystery Solver" 
"Description: Solve 40% of Riddler challenges" 
"Score: 20" 
"Locked Tile Url: https://live.xbox.com/tiles/Xw/SY/0zc8P2NhbC9HCBoDG1tTWTBjL2FjaC8wLzIzAAAAAVBQUPy3BEM=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Conundrum Cracker" 
"Description: Solve 55% of Riddler challenges" 
"Score: 20" 
"Locked Tile Url: https://live.xbox.com/tiles/pu/86/1jc8P2NhbC9ACBoDG1tTWTBjL2FjaC8wLzI0AAAAAVBQUPkV77o=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Mental Athlete" 
"Description: Solve 70% of Riddler challenges" 
"Score: 20" 
"Locked Tile Url: https://live.xbox.com/tiles/NR/fa/1zc8P2NhbC9BCBoDG1tTWTBjL2FjaC8wLzI1AAAAAVBQUPj1Fyk=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Riddle Resolver" 
"Description: Solve 85% of Riddler challenges" 
"Score: 20" 
"Locked Tile Url: https://live.xbox.com/tiles/gB/77/1Tc8P2NhbC9CCBoDG1tTWTBjL2FjaC8wLzI2AAAAAVBQUPrUHpw=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: World's Greatest Detective" 
"Description: Solve Arkham's biggest mystery" 
"Score: 20" 
"Locked Tile Url: https://live.xbox.com/tiles/l1/zS/1zc8P2NhbC8WCBoDG1tTWTBjL2FjaC8wLzJiAAAAAVBQUPj9XIs=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  
0 
"Name: Perfect Knight" 
"Description: 100% Complete" 
"Score: 75" 
"Locked Tile Url: https://live.xbox.com/tiles/27/5R/0Dc8P2NhbC8SCBoDG1tTWTBjL2FjaC8wLzJmAAAAAVBQUP9+vsc=.jpg" 
"Is Unlocked? false" 
"Is Hidden? false" 
  

Sample output for PSN:

Title:  "Uncharted 3: Drake's Deception™" 
Title Id:  39682 
NPCOMMID:  "NPWR01216_00" 
Trophies Link:  "http://uk.playstation.com/psn/mypsn/trophies/detail/?title=39682" 
Small Title Icon:  "http://uk.playstation.com/PSN_Images/psn_title_icon/small/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/11409DB013E52392A886B242E55CDB52A965C7C1.PNG" 
Medium Title Icon:  "http://uk.playstation.com/PSN_Images/psn_title_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/11409DB013E52392A886B242E55CDB52A965C7C1.PNG" 
Large Title Icon:  "http://trophy01.np.community.playstation.net/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/11409DB013E52392A886B242E55CDB52A965C7C1.PNG" 
Percent Complete:  15
"http://uk.playstation.com/psn/mypsn/trophies/detail/?title=39682" 
"Uncharted 3: Drake's Deception™" 
Trophy Id:  1 
Trophy Title:  "Platinum" 
Trophy Description:  "Platinum" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Platinum" 
Trophy Unlocked:  false 
Trophy Id:  2 
Trophy Title:  "First Treasure" 
Trophy Description:  "Find one treasure" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/B58827BD421C31061DFA07B8DD4D4B5608DEF2C1.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/B58827BD421C31061DFA07B8DD4D4B5608DEF2C1.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  3 
Trophy Title:  "Apprentice Fortune Hunter" 
Trophy Description:  "Find 20 treasures" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/C5421B020B195A808559B39DD6E5915E1EFEE6D1.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/C5421B020B195A808559B39DD6E5915E1EFEE6D1.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  4 
Trophy Title:  "Skilled Fortune Hunter" 
Trophy Description:  "Find 40 treasures" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  5 
Trophy Title:  "Adept Fortune Hunter" 
Trophy Description:  "Find 60 treasures" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  6 
Trophy Title:  "Expert Fortune Hunter" 
Trophy Description:  "Find 80 treasures" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  7 
Trophy Title:  "Master Fortune Hunter" 
Trophy Description:  "Find all 100 treasures" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  8 
Trophy Title:  "Relic Finder" 
Trophy Description:  "Find the Strange Relic" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  9 
Trophy Title:  "Survivor" 
Trophy Description:  "Defeat 75 enemies in a row without dying" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  10 
Trophy Title:  "Combat Leapfrog" 
Trophy Description:  "Defeat ten enemies in a row, alternating hand-to-hand combat and gunplay" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  11 
Trophy Title:  "20 Headshots" 
Trophy Description:  "Defeat 20 enemies with headshots" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/B48B134E9DE5B77C0BCC8ECFF3D9851127895257.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/B48B134E9DE5B77C0BCC8ECFF3D9851127895257.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  12 
Trophy Title:  "100 Headshots" 
Trophy Description:  "Defeat 100 enemies with headshots" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/58C78C4DEB1C403E851A1290E5605E71FFF26C3A.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/58C78C4DEB1C403E851A1290E5605E71FFF26C3A.PNG" 
Trophy Type:  "Silver" 
Trophy Unlocked:  true 
Trophy Id:  13 
Trophy Title:  "Headshot Expert" 
Trophy Description:  "Defeat five enemies in a row with headshots" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/4AF14C18A6A5DBF8D779CF25E98E25CB38D56531.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/4AF14C18A6A5DBF8D779CF25E98E25CB38D56531.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  14 
Trophy Title:  "Side Arm Master" 
Trophy Description:  "Defeat 30 enemies in a row with your side arm" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  15 
Trophy Title:  "Reload Master" 
Trophy Description:  "Defeat 50 enemies in a row without auto-reloading" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  16 
Trophy Title:  "Rolling Ammo Master" 
Trophy Description:  "20 times in a row, pick up ammo while rolling" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  17 
Trophy Title:  "Blindfire Marksman" 
Trophy Description:  "Defeat 20 enemies by blind-firing while in cover (without aiming with L1/R1)" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  18 
Trophy Title:  "Run-and-Gunner" 
Trophy Description:  "Defeat 20 enemies by shooting from the hip (without aiming with L1/R1)" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  19 
Trophy Title:  "Hangman" 
Trophy Description:  "Defeat 20 enemies with gunfire by aiming while hanging" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/7E6BE02BE98DB062E5C4D669C7C25B4A6B6D8311.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/7E6BE02BE98DB062E5C4D669C7C25B4A6B6D8311.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  20 
Trophy Title:  "Land Shark" 
Trophy Description:  "Defeat 20 enemies while swimming" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  21 
Trophy Title:  "30 Kills: Mag 5" 
Trophy Description:  "Defeat 30 enemies with the Mag 5" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  22 
Trophy Title:  "30 Kills: Arm Micro" 
Trophy Description:  "Defeat 30 enemies with the Arm Micro" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  23 
Trophy Title:  "30 Kills: Tau Sniper" 
Trophy Description:  "Defeat 30 enemies with the Tau Sniper" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/628FBDA7F6F4639C4B0C747A263A52A37B5EE73E.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/628FBDA7F6F4639C4B0C747A263A52A37B5EE73E.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  24 
Trophy Title:  "30 Kills: KAL 7" 
Trophy Description:  "Defeat 30 enemies with the KAL 7" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/640F35B08D561B39A03D1032CE22C34C8587E8BA.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/640F35B08D561B39A03D1032CE22C34C8587E8BA.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  25 
Trophy Title:  "30 Kills: M9" 
Trophy Description:  "Defeat 30 enemies with the M9" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/702560A3389824546C40CFA9D5D0DA003DF944A9.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/702560A3389824546C40CFA9D5D0DA003DF944A9.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  26 
Trophy Title:  "30 Kills: G-MAL" 
Trophy Description:  "Defeat 30 enemies with the G-MAL" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/3C7713875DAB38F71F63FB5418F0963BB85298FA.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/3C7713875DAB38F71F63FB5418F0963BB85298FA.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  27 
Trophy Title:  "30 Kills: SAS - 12" 
Trophy Description:  "Defeat 30 enemies with the SAS - 12" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/306534C449A40BD3343ABD96C3E54BE808F7BD9C.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/306534C449A40BD3343ABD96C3E54BE808F7BD9C.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  28 
Trophy Title:  "30 Kills: Dragon Sniper" 
Trophy Description:  "Defeat 30 enemies with the Dragon Sniper" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  29 
Trophy Title:  "30 Kills: T-Bolt Sniper" 
Trophy Description:  "Defeat 30 enemies with the T-Bolt Sniper" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/1360A461FC67B45A8175B85A6DF90DF29A37CA34.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/1360A461FC67B45A8175B85A6DF90DF29A37CA34.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  30 
Trophy Title:  "30 Kills: RPG - 7" 
Trophy Description:  "Defeat 30 enemies with the RPG - 7" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  31 
Trophy Title:  "30 Kills: PAK-80" 
Trophy Description:  "Defeat 30 enemies with the PAK-80" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  32 
Trophy Title:  "30 Kills: Mk-NDI" 
Trophy Description:  "Defeat 30 enemies with the Mk-NDI" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/843D1DEE8F3B3B0369F1D6D70D0FE3E2050DA48D.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/843D1DEE8F3B3B0369F1D6D70D0FE3E2050DA48D.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  33 
Trophy Title:  "Pro-pain" 
Trophy Description:  "Defeat ten enemies with propane or acetylene tank explosions" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  34 
Trophy Title:  "Dyno-Might Master" 
Trophy Description:  "Defeat four enemies with one explosion" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  35 
Trophy Title:  "Grenade Hangman" 
Trophy Description:  "Defeat ten enemies with grenades by aiming while hanging" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  36 
Trophy Title:  "Drop the Bomb Hotshot" 
Trophy Description:  "Make five enemies drop their grenade by shooting them" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/6AE2F2CCD3B1520526F97035B9EFEC6EE0FEE2F4.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/6AE2F2CCD3B1520526F97035B9EFEC6EE0FEE2F4.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  37 
Trophy Title:  "Throwback" 
Trophy Description:  "Kill 10 enemies with thrown-back grenades" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  38 
Trophy Title:  "Throwback Master" 
Trophy Description:  "Throw back a grenade and defeat two enemies at once" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  39 
Trophy Title:  "Bare-knuckle Brawler" 
Trophy Description:  "Defeat 20 enemies with hand-to-hand combat" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/76187DCA788543248FA52C9790FA0DBE2B9B16F0.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/76187DCA788543248FA52C9790FA0DBE2B9B16F0.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  40 
Trophy Title:  "Bare-knuckle Slugger" 
Trophy Description:  "Defeat 50 enemies with hand-to-hand combat" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/9C4731FC1011D294DE59373474B14E8D2C969199.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/9C4731FC1011D294DE59373474B14E8D2C969199.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  41 
Trophy Title:  "Master Ninja" 
Trophy Description:  "Defeat 50 enemies with stealth attacks" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  42 
Trophy Title:  "Expert Ninja" 
Trophy Description:  "Defeat five enemies in a row using stealth attacks" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  43 
Trophy Title:  "Riot Rocker" 
Trophy Description:  "Defeat five Riot Shield enemies by running over their shield" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  44 
Trophy Title:  "Brute Beater" 
Trophy Description:  "Successfully counter all of a Brute’s damage-giving attacks" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/966A93EC966031B4219A69EB9E2D22601CC40BA8.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/966A93EC966031B4219A69EB9E2D22601CC40BA8.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  45 
Trophy Title:  "Quick Study" 
Trophy Description:  "Inspect almost every display case in the Cartagena Museum" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  46 
Trophy Title:  "Ride the Crocodile" 
Trophy Description:  "Stand on the crocodile in the Secret Library" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  47 
Trophy Title:  "He's Gonna Need a Sturgeon" 
Trophy Description:  "Hit three enemies with fish in the market" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  48 
Trophy Title:  "Marco Solo" 
Trophy Description:  "Play in the swimming pool on the Cruise Ship" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  49 
Trophy Title:  "Truck Brawler" 
Trophy Description:  "Defeat ten enemies using hand-to-hand combat on the back of the convoy trucks" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  50 
Trophy Title:  "Charted! - Easy" 
Trophy Description:  "Finish the game in Easy Mode" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/679C66F4F20473B8C8250EDAB52B5DF21CFE72A6.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/679C66F4F20473B8C8250EDAB52B5DF21CFE72A6.PNG" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  true 
Trophy Id:  51 
Trophy Title:  "Charted! - Normal" 
Trophy Description:  "Finish the game in Normal Mode" 
Trophy Medium Image:  "http://uk.playstation.com/PSN_Images/psn_trophy_icon/medium/trophy/np/NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/15A247A74266E0B942BFA6DADBADC6433C11164D.PNG" 
Trophy Large Image:  "http://trophy01.np.community.playstation.net/trophy/np//NPWR01216_00_8AE11CE82D772A304AB1111502B3E16813EF12D9/15A247A74266E0B942BFA6DADBADC6433C11164D.PNG" 
Trophy Type:  "Silver" 
Trophy Unlocked:  true 
Trophy Id:  52 
Trophy Title:  "Charted! - Hard" 
Trophy Description:  "Finish the game in Hard Mode" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  53 
Trophy Title:  "Charted! - Crushing" 
Trophy Description:  "Finish the game in Crushing Mode" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Gold" 
Trophy Unlocked:  false 
Trophy Id:  54 
Trophy Title:  "Thrillseeker" 
Trophy Description:  "Complete one Competitive Multiplayer game" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  55 
Trophy Title:  "Buddy System" 
Trophy Description:  "Complete one Cooperative Multiplayer game" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  56 
Trophy Title:  "Treasure Domination" 
Trophy Description:  "Win a Plunder game without letting the opposing team score (5-0)" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  57 
Trophy Title:  "And Stay Down!" 
Trophy Description:  "Win 50 matches of Elimination" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  58 
Trophy Title:  "Omnipotent" 
Trophy Description:  "Complete a Co-op Adventure Map on Crushing Difficulty without losing a single life" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  59 
Trophy Title:  "All Together Now" 
Trophy Description:  "Kill the three end bosses in Chapter 5 (Harry Flynn, Eddy Raja, Zoran Lazarevic) within 20 seconds of each other on Hard" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  60 
Trophy Title:  "Air Mail" 
Trophy Description:  "Get 25 Return To Sender Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  61 
Trophy Title:  "Statuesque" 
Trophy Description:  "Get the Curator Medal while on Hard Difficulty" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  62 
Trophy Title:  "Payback is a…" 
Trophy Description:  "Get 50 Retaliation Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  63 
Trophy Title:  "Colonizer" 
Trophy Description:  "Get 50 Expansionist Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  64 
Trophy Title:  "Everyday I'm Tauntin'" 
Trophy Description:  "Get 50 In Your Face Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  65 
Trophy Title:  "How's That Taste?" 
Trophy Description:  "Get 50 Fisticuffs Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  66 
Trophy Title:  "Team Player" 
Trophy Description:  "Win 50 matches of Team Objective" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  67 
Trophy Title:  "From All Angles" 
Trophy Description:  "Get 25 Triple Threat Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  68 
Trophy Title:  "Hoarder" 
Trophy Description:  "Complete the Artifact Treasure Set" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  69 
Trophy Title:  "Look Out Below" 
Trophy Description:  "Get 10 Detonator Medals while on Hard Difficulty" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  70 
Trophy Title:  "Wild Wild West" 
Trophy Description:  "Get 50 Gunslinger Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  71 
Trophy Title:  "Eyes on the Prize" 
Trophy Description:  "Earn 3000 Objective Points" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  72 
Trophy Title:  "You're Out!" 
Trophy Description:  "Get 50 Strike Three Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  73 
Trophy Title:  "It's Good to Be King" 
Trophy Description:  "Get 50 Three Kickback King Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  74 
Trophy Title:  "Key Master" 
Trophy Description:  "Get 100 Gate Keeper Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  75 
Trophy Title:  "Hanging On" 
Trophy Description:  "Get 3 Hang In There Medals while on Hard Difficulty" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  76 
Trophy Title:  "Invincible " 
Trophy Description:  "Complete a Co-op Arena Map on Crushing Difficulty without losing a single life" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  77 
Trophy Title:  "Two by Two" 
Trophy Description:  "Win 50 matches of Three Team Deathmatch" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  78 
Trophy Title:  "Collector" 
Trophy Description:  "Complete the Antiquity Treasure Set" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  79 
Trophy Title:  "Up Top!" 
Trophy Description:  "Get 50 High Five Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  80 
Trophy Title:  "Boom Goes the Dynamite" 
Trophy Description:  "Get 50 Frag ‘Em Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  81 
Trophy Title:  "Overpowered" 
Trophy Description:  "Get 50 Power Killer Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  82 
Trophy Title:  "I Think You Dropped This" 
Trophy Description:  "Get 25 Here, Hold This Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  83 
Trophy Title:  "Detonator" 
Trophy Description:  "Get 10 Mad Bomber Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  84 
Trophy Title:  "We Can Kill It" 
Trophy Description:  "Get 25 If It Bleeds… Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  85 
Trophy Title:  "Pop Top" 
Trophy Description:  "Get 100 In The Soft Spot Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  86 
Trophy Title:  "Treasure Collector" 
Trophy Description:  "Win 50 matches of Plunder" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  87 
Trophy Title:  "Overseer" 
Trophy Description:  "Get the Curator Medal while on Crushing Difficulty" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  88 
Trophy Title:  "Unstoppable" 
Trophy Description:  "Get the Unyielding Medal while on Crushing Difficulty" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  89 
Trophy Title:  "Immortal" 
Trophy Description:  "Complete a Co-op Arena Map on Hard Difficulty without losing a single life" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  90 
Trophy Title:  "Not Afraid of the Dark" 
Trophy Description:  "Get 50 Lights Out Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  91 
Trophy Title:  "Spartan" 
Trophy Description:  "Get 150 In The Shade Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  92 
Trophy Title:  "Firefighter" 
Trophy Description:  "Get 150 Shade Survivalist Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  93 
Trophy Title:  "Capital Punishment" 
Trophy Description:  "Get 25 Executioner Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  94 
Trophy Title:  "Head Crusher" 
Trophy Description:  "Get 50 Head Hunter Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  95 
Trophy Title:  "Hold the Line" 
Trophy Description:  "Get 50 None Shall Pass Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  96 
Trophy Title:  "Triumvirate" 
Trophy Description:  "Kill the three end bosses in Chapter 5 (Harry Flynn, Eddy Raja, Zoran Lazarevic) within 20 seconds of each other on Crushing" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  97 
Trophy Title:  "Gladiator" 
Trophy Description:  "Win 50 matches of TDM" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  98 
Trophy Title:  "Fly on the Wall" 
Trophy Description:  "Get 3 Hang In There Medals while on Crushing Difficulty" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Silver" 
Trophy Unlocked:  false 
Trophy Id:  99 
Trophy Title:  "Deathless" 
Trophy Description:  "Complete a Co-op Adventure Map on Hard Difficulty without losing a single life" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  100 
Trophy Title:  "Stealth Master" 
Trophy Description:  "Get 50 Assassin Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  101 
Trophy Title:  "Looking for Loot" 
Trophy Description:  "Get 50 Three Medal Pickup Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  102 
Trophy Title:  "Long Gun Lover" 
Trophy Description:  "Get 50 Commando Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  103 
Trophy Title:  "Double Trouble" 
Trophy Description:  "Get 50 Double Down Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  104 
Trophy Title:  "Boom, Headshot!" 
Trophy Description:  "Get 50 Head Cracker Medals" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false 
Trophy Id:  105 
Trophy Title:  "I'm on a Roll" 
Trophy Description:  "Get the Unyielding Medal while on Hard Difficulty" 
Trophy Medium Image:  "http://uk.playstation.com/static/furn/portal/common/icon_trophy_padlock.gif" 
Trophy Large Image:  "http://webassets.scea.com/playstation/img/trophy_locksmall.png" 
Trophy Type:  "Bronze" 
Trophy Unlocked:  false

Qt Development on OS X Mountain Lion

1. October 2012 21:18 by Cameron in C++, Mac, Mac OS X, Qt  //  Tags: , , , , , ,   //   Comments

OS X Mountain Lion changes a few things on how XCode is installed. Xcode is now contained in an app bundle and the SDKs directory is part of the bundle contents, thus you will need to update your SDK paths in your project file like so:

MAC_SDK  = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
    if( !exists( $$MAC_SDK) ) {
        error("The selected Mac OSX SDK does not exist at $$MAC_SDK!")
    }
    QMAKE_MAC_SDK = $$MAC_SDK

If you want to support Snow Leopard as a target platform with your Qt applications, be sure to use the 10.7 SDK and not the default 10.8 SDK. Your app should work just fine in Snow Leopard provided that you don't make any calls to Lion specific features while using the 10.7 SDK.

Another important thing is to install the command line tools for GCC so that Qt can find the compiler during installation and successfully compile C/C++ applications from Qt Creator. If you do use the 10.8 SDK with any Qt version less than Qt 5.0, it will give warnings that OS X 10.8 is unsupported during compilation. These warnings can be safely ignored. Aside from that, everything else should be the same as before. Happy coding!

Month List

Tag cloud