Jump to content
IGNORED

Solaris Emulation Stella - Life Counter Not Display more than 2


PengPeng0118

Recommended Posts

I noticed that Solaris when emulated does not show more than 2 lives "flags" after earning more throughout the game. I checked emulated gameplay on various Youtube videos and this was the case as well for those players, so its not just me. I have no means of fixing this myself, just curious who I would inform. Developers of Stella? Thanks in advance!

solaris.PNG

  • Like 3
Link to comment
Share on other sites

8 hours ago, PengPeng0118 said:

I noticed that Solaris when emulated does not show more than 2 lives "flags" after earning more throughout the game. I checked emulated gameplay on various Youtube videos and this was the case as well for those players, so its not just me. I have no means of fixing this myself, just curious who I would inform. Developers of Stella? Thanks in advance!

I'm not familiar with Solaris gameplay but what's the maximum number of flags/lives you can acquire? I'm guessing 4 flags. Is that right?

Link to comment
Share on other sites

2 hours ago, Thomas Jentzsch said:

The RAM variable goes up to 5. At the start it is at 3, which means one current live and two reserve lives, right? So 5 means four reserve lives.

Yes. Found it. There's a comparison and branch on 5 before increasing the RAM location.

Link to comment
Share on other sites

5 hours ago, Thomas Jentzsch said:

The RAM variable goes up to 5. At the start it is at 3, which means one current live and two reserve lives, right? So 5 means four reserve lives.

Correct, initial gameplay startup 2 flags are displayed which really means 3 lives, I apologize for misspeaking in my original message. On the players final life no flags are present. I also saw this on Atari Compendium website, I will verify tonight also that you can't earn beyond 5 playable lives (4 flag icons). The game emulated registers the extra lives earned just doesn't display the flag. When playing the game I have to keep track in my head when I earn any extras! It would be really cool to have this fixed.

image.thumb.png.b68acddcf2bd3334d736dd65a4f9dd87.png

Link to comment
Share on other sites

16 hours ago, PengPeng0118 said:

I noticed that Solaris when emulated does not show more than 2 lives "flags" after earning more throughout the game. I checked emulated gameplay on various Youtube videos and this was the case as well for those players, so its not just me. I have no means of fixing this myself, just curious who I would inform. Developers of Stella? Thanks in advance!

solaris.PNG

Fixed in git, thanks for discovering and reporting this issue 😏

 

The technical details (if anybody cares):

The code positions P1 and P0 next to each other for the 48 pixel trick on the right side (to display the fuel gauge) and briefly switches to two copies, wide spacing to get an additional decode for both players on the left side (and display 16 pixels worth of lives). The players always show all four flags, and the playfield is used to cover the lives that have been lost, starting from the left. P0 comes first, and it so happens that NUSIZ is written in the same cycle in which the draw is decoded. As we always process the tick before the writes we miss this decode, and P0 is never displayed.

 

Other explanations are possible, but we have very hard constraints from https://github.com/stella-emu/stella/issues/63 and other testcases that work correctly, and the solution that I settled arguably has the smallest possible fallout on all the other tests and testcases that probe those edge cases.

Edited by DirtyHairy
  • Like 3
Link to comment
Share on other sites

40 minutes ago, DirtyHairy said:

At least that's the maximum that can be displayed.

Thanks. I wasn't going to dig into it too deeply because it just so happened that the four flags were already showing correctly in Gopher2600. But I was curious because when the lives counter is set to 6, the flag pattern is this:

 

image.png.4363f154b19923de1b130dc46de4699d.png

 

And for a value of 7:

 

image.png.981daa2ac55ece0bc536b53cae5b79d2.png

 

etc. But if a value of 5 is the maximum it will be, I'm not going to worry myself about it. But it would be good to get a modified binary onto real hardware to double-check. I might do that this weekend.

 

Link to comment
Share on other sites

9 minutes ago, JetSetIlly said:

Thanks. I wasn't going to dig into it too deeply because it just so happened that the four flags were already showing correctly in Gopher2600. But I was curious because when the lives counter is set to 6, the flag pattern is this:

 

image.png.4363f154b19923de1b130dc46de4699d.png

 

And for a value of 7:

 

image.png.981daa2ac55ece0bc536b53cae5b79d2.png

 

etc. But if a value of 5 is the maximum it will be, I'm not going to worry myself about it. But it would be good to get a modified binary onto real hardware to double-check. I might do that this weekend.

 

Yeah, looks the same on Stella. If you look at the code, you find

image.thumb.png.4d2cd903459a8abc094d86e1de826a75.png

It uses the value at D9 to index into a table and loads the playfield from there. The players are positioned such that the flags align exactly with the playfield pixels, so any value in d9 will load something that covers a subset of those four flags.

Link to comment
Share on other sites

6 hours ago, DirtyHairy said:

Fixed in git, thanks for discovering and reporting this issue 😏

 

The technical details (if anybody cares):

The code positions P1 and P0 next to each other for the 48 pixel trick on the right side (to display the fuel gauge) and briefly switches to two copies, wide spacing to get an additional decode for both players on the left side (and display 16 pixels worth of lives). The players always show all four flags, and the playfield is used to cover the lives that have been lost, starting from the left. P0 comes first, and it so happens that NUSIZ is written in the same cycle in which the draw is decoded. As we always process the tick before the writes we miss this decode, and P0 is never displayed.

 

Other explanations are possible, but we have very hard constraints from https://github.com/stella-emu/stella/issues/63 and other testcases that work correctly, and the solution that I settled arguably has the smallest possible fallout on all the other tests and testcases that probe those edge cases.

Of course not a problem! I went onto github and saw what you updated. I'll be straight with you I am just a gamer and not a programmer in the slightest. That being said I have no idea how to update the version of Stella I have with what you modified in the Player.cxx file. I did download a zip file from the green get code button and now have a stella master zip folder but I didn't see a .exe file or anything in there to automatically install anything. On my computer, I go to my hard drives program files -> stella folder and don't see a .cxx file anywhere I would overwrite your modified Player.cxx file. Any help you can provide is appreciated but if its too much work to explain its all good and I'll wait for the next release. Cheers!

Link to comment
Share on other sites

Source code needs to be compiled into an executable before you can run it. I am afraid that, unless you know how to build from source, you'll have to wait for a new release. What OS are you using? Sorry, didn't read closely enough, you said .exe, so evidently Windows 😏

Edited by DirtyHairy
  • Thanks 1
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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