Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Switch] Theodore is broken #23

Closed
cucholix opened this issue Jun 27, 2020 · 25 comments
Closed

[Switch] Theodore is broken #23

cucholix opened this issue Jun 27, 2020 · 25 comments
Labels
bug Something isn't working

Comments

@cucholix
Copy link

Hi, updating my cores today was testing that everything was in order, and when booting a game on Theodore it crash retroarch and kick me out the system menu, the oldest version I tested is from may-01-2020 (the oldest available too), I can test older versions if you point me to them, so we can narrow the issue.

Regards.

@Zlika
Copy link
Owner

Zlika commented Jun 27, 2020

Hi!
Thanks for reporting this issue.
I changed the pixel format in 9c8af6f to make the core usable on memory constrained devices. Could you try to test before/after this commit? Thanks.

@Zlika Zlika added the bug Something isn't working label Jun 27, 2020
@cucholix
Copy link
Author

I don't know how to build .nro on Switch saddly :(

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

Do you remember what was the date of the last working version you used?
Also, the change of the pixel format broke the compatibility of the save state files: could you check your Retroarch is not configured to autoload the last save state of the game you are starting?

@cucholix
Copy link
Author

I have save autoload disabled, the last time I used Theodore was around december 2019, not quite sure to be honest.

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

I figured out how to build .nro files.
Please download the following binary: https://easyupload.io/k68rwt (build just before the change of the pixel format), rename the file as theodore_libretro_libnx.nro and copy it on your switch to test it.
If it is working, than try to do the same with this binary (build just after the change of the pixel format): https://easyupload.io/hehgvv
These nro files have been built against RetroArch v1.8.9.
Let me know if one of them is working.

@cucholix
Copy link
Author

cucholix commented Jun 28, 2020

Hi, just tested and none of them are working... they all just crash on startup.
I built on my end too (did an express installation), with the commit you told me and current RA and same thing crash on startup.

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

That's weird because before the commit where I changed the pixel format, I have to go back in time until may/june 2019 to find (small) code changes. So if the core was working end of 2019 I don't know why the first binary in my previous message is not working.
Can you try a clean re-install of RA? Maybe the core's configuration file is corrupted.

@cucholix
Copy link
Author

cucholix commented Jun 28, 2020

Tried with a fresh retroarch.cfg and retroarch-core-options.cfg and it still crashing on startup. I make sure there's not save files or save states, or options/core overrides...

December was an estimate month, but I know it was working on 2019, just not sure what month... sorry.

@cucholix
Copy link
Author

Doing more testing in the core (the most recent one available on the online updater), I can load and start the core just fine, the bios screen display correctly, but at the moment to load a .fd game it crashes RA.

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

Interesting.
Let's try an older version from february 2019: https://easyupload.io/h81bqk

@cucholix
Copy link
Author

cucholix commented Jun 28, 2020

february 2019 version doesn't even allow to start the core, it crashes when you try to load the core.
Maybe is the combination with RA version what is causing the crash?

A test we could try is try to load the game from console (with the most recent release), if you give me the commands I can try to load the game from bios screen and see what happen.

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

Which version of RA do you have? I compiled against v1.8.9.
I don't think you can load a game file once the core is started.

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

I mean, technically it should be possible because the libretro API allows that, but I don't think you can do that from RA.

@cucholix
Copy link
Author

I'm using 1.8.9 too, it's weird because I made a build as old as 2018 few commits after Switch/libnx support and theodore keeps crashing, that's why I though that maybe it could be a problem with the RA version we are compiling against (1.8.9), since in 2018 RA side suffered many changes...

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

Could you try to clean install an older version from https://buildbot.libretro.com/stable/ ?
The oldest version including the theodore core is this one: https://buildbot.libretro.com/stable/1.7.6/nintendo/switch/libnx/

@Ploggy
Copy link
Contributor

Ploggy commented Jun 28, 2020

I'm having the same issue (using latest core build from the updater) Loading a .Sap rom.
Its possible to Start Core, which brings up the T08 Thomson screen. But theres no way to load a game from that screen so thats as far as it gets.
Same game loads fine from PC version of RA.

I noticed "Auto run game" is disabled by default in the core's options (enabling it does fix the issue tho)

I tried the 1.7.6 version linked above.. loading a game boots to the TO8 Thomson screen but joycon buttons are unresponsive although the switch touchscreen works so its possible to tap the screen to boot thea game :)

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

Could you try the different versions to find the first one that is not working?

@cucholix
Copy link
Author

cucholix commented Jun 28, 2020

For me 1.7.8 is the first one that crash when try to load content, 1.7.7 works fine apparently but you don't have button response, also I get this image in docked mode:
photo_2020-06-28_16-41-02

@Zlika
Copy link
Owner

Zlika commented Jun 28, 2020

Version 1.7.7 was released on May 10th 2019. From this date, I only made a few PS2 specific changes in the code, so I really don't understand what can be the problem.
I also don't understand why the buttons are not responding on "working" versions. Were you ever able to correctly use this core on Switch?
Do you find similar problems with other cores?

@cucholix
Copy link
Author

cucholix commented Jun 28, 2020

The not working buttons was a problem with all the homebrew apps, it was due Nintendo changing the way HID was handled in older firmwares, but it's unrelated to your code, it's because the 1.7.7 RA version was too old and didn't had the HID fix in place.

So to your question, yes, I was able to correctly use theodore on Switch when it was using older firmware, older RA, etc...
I've audit every core on Switch and find this issue only on theodore (well except blueMSX that has been broken forever but we at last have fmsx as alternative)

@cucholix
Copy link
Author

cucholix commented Jun 28, 2020

I was wrong, 1.7.6 was the last working build, I can load games just fine, and the cursor works (via touchscreen), still you can't play because the buttons don't respond (old RA running on newest Switch firmware).
photo_2020-06-28_17-41-31

@cucholix
Copy link
Author

cucholix commented Jun 29, 2020

Here are the crash reports that atmosphere throw me, not sure why they are 2, I'm using latest theodore version as 29-06-2020.
01593462778_0100c1300bbc6000.log
01593462779_0100c1300bbc6000.log

@cucholix
Copy link
Author

cucholix commented Jul 7, 2020

The core is working now with build from 7-7-20
👍

@cucholix cucholix closed this as completed Jul 7, 2020
Zlika added a commit that referenced this issue Jul 8, 2020
@Zlika
Copy link
Owner

Zlika commented Jul 8, 2020

The bug should be fixed by 04572cb , 94c2920 and a2f469a.

@Zlika
Copy link
Owner

Zlika commented Jul 9, 2020

Thank you very much @cucholix for reporting and then helping me locate and fix this nasty bug.
The root problem was that on Nintendo Switch it seems that you cannot have two file handles on the same file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants