Skip to content

Tic-80 Integration #152

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

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

retrogames-tha
Copy link

Integration of Tic-80 with custom Arcade-Bomber.tic game

@MatPoliquin
Copy link
Collaborator

MatPoliquin commented Jun 5, 2025

When I run "pip3 install -e ." with this PR I get the following error log:

  -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
  CMake Error at CMakeLists.txt:167 (message):
    Could not find Makefile.
  Call Stack (most recent call first):
    CMakeLists.txt:246 (add_core)
  
  
  -- Configuring incomplete, errors occurred!
  Traceback (most recent call last):
    File "/home/mat/vretro/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
      main()
    File "/home/mat/vretro/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
      json_out["return_val"] = hook(**hook_input["kwargs"])
    File "/home/mat/vretro/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 303, in build_editable
      return hook(wheel_directory, config_settings, metadata_directory)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 468, in build_editable
      return self._build_with_temp_dir(
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 404, in _build_with_temp_dir
      self.run_setup()
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 512, in run_setup
      super().run_setup(setup_script=setup_script)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 317, in run_setup
      exec(code, locals())
    File "<string>", line 85, in <module>
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/__init__.py", line 115, in setup
      return distutils.core.setup(**attrs)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 186, in setup
      return run_commands(dist)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
      dist.run_commands()
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1002, in run_commands
      self.run_command(cmd)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 1102, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 139, in run
      self._create_wheel_file(bdist_wheel)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 349, in _create_wheel_file
      files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 272, in _run_build_commands
      self._run_build_subcommands()
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 299, in _run_build_subcommands
      self.run_command(name)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 1102, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-uge8dlwp/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
      cmd_obj.run()
    File "<string>", line 39, in run
    File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['cmake', '.', '-G', 'Unix Makefiles', '', '-DPYEXT_SUFFIX=.cpython-310-x86_64-linux-gnu.so', '', '-DPython_ROOT_DIR=/home/mat/vretro/bin', '-DPython_FIND_STRATEGY=LOCATION', '-DPython_EXECUTABLE=/home/mat/vretro/bin/python', '-DPython_INCLUDE_DIR=/usr/include/python3.10', '-DPython_LIBRARY=/home/mat/vretro/lib/python3.10/site-packages']' returned non-zero exit status 1.
  [end of output]

@MatPoliquin MatPoliquin self-assigned this Jun 5, 2025
@MatPoliquin MatPoliquin added the enhancement New feature or request label Jun 5, 2025
@retrogames-tha
Copy link
Author

We created an own Makefile to build the project.
It works if you just pull it with all submodules (for Tic-80) and just use make

@MatPoliquin
Copy link
Collaborator

MatPoliquin commented Jun 9, 2025

Sorry for the late reply, very busy with work. I managed to reproduce the issue with the loading and saving of states and looking at the code it seems implementing these functions properly will be quite tricky compared to other emulators.

One hack would be to make a special version of the game which loads directly into the start of the level but that would mean you need to a special version of the game for every state you want.

EDIT:
Seems some people have tried but did not succeed:
https://github.com/nesbox/TIC-80/issues

@retrogames-tha
Copy link
Author

Hey, thank you very much for taking a look at our issue. We also came to the conclusion that it would be better to solve the problem inside the game. For our project, we created a loop in the game code. That works as a workaround for us, but isn't the smoothest way, of course.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants