Apple II port to BBC Master computer

Threads about other remakes and ports.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Apple II port to BBC Master computer

Post by Norbert »

kieranhj wrote: March 7th, 2018, 3:29 pmLet me know how your gameplay test goes - I really appreciate you taking the time to play through it.
Overall, you've made great progress, and the port is a good experience.

I have more to say than just the following, but in level 12(a), after merging with the shadow, after I'd touched the first tile that appears 'out of thin air', the game's screen went black and after a couple of seconds I was back at the game's intro.

Hm, and, for some reason, trying to restart the entire game - level 1 - from this state, I only briefly see the prince fall and then I'm back at the game's intro. Also, when I watch the intro now, I only briefly see the princess in her room and then I'm back at the game's intro.

I'll post more findings soon, but I'll first restart the emulator, cheat my way back to level 12(a). Let's see if I can get to merge and finish the rest of the game first.
kieranhj
Sheikh
Sheikh
Posts: 30
Joined: October 13th, 2017, 3:02 pm

Re: Apple II port to BBC Master computer

Post by kieranhj »

Norbert wrote: March 7th, 2018, 4:01 pm Overall, you've made great progress, and the port is a good experience.

I have more to say than just the following, but in level 12(a), after merging with the shadow, after I'd touched the first tile that appears 'out of thin air', the game's screen went black and after a couple of seconds I was back at the game's intro.

Hm, and, for some reason, trying to restart the entire game - level 1 - from this state, I only briefly see the prince fall and then I'm back at the game's intro. Also, when I watch the intro now, I only briefly see the princess in her room and then I'm back at the game's intro.

I'll post more findings soon, but I'll first restart the emulator, cheat my way back to level 12(a). Let's see if I can get to merge and finish the rest of the game first.
Hi Norbert - you have indeed found a crash! I have an error handler that attempts to reboot to the attract sequence in such an event but it looks like it puts the game into a broken state so I might just let the machine freeze with an error report. Thanks for playing through so quickly. Looking forward to hearing your feedback.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Apple II port to BBC Master computer

Post by Norbert »

kieranhj wrote: March 7th, 2018, 4:37 pmLooking forward to hearing your feedback.
Here are the rest of my findings.

Again, overall this is a very solid port. Really good. Being able to rebind keys now is a lifesaver.

When comparing the default player controls mentioned on GitHub...
For me, Space does not show the remaining time, t does.
There are no keys that do left/right jumping. (I can combine ' with z and x.)
Maybe where it says "Move up one" write "Move up a row" or even "Move the prince up a row" instead.

There is a high pitched ding sound effect, similar to - I guess - gates fully opening or closing, or the spike sound, that plays occasionally. Seemingly out of nowhere, for no apparent reason. Even after playing all levels, it's still unclear to me what audio clue/indicator this is supposed to be. All I know is, from what I can tell, this is specific to your port. If you do not understand what I'm referring to, I could make a recording.

Sometimes the last note that plays when spikes show up keeps playing indefinitely until another sound effect plays.

In the princess room, the big pillar on the right occasionally has a big white rectangle on top of it.

Horizontally, not all the gate bar distances are equal.

Just something I noticed, the flash/star that shows up when the prince is hit seems to be mostly green, which made me think maybe he has green alien blood in this version. I also noticed the battle win, level door opening, and level door entering sound effects are all the same.

After defeating Jaffar, the level exit door opens instantly. For DOS, but probably also Apple II, this special event happens instead when entering any room from the right after Jaffar's death, because this then activates a raise button somewhere in the level.

In the game end sequence the mouse appears to be inside the prince and princess' legs. I didn't recheck, but it seems off. It's certainly different from the DOS version.

After dying or restarting the level (Ctrl+a), it currently shows the level number but not the remaining time. For DOS, but possibly also Apple II, it also shows the remaining time, as it does when first starting a level.

The princess is sometimes a blonde and sometimes a brunette. She's a blonde during the intro and first cutscene and a brunette at other times. Maybe her clothes also change, I didn't check.

The port clearly has some kind of problem with allowing this when starting from the very wall edge. Probably in both directions. This is the only thing that resulted in my death several times during my playthrough just now. It's a move I expect to be possible, and it's not - or, at least, not really in this port.

Another thing I noticed, but which might be difficult to fix, is that the game occasionally doesn't properly help the player to automatically have the prince successfully make a running jump from the edge of the last tile in front of an empty space, in particular when the prince recently switched rooms. This is not just a fluctuating game-speed issue. There's more going on here. A wild guess is that maybe it only happens if that last tile is a loose floor. I didn't recheck.

There's some occasional flickering of the area where small pillars touch floors. At least in the palace environment.
kieranhj
Sheikh
Sheikh
Posts: 30
Joined: October 13th, 2017, 3:02 pm

Re: Apple II port to BBC Master computer

Post by kieranhj »

Norbert wrote: March 7th, 2018, 5:23 pm Here are the rest of my findings.

Again, overall this is a very solid port. Really good. Being able to rebind keys now is a lifesaver.
Hi Norbert, thanks for taking the time to play the game, I'm glad you think it is good and a solid port. Your comprehensive reports below will help me make it great, I appreciate the detail.
Norbert wrote: March 7th, 2018, 5:23 pm When comparing the default player controls mentioned on GitHub...
For me, Space does not show the remaining time, t does.
There are no keys that do left/right jumping. (I can combine ' with z and x.)
Maybe where it says "Move up one" write "Move up a row" or even "Move the prince up a row" instead.
Yes, good spot, I have been lax at keeping the readme up-to-date. I have an issue open to make sure that I provide comprehensive notes for regular users when the port is finally released, on the disc image itself, the GitHub page and our hosting website https://bitshifters.github.io/
Norbert wrote: March 7th, 2018, 5:23 pm There is a high pitched ding sound effect, similar to - I guess - gates fully opening or closing, or the spike sound, that plays occasionally. Seemingly out of nowhere, for no apparent reason. Even after playing all levels, it's still unclear to me what audio clue/indicator this is supposed to be. All I know is, from what I can tell, this is specific to your port. If you do not understand what I'm referring to, I could make a recording.

Sometimes the last note that plays when spikes show up keeps playing indefinitely until another sound effect plays.
There are definitely issues with the sound effect system, I think we need another pass to tighten up how it handles state - I think sometimes it is using stale data but also being able to track where effects are triggered from would help solve the mystery "gate down" effect that's playing: https://github.com/kieranhj/pop-beeb/issues/94
Norbert wrote: March 7th, 2018, 5:23 pm In the princess room, the big pillar on the right occasionally has a big white rectangle on top of it.

The princess is sometimes a blonde and sometimes a brunette. She's a blonde during the intro and first cutscene and a brunette at other times. Maybe her clothes also change, I didn't check.
Yes, I am still waiting for the final drop of the redrawn sprites from my artist collaborator, so the cutscenes beyond level 2 are not yet finished (ditto the audio for those cutscenes.) https://github.com/kieranhj/pop-beeb/issues/28
Norbert wrote: March 7th, 2018, 5:23 pm Horizontally, not all the gate bar distances are equal.
I'm sorry, I don't know what you mean here? Please could you post a screenshot to illustrate?
Norbert wrote: March 7th, 2018, 5:23 pm Just something I noticed, the flash/star that shows up when the prince is hit seems to be mostly green, which made me think maybe he has green alien blood in this version. I also noticed the battle win, level door opening, and level door entering sound effects are all the same.
Yes, I have some outstanding work to do with the hit FX palette to make the star the same colour as the character being hit (on Apple II the Player has an orange flash and the Enemy has a Blue one - must check the PC version.) https://github.com/kieranhj/pop-beeb/issues/72. We are missing a host of tunes for the music as the SMS version has different set of tunes than the Apple / PC version. It's coming in hot but hoping our musician will have time.
Norbert wrote: March 7th, 2018, 5:23 pm After defeating Jaffar, the level exit door opens instantly. For DOS, but probably also Apple II, this special event happens instead when entering any room from the right after Jaffar's death, because this then activates a raise button somewhere in the level.
You are right, I didn't spot this! Added as issue in GitHub: https://github.com/kieranhj/pop-beeb/issues/130. Looking at the code, the button is activated as a way to open the exit door on your behalf - looks like it's hidden on a screen the player can't reach? The code also suggests a tune should be played after defeating Jaffar but this doesn't seem to happen on the Apple II playthrough I've been using on YouTube: https://youtu.be/JZDAPp61aak?t=58m17s
Norbert wrote: March 7th, 2018, 5:23 pm In the game end sequence the mouse appears to be inside the prince and princess' legs. I didn't recheck, but it seems off. It's certainly different from the DOS version.
This does appear to be correct for the Apple II version: https://youtu.be/JZDAPp61aak?t=58m56s. I guess they changed it for the DOS release?
Norbert wrote: March 7th, 2018, 5:23 pm After dying or restarting the level (Ctrl+a), it currently shows the level number but not the remaining time. For DOS, but possibly also Apple II, it also shows the remaining time, as it does when first starting a level.
I just checked the game on AppleWin and the original version does not show time remaining after CTRL-A. It would be trivial to add though, added a tracking issue: https://github.com/kieranhj/pop-beeb/issues/131
Norbert wrote: March 7th, 2018, 5:23 pm There's some occasional flickering of the area where small pillars touch floors. At least in the palace environment.
Yes, I noticed this too: https://github.com/kieranhj/pop-beeb/issues/124. I think it is something to do with assumptions made about the properties of the Apple II screen during rendering (using OR operation to blend sprites together.) I will investigate and fix!
Norbert wrote: March 7th, 2018, 5:23 pm The port clearly has some kind of problem with allowing this when starting from the very wall edge. Probably in both directions. This is the only thing that resulted in my death several times during my playthrough just now. It's a move I expect to be possible, and it's not - or, at least, not really in this port.

Another thing I noticed, but which might be difficult to fix, is that the game occasionally doesn't properly help the player to automatically have the prince successfully make a running jump from the edge of the last tile in front of an empty space, in particular when the prince recently switched rooms. This is not just a fluctuating game-speed issue. There's more going on here. A wild guess is that maybe it only happens if that last tile is a loose floor. I didn't recheck.
Hmmm, this one is really tricky for me to figure out. I deliberately haven't touched any of the gameplay code, collision detection, player control code etc. so that it remains as faithful to the original as possible. The only thing that was necessary was to hook up the keyboard handler to the BBC keyboard, of course. It should be passing those keyboard commands directly to the game on the same frame, with no lag, so I'm at a loss as how to improve this problem. I have noticed myself whilst play testing that sometimes I miss running jumps that should have been possible. I don't know if this was also the case in the Apple II original and whether there were any improvements / tweaks made during the PC port (which Jordan seems to consider to be the defacto version of the first game, as far as I can tell.) I don't know if anyone else with more experience of the game than me could provide any additional info on differences with the PC version?

Thanks again for your help, I feel like we`re getting closer but still plenty of work to do, especially with the audio.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Apple II port to BBC Master computer

Post by Norbert »

kieranhj wrote: March 8th, 2018, 2:10 pm
Norbert wrote: March 7th, 2018, 5:23 pm Horizontally, not all the gate bar distances are equal.
I'm sorry, I don't know what you mean here? Please could you post a screenshot to illustrate?
gate bar distances
gate bar distances
kieranhj wrote: March 8th, 2018, 2:10 pm[...] looks like it's hidden on a screen the player can't reach?
That is correct. Using leapop, you can go to level 13, press r, navigate to room 24, then press ESC and you'll see the room in question, including the raise button.
Norbert wrote: March 7th, 2018, 5:23 pmHmmm, this one is really tricky for me to figure out.
I'll try to create a video where I perform the same actions with both the Apple II game and your port, to better illustrate where exactly the problem(s) is/are. The running jump back and forth from a wall edge, and the running jump from a loose tile.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Apple II port to BBC Master computer

Post by Norbert »

Norbert wrote: March 8th, 2018, 9:42 pmThe running jump back and forth from a wall edge, and the running jump from a loose tile.
Starting with the latter.
Note the differences related to Apple II's auto-alignment correction to run-jump from the very edge of loose floors.

[Edit: Actually, auto-alignment correction of run-jumps from edges seems to be missing completely in your port, so not just with loose tiles. To state the issue simpler: the original game 'helps' the player when they are making a running-jump with lift-off close to the edge. Your port does not.]

Last edited by David on December 8th, 2018, 6:13 pm, edited 1 time in total.
Reason: fixed video
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Apple II port to BBC Master computer

Post by Norbert »

Norbert wrote: March 8th, 2018, 9:42 pmThe running jump back and forth from a wall edge, and the running jump from a loose tile.
The former.

[Edit: Video may be temporarily unavailable. If it is, please check back later.]

Last edited by David on December 8th, 2018, 6:14 pm, edited 1 time in total.
Reason: fixed video
kieranhj
Sheikh
Sheikh
Posts: 30
Joined: October 13th, 2017, 3:02 pm

Re: Apple II port to BBC Master computer

Post by kieranhj »

Norbert wrote: March 10th, 2018, 12:37 pm Starting with the latter.
Note the differences related to Apple II's auto-alignment correction to run-jump from the very edge of loose floors.

[Edit: Actually, auto-alignment correction of run-jumps from edges seems to be missing completely in your port, so not just with loose tiles. To state the issue simpler: the original game 'helps' the player when they are making a running-jump with lift-off close to the edge. Your port does not.]
Thank you so much for taking the time to record these videos - this is super helpful. I have no idea why this would not be the case in my port but I will endeavour to find out! I can only think that there is some code I haven’t ported, or some code that isn’t being triggered for some reason or perhaps something wrong with the keyboard handling (the game is driven entirely by joystick control with the keyboard being translated to joystick inputs.)

I will track down the code that is designed to assist the player and work backwards from there.. I will let you know when I have a fix ready for testing. I want this version to be the best it can be!
kieranhj
Sheikh
Sheikh
Posts: 30
Joined: October 13th, 2017, 3:02 pm

Re: Apple II port to BBC Master computer

Post by kieranhj »

Norbert wrote: March 10th, 2018, 12:37 pm Starting with the latter.
Note the differences related to Apple II's auto-alignment correction to run-jump from the very edge of loose floors.

[Edit: Actually, auto-alignment correction of run-jumps from edges seems to be missing completely in your port, so not just with loose tiles. To state the issue simpler: the original game 'helps' the player when they are making a running-jump with lift-off close to the edge. Your port does not.]
Hi Norbert,

I think I have fixed this issue - if you have chance please try the latest disc image in master or use the pop-beeb-latest-playtest.dsd link I've provided previously. It turned out to be quite a subtle problem - the DoRunJump function that performs the auto-alignment correction was using some static data from a different code module in order to look ahead of the player and decide whether there was an edge (empty space.) Because of the different memory layout on the BBC, these modues were in separete RAM banks and therefore the data was not accessible. I have moved the data to a shared location in memory and hopefully have fixed this issue. It certainly seems a lot better in my limited play testing.

This bug had manifested itelf in the player sometimes doing a weird "shuffle" when doing a running jump on a flat floor without any edges - the alignment function was incorrectly identifying the presence of an edge and correcting the player's position unnecessarily. I had seen this but wasn't sure if it was a bug or some other artifact of the game.

Thanks again for identifying this problem and providing the videos to help me locate it - it is doubtful that I would have noticed and been able to resolve this on my own. Let me know how you get on and hopefully I can close the issue on GitHub: https://github.com/kieranhj/pop-beeb/issues/133
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Apple II port to BBC Master computer

Post by Norbert »

Thanks, I'll look into it (playtest) soon.
[Edit: Yes, it seems to have been fixed.]
kieranhj wrote: March 7th, 2018, 4:37 pm[...] so I might just let the machine freeze with an error report.
Attached is a dump of the state related to the crash, in case you could/can not replicate the issue.

By the way, when rebinding keys, some letters of the input questions at the bottom now seem partially missing?
Also, is it just me or does the 60 minutes remaining text now disappear faster than it did previously?
Finally, is it just me or was the princess room audio different previously?
Attachments
state.zip
(55 KiB) Downloaded 84 times
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Apple II port to BBC Master computer

Post by Norbert »

By the way, attached is a video recording that illustrates the audio issue where notes keep playing indefinitely until another sound effect plays.
(I'm a better player than you see in the video. I was trying to do things to make the audio react in a specific way.)
Attachments
audio.zip
(2.19 MiB) Downloaded 90 times
kieranhj
Sheikh
Sheikh
Posts: 30
Joined: October 13th, 2017, 3:02 pm

Re: Apple II port to BBC Master computer

Post by kieranhj »

Norbert wrote: March 11th, 2018, 12:28 am Thanks, I'll look into it (playtest) soon.
[Edit: Yes, it seems to have been fixed.]

Attached is a dump of the state related to the crash, in case you could/can not replicate the issue.

By the way, when rebinding keys, some letters of the input questions at the bottom now seem partially missing?
Also, is it just me or does the 60 minutes remaining text now disappear faster than it did previously?
Finally, is it just me or was the princess room audio different previously?
Hi Norbert, thanks for confirming that the missing auto-assist for jumping is now present and correct. It makes a huge difference - I finally managed to complete level 12 without cheating to repro the crash when the floor tiles appear. This was a strange one which I've fixed but slightly vexed as to why it doesn't cause issues on Apple II (maybe it does?)

Good spot with the missing letters on key redefinition - I has missed that when changing something else. At this point I should really be doing more thorough golden pass testing before committing new builds for playtest.

The in-game cutscenes now have music although it is still incorrect (was totally missing before.) I have sorted the time remaining text so the timer is properly real time and the last minute of countdown works correctly, but shouldn't have messed with the time it stays on screen. I could/should change this though as it's measured in game frames and the BBC runs consistently faster than Apple II.
kieranhj
Sheikh
Sheikh
Posts: 30
Joined: October 13th, 2017, 3:02 pm

Re: Apple II port to BBC Master computer

Post by kieranhj »

Norbert wrote: March 11th, 2018, 1:19 am By the way, attached is a video recording that illustrates the audio issue where notes keep playing indefinitely until another sound effect plays.
(I'm a better player than you see in the video. I was trying to do things to make the audio react in a specific way.)
Thanks for the video, with the last (known) crash out of the way and just a few sprites left to update, the audio is the last thing that need a big push to get those remining bugs fixed and the missing music all in the right place. I am going to concentrate on that this week so hopefully will make some progress.

I have submitted an issue in GitHub for tracking: https://github.com/kieranhj/pop-beeb/issues/138
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Apple II port to BBC Master computer

Post by Norbert »

Norbert wrote: March 10th, 2018, 1:43 pm[Edit: Video may be temporarily unavailable. If it is, please check back later.]
Looks like that second video I posted is back up. (YouTube temp-blocked it because their AI thought it was 'repetitive' posting.) It illustrates minor issues that you should probably feel free to ignore because it might be difficult to fix (some kind of keyboard handler lag, perhaps?) and rarely occurs. Plus, as you more or less wrote - the "golden pass testing" bit, there's the risk of introducing new, possibly bigger, bugs while fixing others.
kieranhj
Sheikh
Sheikh
Posts: 30
Joined: October 13th, 2017, 3:02 pm

Re: Apple II port to BBC Master computer

Post by kieranhj »

kieranhj wrote: March 7th, 2018, 12:58 am
David wrote: February 24th, 2018, 12:06 pm I don't really understand how it is related to frame rates, since the replayed moves should use the same framerate as the display.
Anyway, I see you fixed it already: https://github.com/kieranhj/pop-beeb/co ... 9ddcf9f355
Yes, you would think so. I have experience (long ago!) of doing replay systems for commercial video games based on recording user inputs and they are notoriously easy to break. In the end I tweaked a couple of frame timings and it seemed to work, I don't have the time or energy to figure out exactly why this is.
Just to solve this mystery - it turned out to be the fact that auto-assist whilst doing a running jump was missing, as Norbert identified later on. It just reminds me that the evidence for any bug is usually hiding in plain sight... I have put the demo program parameters back how they were originally and all is good.
Post Reply