Запустить FC-игру с помощью эмулятора InfoNes на плате разработки visionfive.
См. предыдущую инструкцию: «Инструкция: Verify Firefox для openeuler на visionfive».
В образе openeuler уже есть GCC.
gcc -v
Вывод версии:
gcc version 10.3.1 (GCC)
Для аудиочасти InfoNES нужны компоненты, связанные с ALSA, примерно два: alsa-utils и alsa-lib.
Проверка репозитория:
yum list alsa-utils alsa-lib
Отображение информации об установке:
Installed Packages
alsa-lib.riscv64 1.2.5.1-1.oe2203 @mainline
Available Packages
alsa-utils.riscv64 1.2.2-2.oe2203 mainline
Обнаруживается, что alsa-utils не установлен, поэтому устанавливаем его.
yum install -y alsa-utils
sudo dnf install SDL*
yum list SDL*
Информация об установке:
Installed Packages
SDL.riscv64 1.2.15-38.oe2203 @mainline
SDL-debuginfo.riscv64 1.2.15-38.oe2203 @mainline
SDL-debugsource.riscv64 1.2.15-38.oe2203 @mainline
SDL-devel.riscv64 1.2.15-38.oe2203 @mainline
SDL-help.riscv64 1.2.15-38.oe2203 @mainline
SDL2.riscv64 2.0.12-4.oe2203 @mainline
SDL2-debuginfo.riscv64 2.0.12-4.oe2203 @mainline
SDL2-debugsource.riscv64 2.0.12-4.oe2203 @mainline
SDL2-devel.riscv64 2.0.12-4.oe2203 @mainline
SDL2-static.riscv64 2.0.12-4.oe2203 @mainline
SDL_mixer.riscv64 1.2.12-21.fc33 @@System
SDL_net.riscv64 1.2.8-18.fc33 @System
SDL_sound.riscv64 1.0.3-23.oe2203 @mainline
SDL_sound-debuginfo.riscv64 1.0.3-23.oe2203 @mainline
SDL_sound-debugsource.riscv64 1.0.3-23.oe2203 @mainline
SDL_sound-devel.riscv64 1.0.3-23.oe2203 @mainline
SDL_sound-help.riscv64 1.0.3-23.oe2203 @mainline
wget https://files.cnblogs.com/files/twzy/arm-NES-linux-master.zip
Или
wget https://gitee.com/samuel_yuan/riscv-openeuler-visionfive/raw/master/chapter2-Verify-openeuler-GUI-APP-on-visionfive/arm-NES-linux-master.zip
Распаковка:
unzip -o -d ~/InfoNes arm-NES-linux-master.zip
``` Данный фрагмент текста представляет собой программный код на языке C и описывает работу с клавиатурой. В тексте используются структуры данных, функции и операторы языка C.
В тексте описывается работа с клавиатурным вводом и обработка нажатий клавиш. Текст содержит фрагменты кода, которые определяют значения переменных в зависимости от нажатых клавиш и выполняют определённые действия в соответствии с этими значениями. Также в тексте есть фрагменты кода, связанные с регистрацией клавиатурного ввода и настройкой отображения цветов на экране.
Текст не содержит информации о контексте использования этого кода или его назначении. Для более точного перевода необходимо знать контекст использования этого фрагмента кода. **confmisc.c:1334:(snd_func_refer) error evaluating name**
ALSA lib conf.c:5111:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5599:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM default
snd_pcm_open err
InfoNES: pcm.c:1554: snd_pcm_writei: Assertion `pcm' failed.
Aborted (core dumped)
**Похоже, проблема со звуковой картой, поскольку на плате visionfive нет драйвера I2S, и звуковая карта не была обнаружена, поэтому card 0 не найден.**
### 7.2 Отключение проверки звуковой карты
Измените функции, связанные со звуком, в файле linux/InfoNES_System_Linux.cpp.
```bash
/*===================================================================*/
/* */
/* InfoNES_SoundInit() : Sound Emulation Initialize */
/* */
/*===================================================================*/
void InfoNES_SoundInit( void )
{
sound_fd = 0;
}
/*===================================================================*/
/* */
/* InfoNES_SoundOpen() : Sound Open */
/* */
/*===================================================================*/
int InfoNES_SoundOpen( int samples_per_sync, int sample_rate )
{
return 1;
}
/*===================================================================*/
/* */
/* InfoNES_SoundClose() : Sound Close */
/* */
/*===================================================================*/
void InfoNES_SoundClose( void )
{
if ( sound_fd )
{
close( sound_fd );
}
}
/*===================================================================*/
/* */
/* InfoNES_SoundOutput() : Sound Output 5 Waves */
/* */
/*===================================================================*/
void InfoNES_SoundOutput( int samples, BYTE *wave1, BYTE *wave2, BYTE *wave3, BYTE *wave4, BYTE *wave5 )
{
}
В каталоге InfoNes/arm-NES-linux-master/linux/ выполните команду:
make
Компиляция прошла успешно.
Перейдите в каталог InfoNes/arm-NES-linux-master/linux/.
./InfoNES ~/fc-game/Contra.nes
Появится сообщение:
fb width:1920 height:1080
Запуск можно считать успешным, но на экране нет изображения, это связано с тем, что устройство занято Xfce.
Выйдите из графического интерфейса:
init 3
Снова запустите игру, игра отображается нормально, и ею можно нормально управлять. (Игра начинается с enter, A/B кнопки соответствуют O/P кнопкам, управление направлением AWSD).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )