splatplost icon indicating copy to clipboard operation
splatplost copied to clipboard

Support for Splatoon 3

Open Victrid opened this issue 2 years ago • 44 comments

We found out that Splatoon 3 testfire already provide an interface for splatpost submissions.

We can improve this script further so that it can be used to paint in Splatoon 3.


To all:

If you are trying to install the latest beta version, please check https://pypi.org/project/splatplost/#history for the latest pre-release.

The package is now splitted into nxbt and usb part. If you are seeing this post, you could install all (on linux) for complete backends.

For example, if you see that the latest version from pypi is something called 0.2.0.dev4, you may use

sudo pip install "splatplost[nxbt,usb]==0.2.0.dev4"

If you are updating, you may use

sudo pip install -U "splatplost[nxbt,usb]==0.2.0.dev4"

Victrid avatar Aug 26 '22 02:08 Victrid

good job!

chenchenfang avatar Aug 27 '22 01:08 chenchenfang

Nice! Looking forward to it!

Joshua7896 avatar Sep 09 '22 08:09 Joshua7896

Hello, I've updated a beta version which supports splatoon 3 and have a GUI. Check https://github.com/Victrid/splatplost/tree/dev-v0.2 for readme file for more information.

If you want to try this version, you need to install with special pip command, which allows you to install a pre-release version:

sudo pip install splatplost==0.2.0.dev0

Victrid avatar Sep 10 '22 15:09 Victrid

Which version of python is this dev version targeting? I'm getting a syntactical error regarding the union operator when using python 3.9.2:

  File "/home/none/splatplost/splatplost/common.py", line 5, in <module>
    Command = tuple[Button, int] | Button
TypeError: unsupported operand type(s) for |: 'types.GenericAlias' and 'EnumMeta'

I thought union operator was added in 3.9.x... I've also tried both installing with pip and also building manually with the setuptools script to no avail.

grantbacon avatar Sep 10 '22 19:09 grantbacon

Which version of python is this dev version targeting? I'm getting a syntactical error regarding the union operator when using python 3.9.2:

  File "/home/none/splatplost/splatplost/common.py", line 5, in <module>
    Command = tuple[Button, int] | Button
TypeError: unsupported operand type(s) for |: 'types.GenericAlias' and 'EnumMeta'

I thought union operator was added in 3.9.x... I've also tried both installing with pip and also building manually with the setuptools script to no avail.

I thought this is PEP 604 and supported in python 3.10?

Victrid avatar Sep 11 '22 00:09 Victrid

@grantbacon Let me see if I can separate type hints to stub files...

Victrid avatar Sep 11 '22 00:09 Victrid

Ah, I see from the PEP you shared it was introduced 3.10, my apologies. I can just use 3.10 in a virtual env instead of using python3.9 which is current in the Debian buster repo.

Thanks for the timely response and useful info!

El sáb, 10 de sept de 2022, 17:33, Jiang Weihao @.***> escribió:

@grantbacon https://github.com/grantbacon Let me see if I can separate type hints to stub files...

— Reply to this email directly, view it on GitHub https://github.com/Victrid/splatplost/issues/13#issuecomment-1242826802, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAG4GYIWKX6ACT67CCLKQRLV5USF5ANCNFSM57VFW4RA . You are receiving this because you were mentioned.Message ID: @.***>

grantbacon avatar Sep 11 '22 01:09 grantbacon

Using the 0.2.0.dev0 version, I get the GUI to launch (looks very nice by the way) and can interact with it, however when I click "Connect to Switch" and then "Start Pairing," nothing happens and the GUI does not progress to step 2. The Switch console, in the pairing menu, has no response either. I'm not sure what I'm doing wrong-- I know my hardware is compatible with spoofing the controller because I have used NXBT before successfully on this setup.

I am using Python 3.10 on PopOS 22.04 LTS on bare metal, not in a VM.

SuperOkazaki avatar Sep 11 '22 01:09 SuperOkazaki

Using the 0.2.0.dev0 version, I get the GUI to launch (looks very nice by the way) and can interact with it, however when I click "Connect to Switch" and then "Start Pairing," nothing happens and the GUI does not progress to step 2. The Switch console, in the pairing menu, has no response either. I'm not sure what I'm doing wrong-- I know my hardware is compatible with spoofing the controller because I have used NXBT before successfully on this setup.

I am using Python 3.10 on PopOS 22.04 LTS on bare metal, not in a VM.

Did you launch the GUI with root privileges? If you don't the Start Pairing will just have a flash and return to Start Pairing. I'll add a notification to this.

Victrid avatar Sep 11 '22 01:09 Victrid

Using the 0.2.0.dev0 version, I get the GUI to launch (looks very nice by the way) and can interact with it, however when I click "Connect to Switch" and then "Start Pairing," nothing happens and the GUI does not progress to step 2. The Switch console, in the pairing menu, has no response either. I'm not sure what I'm doing wrong-- I know my hardware is compatible with spoofing the controller because I have used NXBT before successfully on this setup. I am using Python 3.10 on PopOS 22.04 LTS on bare metal, not in a VM.

Did you launch the GUI with root privileges? If you don't the Start Pairing will just have a flash and return to Start Pairing. I'll add a notification to this.

That fixed it, thank you. One more problem. I got the PC to sync with the console, and all works well when I am in the Change Order menu, but when I try to connect the software to the prompt that comes up when making a post in-game, I am unable to progress. Splatplost GUI does not allow me to press A.

https://imgur.com/PxeN5Kc.jpeg

SuperOkazaki avatar Sep 11 '22 01:09 SuperOkazaki

Do you know what could cause the program to frequently disconnect with a Switch? For extra details I'm using the pre flashed image provided. When running the program I'm able to connect for the first time but it'd send me to the reconnection screen every time I tried to do anything with it, especially when it comes to the drawing process.

DetectiveNaoya avatar Sep 11 '22 02:09 DetectiveNaoya

Using the 0.2.0.dev0 version, I get the GUI to launch (looks very nice by the way) and can interact with it, however when I click "Connect to Switch" and then "Start Pairing," nothing happens and the GUI does not progress to step 2. The Switch console, in the pairing menu, has no response either. I'm not sure what I'm doing wrong-- I know my hardware is compatible with spoofing the controller because I have used NXBT before successfully on this setup. I am using Python 3.10 on PopOS 22.04 LTS on bare metal, not in a VM.

Did you launch the GUI with root privileges? If you don't the Start Pairing will just have a flash and return to Start Pairing. I'll add a notification to this.

That fixed it, thank you. One more problem. I got the PC to sync with the console, and all works well when I am in the Change Order menu, but when I try to connect the software to the prompt that comes up when making a post in-game, I am unable to progress. Splatplost GUI does not allow me to press A.

https://imgur.com/PxeN5Kc.jpeg

I think this means that the GUI have not detected that you've connected to it. Maybe restart the GUI and do a reconnect while switch is at plot screen might help.

Victrid avatar Sep 12 '22 02:09 Victrid

I think this means that the GUI have not detected that you've connected to it. Maybe restart the GUI and do a reconnect while switch is at plot screen might help.

I ended up having to disconnect my bluetooth adapter and re-connecting it. Maybe it was loose! I got the printer to work :) it is just becoming misaligned during longer prints, so I am playing around with higher ms delays to get a stable print

very happy that I got it working for splatoon 3! thank you for all your hard work

SuperOkazaki avatar Sep 12 '22 05:09 SuperOkazaki

Hello, I've uploaded with a newer version 0.2.0.dev2, which fixes:

  • Ignored warnings and errors during pairing, and added a bug reporter when exceptions are raised.
  • Erasing and added translations.

Check https://github.com/Victrid/splatplost/tree/dev-v0.2 for readme file for more information.

If you want to try this version, you need to install with special pip command, which allows you to install a pre-release version:

sudo pip install splatplost==0.2.0.dev2

If this version does not have much problem, I'll merge it into master branch and put out for stable release.

Victrid avatar Sep 12 '22 06:09 Victrid

Any plan for Python3.9 support is still latest one on debian :/

kodxana avatar Sep 13 '22 20:09 kodxana

Hi,

I'm trying to use the dev2 build with Splatoon 3 but on two systems it hasn't worked for me so far.

Raspberry Pi Zero W (on Raspberry Pi OS, aka Debian Bullseye): Installed pyenv Used it to build Python 3.10.7 Switched the "local" version (in home directory) to 3.10.7 Ran the above sudo pip install splatplost==0.2.0.dev2

When it gets to trying to install PyQt6~=6.3.1 it fails with the following:

× Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [29 lines of output] Traceback (most recent call last): File "/home/pi/.pyenv/versions/3.10.7/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 156, in prepare_metadata_for_build_wheel hook = backend.prepare_metadata_for_build_wheel AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'

Lubuntu (light Ubuntu) running from a bootable USB drive: Successfully installed the dev2 build Ran using sudo splatplost Loaded image On my switch, went to the post drawing screen Hit Home to open the home menu then change order/pair controllers screen In Splatplost, hit "Connect to Switch" then "Start Pairing"

After that, it just waited at the pairing screen. It didn't fail or boot me back but it never paired, either.

I checked that Lubuntu could access my bluetooth module by scanning for bluetooth devices in the system menu, and tried closing splatplost then running sudo service Bluetooth restart to restart the service and retrying, but to no avail (the bluetooth module is built into my desktop, so I couldn't unplug it and replug it as someone else suggested before).

I'm not sure if it's possible to get it working on the Rapsberry Pi Zero but I'm surprised Lubuntu didn't seem to work. If there's any other info I can provide that would be helpful, let me know.

I'll also note that I was going to try using the regular commands to see if they would give an error message or anything, but running sudo splatplost ---help just launched the GUI again. I hope the update with the GUI won't disable commands entirely, if it is possible to get it working on the raspberry pi zero I would need to run it through ssh, as it doesn't have a desktop environment installed at all.

AuthorX avatar Sep 14 '22 15:09 AuthorX

Just wanted to say got it running swimmingly using Debian bookworm/sid (testing repo) which packages python3.10, qt6 and other necessities for your latest realease. Currently plotting away now! :smile_cat:

I tried using pyenv on stable debian install but realized I wouldn't have a lot of the needed headers for other dependencies like qt6 unless I also built them manually, which would frankly be more of a hassle (especially maintenance wise).

I would also echo a desire to have the ability to run without GUI as before, if such beahavior can be preserved. Anyway,thanks so much for the awesome project!

grantbacon avatar Sep 15 '22 22:09 grantbacon

Thank you for making such an convenient tool. I've installed the dev2 version and just encountered an issue. The plotter isn't returning to the corners properly when it's plotting the first square on the third row, maybe holding down the buttons longer may fix it?

Also, some of the blocks is shifted by 1px the left or right, with the contents of it complete.

andyubird avatar Sep 16 '22 16:09 andyubird

Just wanted to say got it running swimmingly using Debian bookworm/sid (testing repo) which packages python3.10, qt6 and other necessities for your latest realease. Currently plotting away now! 😸

I tried using pyenv on stable debian install but realized I wouldn't have a lot of the needed headers for other dependencies like qt6 unless I also built them manually, which would frankly be more of a hassle (especially maintenance wise).

I would also echo a desire to have the ability to run without GUI as before, if such beahavior can be preserved. Anyway,thanks so much for the awesome project!

how did you do this?

DetectiveNaoya avatar Sep 16 '22 17:09 DetectiveNaoya

Thank you for making such an convenient tool. I've installed the dev2 version and just encountered an issue. The plotter isn't returning to the corners properly when it's plotting the first square on the third row, maybe holding down the buttons longer may fix it?

Also, some of the blocks is shifted by 1px the left or right, with the contents of it complete.

i'm too. it's annoying

zong1203 avatar Sep 17 '22 07:09 zong1203

Is there an option for Splatoon 3 support via CLI instead of GUI? I'm trying to use version 0.2.0.dev0 on an Ubuntu server, but it seems like the only option is for the GUI.

funkyFangs avatar Sep 17 '22 19:09 funkyFangs

Is there an option for Splatoon 3 support via CLI instead of GUI? I'm trying to use version 0.2.0.dev0 on an Ubuntu server, but it seems like the only option is for the GUI.

@funkyFangs The 0.2.x version introduces a selective draw and clean method, and I'm still working on how to translate them into CLI options.

Victrid avatar Sep 18 '22 04:09 Victrid

Thank you for making such an convenient tool. I've installed the dev2 version and just encountered an issue. The plotter isn't returning to the corners properly when it's plotting the first square on the third row, maybe holding down the buttons longer may fix it? Also, some of the blocks is shifted by 1px the left or right, with the contents of it complete.

i'm too. it's annoying

Same problem :/

CrocodileCroco avatar Sep 20 '22 13:09 CrocodileCroco

Has anyone been able to get this version working an a Raspberry Pi? I don't think PyQt6 works on them.

JTiger24 avatar Sep 24 '22 15:09 JTiger24

ah hello, im not sure if this is the best place to contact you or if i should have opened up a new issue, but i think i might need your help step by step with this ? whenever i open splatplan it logs me out immediately. i think i must be lost or something ?

starbitterling avatar Sep 25 '22 07:09 starbitterling

Is the Erase selected option currently functional in the GUI? Every time I use it, it acts identically to Draw selected.

Additionally, is there any intention to add support for cancelling a currently-running task? I'm getting a lot of desynchronization/pixel shift issues, and it would be nice to cancel/pause it so that I can fix them.

funkyFangs avatar Sep 25 '22 14:09 funkyFangs

@funkyFangs

Is the Erase selected option currently functional in the GUI? Every time I use it, it acts identically to Draw selected.

Yes. The terminal part is not done yet.

Additionally, is there any intention to add support for cancelling a currently-running task? I'm getting a lot of desynchronization/pixel shift issues, and it would be nice to cancel/pause it so that I can fix them.

For now, you can just close the window / press Ctrl+C to terminate. I'll add this part in the future.

Victrid avatar Sep 25 '22 14:09 Victrid

@starbitterling

ah hello, im not sure if this is the best place to contact you or if i should have opened up a new issue, but i think i might need your help step by step with this ? whenever i open splatplan it logs me out immediately. i think i must be lost or something ?

That is strange. Which linux distribution are you using?

Victrid avatar Sep 25 '22 15:09 Victrid

目前使用DEV2版本,使用预配置镜像

繪圖功能都OK 有個問題就是好幾次左邊兩格都偵測不到 繪畫不上去 使用穩定模式 80/80毫秒

請問這怎麼解決呢

建議把DEV2版本增加到主頁

https://imgur.com/a/HUoXvRO

LOKI696 avatar Sep 26 '22 22:09 LOKI696

I set up an old laptop for dual boot with Debian bookworm. Install went well, and the program connected to the device correctly, but I'm also getting the pixel shifts multiple people have reported.

JTiger24 avatar Sep 28 '22 18:09 JTiger24