Coolthing Of Theday

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Friday, 14 June 2013

POP goes the code review... Prince Of Persia Apple II Code Review Series

Posted on 17:55 by Unknown

Fabien Sanglard's Website - Prince Of Persia Code Review: Part 1 (Introduction)

Even though it is the Apple II version written in 6502 assembly language, it was a pleasant experience to dive in the code of that mythical game: As usual there were many fascinating software wizardries to discover.

The Apple II apparent poor environment for game programming was actually ground to unmatched innovation and creativity : From self-modifying code, in-house bootloader, clever floppy disc format to skewing lookup tables: Prince Of Persia features engineering treasures in every modules.

Reading the source allowed me not only to learn about the game development process of the 80s but it also renewed my appreciation for things that we take for granted today.

As usual I took numerous notes that I have cleaned up on this page. I hope it will inspire others to read more source code and become better engineers.

Acknowledgment : I would like to thank Miles.J from 6502.org and Roland Gustafsson (author of RWTS18) for patiently sharing their knowledge with me.

Part I : Introduction
Part II : Bootloader
Part III : Code explained

Where to start ?

The source code is available in a GitHub repository and can be downloaded with one command:

...

image..."

If you have any interest at all in looking back in time and seeing how far we've come, you've got to read this series...

 

Related Past Post XRef:
Jason and Jordan get their game on to get the game... The start of the tale on getting the original POP (Prince of Persia) Apple II source off of 20 year old floppies
Original POP (Prince of Persia) Apple II Source Found

Follow along and see the magic behind the Prince of Persia for C64 via its Development blog
Price of Persia... for the Commodore 64 (really)

Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in Development, Game | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Mr. 7,000! This is my 7,000th post...
    Before this post; After; 20 visits between taking these snaps? Oh wait, that's probably me searching for past related posts....
  • Exchange Online getting serious about helping with eDiscovery
    The Exchange Blog - Preserve mailbox data for eDiscovery using inactive mailboxes in Exchange Online In Exchange Online and Exchange S...
  • Clide, your guide to Visual Studio Extensibility sanity...
    Daniel Cazzulino's Blog - High level overview of Visual Studio Extensibility APIs If your head is dizzy with the myriad VS service...
  • Viasfora - Your new favorite Visual Studio Text/*ML Editing Extension?
    Winterdom - Introducing Viasfora A couple of days ago, I unveiled Viasfora , my latest attempt at building a decently packaged extensi...
  • Rad Gate Post... Get your Red Gate Post here...
    simple talk - Melanie Townsend - Get a copy of the Red Gate Post We recently put together a newspaper of some of the best articles fr...
  • [Hardware Review] Life with Haswell... Haswell/Harris Beach Intel SDS Ultrabook Review - Part 2
    "So Greg, how's life with Haswell been?" "Pretty Sweet! (Mostly)" I've been given an opportunity to review t...
  • Excel with Excel without Excel... Seven Excel/XLS Libraries
    Ginktage - 7 Libraries for Reading and Writing from/to Excel File in C# Few months back , I was making an R&D on the possibilities...
  • Scrum Primer, the v2...
    Scrum Alliance - The Scrum Primer The Scrum Primer is an in-depth introduction to the theory and practice of Scrum, and includes data ...
  • Greg's //build bets - My total and complete WAG's about next week's //build event
    These are my complete and total WAG's (Wild Ass Guesses) about what we might get, see and hear about at next week's //build (which I...
  • Google Reader Bytes the Dust - Google Reader is being turned out to pasture on July 1, 2013
    Google Reader Blog - Powering Down Google Reader "... We have just announced on the Official Google Blog that we will soon r...

Categories

  • .Net
  • 3DPrinting
  • AFeedYouShouldRead
  • Agile
  • ALM
  • Amazon
  • Amiga
  • Analytics
  • Android
  • ASP.NET
  • Azure
  • BigData
  • bing
  • Blogging
  • Book
  • BookReview
  • BUILD
  • C
  • C#
  • C++
  • Career
  • Cat
  • cheatsheet
  • ClickOnce
  • Cloud
  • ComputerHardware
  • css
  • Data
  • DBA
  • DependencyInjection
  • Deployment
  • Design
  • Development
  • devops
  • DVCS
  • ebook
  • EDD
  • Education
  • EnterpriseLibrary
  • EntityFramework
  • Exchange
  • Expression
  • gadget
  • Game
  • GIT
  • Google
  • Government
  • Hadoop
  • hardware
  • HardwareReview
  • HaswellReview
  • HTML5
  • Humor
  • IE
  • IEExtension
  • IfAllElseFails
  • IIS
  • ILMerge
  • Image
  • Infographic
  • interview
  • InversionOfControl
  • Java
  • Javascript
  • Kinect
  • LightSwitch
  • LINQ
  • Linux
  • LosAngeles
  • Lucene
  • Lync
  • MEF
  • Metro
  • MicrosoftOffice
  • MicrosoftOutlook
  • Mono
  • MVC
  • MVVM
  • NetMon
  • NLP
  • NoSQL
  • NuGet
  • OData
  • OneNote
  • OpenXML
  • Paint.Net
  • Personal
  • Photosynth
  • Physics
  • portable
  • Poster
  • PowerShell
  • Preparedness
  • Presentation
  • Prism
  • PrivateCloud
  • RegEx
  • RemoteDesktop
  • Reporting
  • RIAServices
  • Science
  • ScienceFiction
  • Scratch
  • Scrum
  • ServiceBus
  • SharePoint
  • Silverlight
  • SimiValley
  • SPA
  • Space
  • SQLServer
  • Storyboard
  • Surface
  • SVG
  • SystemAdministration
  • T4
  • TeamBuild
  • TeamFoundationServer
  • TechEd
  • Training
  • TypeScript
  • UnitTesting
  • UnityApplicationBlock
  • Utility
  • Veteran
  • VirtualMachine
  • Visio
  • VisualBasic
  • VisualStudio
  • WCF
  • Web X.X
  • Webcast
  • WebFeed
  • WebMatrix
  • Windows
  • Windows7
  • Windows8
  • Windows8.1
  • WindowsHomeServer
  • WindowsLiveWriter
  • WindowsPhone
  • WindowsServer
  • WinRT
  • WiX
  • WMI
  • WOPI
  • WPF
  • XAML
  • XBox360
  • XboxOne
  • zombie

Blog Archive

  • ▼  2013 (500)
    • ►  December (12)
    • ►  November (61)
    • ►  October (65)
    • ►  September (38)
    • ►  August (47)
    • ►  July (75)
    • ▼  June (39)
      • 300 for 320 - 320 Windows 8.1. app and code sample...
      • "Utilizing SysInternals Tools for Windows Client" ...
      • Google .Net API's go portable... The v1.4.0 Google...
      • Goodbye Google Reader... Need an alternate app? He...
      • Scott (not that Scott) helps make your Live dev ea...
      • SSDT (SQL Server Data Tools) June 2013 Released
      • RSAT (Remote Server Administration Tools) for Wind...
      • Getting a picture of the "Blue" Wave...
      • Need some help up the WPF learning curve? "WPF Suc...
      • A Sweet Summer Sysinternals Suite Refresh
      • Robin's "So you're in San Francisco for Build? Stu...
      • TypeScript Succinctly - Free [Name/email-ware] eBook
      • Friday Humor: Cell Reception - Can you hear me...o...
      • Mark TechEd's you... See all four of Mark Russinov...
      • Fighting bugs in your LOB apps? Hearing about cras...
      • Greg's //build bets - My total and complete WAG's ...
      • Excel as a digital art drawing platform? Yep! Beau...
      • Want the world's best Science Fiction And Fantasy ...
      • Eric triple downs on his Free Microsoft eBook List...
      • Log Parser Studio 2.0 now out (Log Parser GUI++)
      • //build Windows Store App available
      • Booting Minecraft (or maybe Assembling Minecraft) ...
      • POP goes the code review... Prince Of Persia Apple...
      • So you want to be a dev at Microsoft? Here's two v...
      • "The Essential HTML5 Mobile" DZone Refcardz Cheat ...
      • WPF TextBlock vs Label, what's the diff?
      • A quick look at the coming Los Angeles Light Rail ...
      • Dev:"But it's new and shinny! Let's upgrade!" DBA:...
      • "Microsoft SQL Server 2014 CTP1 Product Guide" - O...
      • Win8Templates now at 71 - 71 Windows 8 App Design ...
      • Getting into the flow, surfing restaurant inspecti...
      • Mash some web API's with your brain and Windows 8 ...
      • Using .Net Settings? Hate it when you rev your app...
      • Tiny Tiny RSS WAMP, MAMP or LAMP installers, VM or...
      • WintellectNOW FTW - Wintellect now providing on-de...
      • Windows 8 Mail Tip - Pin Email accounts so you see...
      • Gov Webicons - Your one shop, 41 Agency stop for U...
      • With yesterday's TechEd VS/TFS announcements, does...
      • TechEd NA 2013 Day 1 Announcement Round-up - VS 20...
    • ►  May (40)
    • ►  April (42)
    • ►  March (39)
    • ►  February (42)
Powered by Blogger.

About Me

Unknown
View my complete profile