FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

spanti/chip8-emulator-cpp · GitHub

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chip8-emulator-c++

goal:

implement a chip8-emulator in c++20

reference:

CHIP‐8 Technical Reference · mattmikolay/chip-8 Wiki

https://www.youtube.com/watch?v=rpLoS7B6T94

use SDL handle audio / video output and user input!

Awesome CHIP-8 - CHIP-8

The Chip 8 has 35 opcodes which are all two bytes long

a wiki for CHIP-8

CHIP‐8 Technical Reference · mattmikolay/chip-8 Wiki

CHIP‐8 Instruction Set · mattmikolay/chip-8 Wiki

Write a chip-8 emulator

https://tobiasvl.github.io/blog/write-a-chip-8-emulator/

C语言实现CHIP-8模拟器 - LeeReindeer's blog

编写模拟器的部分和毕业项目中的虚拟机结合起来

CHIP-8 模拟器 · Sine's Site

An emulator's main task is simple runs in an infinite loop

do three tasks in succession

  • Fetch the instruction from memory at the current PC (program counter)
  • Decode the instruction to find out what the emulator should do
  • Execute the instruction and do what it tells you

使用C++构建CHIP-8 Emulator

[Building a CHIP-8 Emulator C++] - Austin Morlan

Cowgod's Chip-8 Technical Reference

SVision-8: CHIP-8 and SCHIP emulator

WSL配置桌面环境 https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/gui-apps https://www.cnblogs.com/KylinBlog/p/16588037.html https://zhuanlan.zhihu.com/p/128507562

首先在WIN下安装VcXsrv并启动 在 .bashrc 文件末尾中添加一句 export DISPLAY=xx.xx.xx.xx:0 ,其中的 xx.xx.xx.xx 是 VcXsrv 所在主机的 IP 地址,即在 Windows 的 cmd 或 powershell 中执行 ipconfig 里的以太网适配器的 IPv4 地址。 若地址变化 需要再次查询 source .bashrc 在linux下执行的gui程序将在windows下远程显示输出

SDL2 教程

https://wiki.libsdl.org/SDL2/README/cmake#including-sdl-in-your-project

https://wiki.libsdl.org/SDL3/APIByCategory

初始化的虚拟机/模拟器 key input 初始必须置为0

//初始化

SDL_Init(SDL_INIT_VIDEO); //初始化窗口
window = SDL_CreateWindow(title, 0, 0, windowWidth, windowHeight, SDL_WINDOW_SHOWN); //创建窗口
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);//创建渲染器窗口
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STREAMING, textureWidth, textureHeight);

析构

SDL_DestroyTexture(texture); //
SDL_DestroyRenderer(renderer);//销毁渲染器
SDL_DestroyWindow(window);//销毁窗口
SDL_Quit();
What we need:

1.Build cycle ok

2.Build instruction-implementation ok

3.Build function-pointer arrays ok

4.Build platform layer(SDL2)

使用SDL2写一些demo

封装SDL2的功能 (目前使用现有的模块)

(为模拟器添加测试 当前发现部分指令的执行存在问题)

5.Build test for our project and add something!(happy new year!)

6.启用声音功能

More: add a debugger for this CHIP-8 emulator

7.为了使模拟器的性能提升 避免使用std::function 使用lamada表达式

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL