{"id":15424762,"url":"https://github.com/antoniond/ugba-testing","last_synced_at":"2025-04-19T15:38:11.549Z","repository":{"id":77849962,"uuid":"315043621","full_name":"AntonioND/ugba-testing","owner":"AntonioND","description":"Test framework for libugba","archived":false,"fork":false,"pushed_at":"2022-11-15T01:44:52.000Z","size":2188,"stargazers_count":41,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-12T21:44:06.337Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntonioND.png","metadata":{"files":{"readme":"readme.rst","changelog":null,"contributing":null,"funding":null,"license":"licenses/lgpl-3.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-22T13:26:20.000Z","updated_at":"2025-02-07T06:14:40.000Z","dependencies_parsed_at":"2023-04-16T08:04:10.852Z","dependency_job_id":null,"html_url":"https://github.com/AntonioND/ugba-testing","commit_stats":{"total_commits":511,"total_committers":1,"mean_commits":511.0,"dds":0.0,"last_synced_commit":"e6dc2be5674815306c203c6d7342033254fd11c4"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fugba-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fugba-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fugba-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fugba-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntonioND","download_url":"https://codeload.github.com/AntonioND/ugba-testing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249220841,"owners_count":21232421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T17:48:40.949Z","updated_at":"2025-04-16T08:33:08.740Z","avatar_url":"https://github.com/AntonioND.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"UGBA testing infrastructure\n===========================\n\n1. Introduction\n---------------\n\n`libugba`_ is a library for development of GBA games. It can be used to build\nactual GBA game ROMs, but it can also target a regular PC so that it is easier\nto debug the logic in the game. It is written in C.\n\nThis repository contains several examples of how to use each one of the\nsubsystems of the library. All examples are also used as unit tests, and they\nare part of the automated regresion testing system of the library.\n\nThe PC builds of the tests are simply run on the host by passing the program a\nLua script with instructions. The GBA builds are run on `GiiBiiAdvance`_, which\nhas basic support for Lua scripts as well. Ideally, it would test on other\nemulators. The PC builds have some parts of the emulator inside them to simulate\nthe GBA hardware, and it would be a good idea to test the code against a\ndifferent emulator to have a second opinion.\n\n2. Dependencies\n---------------\n\nTo generate PC executables (and to run the tests):\n\n- **GCC**, **Clang**, **MSVC** or another compiler supported by CMake.\n- **CMake 3.15** or later\n- **SDL2 2.0.7** or later (AudioStream support needed)\n- **libpng 1.6** or later (Simplified API support needed): Needed to save PNGs\n  like screenshots and dumps from VRAM debugger windows.\n- **liblua 5.2** or later (Integer support needed): Needed for the Lua\n  interpreter used for the unit tests.\n\nTo generate GBA ROMs you need one of:\n\n- A ``gcc-arm-none-eabi`` toolchain: You can get it from your package manager,\n  or from `Arm's GNU toolchain downloads website`_. In Ubuntu you can just do:\n\n.. code:: bash\n\n    sudo apt install gcc-arm-none-eabi\n\n- `devkitPro`_: You need to install devkitPro following the instructions in the\n  `devkitPro Getting Started guide`_, then follow the instructions in this\n  readme. It comes with its own build of ``gcc-arm-none-eabi``.\n\nThe following projects are integrated as submodules in this repository, and they\nare only used when building the examples, so you don't need to worry about them:\n\n- `UMOD Player`_: For some audio tests.\n- `GiiBiiAdvance`_: To run the GBA ROM version of the unit tests.\n- `SuperFamiconv`_: Graphics converter.\n\n3. Build and run examples on Linux\n----------------------------------\n\nFollow this if you're on Linux or any Linux-like environment (like MinGW or\nCygwin). First, clone this repository along with its submodules:\n\n.. code:: bash\n\n    git clone --recurse-submodules https://github.com/AntonioND/ugba-testing\n    cd ugba-testing\n\nNow, install the dependencies. For example, in Debian or Ubuntu:\n\n.. code:: bash\n\n    sudo apt install libsdl2-dev liblua5.4-dev libpng-dev\n\nIf you haven't installed **devkitPro** previously, use your package manager to\ninstall the following package as well:\n\n.. code:: bash\n\n    sudo apt install gcc-arm-none-eabi\n\nNow, convert the assets by running:\n\n.. code:: bash\n\n    bash assets.sh\n\nThe following will build the library, and examples for the host and for GBA:\n\n.. code:: bash\n\n    mkdir build\n    cd build\n    cmake .. -DCMAKE_BUILD_TYPE=Release\n    make -j`nproc`\n\nIf you aren't using **devkitPro**, you need to add ``-DUSE_DEVKITARM=OFF`` to\nthe ``cmake`` command.\n\nTo override the autodetected location of the cross compiler, you can add\n``-DARM_GCC_PATH=/path/to/folder/`` to the ``cmake`` command.\n\nTo disable the generation of GBA ROMs you can add ``-DBUILD_GBA=OFF``.\n\nFinally, to run the tests, simply do:\n\n.. code:: bash\n\n    ctest\n\n4. Known bugs\n-------------\n\n- Audio tests on the GBA are too unreliable. All the test does is compare the\n  waveform outputted by the emulator with a reference, so any small change in\n  almost any part of the boot or audio code will break the test. Even the\n  difference between debug and release builds is enough to break them. For now,\n  they are disabled, and they are only run on SDL2 builds.\n\n\n.. _Arm's GNU toolchain downloads website: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads\n.. _devkitPro Getting Started guide: https://devkitpro.org/wiki/Getting_Started\n.. _GiiBiiAdvance: https://github.com/AntonioND/giibiiadvance\n.. _UMOD Player: https://github.com/AntonioND/umod-player\n.. _SuperFamiconv: https://github.com/Optiroc/SuperFamiconv\n.. _devkitPro: https://devkitpro.org/\n.. _libugba: https://github.com/AntonioND/libugba\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoniond%2Fugba-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantoniond%2Fugba-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoniond%2Fugba-testing/lists"}