Skip to content

Conversation

@WizzardSK
Copy link
Contributor

@WizzardSK WizzardSK commented Dec 30, 2025

Added generator file for original TIC-80 binary that user can add to "bios/tic80" folder just like pico-8 or voxatron binary. Tested and it works. Also needed to add an es_systems.cfg entry:

<emulator name="nesbox">
    <cores>
        <core>tic80_official</core>
    </cores>
</emulator>

edit: updated PR to include regular package to build tic80 from source

@dmanlfc
Copy link
Collaborator

dmanlfc commented Dec 31, 2025

this does nothing as you haven't included the standalone binary or setup the system for it to be called.

@dmanlfc dmanlfc marked this pull request as draft December 31, 2025 23:23
@WizzardSK
Copy link
Contributor Author

WizzardSK commented Dec 31, 2025

I was inspired by pico8 and voxatron wiki pages. It needs just tic80 binary in bios/tic80 folder (x64 version MD5 is c95e23cb995e058d9a7e372a65d8c554)

It may be extracted from https://github.com/nesbox/TIC-80/releases/download/v1.1.2837/tic80-v1.1-linux.deb

This all may be mentioned in wiki page after this prerequisite is merged.

@dmanlfc
Copy link
Collaborator

dmanlfc commented Jan 1, 2026

i don't want it added like that. lexaloffle from memory are paid binaries and are restricted to the binary architecture type.
tic-80 has source code & can be compiled - https://github.com/nesbox/TIC-80
bring it in as a proper package or not at all.

@WizzardSK WizzardSK marked this pull request as ready for review January 1, 2026 11:00
@WizzardSK
Copy link
Contributor Author

Ok, I tried to update it. This is my first emulator addition, so hope it will work.

@WizzardSK WizzardSK changed the title Nesbox generator for official TIC-80 binary TIC-80 standalone emulator with "surf" option support Jan 1, 2026
@dmanlfc
Copy link
Collaborator

dmanlfc commented Jan 1, 2026

It's a cmake build system so the package should be cmake not generic. You need to test the compilation and the resulting binary. Also squash your commits.

@WizzardSK
Copy link
Contributor Author

Thank you, I changed generic to cmake package. I was able to build tic80 from master before on my desktop and it worked, surf option too, carts are loading too.
I guess that I need also to build whole Batocera with my changes, right?
Sorry for my number of commits, still learning.

@dmanlfc dmanlfc self-requested a review January 1, 2026 20:16
Copy link
Collaborator

@dmanlfc dmanlfc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

squash your commits

@WizzardSK WizzardSK marked this pull request as draft January 1, 2026 20:42
@WizzardSK WizzardSK marked this pull request as ready for review January 2, 2026 18:16
@WizzardSK
Copy link
Contributor Author

I hope it is OK now, thank you very much for all the help and support.

Copy link
Collaborator

@dmanlfc dmanlfc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remember to squash your commits. git push --force when doing updates

config BR2_PACKAGE_TIC80
bool "tic80"
select BR2_PACKAGE_PIPEWIRE
select BR2_PACKAGE_WAYLAND
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove wayland here

select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_LIBGLVND
select BR2_PACKAGE_LIBGLU
select BR2_PACKAGE_LIBFREEGLUT
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change to `select BR2_PACKAGE_LIBFREEGLUT if BR2_PACKAGE_HAS_LIBGL && BR2_PACKAGE_XORG7

TIC80_SITE = $(call github,nesbox,TIC-80,$(TIC80_VERSION))
TIC80_LICENSE = MIT
TIC80_LICENSE_FILES = https://github.com/nesbox/TIC-80/blob/main/LICENSE
TIC80_DEPENDENCIES = pipewire wayland sdl2 ruby libcurl libglvnd libglu libfreeglut
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove wayland & libfreeglut as we will use them below

TIC80_CONF_OPTS += -DBUILD_WITH_ALL=On
TIC80_CONF_OPTS += -DBUILD_PRO=TRUE
TIC80_CONF_OPTS += -DBUILD_TOUCH_INPUT=ON
TIC80_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this line and the next should be at the start ideally

@WizzardSK WizzardSK marked this pull request as draft January 4, 2026 10:56
Update Config.in

Update nesboxGenerator.py

Update Config.in

Update Config.in

Update tic80.mk

Update tic80.mk

Update nesboxGenerator.py

Update tic80.mk

Update Config.in

Update Config.in

cmake

Update nesboxGenerator.py

Update tic80.mk

Update nesboxGenerator.py

Update Config.in

Update es_systems.yml

Update Config.in

Create tic80.mk

Update Config.in

Rename Config.in to Config.in

Create Config.in

Update Config.in

Update es_systems.yml

Update Config.in

Create __init__.py

Rename package/batocera/core/batocera-configgen/configgen/configgen/generators/nesboxGenerator.py to package/batocera/core/batocera-configgen/configgen/configgen/generators/nesbox/nesboxGenerator.py

Add files via upload
Copy link
Contributor Author

@WizzardSK WizzardSK left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

squashed and updated

@WizzardSK WizzardSK marked this pull request as ready for review January 4, 2026 12:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants