MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Ok, found the error. Added everdrive detection as well...
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
It seems to have issues with the core's path. Can you post your paths from the ini here?Sigismond0 wrote: ↑Thu Apr 21, 2022 9:02 pmYes. As noted in my above comment, I think I've been using "using zip" for all of my testing ever due to how I trimmed down my Everdrive packs.
Also have some more interesting logs now that samquiet=no. On the 32x, I currently just have loose ROMs in a folder. See how it tries to launch the same game twice? It looks like it's looking for files in the specified directory, working, then looking in "." and failing. And see how it says selected core is ".."?
- Sigismond0
- Posts: 339
- Joined: Mon May 25, 2020 2:21 am
- Has thanked: 1 time
- Been thanked: 66 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
SMS and GG are now working much better as of the last update. And it's not picking that SMS game when in GG mode all the time now either. About to wrap up for the day, but will spend more time on it tomorrow, and will test shuffling all cores again then too.
Here are my paths:
Here are my paths:
Code: Select all
arcadepath="/media/fat/_arcade"
fdspath="/media/fat/games/NES"
gbpath="/media/fat/Games/Gameboy"
gbcpath="/media/fat/Games/Gameboy"
gbapath="/media/fat/games/GBA"
genesispath="/media/fat/games/Genesis"
ggpath="/media/fat/games/SMS"
megacdpath="/media/usb0/games/MegaCD"
neogeopath="/media/fat/games/NeoGeo"
nespath="/media/fat/games/NES"
s32xpath="/media/fat/Games/s32x"
smspath="/media/fat/Games/SMS"
snespath="/media/fat/games/SNES"
tgfx16path="/media/fat/games/TGFX16"
tgfx16cdpath="/usb0/fat/games/TGFX16-CD"
psxpath="/media/usb0/games/PSX"
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Ok, glad to hear we fixed it for now. Just note that this zip mode doesn't support gamelists and the norepeat shuffle feature. Not sure what's happening with s32x but maybe we can start by you trying the genesis everdrive pack?
- Sigismond0
- Posts: 339
- Joined: Mon May 25, 2020 2:21 am
- Has thanked: 1 time
- Been thanked: 66 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
So far, I get the same general failure method for all of the following cases:
So I decided to rewind and start testing everything. And lo and behold, now every core is doing this. Even arcade, which is all controlled by update_all so it can't just be an issue with my zips. This is immediately after a full reset and reinstall of SAM. Image of the monitor log attached (not verbose).
Note that all cores were working fine in SAM prior to sms/gg/s32x support being added. All of the errors in the SAM monitor seem to indicate there's something fishy going on with SAM picking a null core name, which causes it to look in a non-existent directory for ROMs/MRAs on every second shuffle. It still looks like it's working from the TV screen, it just has a shuffle timer that's twice as long as what you set. If I didn't have the monitor watching, I'd never have noticed the issue.
Attaching my .ini as well for review. After resetting, I edited directories for USB0 on CD cores and switched 32x to S32x. Lowered the shuffle timer so that it runs faster and is easier to test, umuted. And that's all. After I saw everything failing, I tried setting norepeat="no' as well but that did not change the issue.
Edit: OK, I think I've figured this out--it's probably related to the logic you're using to prevent the same core from running twice in a row. If you just set one core in the ini, it breaks that logic. If I set two or more cores in my ini at a time, it looks like it works OK. Will test some more and update soon.
- Loose 32X ROMs in /games/s32x
- S32X ROMs in small zips in /games/s32x
- S32X ROMs in one large ~350MB zip in /games/s32x
- S32X ROMs in the original Genesis htgdb pack in /games/s32x
So I decided to rewind and start testing everything. And lo and behold, now every core is doing this. Even arcade, which is all controlled by update_all so it can't just be an issue with my zips. This is immediately after a full reset and reinstall of SAM. Image of the monitor log attached (not verbose).
Note that all cores were working fine in SAM prior to sms/gg/s32x support being added. All of the errors in the SAM monitor seem to indicate there's something fishy going on with SAM picking a null core name, which causes it to look in a non-existent directory for ROMs/MRAs on every second shuffle. It still looks like it's working from the TV screen, it just has a shuffle timer that's twice as long as what you set. If I didn't have the monitor watching, I'd never have noticed the issue.
Attaching my .ini as well for review. After resetting, I edited directories for USB0 on CD cores and switched 32x to S32x. Lowered the shuffle timer so that it runs faster and is easier to test, umuted. And that's all. After I saw everything failing, I tried setting norepeat="no' as well but that did not change the issue.
Edit: OK, I think I've figured this out--it's probably related to the logic you're using to prevent the same core from running twice in a row. If you just set one core in the ini, it breaks that logic. If I set two or more cores in my ini at a time, it looks like it works OK. Will test some more and update soon.
- Attachments
-
- fds.png (96.17 KiB) Viewed 6423 times
-
- MiSTer_SAM.zip
- (2.1 KiB) Downloaded 176 times
-
- arcade failing.png (73.37 KiB) Viewed 6423 times
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Thanks, it might have to do with the new core logic.
I noticed as well that the linux side of MiSTer got updated and that arrays are working differently now. As for me, everything still works after full reset and reboot but it might be related to that.
Edit: I updated the arrays, can you check if this helps?
We can also try if an old version of MiSTer_SAM_on.sh still works. Can you try this one for example from 2 weeks ago? You can download the file by pressing Ctrl+S.
I noticed as well that the linux side of MiSTer got updated and that arrays are working differently now. As for me, everything still works after full reset and reboot but it might be related to that.
Edit: I updated the arrays, can you check if this helps?
We can also try if an old version of MiSTer_SAM_on.sh still works. Can you try this one for example from 2 weeks ago? You can download the file by pressing Ctrl+S.
- Sigismond0
- Posts: 339
- Joined: Mon May 25, 2020 2:21 am
- Has thanked: 1 time
- Been thanked: 66 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Yeah, everything's super smooth now that I have multiple cores in the ini. 32x works with my original zips, too. Though for some reason SAM hates my Europe zip and just selects that as a game for the MGL. But it selects games just fine out of the US and JP zips without issue. I've re-made and tweaked that zip a bunch of different ways and can't get it to pull games out of it, but that's probably on me I think. Just thought I'd post here in case you had any ideas. Even with samquiet="no", the monitor doesn't say anything like we saw before where partun was complaining.
Other than that though, everything seems to be going smoothly for now. I'll let it shuffle everything all afternoon and see how it goes.
Other than that though, everything seems to be going smoothly for now. I'll let it shuffle everything all afternoon and see how it goes.
Code: Select all
<mistergamedescription>
<rbf>_console/s32x</rbf>
<file delay=1 type=f index=0 path="../../../../media/fat/Games/s32x/2 Europe A-Z.zip/"/>
</mistergamedescription>
- Attachments
-
- s32zip.png (15.98 KiB) Viewed 6395 times
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Ok cool, glad it's working. Interesting find that it would select a zip for s32x. I'll see how I can fix the corelist issue. As always, thanks for reporting bugs!
Edit:
For the Europe zip, it looks like partun might not be able to read the file. In ssh you can try for yourself if partun can read it by pasting
/media/fat/Scripts/.MiSTer_SAM/partun -l "/media/fat/Games/s32x/2 Europe A-Z.zip"
Edit:
For the Europe zip, it looks like partun might not be able to read the file. In ssh you can try for yourself if partun can read it by pasting
/media/fat/Scripts/.MiSTer_SAM/partun -l "/media/fat/Games/s32x/2 Europe A-Z.zip"
- Sigismond0
- Posts: 339
- Joined: Mon May 25, 2020 2:21 am
- Has thanked: 1 time
- Been thanked: 66 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Well I figured it out. "eu" is in the default ini's folderexclude.
Removed that, and it works. So that makes sense. There's likely something in the zip logic where if it selects a zip where everything is in the folderexclude, it just falls back to the zip itself instead of selecting another.
Removed that, and it works. So that makes sense. There's likely something in the zip logic where if it selects a zip where everything is in the folderexclude, it just falls back to the zip itself instead of selecting another.
- venice
- Top Contributor
- Posts: 788
- Joined: Tue Jun 16, 2020 9:29 am
- Location: Germany
- Has thanked: 278 times
- Been thanked: 278 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
I just resetted my MiSTer SAM Installation and re-installed everything using the Menu.
I enabled the tty2oled support and both tty2oled modes (with or without ACK) are working fine for me.
MiSTer SAM Autostart is working, no problems, no "Transfer Errors" for me.
Thumbs Up
I enabled the tty2oled support and both tty2oled modes (with or without ACK) are working fine for me.
MiSTer SAM Autostart is working, no problems, no "Transfer Errors" for me.
Thumbs Up
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Great, thanks for your feedback. Without ack works slightly better for me it seems so I'm planning on making that the default for now.
I spend some time yesterday rewriting the entire game selection logic, there are still some bugs to iron out but hopefully that will make SAM more robust overall.
Great to hear you didn't encounter any problems, looks like we got tty2oled integrated successfully!
I spend some time yesterday rewriting the entire game selection logic, there are still some bugs to iron out but hopefully that will make SAM more robust overall.
Great to hear you didn't encounter any problems, looks like we got tty2oled integrated successfully!
-
- Posts: 22
- Joined: Sun Aug 09, 2020 12:48 pm
- Has thanked: 2 times
- Been thanked: 1 time
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
I've got another dumb question (sorry). What is the function of the SAM_GameLists directory? Do these need to be deleted out and recreated every time you add more games? Also which core is the geis_gamelist.txt relating to? Thanks!
-
- Top Contributor
- Posts: 1321
- Joined: Thu Jun 11, 2020 2:31 am
- Has thanked: 15 times
- Been thanked: 213 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Does the PSX core have to be in /media/fat/_Consoles in order to be recognized/used?
- Sigismond0
- Posts: 339
- Joined: Mon May 25, 2020 2:21 am
- Has thanked: 1 time
- Been thanked: 66 times
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
geis is currently a bug and i'm in the process of fixing this, it's not a valid system.jacob.pederson wrote: ↑Sun Apr 24, 2022 4:28 pm I've got another dumb question (sorry). What is the function of the SAM_GameLists directory? Do these need to be deleted out and recreated every time you add more games? Also which core is the geis_gamelist.txt relating to? Thanks!
A bit of a background why we have game lists...
The main reason is to have a list with all roms so SAM can track which roms were played and mark them to not play again until all games were played once.
I'm also working on a feature to select which kind of games you want to show (eg only Hacks or only Europe roms). Game lists make this possible. You can also exclude games easily now by just taking them off your game list.
But there is also another reason: Speed and less read cycles to the file system.
With my setup, my roms are stored on a NAS which is about 100km away. My router vpns into the server and then Mister uses SMB to mount the folders. Every time SAM goes through a folder to find a new rom, it takes a good 2-3 minutes. With Game lists generated, roms now change instantly.
Usually once you have your rom directories set up, one can assume that there won't be much of a change. Maybe a few more hacks or prototypes being added, but most users won't really mess much with their rom dirs if they use Everdrive packs. SAM can detect if for example your main zip pack gets moved or replaced and it will create a new game list. For unpacked archives, it just checks if the rom on the list is still in the folder. If the rom can not be found, the game list will be regenerated.
To sum it up. Game lists will be regenerated automatically if:
- Rom file not found
- Zip file not found
- Folder location in ini has changed
I will implement an option to not use game lists at all as well for users having issues with this feature or using non Everdrive packs.
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Updates from today:
- Switched codebase to new and improved game selection logic
- Fixed issue with core shuffle (created nonsense cores like geis)
- Gamelist files recreation more robust now
- Gamelist can be switched off in ini (Please reset)
Please let me know if you find any issues.
- Switched codebase to new and improved game selection logic
- Fixed issue with core shuffle (created nonsense cores like geis)
- Gamelist files recreation more robust now
- Gamelist can be switched off in ini (Please reset)
Please let me know if you find any issues.
-
- Top Contributor
- Posts: 1321
- Joined: Thu Jun 11, 2020 2:31 am
- Has thanked: 15 times
- Been thanked: 213 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
qq re: fds - since there's no dedicated FDS core, how does that work/get triggered? (Another way to put it - where do the .fds files need to be, and can they be in a self-contained ZIP?)
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
If you have fds files in your NES folder, it should just work. You also need boot0.rom in the folder - the fds bios.
- Sigismond0
- Posts: 339
- Joined: Mon May 25, 2020 2:21 am
- Has thanked: 1 time
- Been thanked: 66 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
given how many things are being added to the ini file lately, it might make sense to take a note from the TTY2OLED book and have two different ini files--the main SAM ini that has all parameters in it, and gets updated whenever the script is updated. Will always just have default parameters in it. Then also a SAM user ini file, where a user just puts in the values that they want changed from the default. So for example, my SAM user ini would look like this, and woudl just override these values in the main ini file. Then whenever there's an update A) you don't have to reset to get a new ini file and B) you don't have to remember to go back and figure out what all values need to be fixed after a reset. Just copy over the values you need to change, and any new values one time after they're added to main.
Code: Select all
# =====USER OVERRIDES=====
# Any values in this ini will override the default values set in the main MisterSAM ini
samtimeout=45
gametimer=45
mute="no"
megacdpath="/media/usb0/games/MegaCD"
s32xpath="/media/fat/Games/s32x"
tgfx16cdpath="/media/usb0/games/TGFX16-CD"
psxpath="/media/usb0/games/PSX"
ttyenable="Yes"
norepeat="no"
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
We worked on an ini parser at some point but ran into issues. Good idea to pick this back up since I did have a look at how tty2oled does it recently.
Just a question, why do you have norepeat disabled?
Just a question, why do you have norepeat disabled?
-
- Top Contributor
- Posts: 1321
- Joined: Thu Jun 11, 2020 2:31 am
- Has thanked: 15 times
- Been thanked: 213 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
OK...I do, sort of. My NES folder has three files:mrchrister wrote: ↑Tue Apr 26, 2022 3:11 am If you have fds files in your NES folder, it should just work. You also need boot0.rom in the folder - the fds bios.
boot0.rom
NES.zip
FDS.zip
I think you can guess what each contains. LOL
NES works with SAM, FDS doesn't (but does if launched manually via menu, of course).
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
If you rename FDS to Famicom disk system, it should work
- Sigismond0
- Posts: 339
- Joined: Mon May 25, 2020 2:21 am
- Has thanked: 1 time
- Been thanked: 66 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
I think I turned it off when I was testing out those issues I saw when trying to set only a single core in the ini. Probalby not something that I would leave that way long term.mrchrister wrote: ↑Tue Apr 26, 2022 1:31 pm We worked on an ini parser at some point but ran into issues. Good idea to pick this back up since I did have a look at how tty2oled does it recently.
Just a question, why do you have norepeat disabled?
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Ah that makes sense.
Quick update: My plan is to revamp rom detection once more by letting SAM just find all roms in a folder, no matter if zipped or unpacked. That should simplify things and detect all games hopefully. Thanks to mgl, we can mix lists of zips and unpacked roms, I just haven't thought of it like that before!
Quick update: My plan is to revamp rom detection once more by letting SAM just find all roms in a folder, no matter if zipped or unpacked. That should simplify things and detect all games hopefully. Thanks to mgl, we can mix lists of zips and unpacked roms, I just haven't thought of it like that before!
-
- Posts: 22
- Joined: Sun Aug 09, 2020 12:48 pm
- Has thanked: 2 times
- Been thanked: 1 time
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Thanks! Appreciate the explanation!mrchrister wrote: ↑Mon Apr 25, 2022 7:52 pmgeis is currently a bug and i'm in the process of fixing this, it's not a valid system.jacob.pederson wrote: ↑Sun Apr 24, 2022 4:28 pm I've got another dumb question (sorry). What is the function of the SAM_GameLists directory? Do these need to be deleted out and recreated every time you add more games? Also which core is the geis_gamelist.txt relating to? Thanks!
A bit of a background why we have game lists...
The main reason is to have a list with all roms so SAM can track which roms were played and mark them to not play again until all games were played once.
I'm also working on a feature to select which kind of games you want to show (eg only Hacks or only Europe roms). Game lists make this possible. You can also exclude games easily now by just taking them off your game list.
But there is also another reason: Speed and less read cycles to the file system.
With my setup, my roms are stored on a NAS which is about 100km away. My router vpns into the server and then Mister uses SMB to mount the folders. Every time SAM goes through a folder to find a new rom, it takes a good 2-3 minutes. With Game lists generated, roms now change instantly.
Usually once you have your rom directories set up, one can assume that there won't be much of a change. Maybe a few more hacks or prototypes being added, but most users won't really mess much with their rom dirs if they use Everdrive packs. SAM can detect if for example your main zip pack gets moved or replaced and it will create a new game list. For unpacked archives, it just checks if the rom on the list is still in the folder. If the rom can not be found, the game list will be regenerated.
To sum it up. Game lists will be regenerated automatically if:
- Rom file not found
- Zip file not found
- Folder location in ini has changed
I will implement an option to not use game lists at all as well for users having issues with this feature or using non Everdrive packs.
- neogeo81
- Top Contributor
- Posts: 445
- Joined: Fri Apr 16, 2021 1:52 pm
- Has thanked: 34 times
- Been thanked: 47 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
I have the issue that when i select only 2 or 3 systems in the ini file i also only get these 2 or 3 systems to choose from in the "start only one system" option. I think this should be corrected to be able to select any system of choice. The settings in the ini file should be only for starting all.
-
- Posts: 22
- Joined: Sun Aug 09, 2020 12:48 pm
- Has thanked: 2 times
- Been thanked: 1 time
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
How do I go about troubleshooting Joystick detection? tty2oled turns off and "MiSTer_SAM_on.sh monitor" exits when a button is detected correct? If so, the only thing being detected is keyboard input on my setup. I also have 2 USB Saturn controllers, 2 PS5 controllers, and 2 USB Xarcade tankstick controllers. None of these are being detected. Also the setting menuonly="Yes" appears to be ignored, as SAM restarts after a bit even after detecting a keyboard input. Just deleted everything and updated to latest script this morning. Thanks guys!
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
PS5 controllers over Bluetooth work correctly for me for joystick detection. Currently SAM can only detect inputs on the first joystick connected. This has to do with Bluetooth controllers adding a second "fake joystick" which always fires. Some more research is needed to see if we can have SAM ignore those devices.
- mrchrister
- Scripting Wizard
- Posts: 295
- Joined: Tue Mar 30, 2021 6:23 pm
- Location: Canada
- Has thanked: 32 times
- Been thanked: 122 times
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Yeah, let's change thatneogeo81 wrote: ↑Sat Apr 30, 2022 4:37 pm I have the issue that when i select only 2 or 3 systems in the ini file i also only get these 2 or 3 systems to choose from in the "start only one system" option. I think this should be corrected to be able to select any system of choice. The settings in the ini file should be only for starting all.
-
- Posts: 22
- Joined: Sun Aug 09, 2020 12:48 pm
- Has thanked: 2 times
- Been thanked: 1 time
Re: MiSTer Super Attract Mode (SAM) is now available - the first game screensaver for your MiSTer!
Is there a way to use the "/media/fat/_Arcade/_Organized/" paths to omit both tate games AND games that won't sync to a consumer TV set? For example:
https://www.arcade-history.com/?n=konek ... il&id=7755
http://adb.arcadeitalia.net/dettaglio_m ... search_id=
Both don't sync because they are PAL. Thanks!
https://www.arcade-history.com/?n=konek ... il&id=7755
http://adb.arcadeitalia.net/dettaglio_m ... search_id=
Both don't sync because they are PAL. Thanks!