Jump to content
IGNORED

Sokoban


Andrew Davie

Recommended Posts

3 hours ago, alex_79 said:

 

In case it looks still too bright on a real CRT (I can only test in Stella+LCD, and it looks fine there), did you consider changing the "character" for the background to some different pattern? In that way, you could reduce the perceived brightness without having to actually change the colors.

 

 

That might work, but I think I can get things sorted with intensities. One problem I'm having is that the emulators are all different in their idea of what colours really look like on a CRT. They're pretty much all different, so I'm really just eyeballing things at the moment, as I don't have a real machine to test on.

Link to comment
Share on other sites

@Andrew Davie While not that big a deal, I am still seeing a bit of screen roll when the Sokoboo splash screen appears and also, in between the levels.  The in between levels is harder to notice, now that the fading has been incorporated.  It is minor, but I thought I should mention it, since its occurring on actual hardware.  I tried to capture in the attached video.

 

Link to comment
Share on other sites

11 hours ago, sramirez2008 said:

While not that big a deal, I am still seeing a bit of screen roll when the Sokoboo splash screen appears and also, in between the levels.

I use a Harmony cart, a 2800 (I'm in Japan), and an NTSC CRT. The 2800 always sets the difficulty switches to B at power on, so I see title screen roll whenever I forget to flip the right difficulty when booting the game. This is a only minor annoyance now, but this may be more serious an issue (to me, at least) if this was an actual cart. I guess you'd have to boot 2800s (and Sears Tele-Games Video Arcade IIs)  holding down the right A difficulty when booting the system. However, the only other switch-selectable PAL/NTSC rom I know of, Strat-O-Gems Deluxe, is unplayable on this system. It simply will not boot in NTSC mode. 

 

Perhaps it might be better to use a switch that is a "hard switch" on all systems to select PAL/NTSC? That is, the color/BW switch or channel select? Since early 2600s lack the channel switch, maybe color/BW is ideal?

 

As for screen roll between the levels, I see this too. It was absent in older versions of the ROM (>1 week, but I don't remember exactly). Because the screen is black, I only see a faint line running down the screen once. In fact this is so subtle I didn't realize it was screen roll until reading sramirez2008's comment.

Edited by spspspsp
Link to comment
Share on other sites

13 hours ago, sramirez2008 said:

@Andrew Davie While not that big a deal, I am still seeing a bit of screen roll when the Sokoboo splash screen appears and also, in between the levels.  The in between levels is harder to notice, now that the fading has been incorporated.  It is minor, but I thought I should mention it, since its occurring on actual hardware.  I tried to capture in the attached video.

 

Minor Screen Roll.MOV

 

Thanks for the report. Screen roll is my eternal enemy. I'm really not sure what I'm doing wrong, to be honest. I use the macros for ensuring a stable start of frame, but clearly that's not enough. I don't believe I've changed anything recently, other than the fade. I wonder if the all-black screen is an issue, though I really really doubt it. I'll have to get that fixed "sometime soon".
 

Link to comment
Share on other sites

1 hour ago, spspspsp said:

I use a Harmony cart, a 2800 (I'm in Japan), and an NTSC CRT. The 2800 always sets the difficulty switches to B at power on, so I see title screen roll whenever I forget to flip the right difficulty when booting the game. This is a only minor annoyance now, but this may be more serious an issue (to me, at least) if this was an actual cart. I guess you'd have to boot 2800s (and Sears Tele-Games Video Arcade IIs)  holding down the right A difficulty when booting the system. However, the only other switch-selectable PAL/NTSC rom I know of, Strat-O-Gems Deluxe, is unplayable on this system. It simply will not boot in NTSC mode. 

 

Perhaps it might be better to use a switch that is a "hard switch" on all systems to select PAL/NTSC? That is, the color/BW switch or channel select? Since early 2600s lack the channel switch, maybe color/BW is ideal?

 

 

The Boulder Dash demo is also switchable, IIRC.

 

The "correct switch" to use for NTSC/PAL toggling is a tricky one. Someone's always not going to RTFM and be unhappy that things don't work as they expect. I could easily change the default to B (NTSC) which would fix your particular problem.

 

Link to comment
Share on other sites

Here is a PAL/NTSC version with a few minor corrections.

I've fixed up the colours for PAL (as described earlier for NTSC), so that should be OK now.

I've adjusted the sensitivity of the joystick - I was finding myself having a hard time with single-square moves - you had to tap and release the joystick very quickly. It's a hard balance, given the asynchronous system, to get the joystick just right. I think this is an improvement.

I've reinstalled the 30 or so levels that have been missing for the past few versions. Nobody noticed. I was out of space in a bank, but now I've shifted things around so that's sorted. I could add many more levels now, if desired.

Can't think of what-else. Let's put it under "pottering around".  This will still have (minor) rolling issues - those are already reported.

 

 

 

 

sokoboo_20190913.bin

  • Like 2
  • Thanks 3
Link to comment
Share on other sites

7 hours ago, spspspsp said:

... However, the only other switch-selectable PAL/NTSC rom I know of, Strat-O-Gems Deluxe, is unplayable on this system. It simply will not boot in NTSC mode. 

 

Hold SELECT while powering on the Atari. If you're loading the rom from the Harmony, select the game with the joystick button, then press and hold SELECT while the spinning "ying-yang" symbol is displayed.
The TV format menu will then be displayed. If you have a savekey or Atarivox plugged in, the game will remember the setting.

 

 

2801997_orig.jpg.5d3e04d1cec5077a042108ddeed5217c.jpg

 

 

 

 

 

5 hours ago, Andrew Davie said:

 

Thanks for the report. Screen roll is my eternal enemy. I'm really not sure what I'm doing wrong, to be honest. I use the macros for ensuring a stable start of frame, but clearly that's not enough. I don't believe I've changed anything recently, other than the fade. I wonder if the all-black screen is an issue, though I really really doubt it. I'll have to get that fixed "sometime soon".
 

The screen roll at the start of the game is normal and happens more or less with every rom. It is more or less visible depending on the duration of each game initialization, before it starts sending a correctly timed TV signal.

 

While transitioning from the level display/selection screen to the new level, there's not vertical sync, so the display is actually rolling, altought, with VBLANK on, everything is black and so this is not visible. When the level is finally displayed and you resume sending VSYNC pulses, the TV takes a little while to lock again to the signal, and that's what is seen on sramirez2008 video.

This applies to CRTs. When the sync is out of specs for too long, Digital TVs will usually blank the screen, mute the audio and display a "no sync" message and might take up to a few seconds to start displaying the image again after the signal is back to normal. I remember this caused issues with "Berzerk Voice Enanched" hack, because it wasn't sending VSYNC while playing the voice samples and had issues on LCDs muting the audio.

 

Several games (original releases and homebrews) loose SYNC like this when transitioning from one screen to another and it's not a big issue in my opinion if you're playing on a CRT. To minimize the effect, you could just display a few more blank frames (with correct VSYNC) so that the TV locks to the signal before the actual image appears.

Anyway, to really fix the problem for people playing on real hardware connected to LCDs, the only solution is to ensure to keep the VSYNC timing throughout the entire game, even when the screen is blanked.

 

 

5 hours ago, Andrew Davie said:

I've adjusted the sensitivity of the joystick - I was finding myself having a hard time with single-square moves - you had to tap and release the joystick very quickly. It's a hard balance, given the asynchronous system, to get the joystick just right. I think this is an improvement.

I was having this issue too. I will test this new build and report back.

5 hours ago, Andrew Davie said:

I've reinstalled the 30 or so levels that have been missing for the past few versions. Nobody noticed.

I'm playing them in order and I'm still stuck at level 32...

 

 

  • Like 1
Link to comment
Share on other sites

I've added some more levels. Lots more. About 100, actually.

To fit them in, I've increased the ROM to a 64K ROM. I figured there was little difference, really - all the extra space is just the cost of having oodles of levels. I hope/think I might eventually get up to around 1000 levels - that would be something. Right now it's at 250 exactly. The video shows a quick preview of all of the new levels. It's also useful for seeing how pretty much all of the random colours are working well.
Credit where credit is due, ten of these new levels are by Marcus Hof - see http://www.sourcecode.se/sokoban/levels "Revenge Collection 7 - Marcus Hof". The rest are "Zone 26" by Dries de Clercq from the same site. You can see the first 10 are getting rather large and convoluted - but actually I prefer to smaller boards as in "Zone 26" and I will preferentially install that sort of level from now on. I got a bit sick of cut/pasting each level into the "SokoConvertor" compressor at the site http://www.erimsever.com/sokoban1.htm and then into my source code, which took about 2 minutes/level, so I wrote my own compressor that takes any text file downloaded from the above site and spits out the source code of the compressed level. Now it takes me those few minutes to get 100 or so levels installed. I've got a real production line going.

With so many levels, though, I think that's a death-knell for SaveKey support. There's no way that I'm going to get allocated 1000 levels x (about) 2 bytes/level - say 2K for storage. I could go rogue-pirate and just use 2K without permission :P but somehow I think that's not going to go down well. So, looks like SaveKey is out - at least for storing the best scores for all levels.

 

 

sokoboo_20190914.bin

  • Like 4
Link to comment
Share on other sites

5 hours ago, alex_79 said:

While transitioning from the level display/selection screen to the new level, there's not vertical sync, so the display is actually rolling, altought, with VBLANK on, everything is black and so this is not visible. When the level is finally displayed and you resume sending VSYNC pulses, the TV takes a little while to lock again to the signal, and that's what is seen on sramirez2008 video.

 

This applies to CRTs. When the sync is out of specs for too long, Digital TVs will usually blank the screen, mute the audio and display a "no sync" message and might take up to a few seconds to start displaying the image again after the signal is back to normal. I remember this caused issues with "Berzerk Voice Enanched" hack, because it wasn't sending VSYNC while playing the voice samples and had issues on LCDs muting the audio.

 

Several games (original releases and homebrews) loose SYNC like this when transitioning from one screen to another and it's not a big issue in my opinion if you're playing on a CRT. To minimize the effect, you could just display a few more blank frames (with correct VSYNC) so that the TV locks to the signal before the actual image appears.

 

Anyway, to really fix the problem for people playing on real hardware connected to LCDs, the only solution is to ensure to keep the VSYNC timing throughout the entire game, even when the screen is blanked.

 

 

Very clear; thanks for that. My unpack-level code takes way longer than a frame, and does not manage VSYNC during that process. I do believe I'm displaying sufficient blank frames before firing up an image... so it's probably OK and we have to live with the current 'faults'.

 

Link to comment
Share on other sites

One question, though, Dr. Boo.  With all of these additional levels that you are adding (possibly up to 1000!), the notion of anyone completing the game and getting an ending/reward screen is certainly out of the question?  Unless you incorporate the concept of difficulty levels (Easy, Normal, Hard, Expert) where each level determines how many stages a player has to complete to see an ending?  And maybe you can make different reward screens for each?  Just a thought.  :ponder:

Link to comment
Share on other sites

Another day another version!  This one has 464 levels installed. That's so many that I've run out of room for the "big digits" on the level selection screen, and I've (temporarily) had to re-use a "4" but only backwards... for the hundreds digit. So, that may be the limiting factor on how many levels I have :P . I'll see what I can do.  Truth be told, I haven't viewed all of them. I trust in the tools that do the conversions, so if you look through them you're likely to discover levels never before seen!  Well, on the '2600 anyway.  The video shows a few of the last ones - some pretty/interesting ones there!

Along the way I discovered (and reported) a segmentation fault in dasm - it doesn't like the super-long lines required for these level definitions. There's a workaround, but it will be nice to have the assembler fixed.

 


 

sokoboo_20190914_464LEVELS.bin

  • Like 1
Link to comment
Share on other sites

6 hours ago, NostAlgae37 said:

One question, though, Dr. Boo.  With all of these additional levels that you are adding (possibly up to 1000!), the notion of anyone completing the game and getting an ending/reward screen is certainly out of the question?  Unless you incorporate the concept of difficulty levels (Easy, Normal, Hard, Expert) where each level determines how many stages a player has to complete to see an ending?  And maybe you can make different reward screens for each?  Just a thought.  :ponder:

I have no plans for an ending/reward screen.  On the other hand, I could just claim there's an amazing one in there, when you complete ALL levels, and then just sneak in an impossible level :P    This isn't an action video-game, and the reward is in actually completing a level. There's almost zero chance, I think, of anyone ever doing them all.

 

 

Link to comment
Share on other sites

I had an oddball idea. Instead of using SaveKey to save your scores on each of the (1000?) levels, how about I generate a coded keyword. Say, 6 letters of the alphabet which contains the level number, number of moves, and who knows perhaps time taken. Then the player can take that coded keyword (example "SYXXHY") to a website I'll create (say at atari2600.org/sokoboo) where they enter the keyword. The website then returns with a high score table FOR THAT LEVEL. And if the score/time is deserving on being in the top 3 (say) scores, the player can enter their initials.

 

That way, everyone who plays the game can see the scores for everyone else who plays the game. The website could also allow you to select a level to see the current high score table for that level.

A weird kind of hybrid between old and new. A 2600 cartridge with an internet high score table.

Whaddyareckon?

  • Like 4
Link to comment
Share on other sites

10 hours ago, NostAlgae37 said:

It's crazy how many different ideas you can continue to come up with so quickly and easily, clearly you are either a genius or a maniac or both.  

 

Hardly. Obsessive and persistent would be a closer description.

As it happens this is the second description of myself that I read online today. The other was...

Quote

 I just think of Andrew as the grumpy wise wizard of the Atari 2600, he complains and grumbles but he also shares his knowledge and has been very helpful to me and many other programmers over the years. 

 

That gave me a bit of a laugh...!

 

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