香橙派和树莓派对比lakka怎么设置手柄按键

最近发现个好玩的东西,lakka,是个什么呢?它是一个游戏模拟器,可不是那些简单的游戏模拟器,它能玩的游戏很多,街机游戏,红白机游戏,PS游戏等,算是集大成者。
给个官网的链接:
关于Lakka的介绍,直接官网截了个图说明下:
四点:强大,友好,低成本,开源!!
友好就表现在要实现这台万能游戏机太简单了!官网的步骤写的一清二楚。我来概括说明下步骤:
1.选择你的硬件平台
因为这个Lakka只是移植到了部分硬件上,如下图所示,如果要想在你想要的平台上实现的话,需要你自己编译源码了。
我是以前买的树莓派B+,现在已经出来了最新的树莓派2,按照官网说明,树莓派2的话因为性能的原因,支持游戏模拟器更好,运行更流畅,下面的图是各个硬件平台对各个游戏模拟器的支持情况。
Atari 2600
Atari 7800
Atari Jaguar
Atari Lynx
Cave Story
Game Boy Advance
Game Boy Color
Master System
Mega Drive
Neo Geo Pocket
Nintendo 64
Nintendo DS
PCEngine CD
PlayStation
Virtual Boy
WonderSwan Color
从上面的表格可以看出,在对模拟器的支持上,树莓派2有些地方是明显好于树莓派之前版本的。有上述硬件平台的又感兴趣的朋友赶快试试吧。
2.烧录lakka包到SD卡中
在官网下载好对应硬件平台的Lakka包,官网分别介绍了在Linux,Windows,mac平台下烧录的方式,我这里是windows平台,烧录很简单,直接用win32diskimager就OK啦。
3.启动游戏机
接下来更简单了,看官网说明:
Put the SD card in the Raspberry Pi
Put an HDMI wire between yourRaspberry and your TV Light your TV screen
Plug an ethernet wire(optional)
Plug one of the supported joypads in one of the 2
Raspberry Pi USB ports Plug the power supply of the Raspberry Pi
其中说联网是可选的,但是最好连起来,而且必须在同一局域网内。至于为什么,下面你就知道了。手柄连接,支持XBOX和PS手柄,我这里是以前买的一个北通的,后来验证完美支持,根本不用修改映射。
4.开始玩游戏
上电后,进入开机界面:
第一次因为要进行文件系统扩展,所以花的时间稍微长点,以后就不会了。进入下面的界面表示你成功啦!马上可以开始畅玩游戏咯!界面是不是看上去还是比较的酷炫呢!
5.添加自己想玩的游戏
如果只是上面的步骤后不继续的话,恭喜你,你只能玩到自带的2048游戏(之前很风靡的一款游戏,我表示根本停不下来,容易上瘾),截个图看看:
怎么才能让自己能玩到想玩的游戏呢?前提是之前提到将树莓派通过网线链接到同一个局域网内,然后打开网络,发现有个叫做Lakka的,打开它,会发现有很多共享文件夹,其中ROMS文件夹就是用来存放我们想玩的游戏的,如下图所示:
至于ROM怎么来,利用万能的百度搜索你想玩的吧。我试了个恐龙快打和超级玛丽,恐龙快打的话有点卡,应该是相关模拟器在树莓派下模拟优化不行的原因(看了下官方文档,树莓派对FB Alpha的支持等级为C,算比较差了吧)。把文件夹放到ROM后,Lakka会自动辨别出是哪种模拟器支持的游戏,你需要做的就是重启下。在第一菜单下选中Restart RetroArch,几秒后就重启完毕,很快。然后你就可以在相应的模拟器下选择自己想玩的游戏了。
最后附上福利,在网上找到个下载经典红白机的游戏网址:
最后放几张游戏截图:
晒晒我的树莓派:
使用Lakka系统将树莓派改造为游戏机
树莓派安装Lakka打造经典小霸王游戏机
微软Win10 iot周年更新版安装教程(以树莓派3安装为例)
追忆童年,用树莓派做个街机游戏机
树梅派应用21:Lakka 让树莓派变身全能游戏模拟器
树莓派 使用xbox360手柄
没有更多推荐了,树莓派可以控制很多硬件,最常见的就是做个小车什么的了。看了网上很多都是在网页上点来点去控制,感觉有点麻烦,如果能用手柄就好了。
想到躺在箱子里玩《巫师3》时买的北通阿修罗手柄,通关之后就再也没用过,如果可以用树莓派控制的话,那想想都觉得太cooooool了!
既然想到了,自然马上在小pi上搞起。
1.树莓派3B,系统是Raspbian。性能强劲,自带无线网卡非常爽,省去了各种连线。
2.北通阿修罗TE无线手柄。支持xbox360模式,功能强大。
sudo apt-get install joystick
sudo apt-get isntall xboxdrv
我的Raspbian上,貌似已经加载了相关模块,所以无需再配置内核。
将手柄usb头查到小pi上,直接就可以驱动起来了,查看手柄的px灯同时亮,说明已经连接上了,默认是xbox360模式。
连接上手柄之后,可以在系统中查看一些信息,来确认手柄是否可以正常工作。
在shell下输入lsusb,可以看到,已经识别出来手柄 。
Bus 001 Device 009: ID 045e:028e Microsoft Corp. Xbox360 Controller
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC Fast Ethernet Adapter
Bus 001 Device 002: ID
Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
进入/dev/input目录,查看多出了event0和js0两个设备文件,这两个就是手柄设备,说明已经可以开始读取数据了。
ls /dev/input/
在shell下输入jstest ,然后操作手柄,可以看到,数据已经读取成功了,稍微核对一下,按键映射应该都是正确的。
jstest /dev/input/js0
0 Buttons:
也可以用下面这个命令,可以查看几个关键数值。
jstest --event /dev/input/js0
Event: type 2, time , number 4, value -2711
验证到这里,手柄已经可以在我们的小pi上使用,手柄的输出也可以正常读取了。那剩下的就是怎么在代码中将手柄为我们所用了!!胜利就在彼岸!
joystick的头文件在/usr/include/linux/joystick.h 这个位置,并且只有一个头文件可以使用,里面定义了一些宏和结构,我们也只需要使用这个头文件就可以了。
最重要的结构是下面这个,手柄输出的重要数据也就是这几个数值,在jstest测试时,可以看到手柄输出的详细值。
struct js_event {
__u32 /* event timestamp in milliseconds */
__s16 /* value */
__u8 /* event type */
__u8 /* axis/button number */
type:1为按键,2为轴向
number:按键名字
value:实际的值。
time:一个时间值。
以下是代码:实现了一个类似jstest的功能,我额外将xbox360的按键对照number值做了映射,方便以后直接使用。
#include &stdio.h&
#include &unistd.h&
#include &string.h&
#include &sys/types.h&
#include &sys/stat.h&
#include &fcntl.h&
#include &errno.h&
#include &linux/input.h&
#include &linux/joystick.h&
#define XBOX_TYPE_BUTTON
#define XBOX_TYPE_AXIS
#define XBOX_BUTTON_A
#define XBOX_BUTTON_B
#define XBOX_BUTTON_X
#define XBOX_BUTTON_Y
#define XBOX_BUTTON_LB
#define XBOX_BUTTON_RB
#define XBOX_BUTTON_START
#define XBOX_BUTTON_BACK
#define XBOX_BUTTON_HOME
#define XBOX_BUTTON_LO
/* 左摇杆按键 */
#define XBOX_BUTTON_RO
/* 右摇杆按键 */
#define XBOX_BUTTON_ON
#define XBOX_BUTTON_OFF
#define XBOX_AXIS_LX
/* 左摇杆X轴 */
#define XBOX_AXIS_LY
/* 左摇杆Y轴 */
#define XBOX_AXIS_RX
/* 右摇杆X轴 */
#define XBOX_AXIS_RY
/* 右摇杆Y轴 */
#define XBOX_AXIS_LT
#define XBOX_AXIS_RT
#define XBOX_AXIS_XX
/* 方向键X轴 */
#define XBOX_AXIS_YY
/* 方向键Y轴 */
#define XBOX_AXIS_VAL_UP
#define XBOX_AXIS_VAL_DOWN
#define XBOX_AXIS_VAL_LEFT
#define XBOX_AXIS_VAL_RIGHT
#define XBOX_AXIS_VAL_MIN
#define XBOX_AXIS_VAL_MAX
#define XBOX_AXIS_VAL_MID
typedef struct xbox_map
}xbox_map_t;
int xbox_open(char *file_name)
xbox_fd = open(file_name, O_RDONLY);
if (xbox_fd & 0)
perror("open");
return -1;
return xbox_
int xbox_map_read(int xbox_fd, xbox_map_t *map)
int len, type, number,
struct js_
len = read(xbox_fd, &js, sizeof(struct js_event));
if (len & 0)
perror("read");
return -1;
type = js.
number = js.
value = js.
map-&time = js.
if (type == JS_EVENT_BUTTON)
switch (number)
case XBOX_BUTTON_A:
case XBOX_BUTTON_B:
case XBOX_BUTTON_X:
case XBOX_BUTTON_Y:
case XBOX_BUTTON_LB:
case XBOX_BUTTON_RB:
case XBOX_BUTTON_START:
map-&start =
case XBOX_BUTTON_BACK:
map-&back =
case XBOX_BUTTON_HOME:
map-&home =
case XBOX_BUTTON_LO:
case XBOX_BUTTON_RO:
else if (type == JS_EVENT_AXIS)
switch(number)
case XBOX_AXIS_LX:
case XBOX_AXIS_LY:
case XBOX_AXIS_RX:
case XBOX_AXIS_RY:
case XBOX_AXIS_LT:
case XBOX_AXIS_RT:
case XBOX_AXIS_XX:
case XBOX_AXIS_YY:
/* Init do nothing */
void xbox_close(int xbox_fd)
close(xbox_fd);
int main(void)
int axis_value, button_
int number_of_axis, number_of_
memset(&map, 0, sizeof(xbox_map_t));
xbox_fd = xbox_open("/dev/input/js0");
if(xbox_fd & 0)
return -1;
len = xbox_map_read(xbox_fd, &map);
if (len & 0)
usleep(10*1000);
printf("\rTime:%8d A:%d B:%d X:%d Y:%d LB:%d RB:%d start:%d back:%d home:%d LO:%d RO:%d XX:%-6d YY:%-6d LX:%-6d LY:%-6d RX:%-6d RY:%-6d LT:%-6d RT:%-6d",
map.time, map.a, map.b, map.x, map.y, map.lb, map.rb, map.start, map.back, map.home, map.lo, map.ro,
map.xx, map.yy, map.lx, map.ly, map.rx, map.ry, map.lt, map.rt);
fflush(stdout);
xbox_close(xbox_fd);
实现的功能如下:用手柄测试一下,一切OK,到这我的小pi就可以用手柄控制了!
A:1 B:0 X:1 Y:0 LB:0 RB:0 start:1 back:1 home:0 LO:0 RO:0 XX:0
xbox360手柄功能非常强大,wifi控制距离远,信号强,控制稳定,以后再做什么东西都可以使用手柄控制,而且是无线控制,想想就觉得充满各种可能性!
过程中查阅了大量的资料,走了很多弯路,最后实现确是很简单的。百度查到的东西都不是很靠谱,但还是要靠百度查,最后总结了很多论坛的资料找到了解决方法。
树莓派可以实现,那其他linux系统应该也是一样的道理,这里做一下记录留着自己以后方便研究学习了。
树莓派笔记6:自制小车(手柄控制)
利用lakka将树莓派打造为一台万能游戏机
DIY一个基于树莓派和Python的无人机视觉跟踪系统
使用Xbox360手柄控制你的turtlebot/rbx1/mrobot小车机器人
用XInput库使用xbox360手柄
没有更多推荐了,#原创新人# NESPi CASE+树莓派+LAKKA模拟怀旧FC红白机_使用评测_什么值得买
#原创新人# NESPi CASE+树莓派+LAKKA模拟怀旧FC红白机
人到中年,年少时的好奇心日渐平淡,多了些许感念回想,前几日在SMZDM看到一位网友分享的开箱晒物贴——FC掌机,遂勾起童年记忆。那时还没有什么专门的游艺场所,一些颇具经商头脑者在自家闲置房内摆上几台FC红白机,接上电视就可以经营所谓的游戏厅。再后来,相继出现了街机(街头霸王)、跳舞机、(星际、传奇、红警)、掌机(PSP)、单机游戏......林林种种,自己原不是什么游戏发烧友,但也顺势而动,在各个阶段体验过,过了这么些年回头看,游戏的启蒙就是来自FC红白机。但FC掌机的操作还是略显局促,萌生了自己组一台能够模拟红白机的电脑的念头。攻略准备分别去几处游戏论坛翻看了一些有关模拟游戏的信息,电玩巴士、电玩部落、多玩游戏、3DMGAME、游民星空,最终在电玩部落的模拟游戏区找到了一个名为LAKKA的模拟游戏系统,可以支持多种复古游戏,包括FC游戏因为需要模拟红白机,所以除了软件系统,还有硬件采购,为确保运行无误,先在已有的PC系统上完成软件系统的基本测试,确定FC游戏可以完美运行,才开始购买相关硬件硬件购买准备运行的模拟游戏系统LAKKA,最佳方案是树莓派不同版本的树莓派因接口不同,对应的外壳也不同考虑到模拟FC红白机的怀旧外观,不希望用那种亚克力透明材质,或者金属材质综上考虑,最终选择NESPi CASE+树莓派3 B的组合&&我购入的是中国版Pi3,不含配件&我购入的是游戏套餐三,带两个黑色手柄(双打必备)硬件展示1. 树莓派3 B型板,可支持wifi、蓝牙2. NESPi CASE外壳,外型就是的mini NES3. ,貌似是仿X-BOX4. 散热配件,NESPi CASE卖家送的硬件装配安装非常便利,将两块铝制散热块贴至树莓派后,放入NESPi CASE内就可以,然后将网线转接头、USB转接头、电源开关线接好就基本完工,散热风扇是按在NESPi CASE顶盖上的软件测试用win32_disk_imager将LAKKA的安装文件烧录至TF卡后,无需安装,开机自动进入LAKKA系统,安装文件是.img格式,可至此:因树莓派3 B型板仅有HDMI输出,如无此接口,需要转接,在完成TF卡烧录后先不用插入树莓派,需修改树莓派配置文件config.txt,提高HDMI输出的兼容性,hdmi_safe=1LAKKA默认是英文界面,选择语言中文后会出现乱码,因为没有中文字体,因此需要在自己的局域网内联网,通过另一台电脑上传.font的字体文件,上传前先打开wifi和SAMBA文件共享服务查询IP地址后,可以用另一台电脑登录,查看LAKKA的根目录,在assets文件夹内新建xmb文件夹,再在xmb文件夹中新建monochrome文件夹,将.font字体文件复制粘贴至monochrome文件夹,重启后就可以正常显示中文LAKKA系统自带FC模拟器,将事先准备好的.nes游戏文件,复制入ROMS文件夹中就可以,操作载入游戏时可以识别到这些FC的模拟游戏包罗万象的100合一,看到这个画面莫名激动天下谁人不识君的魂斗罗永远都希望子弹快点,可以穿墙而过,隔山打牛的坦克大战&&总结树莓派的安装比PC更便利,价格也相当便宜,但如果家中有闲置笔记本,就不用另购树莓派了LAKKA的兼容性很好,PC、树莓派,甚至安卓盒子都可以运行NESPi CASE外壳个人判断是仿品,如果对工艺有要求的朋友不推荐,复古怀旧尚可外壳卖家提供的散热风扇噪音实在厉害,比一般PC运行时的声音还大,可能是因为扇叶太小的原因手柄可满足基本游戏要求,但不是原配,玩耍之初需自我适应
推荐关注:
鼠标移到标签上方,
尝试关注标签~
相关热门原创
COMO LIVING石墨烯远红外舒适保暖被
美的i5 extra扫地机器人
北极考察任务——勇敢者招募中
魅族 16th 智能手机(颜色随机)
眼神科技 E8 智能虹膜锁
【轻众测】飞智 黄蜂单手游戏手柄
曼富图 挪威系列 双肩相机包
【轻众测】TOKIO手工锻造刀四件套
赞88评论88
赞168评论119
赞50评论57
赞1327评论507
赞1154评论209
赞1553评论791
赞864评论429
赞564评论176
扫一下,分享更方便,购买更轻松
用户名/邮箱
两周内免登录mattraynor
小时候对同学能够玩口袋妖怪、超级马里奥的游戏机有着一种向往,现在通过树莓派,可以实现过去拥有小型游戏机的梦想。并且这台“改装”的游戏机有着更方便(免去了插游戏卡),多用途的功能。作为一个小巧的基于Linux的游戏系统,Lakka可以实现将树莓派变身为游戏机的想法。通过将Lakka系统安装于树莓派上,可以将树莓派改造为复古游戏机。一个游戏机必备的几个装备:显示器(用于展现游戏的内容)、游戏手柄(用于操控游戏)、处理器核心(用于游戏的运行)。树莓派可以说符合一个游戏机应该需要具备的基本内容。第一步是从官网上下载Lakka系统。Lakka本身针对树莓派已经进行了优化,同时兼容树莓派第二代和第三代。官网的下载速度还可以,基本不需要加速器或者是使用镜像源。约200M的Lakka下载完毕之后,可以使用Windows环境下一款比较好用的SD卡烧录软件win32diskimage来进行烧录。win32diskimage软件的基本使用只需要将下载的镜像文件解压后由软件内选择需要烧写的SD卡(win2diskimage也可以烧写硬盘)。在烧写完毕之后可以开始第二部,就是将SD卡插入树莓派,之后使用HDMI转换线接到显示器上便可以表现出图形化的界面。图2:树莓派安装了Lakka系统之后的界面(中文存在缺字)开始的时候系统是英文界面,可以在User处改动语言选项,虽然Lakka系统有自带的中文界面,但系统中存在着缺字的现象,一个可能的原因是系统携带的为日文字库(日语没有缺少汉字的情况),所以部分汉字没有显示。不过我们可以通过之后的步骤来将系统转化为中文操作环境。首先需要选择一个合适的汉字字库字体作为导入系统的字库。网上有很多比较好看的字体库,一般只要是.tff格式的字体文件Lakka系统都可以兼容。我在实验的过程中采用的是微软Windows8自带的华文行楷字体。这个字体可以在Windows系统文件Font中找到,其中有很多Word文档常用的字体里面也都有。第二步便是需要在Lakka的系统文件夹\\lakka\System\下复制之前找到的字体并重命名为font.ttf。可以通过winSCP软件比较方便的实现文件的上传,也可以使用SSH打开命令行,在命令行中复制这个文件。之后再建立一个新的文件夹在系统的assets 文件下,具体路径为/storage/assets/xmb/monochrome/,复制之前的字体一份到这个文件夹下。这里要注意的是文件名字必须和这个一模一样才可以实现字体的成功替换。之后重启系统以后就可以看到如图3所示的界面。图3:正常化现实的中文界面替换完中文界面以后,部分人可能有自己的路由器(比如在家中),在Lakka 中也可以设置静态IP。实现的方法是在命令行中打入#ifconfig找到Mac地址,也就是下图中HWaddr处的十六位字母和数字编码。这一步如果是有显示器的话可以在菜单栏中的“信息”下看到网络的信息和地址。图4:在命令行中找到设备的Mac地址在获得了Mac地址之后,我们可以通过绑定Mac地址和固定的IP地址的方式设置局域网内的静态IP。这里有一点值得注意的是局域网是否连接外网对于树莓派的SSH连接没有影响,比如在校园网内,只要可以找到IP地址就能够实现电脑和Lakka系统的树莓派连接。在命令行内输入$connmanctl
config &service& --ipv4 manual &ipaddress& &netmask& &gateway&的命令,其中ip address处可以设置需要的固定IP地址。设置固定IP的目的是以后可以在使用SSH连接树莓派的时候方便连接。对于有时没有显示器的时候这个方法会比较有效。安装Lakka的树莓派在连接上一次WiFi之后,以后只要处于相同的网络环境内就能自动连接之前连接过的WiFi。在配置完成网络环境以后,便可以将自己的安装了Lakka系统的树莓派与电脑连接在一起,以后可以方便从电脑传输游戏文件或者进行其他的操作。俗话说“独乐了不如众乐乐”,玩游戏的时候希望能和自己的朋友同时玩。Lakka支持多达5个输入设备(已经超过了树莓派自身自带的4个接入口)。我们可以在Lakka 中添加多个手柄,从而可以实现在本地玩多人游戏的愿望。Lakka系统支持使用手柄或者是键盘进行输入,但需要注意的地方是键盘输入的时候在输入WiFi密码的地方存在bug,导致不能够退出WiFi密码界面。如果有手柄使用的话可以解决这个问题。Lakka对于绝大多数市面上的手柄都可以支持。官方网站上可以看到其支持的手柄型号。添加手柄可以在菜单栏的“输入”中找到。通过对输入用户设备进行设置并开启,Lakka系统可以实现多人同时游戏。这里有需要注意的一点是如果是使用手柄操作的时候,在用户设备索引的地方将设备类型切换成别的类型,那么将会导致目前的手柄无法使用(键盘不受影响),这可能是系统的一个设计缺陷。比如图5中连接的设备是Xbox手柄,但在调试的时候调成了gamepad类型而不是Xbox类型,调整回来就只能借助键盘。设置完成后系统自动保存,在此处修改界面还可以对游戏手柄的按键设置已经热键进行设定。图5:添加新的游戏手柄前面的准备步骤准备完后就可以在Lakka中添加自己的游戏。如果什么也不做的话,那只能玩到系统自带的2048游戏,别的游戏都还不能玩。想要添加自己的游戏,一个简单的办法是使用Windows系统下的WinSCP进行文件的传输。WinSCP通过SSH连接树莓派,之后可以在树莓派中的roms目录下将准备好的游戏放在其中。推荐每个游戏设置一个独立的文件夹来进行保存,以方便以后的查看或者是在命令行的条件下进行操作。树莓派对于早期的各类游戏格式都能够支持,具体的支持清单在官网上有比较详细的列举。官网上添加自己游戏的方法,前提也是将树莓派通过网线链接到同一个局域网内,然后打开桌面上网络的地方,可以看到有个叫做 Lakka 的文件(如果没有找到的话可以输入\\LAKKA 进行访问),打开它以后可以发现有很多共享文件夹,其中ROMS文件夹就是用来存放游戏的,步骤与WinSCP的基本类似。可以将已经下载好的游戏复制入其中。Lakka系统自带了部分游戏的支持方式,比如对于早期的.nes文件通过运行系统自带的NES核心(有两种),就可以使用。而对于之后的部分游戏,可以通过系统自带的扫描文件来扫描上传的文件夹。欢迎感兴趣的可以查看我的个人网站www.espranza.gq 上面有roms下载文件的整理(英文好的可以看懂写了什么)。愿每一个人都可以找到自己童年的梦想。
阅读排行榜}

我要回帖

更多关于 树莓派购买 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信