Jump to content
rensoup

Unicorns season: Prince of Persia for the A8!

Recommended Posts

6 minutes ago, rensoup said:

Regarding masking... I might have already said that but PoP is a worst case scenario.

 

Hardware masking with PMG on top of each other would just mean halving the player count, one player to cover another one... I need all 4 players to cover the hero + enemy.

 

Software masking is the only way to make the best use of those PMGs.

 

-PMGs over the playfield, means that any background bloc covering the PMG would require realtime shifting to mask the PMG data

 

-PMGs under the playfield means masking the PMG data into the already drawn playfield which is probably less costly. Unfortunately the playfield covering the PMG contain color 0 which means the PMG will show through the cracks in the pillars for instance... that may look ok though.

 

 


have you considered to rearrange the color bits to get the best out of gtia priority? Maybe that solves the “shining 

through”

Share this post


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

have you considered to rearrange the color bits to get the best out of gtia priority? Maybe that solves the “shining 

through”

Not sure what you mean (remember that all 4 colors can be above -and- below the PMGs ) ?

Share this post


Link to post
Share on other sites

Well here it is (if I didn't mess it up)!

 

In this release (20/01/13)

 

(available from the first post of this thread):

 

-one playable level (L2)
-PMG overlays with repositioning for the player (not for the enemy yet)
-preliminary music by Vinscool
-a lot more animation frames redone by TIX
-fix: random button presses during fights
-bug: running to the right then left, still keeps running to the right

 

Feedback welcome, particularly on the music side.


For the next release (may be some time away):

-hopefully PMG masking (another potentially huge pain)
-perhaps speed up the game somewhat (falling tiles are a big issue it seems, on every 8bit platform with even the BBC dropping to single digit framerate with just 2 falling tiles!)
-hunting for memory (a constant battle but getting thougher with every new added feature)

 

Edited by rensoup
  • Like 17

Share this post


Link to post
Share on other sites

 

On a tech note:

 

PMG overlays turned out to be a gigantic pain in the butt, requiring changes to the graphics converter (to reduce the current memory footprint and improve speed somewhat as well a splitting the extra color from the main sprite and figuring out how to make the best use of 2PM per sprite)


So with large sprites, PM01 are used for the head/arms/torso then repositioned with a DLI for the feet. And that's mixed in with static DLIs for the potion.

 

One of the nastier bugs I had was that I sometimes ended up triggering the VBi with a DLi, which was ok as the NMI handler would detect it and return early. Except that I wanted to figure it out and fix it properly so instead of returning early, I added a KIL instruction. This forced the game to crash but only very sporadically.
It should be fixed but I left the KIL just in case. If you encounter a crash: please post a screenshot with the debugger enabled.


Another potential issue is the NTSC version which has barely enough time to complete the VBi before the first DLI fires... it seems to work (I've had to move the screen down a little though) but I haven't tested it much. Let me know how that goes.

 

Enjoy 😎

  • Like 9

Share this post


Link to post
Share on other sites

Looks good; tempting me to start helping out.

 

Fun to play; brings back the old memories.

 

NTSC = some screen glitches/flicker and slowdowns.

 

Share this post


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

Not sure what you mean (remember that all 4 colors can be above -and- below the PMGs ) ?

And more combinations like players in between etc... always over my head and me being to lazy to do PM underlays... there are better guys explaining here that...

 

For me personally I always felt too much pain for gaining some additional colors ;) but that’s my 2cents.

Share this post


Link to post
Share on other sites

Wow, this is very impressive! It's like I'm transported back 30 years and playing the ST version in my bedroom. Good job all involved. Looking forward to more.

  • Like 1

Share this post


Link to post
Share on other sites

all this is so f*ing insane. The graphics are so wonderfull. God I had killed to play this on my 8bit Atari when I was 10 and all my other friends had a c64 or 286 pc ;-)

  • Like 2

Share this post


Link to post
Share on other sites

Just a thought, in the later levels when the main character splits into two, will the DLIs be able to cope with the two characters?

 

I have no opinion by the way, I just want to check if it has been thought about.

Share this post


Link to post
Share on other sites
7 hours ago, MrFish said:

Looks good; tempting me to start helping out.

 

Fun to play; brings back the old memories.

 

NTSC = some screen glitches/flicker and slowdowns.

 

Well I happen to be needing a bunch of background tiles 😀

 

For the NTSC version, the glitches are simply because I have to do so much in the VBi... as for the slowdowns, they're one of PoP's trademark features 😏 (plays the same in PAL, and also on C64, BBC, Apple2 )

  • Like 1
  • Haha 1

Share this post


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

Just a thought, in the later levels when the main character splits into two, will the DLIs be able to cope with the two characters?

Well as long as there's only 2 characters on screen it should be ok...

 

The function which adds a new DLI, checks if there already one on a given scanline then tries again a few lines above if that's the case.

 

Otherwise I'll just disable the overlay for the shadow and it'll look spooky without any skin and I'll just pretend it's a feature!

  • Like 5

Share this post


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

