当前位置: 首页 > news >正文

德州鲁企动力网站优化中心网站个人备案做企业网站

德州鲁企动力网站优化中心,网站个人备案做企业网站,兰州市七里河建设局网站,博兴网页设计文章目录 前言交叉编译工具链使能 Cnes 游戏模拟器移植游戏手柄调试 前言 很多小伙伴为了不让自己的 V3s 吃灰#xff0c;进而将其打造成游戏机。 我们 DIY 的板子具备屏幕、扬声器、USB Host#xff08;可以接游戏手柄#xff09;#xff0c;当然也要凑一凑热闹。 交叉编… 文章目录 前言交叉编译工具链使能 Cnes 游戏模拟器移植游戏手柄调试 前言 很多小伙伴为了不让自己的 V3s 吃灰进而将其打造成游戏机。 我们 DIY 的板子具备屏幕、扬声器、USB Host可以接游戏手柄当然也要凑一凑热闹。 交叉编译工具链使能 C 怎么突然讲到工具链了 因为待会 nes 游戏模拟器编译需要用到 C所以就先提前讲一下 这里遇到了一个坑编译 g 时依赖一些库这些库是我之前没有使能 g 时编的现在使能 g 后需要重新编不然 g 编译有问题一开始我没发现这个问题怎么编都有问题。 host-gcc-final-12.3.0/ 就是其中一个依赖将这个目录手动删除然后重新编译整个工程g 就编译 OK 了。 nes 游戏模拟器移植 源码https://github.com/nejidev/arm-NES-linux step1: 修改交叉编译链 CC/home/liyongjun/project/board/buildroot/DIY_V3S/host/bin/arm-buildroot-linux-gnueabihf-gcc CCFLAGS -I /home/liyongjun/project/board/buildroot/DIY_V3S/staging/usr/include LDFILGS -L /home/liyongjun/project/board/buildroot/DIY_V3S/staging/usr/libstep2: 修改 InfoNES_System_Linux.cpp 文件中的 lcd_fb_display_px 函数 (调整 spi 屏幕的颜色) static int lcd_fb_display_px(WORD color, int x, int y) { #if 0unsigned char *pen8;unsigned short *pen16;pen8 (unsigned char *)(fb_mem y*line_width x*px_width);pen16 (unsigned short *)pen8;*pen16 color;return 0; #endifWORD *pen16;unsigned char r, g, b;r ((color 10) 0x1f);g ((color 5) 0x3f);b (color 0x1f);color r11|g6|b;pen16 (WORD *)(fb_mem y*line_width x*px_width);*pen16 color;return 0; }step3: 下载游戏合集并解压然后改名为游戏名为英文 链接https://pan.baidu.com/s/16hIWwYQQEX9aOBDG1dVa0A 提取码asdf step4: 运行 rootv3s-diy:~/nes# ./InfoNES rom/218_hdl.nes /dev/joypad dev not found /dev/input/js0 dev not found fb width:240 height:240 游戏手柄调试 插入游戏手柄 rootv3s-diy:~# ls /dev/input/ event0 rootv3s-diy:~# [ 126.159751] usb 1-1.2: new low-speed USB device number 4 using ehci-platform [ 126.421937] input: USB gamepad as /devices/platform/soc/1c1a000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:081F:E401.0002/input/input2 [ 126.435728] hid-generic 0003:081F:E401.0002: input: USB HID v1.10 Joystick [USB gamepad] on usb-1c1a000.usb-1.2/input0 rootv3s-diy:~# ls /dev/input/ event0 event1 js0运行游戏 rootv3s-diy:~/nes# ./InfoNES rom/218_hdl.nes /dev/joypad dev not found fb width:240 height:240发现游戏手柄按键没有反应 不过监听 /dev/input/event1 发现按键是有事件产生的 rootv3s-diy:~/nes# hexdump /dev/input/event1 0000000 c086 0003 fa8b 000e 0004 0004 0003 0009 0000010 c086 0003 fa8b 000e 0001 0122 0001 0000 0000020 c086 0003 fa8b 000e 0000 0000 0000 0000 0000030 c087 0003 0a0b 0002 0004 0004 0003 0009 0000040 c087 0003 0a0b 0002 0001 0122 0000 0000 0000050 c087 0003 0a0b 0002 0000 0000 0000 0000 0000060 c087 0003 c80b 000c 0004 0004 0001 0009 0000070 c087 0003 c80b 000c 0001 0120 0001 0000 0000080 c087 0003 c80b 000c 0000 0000 0000 0000 0000090 c087 0003 19cb 000f 0004 0004 0001 0009 00000a0 c087 0003 19cb 000f 0001 0120 0000 0000 00000b0 c087 0003 19cb 000f 0000 0000 0000 0000 00000c0 c089 0003 114f 0006 0003 0000 00ff 0000 00000d0 c089 0003 114f 0006 0000 0000 0000 0000 00000e0 c089 0003 6309 0008 0003 0000 007f 0000 00000f0 c089 0003 6309 0008 0000 0000 0000 0000那大概率是游戏手柄按键和模拟器设定不匹配 在获取按键值的地方加点打印记录按键值 // arm-NES-linux/linux/joypad_input.cpp static int USBjoypadGet(void) {/*** FC手柄 bit 键位对应关系 真实手柄中有一个定时器处理 连A 连B * 0 1 2 3 4 5 6 7* A B Select Start Up Down Left Right*///因为 USB 手柄每次只能读到一位键值 所以要有静态变量保存上一次的值static unsigned char joypad 0;struct js_event e;if(0 read (USBjoypad_fd, e, sizeof(e))){ printf(e.type 0x%x\t, e.type); printf(e.value 0x%x\t, e.value); printf(e.number 0x%x\n, e.number);if(0x2 e.type){/*上value:0x8001 type:0x2 number:0x5value:0x0 type:0x2 number:0x5*/if(0x8001 e.value 0x5 e.number)然后将各个按键值改正确 static int USBjoypadGet(void) {/*** FC手柄 bit 键位对应关系 真实手柄中有一个定时器处理 连A 连B * 0 1 2 3 4 5 6 7* A B Select Start Up Down Left Right*///因为 USB 手柄每次只能读到一位键值 所以要有静态变量保存上一次的值static unsigned char joypad 0;struct js_event e;if(0 read (USBjoypad_fd, e, sizeof(e))){ printf(e.type 0x%x\t, e.type); printf(e.value 0x%x\t, e.value); printf(e.number 0x%x\n, e.number);if(0x2 e.type){/* 上 */if(0x8001 e.value 0x1 e.number){joypad | 14;}/* 下 */if(0x7fff e.value 0x1 e.number){joypad | 15;}//松开if(0x0 e.value 0x1 e.number){joypad ~(14 | 15);}/* 左 */if(0x8001 e.value 0x0 e.number){joypad | 16;}/* 右 */if(0x7fff e.value 0x0 e.number){joypad | 17;}//松开if(0x0 e.value 0x0 e.number){joypad ~(16 | 17);}}if(0x1 e.type){/* 选择 */if(0x1 e.value 0x8 e.number){joypad | 12;}if(0x0 e.value 0x8 e.number){joypad ~(12);}/* 开始 */if(0x1 e.value 0x9 e.number){joypad | 13;}if(0x0 e.value 0x9 e.number){joypad ~(13);}/* A */if(0x1 e.value 0x1 e.number){joypad | 10;}if(0x0 e.value 0x1 e.number){joypad ~(10);}/* B */if(0x1 e.value 0x2 e.number){joypad | 11;}if(0x0 e.value 0x2 e.number){joypad ~(11);}/* X */if(0x1 e.value 0x0 e.number){joypad | 10;}if(0x0 e.value 0x0 e.number){joypad ~(10);}/* Y */if(0x1 e.value 0x3 e.number){joypad | 11;}if(0x0 e.value 0x3 e.number){joypad ~(11);}}return joypad;} printf(read failed!!!\n);return -1; }就可以愉快地玩游戏了
http://www.w-s-a.com/news/78668/

相关文章:

  • 建设校园网站的意义视频链接提取下载
  • 天津电子商务网站wordpress安装图片
  • 青岛房产网站东莞网络营销外包公司
  • 网站建设中的页数网上工伤做实网站
  • 给公司做网站这个工作怎么样wordpress不支持中文标签
  • 湖南网站推广优化cc域名做门户网站
  • 网站开发大概多久怎么制做网站
  • 鄂州官方网站食品网站建设需求分析
  • 福州网站建设金森要做好网络营销首先要
  • 中山哪里有好网站建设公司企业培训考试平台下载
  • 域名备案查询 网站备案查询企业网站建设问题研究
  • wordpress无法编辑北京优化网站方法
  • 公司建设一个网站最好的网站建设哪家好
  • 南京市住宅建设总公司网站wordpress 自己写的网页
  • 淄博网站制作企业高端长沙企业网站制作服务报价
  • 网站服务理念中外商贸网站建设
  • 如何自己建立网站中国建设银行网站忘记密码
  • 什么是a站如何在12366网站上做实名认证
  • 斗蟋蟀网站建设谭谭心怎么建设网站
  • 优秀网站开发商郑州网站建设套餐
  • 做伤残鉴约号网站购物网站建设新闻
  • 黄江网站建设公司自己房子做民宿挂什么网站
  • 手游网站做cpc还是cpm广告号宣武郑州阳网站建设
  • vs连接数据库做网站建立网站
  • 电商网站设计图片素材p2p网站建设石家庄
  • 莲塘网站建设如何文字推广一个婚恋网站
  • 医院网站建设工作汇报WordPress不发邮件了
  • 怎么做外语网站个人网页设计作品ps
  • 网站原型怎么做vps如何建两个网站
  • 商城网站建设源码嘉兴seo计费管理