Jump to content
rensoup

Unicorns season: Prince of Persia for the A8!

Recommended Posts

1 hour ago, rensoup said:

not sure about that one... I'm more of the retro 21st century kind 😎

 

Some DLIs could improve the look - like on this 8 year old mock-up:

popmudli.png

Edited by Irgendwer
  • Like 2

Share this post


Link to post
Share on other sites
24 minutes ago, Tezz said:

Nice work TIX, the anim is much improved. It could be that perhaps Jordan dropped some frames for memory reasons in the original which has carried over into all of the conversions. Props for being the first to study the frames and address it 👍

 

Thanks man !

the number of frames were kept at 8 like the original  ;-)

Share this post


Link to post
Share on other sites
10 hours ago, rensoup said:

Got another question: Did you try optimizing parts of the game beside the mask buffer?

 

Perhaps by messing with artwork ? I think the BBC version for instance uses ORA mode for a bunch of stuff (gates, potions, thin pillars with a large base,...) instead of proper masking because the screen is 16 cols and they split the art in 3 colors palettes.

 

There are strange things, like in the first room when the first plate falls the clear area is huge for no reason. There's a define for it in the Apple2 code (for the height) with a comment saying that it's for clearing spikes too.

 

In Level 1, the room with 2 falling plates I noticed the framerate tanks on the C64, it does as well on the A8 but perhaps not as much (yet!). I'm guessing the plates are properly masked but still I didn't expect it.

 

On the A8, I believe the logic code (everything but the sprite/clear code) takes a full frame. I think it scans for stuff in neighbouring rooms but again that unexpected.

Yes, I did change code that was drawing too much, and I also simplified things (like the falling plates) to speed things up. The A8 should be fine, since it has a faster 6502 than the C64, but there are a lot of redraws involved. Check the Atari ST version to see how slow it can get... :)

 

I tried to stay away from optimizations that might lead to new bugs.

  • Like 1

Share this post


Link to post
Share on other sites

the DLI demo... there appears to be more that 4 colours in that as the raster effect is thru one grey but not another?

Share this post


Link to post
Share on other sites
3 hours ago, Defender_2600 said:


Fantastic news! Best wishes!

 

Regarding the background, I have always loved the clean look of the DOS version and I was thinking it could be a nice option. But maybe I'm just nostalgic.

 

 

 

1083368571_PrinceofPersiafortheA8.thumb.PNG.a745867ab8d0ecc64a48fe1817db6593.PNG

 

That "Transition Craze" is a relict , caused by the C64 Scene, as the C64 hasn't the colors but the density, a lot games suffer by that. 

Using solid colors and some transitions for enhancing details , makes it a lot more fun to watch at big screens. 

If you look at the small GIFs, it might look interesting, but it gets too coarse on a big screen, you see transitions /BIG PIXELS ;) , and not the "floor or stones in the shadow" .  The "DOS" way would be very fine.   

 

 

 

Edited by emkay
  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, TIX said:

Hey guys,

 

it took a 'while' but we finally settled on the style of the prince :P

here is a comparison shot of the starting (bbc) template, a intermediate state and the final run animation..

As much as I admire Jordan Mechner for his incredible animation work, the running in particular suffers from an incomplete cycle.

I studied POP on various platforms and all seems to inherit the problem.

 

So in addition to the usual spit and polish, I tried to address that too !

 

bbc-running.gif.a78b5252fdbfea7164bf9e6c5c09573a.gifprince-8frames-run.gif.62de062ab304b28065e3b45a2e8d1ba8.gif.b4669f5e9f63582e8d36c3dab4600fbb.gifrunning4.gif.a8dda797f4fa0d2b08888b7cd0e87688.gif

 

Prince of Persia - making of  https://www.youtube.com/watch?v=ZW_eExHpTZI

  • Like 1

Share this post


Link to post
Share on other sites

Well, I guess, this version is really going to be "finish able" . 

The BBC Version is optimized for a more common graphics type. Main 3 colors per moving object and up to 8 colors for the game will be given. 

My particular "laugh of the Year" is that this version has included the "given" solution for the masking. Using byte boundaries particular at the pillars saves a lot CPU cycles. 

Additional Masking for the PMg is no big deal then.  

 

No blame here, but we had a hard discussion back then, when someone else wanted the impossible ;)

 

Share this post


Link to post
Share on other sites
1 minute ago, emkay said:

Well, I guess, this version is really going to be "finish able" . 

The BBC Version is optimized for a more common graphics type. Main 3 colors per moving object and up to 8 colors for the game will be given. 

My particular "laugh of the Year" is that this version has included the "given" solution for the masking. Using byte boundaries particular at the pillars saves a lot CPU cycles. 

Additional Masking for the PMg is no big deal then.  

 

No blame here, but we had a hard discussion back then, when someone else wanted the impossible ;)

 

Yeah. It seems exactly the same as us were doing just with different gfxs... but is your usual enterings...

  • Like 1

Share this post


Link to post
Share on other sites
7 minutes ago, José Pereira said:

Yeah. It seems exactly the same as us were doing just with different gfxs... but is your usual enterings...

 

Sometimes I wonder how you manage anything.

 

The Approach is fully different. You wanted to keep the C64 graphics. I wanted changes as done now in this version.

 

Edited by emkay

Share this post


Link to post
Share on other sites
11 minutes ago, José Pereira said:

What gfxs have to do? Forget it.

Thanks for that great example.

 

 

Share this post


Link to post
Share on other sites
4 hours ago, STE'86 said:

the DLI demo... there appears to be more that 4 colours in that as the raster effect is thru one grey but not another?

Yes, that's char-mode with the 5th colour in use. Just mentioned it as food for thoughts.

Share this post


Link to post
Share on other sites
6 hours ago, snicklin said:

I do have a feature request for this game (sorry!) and that is that there is a cheat of some kind to make the game easier. I think the best I ever did was get off the first level once :(

 

5 hours ago, Jacques said:

As for cheats in PoP, optional unlimited time / lives would do and maybe SHIFT-L to skip level up to level 4 as on PC, for historical reasons ;)

 

Yes of course, there will be a cheat mode by default 😁 in the form of a level select + amount of energy. The BBC had lots of cheats and a save game which took a bit too much code.

 

Share this post


Link to post
Share on other sites
6 hours ago, Tezz said:

It shouldn't be too difficult to add the PMGs to the masking procedures, I had fun working out the masking in Chimera+. I'm sure you don't need any help with that but feel free to PM if ever you do.

Thanks, l I haven't got everything worked out but whatever priority I choose, over/under the playfield, I have to do more real time shifting mirroring (slow), plus that's going to require a lot of mem (don't have enough yet) so there may be quite a bit of preliminary work involved.

Then it's quite possible the frames may be to large for 2 PMGs for the hero, so may need repositioning/Size change with DLIs moving up and down to depending on the Y pos. This needs to be done for each character.

And it has to be mixed with fixed DLIs for special item recoloring.

 

😲

  • Like 1

Share this post


Link to post
Share on other sites
48 minutes ago, rensoup said:

Thanks, l I haven't got everything worked out but whatever priority I choose, over/under the playfield, I have to do more real time shifting mirroring (slow), plus that's going to require a lot of mem (don't have enough yet) so there may be quite a bit of preliminary work involved.

Then it's quite possible the frames may be to large for 2 PMGs for the hero, so may need repositioning/Size change with DLIs moving up and down to depending on the Y pos. This needs to be done for each character.

And it has to be mixed with fixed DLIs for special item recoloring.

 

😲

 

If you want to go that way, no one will stop you ;)

 

My Question only is how you will manage the masking, if you put all PMg into the moving objects, and use that much CPU for the handling? 

For a 1st solution, the PMg should be set behind the Playfield colors , and Player 0 could be set behind a pillar, where the moving objects move behind.  But there can be up to 3 moving objects, crossing more than one Pillar on the same height. The good part is that the PMg can be used at a lower resolution, while the PF colors will filter the Resolution to look higher. 

 

The most complicated solution could be to check the position on every screen and to clear the PM Data, if the moving object is behind a Pillar or other parts that were in the front. In that case GPRIOR 0 would be a killer, as it allows a lot colors.

Share this post


Link to post
Share on other sites
2 hours ago, rensoup said:

Thanks, l I haven't got everything worked out but whatever priority I choose, over/under the playfield, I have to do more real time shifting mirroring (slow), plus that's going to require a lot of mem (don't have enough yet) so there may be quite a bit of preliminary work involved.

Then it's quite possible the frames may be to large for 2 PMGs for the hero, so may need repositioning/Size change with DLIs moving up and down to depending on the Y pos. This needs to be done for each character.

And it has to be mixed with fixed DLIs for special item recoloring.

 

😲

Now the business man comes through but I would not focus much PM stuff at the moment but finishing the game at all first... (a released game is better than a non released ;))

 

i know it’s harder later to implement such eye candy stuff but imho not priority at the moment?

Share this post


Link to post
Share on other sites
22 minutes ago, Heaven/TQA said:

Now the business man comes through but I would not focus much PM stuff at the moment but finishing the game at all first... (a released game is better than a non released ;))

 

