Skip to content
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

Minor fixes #700

Closed
wants to merge 54 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
4e95b9c
rainbow: Add v1.3 support
BrokeStudio Sep 16, 2021
dc41bf3
disable debug emulator logs by default
sgadrat Dec 3, 2021
c0e1b86
rainbow: empty default server config
sgadrat Dec 7, 2021
192fb02
rainbow: updated to latest mapper version
BrokeStudio Dec 23, 2021
123b4d0
rainbow: added AP_GET_CONFIG & AP_SET_CONFIG support
BrokeStudio Dec 27, 2021
68cdbf1
rainbow: update & bugfix
BrokeStudio Dec 27, 2021
26a8354
rainbow: code cleanup
BrokeStudio Dec 28, 2021
01358eb
rainbow: WRAM bugfix in release mode
BrokeStudio Dec 28, 2021
f706cc2
rainbow: esp flag renamed
BrokeStudio Dec 28, 2021
5390f86
rainbow: esp_message_sent flag set on startup/reset
BrokeStudio Jan 19, 2022
18a9a51
rainbow: fix RX thread refusing to exit
sgadrat Jan 20, 2022
488fbd1
rainbow: fix 100% cpu usage
sgadrat Jan 20, 2022
b0ec8d5
rainbow: added register $4105 to automatically read RX/TX FPGA RAM
BrokeStudio Jan 21, 2022
6303875
rainbow: re-organized rainbow files
BrokeStudio Aug 3, 2022
964e614
rainbow: updated commands (WIFI, NETWORK, SERVER)
BrokeStudio Aug 3, 2022
707db9e
rainbow: v2 first commit
BrokeStudio Dec 20, 2022
ccbc0cf
rainbow: sprite extended mode support added
BrokeStudio Dec 21, 2022
67bbb05
rainbow: mega update
BrokeStudio Apr 6, 2023
78703b0
MacOS
sgadrat Apr 6, 2023
230ddc0
Fix CMake build
sgadrat Apr 10, 2023
3f13bd7
rainbow big update
BrokeStudio Jun 7, 2023
5ba8ef3
Fix compilation with GCC
sgadrat Jun 11, 2023
4f2ca7e
rainbow: removed websocket support
BrokeStudio Jun 21, 2023
c3a1b8b
remove dead code
sgadrat Jun 21, 2023
ce0e8e2
fix CMake project
sgadrat Jun 21, 2023
a646ac4
fix overflow checks
sgadrat Jun 21, 2023
fc4e27e
rainbow: cleanner debug log handling
sgadrat Jul 12, 2023
13ed2c4
CI: add build workflow
sgadrat Jul 12, 2023
b5b34a4
sprite ext mode + 4K bankswitch + flash writes + CHR crash
BrokeStudio Jul 25, 2023
9f5c92d
updated Rainbow File System support to match RainbowToolBox
BrokeStudio Jul 25, 2023
4a0fc7a
updated IRQs + added ZPCM + added reset detection
BrokeStudio Aug 1, 2023
0486612
Remove web server
sgadrat Aug 2, 2023
875c0d9
fixed memory editor triggering reset
BrokeStudio Aug 6, 2023
52cb5d3
rainbow: fix mapper version declared as web emulator
sgadrat Aug 9, 2023
3bf9dfd
rainbow: fix minimum wram check
sgadrat Aug 9, 2023
3a7753d
Remove extraneous parenthesis
sgadrat Aug 9, 2023
2b26826
rainbow: started window mode support
BrokeStudio Nov 2, 2023
a4cc481
rainbow: fixed Sprite Extended Mode
BrokeStudio Nov 2, 2023
790bfee
rainbow: renaming
BrokeStudio Nov 2, 2023
74f0f8c
rainbow: removed esp.h
BrokeStudio Nov 2, 2023
f072ae5
rainbow: removed FCEUX mentions in ESP messages
BrokeStudio Nov 2, 2023
26af851
rainbow: try to fix Linux/macOS compilation errors
BrokeStudio Nov 2, 2023
cf1e664
rainbow: cleanup to match as close as possible Mesen version
BrokeStudio Nov 4, 2023
f264c7a
rainbow: fixed FILE_SET_CUR command
BrokeStudio Nov 6, 2023
9826479
rainbow: fixed FILE_WRITE and FILE_APPEND commands
BrokeStudio Nov 6, 2023
f461514
rainbow: code cleaning
BrokeStudio Nov 8, 2023
34b3a90
rainbow: fixed SERVER_SET_SAVED_SETTINGS command
BrokeStudio Nov 8, 2023
145bec6
rainbow: added NETWORK_GET_SCAN_RESULT
BrokeStudio Nov 10, 2023
4e7684f
rainbow: added fill-mode
BrokeStudio Dec 17, 2023
5d154b2
rainbow: added FPGA RAM auto R/W
BrokeStudio Dec 17, 2023
66d7a2b
rainbow: fixed PRG RAM 4K mode issue
BrokeStudio Dec 18, 2023
36316ac
rainbow: added UDP_ADDR_POOL_* commands
BrokeStudio Jan 27, 2024
af72b6f
rainbow: Fix typo and indent
sgadrat Jan 31, 2024
e84e9e7
rainbow: no log spam by default
sgadrat Jan 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: build

on:
push:
branches: [ "rainbow-stable", "master" ]
pull_request:
branches: [ "rainbow-stable", "master" ]

env:
# Path to the solution file relative to the root of the project.
SOLUTION_FILE_PATH: vc\vc14_fceux.vcxproj

# Configuration type to build.
# You can convert this to a build matrix if you need coverage of multiple configuration types.
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
BUILD_CONFIGURATION: Release

permissions:
contents: read

jobs:
build-win64:
runs-on: windows-latest

steps:
- uses: actions/checkout@v3

- name: Add MSBuild to PATH
uses: microsoft/[email protected]

- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
run: cd pipelines ; .\win64_build.bat

- uses: actions/upload-artifact@v3
with:
name: fceux-win64
path: vc\fceux-win64.zip

build-win32:
runs-on: windows-latest

steps:
- uses: actions/checkout@v3

- name: Add MSBuild to PATH
uses: microsoft/[email protected]

- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
run: cd pipelines ; .\win32_build.bat

- uses: actions/upload-artifact@v3
with:
name: fceux-win32
path: vc\fceux-win32.zip

build-ubuntu64:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: build
run: pipelines/linux_build.sh

- name: prepare_artifacts
run: mv /tmp/fceux-*.deb /tmp/fceux-ubuntu-x64.deb

- uses: actions/upload-artifact@v3
with:
name: fceux-ubuntu64
path: /tmp/fceux-ubuntu-x64.deb

build-macos:
runs-on: macos-latest

steps:
- uses: actions/checkout@v3

- name: build
run: pipelines/macOS_build.sh

- name: prepare_artifacts
run: mv build/fceux-*.dmg build/fceux-macos.dmg

- uses: actions/upload-artifact@v3
with:
name: fceux-macos
path: build/fceux-macos.dmg
1 change: 1 addition & 0 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Table of Contents
* qt5 OR qt6 - (qt version >= 5.11 recommended)
- Required Qt Modules: Widgets and OpenGL
- Optional Qt Modules: Help
* libcurl - Required for Rainbow mapper
* liblua5.1 (optional) - Will statically link internally if the system cannot provide this.
* libx264 (optional) - H.264 video encoder for avi recording (recommended)
* libx265 (optional) - H.265 video encoder for avi recording (recommended)
Expand Down
6 changes: 6 additions & 0 deletions pipelines/linux_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,12 @@ echo 'Install Check Dependency cppcheck'
echo '****************************************'
sudo apt-get --assume-yes install cppcheck

# Install libcurl-dev
echo '****************************************'
echo 'Install Dependency libcurl-dev (libcurl4-gnutls-dev)'
echo '****************************************'
sudo apt-get --assume-yes install libcurl4-gnutls-dev

echo '**************************'
echo '*** Building Project ***'
echo '**************************'
Expand Down
127 changes: 127 additions & 0 deletions pipelines/macOS_build_rainbow.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
#!/bin/bash

echo ' MacOS Build !!! '
id
pwd
uname -a
sw_vers

# Oldest version of macOS that will be able to run, in two numbers, example 12.2 (default: let cmake choose the version)
MACOS_MIN_VERSION=

QT_MAJOR=5;
QT_PKGNAME=qt$QT_MAJOR;
FCEUX_VERSION_MAJOR=2
FCEUX_VERSION_MINOR=5
FCEUX_VERSION_PATCH=0
SDL2_VERSION=2.0.14

SCRIPT_DIR=$( cd $(dirname $BASH_SOURCE[0]); pwd );

NPROC=`getconf _NPROCESSORS_ONLN`;
echo "Number of Processors: $NPROC";

INSTALL_PREFIX=/tmp/fceux

# Clean build and packaging directories
sudo rm -rf build;
sudo rm -rf $INSTALL_PREFIX/fceux.app;

# Remove windows specific DLLs so that they don't get installed
find output -name *.dll -exec rm -f {} \;

gcc --version

echo '****************************************'
echo 'Install Dependency sdl2'
echo '****************************************'
brew install sdl2
BREW_SDL2=$?
echo "brew install sdl2 Return: $BREW_SDL2";
#sleep 10
if [ $BREW_SDL2 != 0 ]; then
echo "brew install sdl2 FAILED: Attempted to build from $SDL2_VERSION release source";
curl -o SDL2-$SDL2_VERSION.tar.gz https://www.libsdl.org/release/SDL2-$SDL2_VERSION.tar.gz
tar -xvf SDL2-$SDL2_VERSION.tar.gz
cd SDL2-$SDL2_VERSION;
./configure --without-x --enable-hidapi
make -j $NPROC
make install
cd ..
fi

echo '****************************************'
echo "Install Dependency $QT_PKGNAME"
echo '****************************************'
brew install $QT_PKGNAME

echo '****************************************'
echo 'Install Dependency minizip'
echo '****************************************'
brew install minizip

echo '****************************************'
echo 'Install Optional Dependency x264'
echo '****************************************'
brew install x264

echo '****************************************'
echo 'Install Optional Dependency x265'
echo '****************************************'
brew install x265

echo '****************************************'
echo 'Install Optional Dependency ffmpeg'
echo '****************************************'
brew install ffmpeg

#brew install zlib # macOS provides zlib, brew half-install another version to avoid conflicts, but it is useless in our case

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:

ls -ltr $HOME/Qt;

if [ $QT_MAJOR == 6 ]; then
export Qt6_DIR=`brew --prefix qt6`;
echo "Qt6_DIR=$Qt6_DIR";
Qt_DIR=$Qt6_DIR;
USE_QT6=1;
else
export Qt5_DIR=`brew --prefix qt5`;
echo "Qt5_DIR=$Qt5_DIR";
Qt_DIR=$Qt5_DIR;
USE_QT6=0;
fi
#ls $Qt_DIR;

PATH=$PATH:$Qt_DIR/bin
echo '**************************'
echo '*** Building Project ***'
echo '**************************'
./scripts/unix_make_docs.sh;
mkdir build;
cd build;

deploy_option=
if [ ! -z "$MACOS_MIN_VERSION" ]; then
deploy_option="-DCMAKE_OSX_DEPLOYMENT_TARGET=$MACOS_MIN_VERSION"
fi

cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
$deploy_option \
-DCMAKE_OSX_DEPLOYMENT_TARGET=$MACOS_MIN_VERSION \
-DCMAKE_PREFIX_PATH=$Qt_DIR \
-DCMAKE_PROJECT_VERSION_MAJOR=$FCEUX_VERSION_MAJOR \
-DCMAKE_PROJECT_VERSION_MINOR=$FCEUX_VERSION_MINOR \
-DCMAKE_PROJECT_VERSION_PATCH=$FCEUX_VERSION_PATCH \
-DCPACK_PACKAGE_VERSION_MAJOR=$FCEUX_VERSION_MAJOR \
-DCPACK_PACKAGE_VERSION_MINOR=$FCEUX_VERSION_MINOR \
-DCPACK_PACKAGE_VERSION_PATCH=$FCEUX_VERSION_PATCH \
-DQT6=$USE_QT6 \
.. || exit 1
make -j $NPROC || exit 1
#sudo make install || exit 1 # make install is already run by cpack
sudo cpack -G DragNDrop || exit 1
30 changes: 27 additions & 3 deletions pipelines/qwin64_build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
set PROJECT_ROOT=%~dp0..
set CWD=%CD%

call "C:\Qt\5.15\msvc2019_64\bin\qtenv2.bat"
REM call "C:\Qt\6.0\msvc2019_64\bin\qtenv2.bat"
call "C:\Qt\5.15.0\msvc2019_64\bin\qtenv2.bat"
::call "C:\Qt\6.0\msvc2019_64\bin\qtenv2.bat"
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"

cd /d %CWD%
Expand Down Expand Up @@ -48,9 +48,33 @@ set LIBARCHIVE_INSTALL_PREFIX=%CD%
set PUBLIC_RELEASE=0
IF DEFINED FCEU_RELEASE_VERSION (set PUBLIC_RELEASE=1)

if exist curl\ (
goto skipCURL
)

curl -s -LO https://curl.se/download/curl-7.79.0.zip

REM rmdir /q /s curl

powershell -command "Expand-Archive" curl-7.79.0.zip .

cd curl-7.79.0/winbuild
set RTLIBCFG=static
nmake /f Makefile.vc mode=static debug=no
cd ../..

mkdir curl
xcopy "curl-7.79.0/builds/libcurl-vc-x64-release-static-ipv6-sspi-schannel/include" "curl/include" /E /I
xcopy "curl-7.79.0/builds/libcurl-vc-x64-release-static-ipv6-sspi-schannel/lib" "curl/lib" /E /I
rmdir curl-7.79.0 /S /Q

:skipCURL

