Skip to content

Add WebOS platform port - #450

Open
SankarRealm wants to merge 25 commits into
ButterscotchRunner:mainfrom
SankarRealm:webos-port
Open

SankarRealm wants to merge 25 commits into
ButterscotchRunner:mainfrom
SankarRealm:webos-port

Conversation

@SankarRealm

Copy link
Copy Markdown

WebOS port

Adds native webOS support to Butterscotch.

Features

  • Native webOS SDL2/OpenGL ES backend
  • ARM EABI5 build using the webOS SDK
  • Controller and analog stick support
  • webOS build instructions
  • Ares IPK packaging/install workflow

Testing

  • Builds successfully with the webOS SDK/webOS Brew SDK
  • Tested on webOS 23

Known issues

  • Controller required
  • The B button currently triggers the webOS Back action
  • Further controller/game testing is needed

Development note

This port was developed with significant assistance from ChatGPT as a proof of concept. It was used to help understand the existing platform ports, adapt the code to webOS, troubleshoot the webOS SDK/CMake/toolchain, and debug the implementation.

@Un1q32

Un1q32 commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

All new ports should use the new system, look at the vita port for reference.

@SankarRealm

Copy link
Copy Markdown
Author

All new ports should use the new system, look at the vita port for reference.

will do, thanks.

@leap0x7b leap0x7b mentioned this pull request Aug 31, 2026
Comment thread CMakeLists.txt Outdated
Comment thread CMakeLists.txt Outdated
Comment thread CMakeLists.txt Outdated
Comment thread README.md
Comment thread CMakeLists.txt Outdated
Comment thread CMakeLists.txt Outdated
@cobaltgit

Copy link
Copy Markdown
Collaborator

Will running the build for webOS with the toolchain just spit out an IPK?

@Un1q32

Un1q32 commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Add a CI workflow for it

@SankarRealm

Copy link
Copy Markdown
Author

Will running the build for webOS with the toolchain just spit out an IPK?

Packaging it as an IPK requires the Ares tools

@cobaltgit

Copy link
Copy Markdown
Collaborator

I'm trying to push a CI workflow to your remote branch

@SankarRealm

Copy link
Copy Markdown
Author

I'm trying to push a CI workflow to your remote branch

do I need to give you any permissions to the branch?

@cobaltgit

cobaltgit commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

"Allow edits from maintainers" option?

@cobaltgit

Copy link
Copy Markdown
Collaborator
/home/runner/work/Butterscotch/Butterscotch/src/input_recording.c:231:5: error: ignoring return value of ‘fwrite’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result]
  231 |     fwrite(output, 1, JsonWriter_getLength(&w), file);

Welcome to gcc -Werror

@SankarRealm

Copy link
Copy Markdown
Author
/home/runner/work/Butterscotch/Butterscotch/src/input_recording.c:231:5: error: ignoring return value of ‘fwrite’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result]
  231 |     fwrite(output, 1, JsonWriter_getLength(&w), file);

Welcome to gcc -Werror

what does this mean though?

@cobaltgit

cobaltgit commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

So far so good, you able to test the ipk that the CI workflow outputs? I don't happen to have any webOS TVs or whatnot

@SankarRealm

SankarRealm commented Sep 1, 2026

Copy link
Copy Markdown
Author

So far so good, you able to test the ipk that the CI workflow outputs? I don't happen to have any webOS TVs or whatnot

yup all good it ran. Can i add my own readme in src/webos like basic stuff on where to keep the game files and the app's location in the device.

@cobaltgit

Copy link
Copy Markdown
Collaborator

So far so good, you able to test the ipk that the CI workflow outputs? I don't happen to have any webOS TVs or whatnot

yup all good it ran. Can i add my own readme in src/webos like basic stuff on where to keep the game files and the app's location in the device.

What do you wanna add? I can help put it in when it's merged in the notes section for the webos platform download

@Un1q32

Un1q32 commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

yup all good it ran. Can i add my own readme in src/webos like basic stuff on where to keep the game files and the app's location in the device.

Just add an entry to the consoles table in the readme that has your required info, right below vita and switch.

@cobaltgit

cobaltgit commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Upstream merged, you can do that now, probably do it in the Other table?

@cobaltgit

Copy link
Copy Markdown
Collaborator

Yay, gets my seal of approval

@cobaltgit

Copy link
Copy Markdown
Collaborator

Are you compiling against SDL-webos?

@cobaltgit

Copy link
Copy Markdown
Collaborator

Got me thinking about porting this to Tizen..

@SankarRealm

Copy link
Copy Markdown
Author

Are you compiling against SDL-webos?

yes mine came with webosbrew sdk and the version matches....so i guess

@cobaltgit

Copy link
Copy Markdown
Collaborator

Ah okay, just wondering about that b-button issue. Seems you need a partner cert to build native libraries on Tizen, so best we could do is base it off the webassembly port

@SankarRealm

Copy link
Copy Markdown
Author

Got me thinking about porting this to Tizen..

Im sure it would work as far as I know tizen's sdk provides sdl2, but idk how compatible it is.

@SankarRealm

Copy link
Copy Markdown
Author

Ah okay, just wondering about that b-button issue. Seems you need a partner cert to build native libraries on Tizen, so best we could do is base it off the webassembly port

in case of b-button i was too lazy to fix and we can map other buttons inside the game anyway so I thought I would work on it later. haha im sure webOS allows anything then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants