1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/samuel_yuan-riscv-openeuler-visionfive

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Verify-InfoNes-for-openeuler-on-visionfive.md 8.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 07:29 33f4fa7

Инструкция: Verify InfoNes для openeuler на visionfive


1. Цель

Запустить FC-игру с помощью эмулятора InfoNes на плате разработки visionfive.

2. Установка системы

См. предыдущую инструкцию: «Инструкция: Verify Firefox для openeuler на visionfive».

3. Установка среды разработки

3.1. Установка GCC

В образе openeuler уже есть GCC.

gcc -v

Вывод версии:

gcc version 10.3.1 (GCC)

3.2. Установка компонентов ALSA

Для аудиочасти 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

3.3. Установка SDL

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

4. Загрузка кода InfoNes ARM

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 )
 {
  
 }

7.3 Повторная компиляция

В каталоге InfoNes/arm-NES-linux-master/linux/ выполните команду:

make

Компиляция прошла успешно.

7.4 Повторный запуск

Перейдите в каталог 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).

Image

Image

8 Ссылки

https://www.cnblogs.com/ningci/category/845714.html

https://www.cnblogs.com/twzy/p/15356127.html

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/samuel_yuan-riscv-openeuler-visionfive.git
git@api.gitlife.ru:oschina-mirror/samuel_yuan-riscv-openeuler-visionfive.git
oschina-mirror
samuel_yuan-riscv-openeuler-visionfive
samuel_yuan-riscv-openeuler-visionfive
master