set CURL_INSTALL_PREFIX=%CD%

REM cmake -h
REM cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DSDL_INSTALL_PREFIX=%SDL_INSTALL_PREFIX% ..
cmake -DQT6=0 -DPUBLIC_RELEASE=%PUBLIC_RELEASE% -DSDL_INSTALL_PREFIX=%SDL_INSTALL_PREFIX% -DLIBARCHIVE_INSTALL_PREFIX=%LIBARCHIVE_INSTALL_PREFIX% -DUSE_LIBAV=1 -DFFMPEG_INSTALL_PREFIX=%FFMPEG_INSTALL_PREFIX% -G"Visual Studio 16" -T"v142" ..
cmake -DQT6=0 -DPUBLIC_RELEASE=%PUBLIC_RELEASE% -DSDL_INSTALL_PREFIX=%SDL_INSTALL_PREFIX% -DUSE_LIBAV=1 -DFFMPEG_INSTALL_PREFIX=%FFMPEG_INSTALL_PREFIX% -DCURL_INSTALL_PREFIX=%CURL_INSTALL_PREFIX% -G"Visual Studio 16" -T"v142" ..

REM nmake
msbuild /m fceux.sln /p:Configuration=Release
Expand Down
10 changes: 10 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,14 @@ if(WIN32)
#add_definitions( /wd4018 ) # Integer comparison sign mismatch warnings
include_directories( ${SDL_INSTALL_PREFIX}/SDL2/include )
include_directories( ${LIBARCHIVE_INSTALL_PREFIX}/libarchive/include )
include_directories( ${CURL_INSTALL_PREFIX}/curl/include )
include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/drivers/win/zlib )
set( OPENGL_LDFLAGS OpenGL::GL )
set( SDL2_LDFLAGS ${SDL_INSTALL_PREFIX}/SDL2/lib/x64/SDL2.lib )
set( LIBARCHIVE_LDFLAGS ${LIBARCHIVE_INSTALL_PREFIX}/libarchive/lib/archive.lib )
set( CURL_LIBRARIES ${CURL_INSTALL_PREFIX}/curl/lib/libcurl_a.lib )
set( SYS_LIBS wsock32 ws2_32 vfw32 Htmlhelp )
set( CURL_SYS_LIBS Normaliz Wldap32 Crypt32 advapi32 ) #ws2_32
set(APP_ICON_RESOURCES_WINDOWS ${CMAKE_SOURCE_DIR}/icons/fceux.rc )

if ( ${USE_LIBAV} )
Expand Down Expand Up @@ -86,6 +89,7 @@ else(WIN32)
find_package(PkgConfig REQUIRED)
find_package(OpenGL REQUIRED)
find_package(ZLIB REQUIRED)
find_package(CURL REQUIRED)

add_definitions( -Wall -Wno-write-strings -Wno-parentheses -Wno-unused-local-typedefs -fPIC )
#add_definitions( -Wno-sign-compare ) # Integer comparison sign mismatch warnings
Expand Down Expand Up @@ -201,6 +205,7 @@ else(WIN32)
set( SYS_LIBS -lrt -lpthread -ldl)
endif()
endif()
set( CURL_SYS_LIBS )

endif(WIN32)

Expand Down Expand Up @@ -498,6 +503,9 @@ set(SRC_CORE
${CMAKE_CURRENT_SOURCE_DIR}/boards/vrc7p.cpp
${CMAKE_CURRENT_SOURCE_DIR}/boards/yoko.cpp
${CMAKE_CURRENT_SOURCE_DIR}/boards/inx007t.cpp
${CMAKE_CURRENT_SOURCE_DIR}/boards/RNBW/pping.c
${CMAKE_CURRENT_SOURCE_DIR}/boards/rainbow_esp.cpp
${CMAKE_CURRENT_SOURCE_DIR}/boards/rainbow.cpp
${CMAKE_CURRENT_SOURCE_DIR}/input/arkanoid.cpp
${CMAKE_CURRENT_SOURCE_DIR}/input/bworld.cpp
${CMAKE_CURRENT_SOURCE_DIR}/input/cursor.cpp
Expand Down Expand Up @@ -671,7 +679,9 @@ target_link_libraries( ${APP_NAME}
${OPENGL_LDFLAGS}
${SDL2_LDFLAGS}
${MINIZIP_LDFLAGS} ${ZLIB_LIBRARIES} ${LIBARCHIVE_LDFLAGS}
${CURL_LIBRARIES}
${LUA_LDFLAGS} ${X264_LDFLAGS} ${X265_LDFLAGS} ${LIBAV_LDFLAGS}
${CURL_SYS_LIBS}
${SYS_LIBS}
)

Expand Down
Loading
Loading