[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Prince of Persia Source Code - Found!
I also added a couple more for kicks:
- Deprotect: Overrides the ZP values of the Purple and Yellow protection routines so that cracking the game is totally unnecessary. Also makes it easier to experiment with running the game using alternate disk routines.
- Can haz sword? gives you the sword in level 1 right off. Not like you couldn't get by without it using other cheats like invincibility, sleepy time or just lead the guard over to the left and go up, around and over him to pass level 1 without a sword at all (the last of these is really just how you play the game, not really a cheat per se.)
Code has been checked in to sourceforge. I think there must be something wrong with JACE still, and it is probably related to Airheart crashes. And now I see the link: PoP and Airheart use Aux memory a lot. So there is something I am doing incorrectly with memory soft switches and it only SOMETIMES causes problems.
Is anyone willing to lend a hand to debug? Culprit code is probably in the configureActiveMemory method of the class jace.apple2e.RAM128k -- that's my best guess. Otherwise it is an incorrect definition of softswitches in jace.apple2e.SoftSwitches, but I really hope not.
Probably the best bet is to have a good test routine that switches in and out of Aux, ZP, stack, LC combinations and validates that every combination of switching yields the correct memory page mappings -- and such a test suite could help improve any apple emulator.
-B
On Wednesday, April 18, 2012 12:01:50 AM UTC-5, BLuRry wrote:
> I disagree. Yes, you can get information about the eggs from the internet. But most of the information is about the PC port. Second, the code is the best resource of information for how the game works.
>
> As pointed out before, most of the game lives in the AUX ram. After studying the gameeq.s, I found out it was very easy to train this game in JACE. So I did, and I'm going to finally do something in JACE that it was designed to do originally: Add cheats.
>
> Feather Fall: Hold the CharYVel variable (0x48) at 1 if it is anything other than zero (which indicates the Prince is on the ground). This causes a feather fall.
>
> Infinite life: Works great, but will cause crashes if you run over a spike. (memory address 0x0ce)
>
> Sleepy Time: Causes enemies to not react at all. They just stand there and you can walk right past them (memory address 0x0d1, hold at value 0)
>
> Infinite Time: Keeps timer at 69 minutes. (memory address 0x0300)
>
> FUN!!! I love reading other peoples' code. Other cheats are possible. It could also be possible to make the prince jump further and all other kinds of crazy stuff. Since I could read the movement logic and see how it interacted with the ZP registers, I could even concoct a warp jump feature. I probably won't, but I think I know how to at least.
>
> -B
>
> On Tuesday, April 17, 2012 4:15:03 PM UTC-5, Helpful Harry wrote:
> > In article
> > <20716195.2665.1334676175538.JavaMail.geo-discussion-forums@ynjm4>, BLuRry
> >
> > wrote:
> >
> > > On Tuesday, April 17, 2012 9:45:10 AM UTC-5, N.N. Thayer wrote:
> > > > The code has been posted at GitHub:
> > > >
> > > > https://github.com/jmechner/Prince-of-Persia-Apple-II
> > > >
> > > > Jason Scott's guest post on Mechner's blog:
> > > >
> > > > http://jordanmechner.com/blog/2012/04/textfiles/
> > >
> > > Yessss! Found the Boot0 easter eggs in the source. It's a lookup
> > > table listing each key and its corresponding address to JMP to.
> > > I wonder what confusion does?
> > >
> > > :dispatch hex FF
> > > da oscsh
> > >
> > > asc "!"
> > > da rcmess
> > >
> > > hex 8D
> > > da confusion
> > >
> > > asc "@"
> > > da rotcube
> > >
> > > asc "^"
> > > da drive
> >
> >
> > It's much easier to find the easter egg / cheat codes via an Internet search.
> >
> > From memory, "confusion" makes the enemies easier to kill (they are
> > confused and don't fight as well as normal).
> >
> > Helpful Harry :o)