i know it’s harder later to implement such eye candy stuff but imho not priority at the moment?

 

Now I'm getting really tired.

If I'm claiming a game is not possible, such guys tell, I'm not knowing nothing.

And...

If I'm sure, the game is possible , even using some advanced stuff, such guys propose to use "basic" coding, to have the game running at least .

 

:dunce:

 

 

 

 

Share this post


Link to post
Share on other sites

 

2 hours ago, emkay said:

 

If you want to go that way, no one will stop you ;)

 

My Question only is how you will manage the masking, if you put all PMg into the moving objects, and use that much CPU for the handling? 

For a 1st solution, the PMg should be set behind the Playfield colors , and Player 0 could be set behind a pillar, where the moving objects move behind.  But there can be up to 3 moving objects, crossing more than one Pillar on the same height. The good part is that the PMg can be used at a lower resolution, while the PF colors will filter the Resolution to look higher. 

 

The most complicated solution could be to check the position on every screen and to clear the PM Data, if the moving object is behind a Pillar or other parts that were in the front. In that case GPRIOR 0 would be a killer, as it allows a lot colors.

lol

  • Thanks 1

Share this post


Link to post
Share on other sites
5 minutes ago, solo/ng said:

 

lol

If weird guys laugh, others always should be concerned.

Is someone caring of him?

Edited by emkay

Share this post


Link to post
Share on other sites
1 hour ago, emkay said:

If weird guys laugh, others always should be concerned.

Is someone caring of him?

Get a life mate and stop trying to derail this thread...

  • Thanks 1

Share this post


Link to post
Share on other sites
6 hours ago, Irgendwer said:

 

Some DLIs could improve the look - like on this 8 year old mock-up:

popmudli.png

I'm using modeE so I don't have that extra color register. Wouldn't it need a kernel for this ?

Share this post


Link to post
Share on other sites
10 hours ago, mrsid said:

Yes, I did change code that was drawing too much, and I also simplified things (like the falling plates) to speed things up. The A8 should be fine, since it has a faster 6502 than the C64, but there are a lot of redraws involved. Check the Atari ST version to see how slow it can get... :)

 

I tried to stay away from optimizations that might lead to new bugs.

I'll probably have to go the same road as the A8 should be faster in theory but I have 4 software sprites (player enemy swords) with shifting masking and mirroring on the fly and then I apply hardware sprites for extra coloring. I'm guessing on C64 you only need to copy the frames to a dedicated sprite area (not familiar with the C64 at all)

 

Share this post


Link to post
Share on other sites
10 hours ago, emkay said:

My particular "laugh of the Year" is that this version has included the "given" solution for the masking. Using byte boundaries particular at the pillars saves a lot CPU cycles. 

Additional Masking for the PMg is no big deal then.  

The most common pillars are aligned but there's another type which isn't, then you have gates and a bunch more objects which have to be properly masked, they don't need to be shifted or mirrored though.

 

4 hours ago, emkay said:

My Question only is how you will manage the masking, if you put all PMg into the moving objects, and use that much CPU for the handling? 

For a 1st solution, the PMg should be set behind the Playfield colors , and Player 0 could be set behind a pillar, where the moving objects move behind.  But there can be up to 3 moving objects, crossing more than one Pillar on the same height. The good part is that the PMg can be used at a lower resolution, while the PF colors will filter the Resolution to look higher. 

I doesn't matter if you use OVER or UNDER priority. it's going to suck CPU time either way.

 

-UNDER: you display the sprite masked shifted clipped mirrored, then you draw the masked PMG in software to cut the parts where it should be visible which requires another masking shifting clipping. Then you copy the PMG data which will not require any masking. You're essentially drawing the character twice in software.

 

-OVER: you display the sprite masked shifted clipped mirrored. Then you take all the objects that can be in front of of the player (pillars, gates, plates) and you use them as a mask to cut out hidden part of the PMGs. The best part ?

->You need to shift those objects just like proper software sprites<-

You're drawing the character once in software and potentially drawing a bunch shifted mask objects in software over the PMGs

 

I was leaning towards the OVER solution but after writing this I might just go with UNDER 🤔

Edited by rensoup
  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Heaven/TQA said:

Now the business man comes through but I would not focus much PM stuff at the moment but finishing the game at all first... (a released game is better than a non released ;))

 

i know it’s harder later to implement such eye candy stuff but imho not priority at the moment?

Yeah but the stubborn coder would tell the business man the game won't be released unless it has PMGs and consumes every damn byte and CPU cycle available 😁

  • Like 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...