MatthewL246 / pretendo-docker

An unofficial Docker Compose setup for self-hosting a Pretendo Network server.
https://matthewl246.github.io/pretendo-docker/
GNU Affero General Public License v3.0
47 stars 9 forks source link

Super Mario Maker Error 002-0110 (3DS) #132

Open LightRO opened 1 month ago

LightRO commented 1 month ago

Hello everyone, I have a question about a topic that concerns a self-hosted server. I am currently testing the programs and so far everything seems to be working fine such as friends, Miiverse etc.. But when I try to do the challenges in Super Mario Maker (3DS) I always get the error 002-0110. I have already looked at some things but I can't get any results. Do you have any tips or a solution?

Super Mario Maker Docker:

API server listening at: [::]:2345
2024-09-10T17:59:17Z warning layer=rpc Listening for remote connections (connections are not authenticated nor encrypted)
2024-09-10T17:59:17Z info layer=debugger launching process with args: [./server]
2024-09-10T17:59:18Z debug layer=debugger Adding target 11 "/home/go/app/server"
2024-09-10T17:59:18Z debug layer=debugger continuing
2024-09-10T17:59:18Z debug layer=debugger ContinueOnce
[2024-09-10T17:59:18] [WARNING]  [func 0() main.init/init.go:25] : Error loading .env file
[2024-09-10T17:59:18] [SUCCESS]  [func ConnectPostgres() github.com/PretendoNetwork/super-mario-maker-secure/database/connect_postgres.go:21] : Connected to Postgres!
[2024-09-10T17:59:18] [SUCCESS]  [func initPostgres() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:21] : datastore Postgres schema created
[2024-09-10T17:59:18] [SUCCESS]  [func initPostgres() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:152] : Postgres tables created
[2024-09-10T17:59:18] [SUCCESS]  [func ensureEventCourseMetaDataFileExists() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:175] : Event course metadata file found. Verifying database
[2024-09-10T17:59:18] [SUCCESS]  [func ensureEventCourseMetaDataFileExists() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:274] : Event course metadata object found in Postgres!
[2024-09-10T17:59:18] [INFO]     [func ensureEventCourseMetaDataFileExists() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:277] : Ensuring event course metadata object has correct delete permission
[2024-09-10T17:59:18] [SUCCESS]  [func ensureEventCourseMetaDataFileExists() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:286] : Event course metadata object found and is up to date!
[2024-09-10T17:59:18] [SUCCESS]  [func (*Server).Listen() github.com/PretendoNetwork/nex-go/server.go:82] : PRUDP server listening on address - :6004
[2024-09-10T17:59:18] [INFO]     [func NewCommonDataStoreProtocol() github.com/PretendoNetwork/nex-protocols-common-go/datastore/protocol.go:280] : Using Super Mario Maker DataStore protocol
[2024-09-10T17:59:18] [SUCCESS]  [func (*Server).Listen() github.com/PretendoNetwork/nex-go/server.go:82] : PRUDP server listening on address - :6005

Output from mitmproxy:

Request URL: http://nasc.pretendo.cc/ac/

gameid=MTAxOERCMDA%2A&sdkver=MDAwMDAw&titleid=MDAwNDAwMDAwMDFBMDUwMA%2A%2A&gamecd=QUpIUA%2A%2A&gamever=MDAwOA%2A%2A&mediatype=MQ%2A%2A&makercd=MDA%2A&unitcd=Mg%2A%2A&macadr=NDBkMjhhMDcxMjg5&bssid=MmM5MWFiZTkxMTRi&apinfo=MDE6MDAwMDAwMDAwMA%2A%2A&fcdcert=ccW8VUgsNiNTUMfRltKKgadDEDaVQkaYyv4dDYHUaNCb.7rAoYpkzrLG4Qq4JaYx.9X1eyGamQASS0c2pJBZG4jH7Ef1a-O1e9QBxQEYIIEBQZXCll2cEXX-6doO1dZKyQSVsz8XHNyWpgKrHCSx9iZPQnFUvlUlAEENMK5ymInQu-nGeuMBfpC8a.hQHn.3fbQh3EbgQcb8Ltu4UP-.xcO0-vvSMGZFq8T4IzEmipSVIweSM1m-VOOq3auuq1IGkm68EUWRTJXgE.hdfTPXPWaj3c-5plRtlkNecGMlXsTp2frUgp56uJvHoU-MeC0cNJlJjgergfu6kWvrLjzAWQAAAAAAAAAA3fn7AAIAAAA%2A&devname=TABpAGcAaAB0AFIATwAyAA%2A%2A&servertype=TDE%2A&fpdver=MDAxMA%2A%2A&devtime=MjQwOTEwMjAzNzAx&lang=MDM%2A&region=MDI%2A&csnum=UUVIMTAzMzMxMzA%2A&uidhmac=NzdlYmJiYTY%2A&userid=MTA3MjgwMDExNA%2A%2A&action=TE9HSU4%2A&ingamesn=

Response:

retry=MQ**&returncd=MTEw&datetime=MjAyNDA5MTAxODM0MTc*

Many thanks in advance, LightRO

MatthewL246 commented 1 month ago

Thanks for the report. I haven't tested Super Mario Maker on 3DS, but based on the account server response I believe this is because I haven't configured the account server to work with the 3DS version of the game. You should be able to get past this error by adding the SMM 3DS title IDs to this line and re-running the setup script.

LightRO commented 1 month ago

I created a new block because the GameID and the console is different than for the WiiU.

    await createNexServer(
        "Super Mario Maker",
        "0004000E001A0500",
        ["00040000001A0500"],
        process.env.SERVER_IP,
        process.env.SMM_PORT,
        2,
        "0".repeat(64)
    );

However, it still does not work. After I saved the file, I run:

 docker compose up -d --build

and then restart the account container.

MatthewL246 commented 1 month ago

You'll also need to re-run the setup.sh script, since this configuration is saved in the database and is only updated when the setup script is run.

LightRO commented 1 month ago

Ah perfekt now im on the next step.

The Response from nasc is:

locator=MTkyLjE2OC4xNzguNTg6NjAwNA**&retry=MA**&returncd=MDAx&token=vZeBg1SFxtVYaM5s2vomo2mnq-WQeEygLQK1ZwYSt-DSWU27&datetime=MjAyNDA5MTAyMTQ0MDM*

on 3Ds i get the Message:

An error has occurred.

This service is currently not available. Please try again later.

The Log on the Super Mario Maker docker is:

API server listening at: [::]:2345
2024-09-10T21:43:02Z warning layer=rpc Listening for remote connections (connections are not authenticated nor encrypted)
2024-09-10T21:43:02Z info layer=debugger launching process with args: [./server]
2024-09-10T21:43:03Z debug layer=debugger Adding target 10 "/home/go/app/server"
2024-09-10T21:43:03Z debug layer=debugger continuing
2024-09-10T21:43:03Z debug layer=debugger ContinueOnce
[2024-09-10T21:43:03] [WARNING]  [func 0() main.init/init.go:25] : Error loading .env file
[2024-09-10T21:43:03] [SUCCESS]  [func ConnectPostgres() github.com/PretendoNetwork/super-mario-maker-secure/database/connect_postgres.go:21] : Connected to Postgres!
[2024-09-10T21:43:03] [SUCCESS]  [func initPostgres() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:21] : datastore Postgres schema created
[2024-09-10T21:43:03] [SUCCESS]  [func initPostgres() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:152] : Postgres tables created
[2024-09-10T21:43:03] [SUCCESS]  [func ensureEventCourseMetaDataFileExists() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:175] : Event course metadata file found. Verifying database
[2024-09-10T21:43:03] [SUCCESS]  [func ensureEventCourseMetaDataFileExists() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:274] : Event course metadata object found in Postgres!
[2024-09-10T21:43:03] [INFO]     [func ensureEventCourseMetaDataFileExists() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:277] : Ensuring event course metadata object has correct delete permission
[2024-09-10T21:43:03] [SUCCESS]  [func ensureEventCourseMetaDataFileExists() github.com/PretendoNetwork/super-mario-maker-secure/database/init_postgres.go:286] : Event course metadata object found and is up to date!
[2024-09-10T21:43:03] [INFO]     [func NewCommonDataStoreProtocol() github.com/PretendoNetwork/nex-protocols-common-go/datastore/protocol.go:280] : Using Super Mario Maker DataStore protocol
[2024-09-10T21:43:03] [SUCCESS]  [func (*Server).Listen() github.com/PretendoNetwork/nex-go/server.go:82] : PRUDP server listening on address - :6004
[2024-09-10T21:43:03] [SUCCESS]  [func (*Server).Listen() github.com/PretendoNetwork/nex-go/server.go:82] : PRUDP server listening on address - :6005
==SMM1 - Auth==
Protocol ID: 10

Method ID: 2
===============
==SMM1 - Auth==
Protocol ID: 10

Method ID: 3
===============
==SMM1 - Secure==
Protocol ID: 11

Method ID: 1
===============
==SMM1 - Secure==
Protocol ID: 115
Method ID: 61
===============
==SMM1 - Secure==
Protocol ID: 115
Method ID: 66
===============
==SMM1 - Secure==
Protocol ID: 115
Method ID: 82
===============

I have now modified the update-account-servers-database.js as you first suggested so that we can make progress. I have only made the additional change from 1 to 2 for the 3Ds.

     await createNexServer(
        "Super Mario Maker",
        "1018DB00",
        ["000500001018DB00", "000500001018DC00", "000500001018DD00", "00040000001A0500", "0004000E001A0500", "00040000001A0400", "00040000001A0300"],
        process.env.SERVER_IP,
        process.env.SMM_PORT,
        2,
        "0".repeat(64)
    );
MatthewL246 commented 1 month ago

I see that the game is successfully connecting to the SMM auth and secure servers, which is good. Unfortunately, I can't tell what exactly is going wrong here, so this will require some further debugging.

LightRO commented 1 month ago

I have now tried a bit more on the 3Ds. On the Easy and Normal difficulty levels, I get the error described above. However, when I select Difficult or Very Difficult, the message appears:

There are currently not enough difficult levels available. Please try again later.