Well as long as there's only 2 characters on screen it should be ok...

 

The function which adds a new DLI, checks if there already one on a given scanline then tries again a few lines above if that's the case.

 

Otherwise I'll just disable the overlay for the shadow and it'll look spooky without any skin and I'll just pretend it's a feature!

@rensoup I was thinking about this challenge myself .

with the dli you will handle the HPOS of the prince combined from PMGs right? If prince is splitter on the same scan mode lines , how this will be done ?

Share this post


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

Regarding masking... I might have already said that but PoP is a worst case scenario.

 

Hardware masking with PMG on top of each other would just mean halving the player count, one player to cover another one... I need all 4 players to cover the hero + enemy.

 

Software masking is the only way to make the best use of those PMGs.

 

-PMGs over the playfield, means that any background bloc covering the PMG would require realtime shifting to mask the PMG data

 

-PMGs under the playfield means masking the PMG data into the already drawn playfield which is probably less costly. Unfortunately the playfield covering the PMG contain color 0 which means the PMG will show through the cracks in the pillars for instance... that may look ok though.

 

 

Well, you could change the GPRIOR register everywhere on the screen, even mid line, if needed.

Also, mostly , where the pillars appear, the Prince is alone. A logical switch, when the Prince is alone on a Platform, the Hardware Overlay could be used. When an Enemy appears, allow the shine through. As a compromise...

Btw. There is a real solution for hardware masking, but this means to rework all graphics.   

Share this post


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

Well I happen to be needing a bunch of background tiles 😀

Alright, send me some of the more important tiles you need; I still can't guarantee I'll have time to work on them; but I'll see what I can do. I'm doing a poor job helping NRV a little right now (we started this project together long before you and I started talking), with what little time I can scrape together (I.E.: Don't expect much.).

 

4 hours ago, rensoup said:

For the NTSC version, the glitches are simply because I have to do so much in the VBi... as for the slowdowns, they're one of PoP's trademark features 😏 (plays the same in PAL, and also on C64, BBC, Apple2 )

I'm not talking about places where there are slowdowns in PAL too. It's only slowing down on NTSC, and usually flickering at the same time; so it must be NTSC running out of time on those frames. I'm just testing and comparing in Altirra, not real hardware; but given your description, I have faith it's probably the same on real hardware.

 

Edited by MrFish

Share this post


Link to post
Share on other sites

Midline GPRIOR changes in a game like this.  Unbelievable.

And coming from someone who spruiks Graphics 7 for any given application you might have on your radar.

  • Like 2
  • Thanks 1
  • Haha 2

Share this post


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

Midline GPRIOR changes in a game like this.  Unbelievable.

And coming from someone who spruiks Graphics 7 for any given application you might have on your radar.

haha... I had exactly the same in mind... ;)

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, Yaron Nir said:

@rensoup I was thinking about this challenge myself .

with the dli you will handle the HPOS of the prince combined from PMGs right? If prince is splitter on the same scan mode lines , how this will be done ?

? the prince is split you mean ?

There's a large area between the torso and ankles that doesn't have PMGs usually, so the DLIs can be set anywhere in that zone... that's the theory of course because I haven't tried yet

Edited by rensoup

Share this post


Link to post
Share on other sites
7 hours ago, MrFish said:

Alright, send me some of the more important tiles you need; I still can't guarantee I'll have time to work on them; but I'll see what I can do

Thanks, and if you don't do it I will do it myself and make everybody's eyes bleed 😱

7 hours ago, MrFish said:

I'm not talking about places where there are slowdowns in PAL too. It's only slowing down on NTSC, and usually flickering at the same time; so it must be NTSC running out of time on those frames. I'm just testing and comparing in Altirra, not real hardware; but given your description, I have faith it's probably the same on real hardware.

 

Well what are those places ? The flickering mostly occurs when there's a guard because there's more PMG data to update... I've completed L2 in PAL & NTSC and as far as I can tell they play the same (latest Altirra)

 

Share this post


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

Well, you could change the GPRIOR register everywhere on the screen, even mid line, if needed.

Also, mostly , where the pillars appear, the Prince is alone. A logical switch, when the Prince is alone on a Platform, the Hardware Overlay could be used. When an Enemy appears, allow the shine through. As a compromise...

Like Rybag said, that's an insane suggestion... Replacing software masking with hardware masking and a kernel as high as a player to change GPRIOR as an easier solution ?

 

This is so impractical in so many ways I don't know where to start...😵

 

 

  • Like 6

Share this post


Link to post
Share on other sites
On 1/13/2020 at 7:27 PM, rensoup said:

bug: running to the right then left, still keeps running to the right

I propose to settle two birds with one stone:

 

 

82DF: A2 80     LDX #$80   ; bug

c 82e0 ff

 

9184: AE 09 D2  LDX $D209    ; will handle the keyboard better jmp $937B

c 9184 4c 7b 93

 

 

---

vid

 

Edited by xxl
  • Like 6
  • Thanks 1

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...

×
×
  • Create New...