Jump to content
IGNORED

Sokoban


Andrew Davie

Recommended Posts

Well, things are starting to come together. It's a pretty unique thing.

 

Firstly, as you probably know already, the game generates a 12-digit code at the end of each level. These digits encode information about the level #, the number of moves you took to complete it, and how long it took. Now, depending on your "environment", this code is used in several ways. So, what do I mean by "environment"?  Here are the current possibilities...

 

1) Running in an emulator such as Stella

In this case, you can manually copy the "code" into an entry form on a website. In fact, the prototype website is already up and running - thanks to the wizadry of @DirtyHairy - you can see the prototype at Sokoboo HIGH SCORE PAGE ... expect this to change rapidly in the next few days. Although you CAN enter your scores now, don't rely on them to stay there. There's currently an offset added to your time (in the binary itself... yes, it's a "feature"). But that's OK, as it allows "proper" scores to get their "rightful" place when we go live. Anyway, there's a 10x10 "matrix" which allows you to select a level. And for each level you can see the high scores/times. The matrix is colour-coded to show you how many people have entered scores for that level (red=few, green=lots).  The idea is, after a while these colours will give a good indication of difficulty of the levels. So, anyway, there's a page on that site for entering your name and code. If you use a valid code, then your score is added to the high score table for the appropriate level. Neato.

2) Running in "Stellerator" on the website. 
So, there's a page on the site "Play" which is not yet implemented. This page will have an embedded emulator - "stellerator" running the game. What's pretty cool about this, though, is that the emulator is able to communicate directly with the backend doing the high score stuff. So, instead of being presented with the 12-digit code, you will instead have your high score AUTOMATICALLY entered into the high score table for each level. Your name is stored in a cookie, so you don't need to interact with the table at all.

 

3) Running on PlusCart

OK, this one is interesting. Thanks to @Al_Nafuur for his hard work on this one. If you're running Sokoboo on the PlusCart, this is automatically detected. That is, there is only one Sokoboo binary, and it is smart enough to figure out what to do in what situation. Sort of. Anyway, on the PlusCart, your high score "code" is automatically sent to the PlusStore, which then checks to see if you have registered a name with the cart ID. The name (if available) and the "code" is then sent to the website above (that is, the high score site). So, playing on a PlusCart, you also get your name and score AUTOMATICALLY entered into the online high score table.
The extra special feature on the PlusCart version is that you can download extra levels from the PlusStore. It's a free thing. Levels are/will be encoded with difficulty, so you should be able to choose easy/hard/kids, etc. I can add extra levels very easily through an online interface. This is tested/working for a single level download, so I still need to add the mechanics for multiple level selection. But that will be a cinch.

4) Running on Javatari
There is also an implementation of Sokoboo running on the Javatari emulator online. At the end of each level, the emulator automatically talks to the PlusStore backend and your name (if available) and high score "code" is sent to the high score backend.

5) Running on an standard cartridge
This will be pretty much identical to running on Stella.


So, that's all pretty amazing actually. It's all 90% there and tested already. We have functional level download. Functional code entry. Still have to get the PlusStore to talk to the high score backend, but the mechanics are already basically there - via a web service, basically.

I have to thank everyone involved - this has been a really enjoyable collaboration. Firstly, the artwork by @NostAlgae37 has given the game a great visual style. We're still fighting on the individual pixels, this is just the fate of people who work with me ;) . Also, @DirtyHairy has done an amazing job of getting the website up and running - this would have taken me years. He's also been instrumental in getting Stellerator working with the backend communication. Next, of course, @Al_Nafuur has been great to work with in getting the game functional on the PlusCart. This is a really cool bit of hardware that does internet connectivity from your '2600. I really love the idea of level downloads. Finally, but not least - "cytrix" is my sound/music guy and he's doing an incredible job on that side of things. Won't be long before we have an amazing update on that, too.

 

Edited by Andrew Davie
  • Like 8
Link to comment
Share on other sites

On 11/17/2019 at 9:47 AM, devwebcl said:

is this the last version with correct code generator?

 

I did a quick run on the code generated for level 1, and it looked OK.

However, I have decided to post the latest version... just to be sure.

Any scores entered during this development phase may disappear!

 

Edited by Andrew Davie
removed binary
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 11/16/2019 at 1:13 AM, Andrew Davie said:

Well, things are starting to come together. It's a pretty unique thing.

..

 

3) Running on PlusCart

OK, this one is interesting. Thanks to @Al_Nafuur for his hard work on this one. If you're running Sokoboo on the PlusCart, this is automatically detected. That is, there is only one Sokoboo binary, and it is smart enough to figure out what to do in what situation. Sort of. Anyway, on the PlusCart, your high score "code" is automatically sent to the PlusStore, which then checks to see if you have registered a name with the cart ID. The name (if available) and the "code" is then sent to the website above (that is, the high score site). So, playing on a PlusCart, you also get your name and score AUTOMATICALLY entered into the online high score table.
The extra special feature on the PlusCart version is that you can download extra levels from the PlusStore. It's a free thing. Levels are/will be encoded with difficulty, so you should be able to choose easy/hard/kids, etc. I can add extra levels very easily through an online interface. This is tested/working for a single level download, so I still need to add the mechanics for multiple level selection. But that will be a cinch.

