diff --git a/.github/workflows/build-ed64-example-rom.yml b/.github/workflows/build-ed64-example-rom.yml index 607a9776..677933a9 100644 --- a/.github/workflows/build-ed64-example-rom.yml +++ b/.github/workflows/build-ed64-example-rom.yml @@ -1,6 +1,14 @@ name: Build ED64 Example ROM -on: [push, pull_request] +on: [push] #, pull_request] +# on: +# push: +# paths: +# - '/**/ED64-XIO/*' +# pull_request: +# paths: +# - '/**/ED64-XIO/*' + jobs: build: runs-on: ubuntu-latest @@ -10,27 +18,75 @@ jobs: steps: - uses: actions/checkout@v2 name: Checkout Code + with: + path: ${{ github.workspace }} + - name: Checkout libdragon repo + uses: actions/checkout@v2 + with: + repository: dragonminded/libdragon + path: ${{ github.workspace }}/ED64-XIO/libdragon/ + ref: '89d17be8563a44a9b95873d436832a1222757cdc' - - name: Install Libdragon container + + - name: check current work dir + working-directory: ${{ github.workspace }} run: | - sudo npm install -g libdragon - libdragon make - libdragon make install - libdragon make tools-install - # libdragon init - # libdragon install + ls + echo "switch to ED64-XIO" + cd ./ED64-XIO + ls + echo "switch to libdragon" + cd ./libdragon/ + ls + echo "switch back to ED64-XIO" + cd .. + ls - name: Setup Build environment + working-directory: ${{ github.workspace }} run: | - cd ${{ github.workspace }}/ED64-XIO/ - mkdir bin && mkdir bin/release && mkdir bin/debug && mkdir obj - libdragon start + ls + mkdir -p ED64-XIO/bin && mkdir -p ED64-XIO/bin/release && mkdir -p ED64-XIO/bin/debug && mkdir obj + + - name: patch libdragon make (workaround ignore warnings as errors) + working-directory: ${{ github.workspace }}/ED64-XIO/libdragon + run: | + ls + sed -z -i.bak 's/ -Wall -Werror / /' ./Makefile + + + + - name: Buid libdragon and ROM + working-directory: ${{ github.workspace }}/ED64-XIO + run: >- + docker run + --mount type=bind,source=$(pwd),target=/libdragon + --workdir=/libdragon + ghcr.io/dragonminded/libdragon:latest + echo "ED64-XIO dir" && ls && + cd libdragon && + echo "libdragon dir" && ls && + make libdragon && sudo make install && + make tools && sudo make tools-install && + cd .. && + echo "ED64-XIO dir" && ls && + make ${{ matrix.releasetype }} - - name: Build ROM - run: cd ${{ github.workspace }}/ED64-XIO/ && libdragon make ${{ matrix.releasetype }} + # sudo npm install -g libdragon + # libdragon init + # #libdragon exec bash -c 'export N64_CFLAGS="-DNDEBUG"' + # #libdragon exec bash -c N64_CFLAGS="-DNDEBUG" + # #N64_CFLAGS="-DNDEBUG" && libdragon install + # sed -z -i.bak 's/CFLAGS+=$(N64_CFLAGS) /CFLAGS+=$(N64_CFLAGS) -DNDEBUG /' ./libdragon/Makefile + # sed -z -i.bak 's/#define assertf(expr, msg, ...) ({ })/#define assertf(expr, msg, ...) ({ (void)(expr); })/' ./libdragon/include/debug.h + # sed -z -i.bak '1s/^/#undef NDEBUG\n/' ./libdragon/src/debug.c + # sed -z -i.bak 's/bool direction = (out<=in);/bool direction = (out<=in); (void)direction;/' ./libdragon/src/audio/libxm/context.c + # sed -z -i.bak 's/assert(sz == dec_size);/assert(sz == dec_size); (void)sz;/' ./libdragon/src/audio/libxm/play.c + # libdragon install + # libdragon start - name: Upload Artifact uses: actions/upload-artifact@v1.0.0 with: name: ED64-XIO-SAMPLE_N64_ROM-${{ matrix.releasetype }} - path: ${{ github.workspace }}/ED64-XIO/bin/${{ matrix.releasetype }}/ED64-XIO-SAMPLE.v64 + path: ${{ github.workspace }}/**/ED64-XIO/bin/${{ matrix.releasetype }}/ED64-XIO-SAMPLE.v64 diff --git a/.github/workflows/build-usb64-linux.yml b/.github/workflows/build-usb64-linux.yml index 74687111..6c079963 100644 --- a/.github/workflows/build-usb64-linux.yml +++ b/.github/workflows/build-usb64-linux.yml @@ -1,6 +1,13 @@ name: Build Linux Usb64 App -on: [push, pull_request] +on: + push: + paths: + - '/**/usb64/*' + pull_request: + paths: + - '/**/usb64/*' + jobs: build: runs-on: ubuntu-latest diff --git a/.github/workflows/build-usb64-windows.yml b/.github/workflows/build-usb64-windows.yml index 79743e3f..c543d600 100644 --- a/.github/workflows/build-usb64-windows.yml +++ b/.github/workflows/build-usb64-windows.yml @@ -1,6 +1,13 @@ name: Build Windows Usb64 App -on: [push, pull_request] +on: + push: + paths: + - '/**/usb64/*' + pull_request: + paths: + - '/**/usb64/*' + jobs: build: runs-on: windows-latest diff --git a/ED64-XIO/Makefile b/ED64-XIO/Makefile index 0c9fbe7c..2ef93bf1 100644 --- a/ED64-XIO/Makefile +++ b/ED64-XIO/Makefile @@ -1,5 +1,5 @@ PROG_NAME = ED64-XIO-SAMPLE -ROMSIZE = 256K +ROMSIZE = 1048576B ifdef SystemRoot diff --git a/ED64-XIO/ff/diskio.h b/ED64-XIO/ff/diskio.h index fd84b0e6..ca5092e9 100644 --- a/ED64-XIO/ff/diskio.h +++ b/ED64-XIO/ff/diskio.h @@ -1,5 +1,5 @@ /*-----------------------------------------------------------------------/ -/ Low level disk interface modlue include file (C)ChaN, 2019 / +/ Low level disk interface module include file (C)ChaN, 2019 / /-----------------------------------------------------------------------*/ #ifndef _DISKIO_DEFINED diff --git a/ED64-XIO/src/bios.c b/ED64-XIO/src/bios.c index a69d4f91..532aeafd 100644 --- a/ED64-XIO/src/bios.c +++ b/ED64-XIO/src/bios.c @@ -121,7 +121,7 @@ void ed64_bios_init() { ed64_bios_rom_savetype_set(ED64_SAVE_OFF); /* Always successful for now */ - return 0; + //return 0; } /** diff --git a/ED64-XIO/src/sys.c b/ED64-XIO/src/sys.c index 6d69abb7..9b8c7da7 100644 --- a/ED64-XIO/src/sys.c +++ b/ED64-XIO/src/sys.c @@ -165,12 +165,12 @@ void sys_n64_pi_read(void *ram, unsigned long pi_address, unsigned long len) { data_cache_hit_writeback_invalidate(ram, len); disable_interrupts(); - while (dma_busy()); + dma_wait(); IO_WRITE(PI_STATUS_REG, 3); PI_regs->ram_address = ram; PI_regs->pi_address = pi_address; //(pi_address | 0x10000000) & 0x1FFFFFFF; PI_regs->write_length = len - 1; - while (dma_busy()); + dma_wait(); enable_interrupts(); } @@ -182,12 +182,12 @@ void sys_n64_pi_write(void *ram, unsigned long pi_address, unsigned long len) { data_cache_hit_writeback(ram, len); disable_interrupts(); - while (dma_busy()); + dma_wait(); IO_WRITE(PI_STATUS_REG, 3); PI_regs->ram_address = ram; PI_regs->pi_address = pi_address; //(pi_address | 0x10000000) & 0x1FFFFFFF; PI_regs->read_length = len - 1; - while (dma_busy()); + dma_wait(); enable_interrupts();