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

Submit rvspoc P2425 reports #3

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

CatMe0w
Copy link

@CatMe0w CatMe0w commented Aug 2, 2024

Team name: me0wall

Environment Setup

As I only learned about the competition the day before it ended, I didn't have time to wait for the development machine authorization, so I completed all the work in qemu.

The OS is Debian trixie/sid, with a kernel version of 6.9.12-riscv64.

qemu version is 9.0.50 and the host environment is Windows x86_64.

Install dependencies:

apt-get -y install build-essential libxkbcommon-dev zlib1g-dev libfreetype6-dev libegl1-mesa-dev libgles2-mesa-dev libgbm-dev libavcodec-dev libsdl2-dev libsdl-image1.2-dev libxml2-dev yasm libcurl4-openssl-dev libpcap-dev libx11-xcb-dev

Build

RetroArch

No modifications needed, just compile directly.

git clone https://github.com/CatMe0w/rvspoc-P2425-RetroArch
cd rvspoc-P2425-RetroArch
./configure
make clean
make

ppsspp

No modifications needed, just compile directly.

git clone https://github.com/CatMe0w/libretro-super
cd libretro-super
./libretro-fetch.sh ppsspp
./libretro-build.sh ppsspp

flycast

I have completed the initial adaptation for riscv32 and riscv64, and it can be compiled and run.

git clone https://github.com/CatMe0w/libretro-super
cd libretro-super
./libretro-fetch.sh flycast
./libretro-build.sh flycast

Precompiled binaries have been uploaded to https://github.com/CatMe0w/rvspoc-P2425-RetroArch/releases

Additional Targets

flycast without RetroArch dependency

During the adaptation of flycast, I also completed the adaptation of standalone flycast, which can be compiled and run.

git clone --recursive https://github.com/CatMe0w/flycast
cd flycast
mkdir build
cd build
cmake ..
make

Other RetroArch Cores

These cores can be compiled directly. Since qemu is slow, the cores listed here may continue to be added before the competition ends.

git clone https://github.com/CatMe0w/libretro-super
cd libretro-super
./libretro-fetch.sh mame meson mesons melonds nestopia snes9x mgba mednafen_vb mednafen_wswan mednafen_supafaust mednafen_pcfx mednafen_saturn mednafen_psx mednafen_psx_hw mednafen_supergrafx mednafen_lynx mednafen_ngp mednafen_gba mednafen_pce mednafen_pce_fast mednafen_psx_hw gambatte mupen64plus_next
./libretro-build.sh mame meson mesons melonds nestopia snes9x mgba mednafen_vb mednafen_wswan mednafen_supafaust mednafen_pcfx mednafen_saturn mednafen_psx mednafen_psx_hw mednafen_supergrafx mednafen_lynx mednafen_ngp mednafen_gba mednafen_pce mednafen_pce_fast mednafen_psx_hw gambatte mupen64plus_next

Where mupen64plus_next uses my adapted fork.


队伍名:me0wall

环境配置

由于本人在结束前一天才了解到比赛,已经来不及等待开发机授权,因此在 qemu 中完成了所有的工作。

所使用的系统为 Debian trixie/sid,内核版本为 6.9.12-riscv64。

qemu 版本为 9.0.50,宿主环境为 Windows x86_64。

安装依赖:

apt-get -y install build-essential libxkbcommon-dev zlib1g-dev libfreetype6-dev libegl1-mesa-dev libgles2-mesa-dev libgbm-dev libavcodec-dev libsdl2-dev libsdl-image1.2-dev libxml2-dev yasm libcurl4-openssl-dev libpcap-dev libx11-xcb-dev

编译

RetroArch

无需改动,直接编译即可。

git clone https://github.com/CatMe0w/rvspoc-P2425-RetroArch
cd rvspoc-P2425-RetroArch
./configure
make clean
make

ppsspp

无需改动,直接编译即可。

git clone https://github.com/CatMe0w/libretro-super
cd libretro-super
./libretro-fetch.sh ppsspp
./libretro-build.sh ppsspp

flycast

我完成了初步的 riscv32 与 riscv64 适配,已经能够通过编译和运行。

git clone https://github.com/CatMe0w/libretro-super
cd libretro-super
./libretro-fetch.sh flycast
./libretro-build.sh flycast

预编译的二进制文件已经上传至 https://github.com/CatMe0w/rvspoc-P2425-RetroArch/releases

额外目标

不依赖 RetroArch 的 flycast

在适配 flycast 时,也一并完成了独立 flycast 的适配,已经能够通过编译和运行。

git clone --recursive https://github.com/CatMe0w/flycast
cd flycast
mkdir build
cd build
cmake ..
make

其他 RetroArch 核心

这些核心可以直接编译。由于 qemu 很慢,此处列出的核心可能在比赛结束前持续追加。

git clone https://github.com/CatMe0w/libretro-super
cd libretro-super
./libretro-fetch.sh mame meson mesons melonds nestopia snes9x mgba mednafen_vb mednafen_wswan mednafen_supafaust mednafen_pcfx mednafen_saturn mednafen_psx mednafen_psx_hw mednafen_supergrafx mednafen_lynx mednafen_ngp mednafen_gba mednafen_pce mednafen_pce_fast mednafen_psx_hw gambatte mupen64plus_next
./libretro-build.sh mame meson mesons melonds nestopia snes9x mgba mednafen_vb mednafen_wswan mednafen_supafaust mednafen_pcfx mednafen_saturn mednafen_psx mednafen_psx_hw mednafen_supergrafx mednafen_lynx mednafen_ngp mednafen_gba mednafen_pce mednafen_pce_fast mednafen_psx_hw gambatte mupen64plus_next

其中 mupen64plus_next 使用我适配的 fork。

@CatMe0w
Copy link
Author

CatMe0w commented Aug 3, 2024

image
image

Running Makaqu Quake 1.5.2 on this flycast port

@shiptux
Copy link

shiptux commented Aug 6, 2024

亲爱的选手,您好。组委会将在近期对本题结果进行验证和公布。

@shiptux
Copy link

shiptux commented Aug 12, 2024

尊敬的参赛选手,您好。
本次锦标赛您所提交的 PR 初步复测结果如 https://github.com/rv2036/rvspoc/blob/main/Results/Verifications/P2425/P2425.md 所示。如有任何异议请回复本条评论。如确认无误请回复 “确认无误”,感谢您的配合。

@CatMe0w
Copy link
Author

CatMe0w commented Aug 12, 2024

从源码编译 Flycast 失败的原因是我在本 PR 的报告中起初遗漏了 --recursive 参数,但仓库中的编译命令是正确的,产物应与我的预编译二进制一致,可以运行游戏。

除此之外应该没有问题。

另:RetroArch 核心失败未能找到修复方式,该故障可能无法从 Flycast 或 RetroArch 的代码库中修复。

@shiptux
Copy link

shiptux commented Aug 12, 2024

Flycast

感谢选手的回复。建议您在比赛结束后申请 SG2042 访问权限,在 SG2042 上继续测试和后续部分工作,如需要实机则可以通过 https://github.com/rv2036/riscv-board-wandering 申请用于调试和测试

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

Successfully merging this pull request may close these issues.

2 participants