4) Running on Javatari
There is also an implementation of Sokoboo running on the Javatari emulator online. At the end of each level, the emulator automatically talks to the PlusStore backend and your name (if available) and high score "code" is sent to the high score backend.
..

 

basically @Andrew Davies description about the PlusCart and the Javatari.js emulator are alright. But there are some errors i want to clarify, because it might be important to others who want to develop a internet enabled ROM.

- the PlusROMs are not talking to the PlusStore, they are only talking to their (in ROM) defined backend (this backend might request information from the PlusStore openAPI).

- the PlusStore is only for downloading ROMs and registering. Registered user have a 2MB "My ROMs" space (nextcloud)

- the Javatari.js emulator can emulate PlusROMs and talk to the respective backend (therefor it generates a uuid as device-id, and stores it in the browsers local storage)
- the Javatari.js emulator can not connect to the PlusStore nor download from there.

 

see attached diagram about the architecture:

PlusStore Diagram.png

Link to comment
Share on other sites

On 11/18/2019 at 9:54 AM, DirtyHairy said:

There's been an update to the web page. Mostly looks, but I have also fixed a bug in session handling --- the session will now last for one year instead of 15 minutes ;) 

And it's a beautiful thing!

759141795_ScreenShot2019-11-18at10_07_28am.thumb.png.6de3de0b4a484c513628f11e322bb3d7.png

 

2130586490_ScreenShot2019-11-18at10_07_37am.thumb.png.4df2e8cac02668d3c3a7fd97a62359a0.png

Edited by Andrew Davie
  • Like 5
Link to comment
Share on other sites

I have fixed all the issues I was aware of with the online high score table

see Sokoboo High Scores

 

There have been a few changes. First, level numbering is now from 00 to 99, instead of 1 to 100.

There are a few reasons for this, but it makes grouping into 100s more logical/easy for future expansion.

 

The high score code is now only generated when you complete a level. It used to show even when you pressed reset to restart a level.

 

There was a bug where the timer for a level did not reset at the start of a level, so your time got longer and longer.


Those things having been fixed, this is now a good working version.

Have a play - now's your chance to immortalise yourself and your scores on the online High score table...

https://sokoboo-dev.taswegian.com/highscores

 

Just click on "ENTER SCORE" and enter the 12-digit code given at the end of each level.

 

As more scores are entered, the colouring on the matrix of levels will refine, and eventually we should see "easy" levels coloured green, and difficult levels coloured "red". Hopefully - but of course it requires enough people actually playing :P

 

By the way, on that LEVEL matrix - you click on any one of the level number (00 to 99) to go to a page showing the high score table for that level.
Most of them are blank at the moment - hopefully some of you will take the time to test it out and get your name up in lights.

Here's the binary...


sokoboo_20191124.bin

 

PS: Many thanks to @DirtyHairy for his stellar work on the high score pages!

 

Edited by Andrew Davie
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

I should add that, while still incomplete (there are a few more features yet to come, including the integration of Stellerator), the page is now stable --- we have not plans to nuke the score database again (yet ?).

 

However, please use the new binary posted by Andrew above; the codes from the old versions will register for the wrong level, and the times won't be correct.

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

13 hours ago, DirtyHairy said:

However, please use the new binary posted by Andrew above; the codes from the old versions will register for the wrong level, and the times won't be correct.

 

So, the old binaries are not correct ?

 

I remember Andrew with a small contest to figure out the sequence... perhaps now it's more feasible to deduce.

 

Link to comment
Share on other sites

46 minutes ago, devwebcl said:

So, the old binaries are not correct ?

 

I remember Andrew with a small contest to figure out the sequence... perhaps now it's more feasible to deduce.

In the old codes, the level is off by one (as numbering used to start with level 1 instead of level 0), and there was a bug that could cause time to accumulate over the levels played. The codes themselves are perfectly valid.

 

 

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

  • 2 months later...

Technically, this post just to get Sokoboo into the 2020 WIP list.

Update is that I'm waiting for my brilliant musician to find some time to do some music. Otherwise, we're circling just waiting...

Here's a (technically different) binary so I can claim I've done a binary release this year :P

The colours on the title screen are/were a fortuitous bug. Thought I'd post it just so the version was distinct.

 

sokoboo_20200211.bin

  • Like 6
  • Haha 2
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
29 minutes ago, Prizrak said:

Is there a version of this rom for NTSC? I'm trying to play current ROM and it's rolls on my TV so I'm gathering it's PAL.

Sent from my SM-N960U using Tapatalk
 

 

It's actually switchable with difficulty switches, and whatnot.

But, to make it easy for you.. here's an NTSC-only version..

 

 

sokoboo_20200406_NTSC.bin

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

  • 4 weeks later...
1 hour ago, spspspsp said:

Did you modify the 0211 binary with AtariVox code?

 

My AtariVox seems to be saying "Help!" whenever I load Sokoboo now. Still trying to work through the puzzles.

No!  There is code in there related to savekey stuff, but no speech should be generated.

I definitely didn't play with this, pretty sure.

 

Link to comment
Share on other sites

Ok, cool. It's very weird for it to be talking in a game that just uses the eeprom, so that was the first thing that leapt to mind.

The eeprom and speakjet chip are driven off entirely different joystick lines, and follow different protocols, so there's not really a chance of accidental trigger by using the eeprom.

 

[back to your regularly scheduled sokoban thread]

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