精华内容
下载资源
问答
  • NES的游戏开发软件 含教程 想自已做NES游戏朋友的福音//
  • 426 个nes游戏打包下载

    热门讨论 2011-11-26 18:38:00
    426个 nes游戏打包,没有模拟器,是本人辛苦收集的!真的有1407个 nes游戏!!!本人拿人格担保!我收集有可以有重复的,但是不会有很多的!
  • 超级玛丽nes游戏.rar

    2021-01-16 17:32:56
    超级玛丽nes游戏
  • 在网上就可以玩nes格式的游戏 下载后安装就可以了 然后选择文件 在 打开游戏 选择游戏位置 就 KO 了
  • 洛克人5-6nes游戏.rar

    2021-01-16 17:34:13
    洛克人5-6nes游戏
  • 三十六计.NES游戏下载

    2009-03-21 12:15:07
    nes游戏下载......................
  • 各种经典小游戏包,内含nes模拟器。上千种小游戏
  • nes 游戏引擎 原理分析

    千次阅读 2014-06-24 15:23:27
    Android 主入口MainActivity 菜单为R.menu.main ,前两个Rom Gripper 和刷 ...这个文件为选择T 卡nes 游戏。 点击菜单设置进入 case R.id.menu_settings: startActivity(new Intent(this, Emulator

    apk 下载位置:

    http://download.csdn.net/detail/a332324956/7544819

    nes 模拟器源码:联系本人QQ:332324956

    Android 主入口MainActivity 菜单为R.menu.main ,前两个Rom Gripper 和刷

    新在R.menu.file_chooser 里面,文件为FileChooser.java,
    这个文件为选择T 卡nes 游戏。
    点击菜单设置进入
    case R.id.menu_settings:
    startActivity(new Intent(this, EmulatorSettings.class));
    return true;
    这个就是所有设置界面了。
    当选择了一个nes 游戏后,进入代码为
    protected void onFileSelected(Uri uri) {
    // remember the last file
    settings.edit().
    putString("lastGame", uri.getPath()).commit();
    Intent intent = new Intent(Intent.ACTION_VIEW, uri,
    this, EmulatorActivity.class);
    if (!creatingShortcut)
    startActivity(intent);
    else {
    emulatorIntent = intent;
    showDialog(DIALOG_SHORTCUT);
    }
    }
    进入到EmulatorActivity 里面了,这个就是模拟的主要界面了。
    创建模拟实例
    emulator = Emulator.createInstance(getApplicationContext(),
    getEmulatorEngine(prefs));
    看下这里的实例实现:
    System.loadLibrary("emu");这里加载了动态库
    继续查看:
    emulator = new Emulator(libDir);
    initialize(libDir, Integer.parseInt(Build.VERSION.SDK));
    thread = new Thread() {
    public void run() {
    nativeRun();
    }
    };
    thread.start();
    我们来看下private native boolean initialize(String libDir, int sdk);
    这个函数了
    这个可以看到是native 接口了,所以就是c++实现在so 里面。
    下来我们看下c++和java 层如何关联的:
    JNI_OnLoad 这个函数为java 加载动态库时触发的一个入口函数,可以看到里面有:
    if (registerNatives(env) != JNI_TRUE) {
    LOGE("ERROR: registerNatives failed");
    goto bail;
    }
    这里便是加载对接java 接口。
    static int registerNatives(JNIEnv* env)
    {
    REGISTER_NATIVE(env, Emulator);
    REGISTER_NATIVE(env, Cheats);
    return JNI_TRUE;
    }
    我们来看下
    REGISTER_NATIVE(env, Emulator);
    为宏:
    #define REGISTER_NATIVE(env, module) { \
    extern int register_##module(JNIEnv *); \
    if (register_##module(env) < 0) \
    return JNI_FALSE; \
    }
    翻译过来为:
    {
    extern int register_Emulator(JNIEnv *);
    if (register_Emulator(env) < 0)
    return JNI_FALSE;
    }
    所以我们去看下register_Emulator(env)
    int register_Emulator(JNIEnv *env)
    {
    static const JNINativeMethod methods[] = {
    { "setFrameUpdateListener",
    "(Lcom/lxm/Emulator$FrameUpdateListener;)V",
    (void *) Emulator_setFrameUpdateListener },
    { "setSurface", "(Landroid/view/SurfaceHolder;)V",
    (void *) Emulator_setSurface },
    { "setSurfaceRegion", "(IIII)V", (void *)
    Emulator_setSurfaceRegion },
    { "setKeyStates", "(I)V", (void *) Emulator_setKeyStates },
    { "processTrackball", "(IIII)V", (void *)
    Emulator_processTrackball },
    { "fireLightGun", "(II)V", (void *) Emulator_fireLightGun },
    { "setOption", "(Ljava/lang/String;Ljava/lang/String;)V",
    (void *) Emulator_setOption },
    { "getOption", "(Ljava/lang/String;)I", (void *)
    Emulator_getOption },
    { "getVideoWidth", "()I", (void *) Emulator_getVideoWidth },
    { "getVideoHeight", "()I", (void *) Emulator_getVideoHeight },
    { "loadEngine", "(Ljava/lang/String;Ljava/lang/String;)Z",
    (void *) Emulator_loadEngine },
    { "initialize", "(Ljava/lang/String;I)Z",
    (void *) Emulator_initialize },
    { "nativeRun", "()V", (void *) Emulator_run },
    { "nativeLoadROM", "(Ljava/lang/String;)Z", (void *)
    Emulator_loadROM },
    { "nativeUnloadROM", "()V", (void *) Emulator_unloadROM },
    { "reset", "()V", (void *) Emulator_reset },
    { "power", "()V", (void *) Emulator_power },
    { "pause", "()V", (void *) Emulator_pause },
    { "resume", "()V", (void *) Emulator_resume },
    { "getScreenshot", "(Ljava/nio/Buffer;)V",
    (void *) Emulator_getScreenshot },
    { "saveState", "(Ljava/lang/String;)Z", (void *)
    Emulator_saveState },
    { "loadState", "(Ljava/lang/String;)Z", (void *)
    Emulator_loadState },
    };
    return jniRegisterNativeMethods(env, "com/lxm/Emulator",
    methods, NELEM(methods));
    }
    这里比如这个
    { "initialize", "(Ljava/lang/String;I)Z",
    (void *) Emulator_initialize },
    上面我们记得
    private native boolean initialize(String libDir, int sdk); 在java
    里面
    { "initialize", "(Ljava/lang/String;I)Z",
    (void *) Emulator_initialize },
    这里的"initialize" 就是java 上面的initialize 函数。
    (Ljava/lang/String;I)Z 为参数和返回值。Emulator_initialize 为c++里面的
    对应函数,然后通过
    return jniRegisterNativeMethods(env, "com/lxm/Emulator",
    methods, NELEM(methods));
    将这些c++的函数和java 层com/lxm/Emulator 这个包下面的函数对应,如此则c++
    和java 关联住了。
    C++调用java 的方法举例为:
    jclass clazz = env->FindClass(
    "com/lxm/Emulator$FrameUpdateListener");
    midOnFrameUpdate = env->GetMethodID(clazz, "onFrameUpdate",
    "(I)I");
    这里为找到java 的类com/lxm/Emulator$FrameUpdateListener , 去找里面的
    onFrameUpdate 方法,接口参数为整数,返回整数,可以找到在:
    public int onFrameUpdate(int keys)
    throws IOException, InterruptedException {
    final int remote = netPlayService.sendFrameUpdate(keys);
    if (netPlayService.isServer())
    return makeKeyStates(keys, remote);
    else
    return makeKeyStates(remote, keys);
    }
    所有配置都在:
    final String[] prefKeys = {
    "fullScreenMode",
    "flipScreen",
    "fastForwardSpeed",
    "frameSkipMode",
    "maxFrameSkips",
    "refreshRate",
    "soundEnabled",
    "soundVolume",
    "accurateRendering",
    "secondController",
    "enableTrackball",
    "trackballSensitivity",
    "enableSensor",
    "sensorSensitivity",
    "enableVKeypad",
    "scalingMode",
    "aspectRatio",
    "enableCheats",
    "orientation",
    "useInputMethod",
    "quickLoad",
    "quickSave",
    "fastForward",
    "screenshot",
    };
    这里我们搜索aspectRatio 来修改下默认屏幕比率
    <ListPreference android:key="aspectRatio"
    android:title="@string/aspect_ratio"
    android:entries="@array/aspect_ratio_entries"
    android:entryValues="@array/aspect_ratio_entryvalues"
    android:defaultValue="1.7778"/>
    这里又一个默认值,是打开设置项操作的,需要修改下。
    else if ("aspectRatio".equals(key)) {
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    float ratio = Float.parseFloat(prefs.getString(key,
    "1.7778"));
    if (ratio != 0) {
    float dpiRatio = metrics.xdpi / metrics.ydpi;
    // some models seem to report wrong dpi
    if (dpiRatio < 1.6667f && dpiRatio > 0.6f)
    ratio *= dpiRatio;
    }
    emulatorView.setAspectRatio(ratio);
    }
    因为第一次进入游戏,没有设置,所以会读取后面的默认值,此处也要修改,这样一个默认
    值则修改好了,其余的设置一样处理。
    包名要修改,搜索所有的lxm,改为你需要的就行了。
    原理基本为:
    Activity 使用里面有一个全屏SurfaceView,来实现游戏绘制。加载的方式都在
    Emulator.java 里面
    这里面private Emulator(String libDir) {
    initialize(libDir, Integer.parseInt(Build.VERSION.SDK));
    thread = new Thread() {
    public void run() {
    nativeRun();
    }
    };
    thread.start();
    }
    这里使用一个线程,而此处的nativeRun 是个死循环,只有退出条件成立才退出,否则一
    直进行循环,进行绘制模拟画面。
    然后我们使用onGameKeyChanged 来调用c++方法,驱动游戏前进。
    模拟按键:VirtualKeypad 里面
    按键注册在Keyboard。Java 里面
    虚拟按键的刷屏在:
    public void onFrameDrawn(Canvas canvas) {
    if (vkeypad != null)
    vkeypad.draw(canvas);
    }
    里面调用过程为:
    是EmuMedia.java 里面使用:
    static void bitBlt(int[] image, boolean flip) {
    // Fill background
    Canvas canvas = holder.lockCanvas();
    canvas.drawColor(Color.BLACK);
    if (flip)
    canvas.rotate(180, canvas.getWidth() / 2,
    canvas.getHeight() / 2);
    canvas.drawBitmap(image, 0, region.width(), region.left,
    region.top,
    region.width(), region.height(), false, null);
    if (onFrameDrawnListener != null)
    onFrameDrawnListener.onFrameDrawn(canvas);
    holder.unlockCanvasAndPost(canvas);
    }
    此函数是在:
    midBitBlt = env->GetStaticMethodID(jPeerClass,
    "bitBlt", "([IZ)V");
    继续跟进:
    void EmuMediaImpl::unlockSurface(JNIEnv *env)
    {
    jsize size = env->GetArrayLength(jVideoBuffer);
    jint *image = env->GetIntArrayElements(jVideoBuffer, 0);
    for (int i = 0; i < size; i++) {
    unsigned short pix = screen[i];
    image[i] = (pix & 0xf800) << 8 |
    (pix & 0x07e0) << 5 |
    (pix & 0x1f) << 3;
    }
    env->ReleaseIntArrayElements(jVideoBuffer, image, 0);
    env->CallStaticVoidMethod(jPeerClass, midBitBlt,
    jVideoBuffer, flipScreen);
    }
    继续查找:
    inline void videoUpdate(uint8 *xbuf)
    {
    EmuEngine::Surface surface;
    if (callbacks->lockSurface(&surface)) {
    engine->renderFrame(surface);
    callbacks->unlockSurface(&surface);
    }
    }
    extern "C"
    void FCEUD_Update(uint8 *xbuf, int16 *Buffer, int Count)
    {
    if (xbuf != NULL)
    videoUpdate(xbuf);
    if (Count > 0)
    callbacks->playAudio(Buffer, Count * 2);
    }
    是由这个函数调用:
    FCEUI_Emulate098
    继续
    runFrame
    runEmulator
    Emulator_run
    到这个函数则完成了使命:
    { "nativeRun", "()V", (void *) Emulator_run },因为这个函数对应java 的
    nativeRun 函数,它就是之前说的java 上层跑的那个线程。
    private Emulator(String libDir) {
    initialize(libDir, Integer.parseInt(Build.VERSION.SDK));
    thread = new Thread() {
    public void run() {
    nativeRun();
    }
    };
    thread.start();
    }
    如此流程则一目了然了。
    主界面的设置菜单为:
    Emulator.xml 代码位置为:EmulatorActivity.java 的onCreateOptionsMenu,
    响应函数在onOptionsItemSelected 里面。
    -------------------------------------
    补充一个:
    这套代码要编译,是需要配置NDK 环境的。
    配置NDK 环境只需要下载官方的NDK 包,放置在D 盘根目录,解压即可。
    环境变量配置一个
    NDK 为D:\android-ndk-r8d(这里的D:\android-ndk-r8d 是你自己的解压目录,
    此目录可以看到ndk-build.cmd 则是正确的)
    然后将源码导入eclipse.exe ,进入属性设置,选择builders,点击new,
    Location 填入D:\android-ndk-r8d\ndk-build.cmd ,(需要对应自己的这个文件
    路径)
    Working Directory 写入${workspace_loc:/Nesoid/jni} ,这里的Nesoid 为
    eclipse.exe 创建的工程名。
    然后选择上面的Environment,选择new,加一个name 写为:NDK_PROJECT_PATH
    Value 写为..

    即可编译了。

    -------

    apk下载位置为在我的共享资源里面。



    展开全文
  • 400个 nes游戏打包

    2011-11-26 18:18:02
    400个 nes游戏打包,没有模拟器,是本人辛苦收集的!真的有1407个 nes游戏!!!本人拿人格担保!我收集有可以有重复的,但是不会有很多的!
  • nes游戏文件打开教程

    2009-12-30 08:32:13
    NES 文件(图1)是 小时候 我们玩的红白机 游戏的 模拟文件 ROM 直接双击是打不开的必须要用 红白机的模拟器才可以打开
  • nes游戏模拟器.mrp

    2009-05-26 15:01:53
    可供山寨手机下载好多nes游戏,某种程度上代替了Java!
  • NES游戏的神经进化实验 设置 您将需要为发行版安装fceux(例如apt-get install fceux ),然后是割炬( )。 要在fceux中使用图形组件(iup),您需要按照以下两个指南手动安装它们: 和。 然后,您可以安装Windows...
  • 900多个不重复的NES游戏, 4人麻将,魂斗罗,1943,1944,公路赛车等经典游戏
  • V3S移植nes游戏模拟器(附带游戏合集) 1.资源准备: nes源码 alsa源码(本文采用buildroot已编译好的alsa库 编译该库可参考mplayer那篇文章,也可自行编译) 可以使用音频和spi屏幕(也参考之前的spi屏幕配置) 2...

    V3S移植nes游戏模拟器(附带游戏合集)

    1.资源准备:

    1. nes源码
    2. alsa源码(本文采用buildroot已编译好的alsa库 编译该库可参考mplayer那篇文章,也可自行编译)
    3. 可以使用音频和spi屏幕(也参考之前的spi屏幕配置)

    2.编译nes源码:

    1. 在源码目录的linux文件夹下建立一个work文件夹
    2. 修改源码目录下linux文件夹中的makefie
    1.修改CCFLAGS 增加alsa的头文件目录(该目录在bulidroot/output那里例如)
    -I/home/book/lichee/rootfs/buildroot-2018.02.2/output/staging/usr/include
    2.修改LDFILGS 增加alsa的lib文件目录(和上面一样)
    -L/home/book/lichee/rootfs/buildroot-2018.02.2/output/staging/usr/lib
    3.修改最上面的CC为bulidroot里面的gcc
    /home/book/lichee/rootfs/buildroot-2018.02.2/output/host/bin/arm-linux-gnueabihf-gcc
    4.更改最后的install那里为前面建立的work目录
    install ./InfoNES /home/book/lichee/model/nes/arm-NES-linux-master/linux/work
    
    
    
    5.修改InfoNES_System_Linux.cpp文件中的static int lcd_fb_display_px函数(调整spi屏幕的颜色):
    static int lcd_fb_display_px(WORD color, int x, int y)
    {
    	WORD *pen16;
    	unsigned char r, g, b;
    	r = ((color >> 10) & 0x1f);
    	g = ((color >> 5) & 0x3f);
    	b = (color & 0x1f);
    
    	color = r<<11|g<<6|b;
    	pen16 = (WORD *)(fb_mem + y*line_width + x*px_width);
    	*pen16 = color;
    	return 0;
    }
    
    make
    make install
    生成的文件在work文件夹下
    想使用usb手柄 可以再编译一下joypad文件夹下的源码也需要改makefile 自行参考下面的(适用高版本的模块编译)dir为源码目录!!!需要新的源码只需要和第一篇文章那样正常配置的才能编译,已配置过很多的源码是不可以的,CROSS_COMPILE为gcc目录
    KERNELDIR := /home/book/lichee/linuxkernels/linux_5.10_2 
    CURRENT_PATH := $(shell pwd) 
    ARCH=arm
    CROSS_COMPILE=/home/book/lichee/rootfs/buildroot-2018.02.2/output/host/bin/arm-linux-gnueabihf-
    export ARCH CROSS_COMPILE
    obj-m := joypad.o 
    
    build: kernel_modules
    
    kernel_modules:
    	$(MAKE) -C $(KERNELDIR) M=${CURRENT_PATH} modules
    clean:
    	make -C $(KERNELDIR) M=`pwd` modules clean
    	rm -rf modules.ordern
    
    

    3.烧录

    1. 下载游戏合集并解压,然后改名为游戏名为英文
      链接:https://pan.baidu.com/s/16hIWwYQQEX9aOBDG1dVa0A
      提取码:asdf
    2. 将生成的InfoNES放入板子。
      3.使用命令 ./InfoNES 游戏名字 就可以看到游戏开启成功
      在这里插入图片描述
    展开全文
  • stm nes游戏 在这个为期两周的开放游戏综述中,我们看了运行Linux的Nintendo NES经典版,对Unity 5.6的SDL支持, 0 AD Ulysses以及更多游戏新闻。 2016年11月6日至19日开放游戏摘要 NES经典版运行Linux ...

    nes游戏开发

    在这个为期两周的开放游戏综述中,我们看了运行Linux的Nintendo NES经典版,对Unity 5.6的SDL支持, 0 AD Ulysses以及更多游戏新闻。

    2016年11月6日至19日开放游戏摘要

    NES经典版运行Linux

    Nintendo于11月11日发布了NES经典版。这款小型游戏机预装了30款NES游戏。 你知道吗? 它运行Linux 作为单板计算机,它装有Allwinner R16片上系统,SKHynix 256MB RAM和Spansion 512MB闪存。

    GameXplain的视频中,在16分35秒时显示了运行Linux的单板控制台的证据。 它显示了开源软件许可证,还引用了Linux内核。

    YouTube上的Steam Dev Days视频

    Steam开发日于10月12日至13 举行。 YouTube上已提供了今年活动的演示。 活动中的两个有趣的视频是为SteamOS / Linux构建Unity游戏Vulkan Graphics视频。

    Unity 5.6将具有适用于Linux的SDL

    根据Unity Technologies研发技术总监Na'Tosha Bard的推文,下一代 Linux版Unity将是第一个获得SDL的版本。

    SDL或简单DirectMedia层是跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低级访问。

    随着Unity 5.6 beta版的发布,Unity将能够删除其X11实现,并且将来还会使用Mir和Wayland。 有关更多详细信息,请访问gamingonlinux.com

    Linux上的新游戏

    0 AD Alpha 21尤利西斯

    古代战争的开源游戏的创建者Wildfire游戏宣布了0 AD Alpha 21“尤利西斯” 此版本包括新的游戏模式,11个新地图以及更多内容。

    新的游戏模式之一是“最后一个人站立”,其中只有一个玩家可以赢得游戏。 还有Herocide / Regicide,您可以从英雄开始,然后在他或她去世时被击败。

    其他新功能包括建筑物的新升级系统。 用户界面备受关注,Javascript引擎已更新为Spider Monkey 38等。 有关更改的完整列表,请查看公告 您可以在此处下载游戏。

    太空商人:竞技场

    在跨平台在线多人RPG 太空商人:竞技场中 ,您将与未来派飞船进行激烈的混战。 游戏包括三种游戏模式:所有人免费,团队战斗(红色与蓝色)和捕获神器。 Linux版Steam上可用。

    蜡烛

    蜡烛 ,具有挑战性的难题的冒险,现已 Linux版Steam上可用 扮演Teku,这是一个年轻的新手,正处于从瓦卡(Wakcha)邪恶部落中解救他部落萨满巫师的危险旅程中。

    确保检查视频, 蜡烛 ,制作 它显示了游戏中使用的一些惊人的艺术。

    翻译自: https://opensource.com/life/16/11/open-gaming-news-november-19

    nes游戏开发

    展开全文
  • 从正点原子_战舰V3的光盘分离出来的_NES游戏机源代码,NES只是基功能的一部分。MDK工程,STM32F4
  • 8位NES测试游戏

    2018-04-12 18:51:42
    8位NES测试游戏,里面有很多丰富的小游戏,童年娱乐,跟大家共享
  • FC nes游戏机模拟器 visual c++源代码.zip
  • ESP32搞的NES游戏掌机

    2021-03-20 00:12:33
    本文转自立创开源硬件平台作者:micespring原文链接:https://oshwhub.com/micespring/esp32-nesemu▌简介一个基于ESP32制作的开源游戏掌机...

    本文转自立创开源硬件平台

    作者:micespring

    原文链接:https://oshwhub.com/micespring/esp32-nesemu

    ▌简介

    一个基于ESP32制作的开源游戏掌机,可以运行标准的NES(日版为FC)游戏,支持单声道音频。让你随时回味儿时的时光。

    固件基于乐鑫官方和moononournation二次开发的项目,Github地址:

    https://github.com/moononournation/esp32-nesemu

    ▌版本更新

    【V1.1-200807】

    • 现在可以通过在开机时按方向键来选择不同的游戏。最多支持5个内置游戏。(需要重新烧写固件,游戏下载方法详见章节“下载游戏”)

    特性

    • 低成本:仅一片ESP32-WROOM-32模块就实现了所有的功能,无需外部Flash、SRAM和DAC。

    • 易于制作:阻容元件使用0805封装,易于焊接。外壳的3D文件制作时已经考虑了低端3D打印机的公差问题,提高外壳制作成功率。

    • 兼容性好:经测试绝大多数的NES游戏可完美运行

    • 可方便地下载游戏:无需重新编译源码即可下载游戏,内置ESP32自动下载电路,下载时无需手动复位。

    • 内置电池:内置了锂电池充电电路和低电量指示电路。

    • 低功耗:400mAh的电池可持续运行约3小时。

    • 多功能:板子上引出了ESP32的全部可用IO,可作为ESP32的开发板使用。

    • 三个指示灯:红色:电量低;蓝色:充电中;绿色:电池电量满。

    • [2020/08/07]可以一次性下载5个游戏

    注意事项

    • 下载游戏时一定要打开电源开关!

    • 游戏ROM大小不要超过1M

    • 默认的充电电流约为400mA,如果自己制作时使用了不同容量的电池,请自行根据TP4056充电管理IC的datasheet修改R19的值来重新设置充电电流。

    ▌键位图

    ▌IO映射

    FunctionIOComments

    LCD-SCLK

    GPIO18


    LCD-MOSI

    GPIO23


    LCD-DC

    GPIO17


    LCD-CS

    GOIO5


    LCD-RST

    GPIO4


    KEY-UP

    GPIO14

    With 4.7k ohm pullup resistor

    KEY-DOWN

    GPIO32

    With 4.7k ohm pullup resistor

    KEY-RIGHT

    GPIO33

    With 4.7k ohm pullup resistor

    KEY-LEFT

    GPIO27

    With 4.7k ohm pullup resistor

    KEY-A

    GPIO35

    With 4.7k ohm pullup resistor

    KEY-B

    GPIO34

    With 4.7k ohm pullup resistor

    KEY-START

    GPIO16

    With 4.7k ohm pullup resistor

    KEY-SELECT

    GPIO13

    With 4.7k ohm pullup resistor

    ▌示例

    运行Contra游戏

    作为ESP32开发板运行例程(LittleVGL)

    ▌如何制作?

    准备材料

    以下商品需要在第三方平台购买

    • 屏幕:以下两个均可,注意,选择9341版本的

      • (已验证)2.4寸tft液晶屏显示屏ILI9341SPI串口屏

      • (未验证,需要检查PCB封装,可能需要修改PCB)中景园2.4寸液晶屏320x240 TFT LCD SPI串口TFT彩色液晶屏9341

    • M3*12螺丝x4

    其他元件按照BOM表格在立创商城购买即可,其中电池链接:锂电池 700mA

    准备外壳

    使用第三方3D打印服务或自行打印外壳,外壳的模型文件在附件中。 


    打样PCB


    开始制作

    1,焊接PCB正面元件(不要焊接屏幕) 

    2,焊接PCB反面元件(不要焊接电池) 

    3,通过红框位置为PCB供电,供电电压为3.3V,同时通过USB将PCB连接至电脑 

    4,在电脑上通过串口助手软件查看ESP32是否正常输出启动Log,如果没有,请重新检查元器件焊接是否有误(不用关心Log内容,只要正常输出log了即可) 

    5,关闭串口助手,下载附件中的“ESP32-FLASH下载工具-已设置好.zip”

     

    6,运行工具 

    7,选择ESP32 Download Tool 

    8,检查关键设置是否与如下图片中一致(下载的工具是已经设置好的,正常情况下不需要做任何变动) 

    9,选择正确的COM口,点击Start开始下载

    10,正常情况下下载应该会自动开始,进度条会开始走动,如图:

    11,如果下载长时间未自动开始,按住“下载”键不丢后按一下“复位”,然后再次点击下载工具上的“START” 

    12,如果按照第11步操作后,依然报错,则可能是元件损坏或焊接不良,请重新检查焊接。

    13,等待程序正常下载完毕后,断开USB连接和供电,下图为下载正常结束 

    14,焊接屏幕,但是先不要固定屏幕。 

    15,确保电源开关处于关闭状态(拨动杆在上方为关闭),然后焊接电池 


    16,打开电源开关,如果无异常,应该会出现“TANK”的游戏画面。如果白屏或者屏幕不亮。请在断开电池后从第一步开始重新检查焊接、下载是否有误。

     

    17,使用直径2.5mm钻头扩展螺丝孔,如果没有相关工具,也可以使用自攻螺丝 

    18,撕去液晶屏保护膜(按照自己的习惯来,不想撕可以不撕)。使用液晶屏自带的双面胶或者自行打胶固定屏幕(千万不要固定歪了!),将PCB放入底壳,放置好按键,盖上顶壳,拧好螺丝。 

    19,大功告成,开始玩耍~

    ▌下载新游戏

    1.准备好游戏的ROM文件(*.nes)

    2.运行附件中的“ESP32-Flash下载工具-下载多个游戏”

    3.点击红框中按钮,在弹出的文件选择对话框中选择文件类型为“所有文件”,然后选择你要下载的游戏ROM文件

    4.打开游戏机电源(重要!!!),将游戏机通过USB连接至电脑,然后选择正确的COM口,点击START开始下载

    5.下载完成后,按一下游戏机的“复位”键,默认运行第一个游戏。

    6.按住方向键不丢,然后打开电源(开机状态下为按复位键),会自动根据按下的方向键启动不同的游戏。对照如下

    游戏序号方向键

    1

    默认(不按任何按键)

    2

    方向键-上

    3

    方向键-下

    4

    方向键-左

    5

    方向键-右

    ▌图赏

    完整资料已经上传到公众号后台,回复关键词:掌机,即可获得下载链接。

    完整资料已经上传到公众号后台回复关键词:掌机,即可获得下载链接。

    完整资料已经上传到公众号后台回复关键词:掌机,即可获得下载链接。

    视频


    推荐阅读:

    专辑|Linux文章汇总

    专辑|程序人生

    专辑|C语言

    我的知识小密圈

    关注公众号,后台回复「1024」获取学习资料网盘链接。

    欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

    展开全文
  • 才发现居然下载要这么多积分,没积分的移步到 https://happysoul.github.io/nes/ 用C语言开发FC/NES游戏,里面没方模拟器,随便找一个就可以,25个例子,BUILD目录里有可以运行的nes游戏
  • PSP FC/NES游戏NesterJ模拟器最新中文版

    热门讨论 2013-03-18 10:50:32
    本人收集的PSP FC/NES游戏NesterJ模拟器最新中文版,不仅界面完全中文版,重点是支持更多国产游戏ROM,特别是外星电子之类的RPG游戏。
  • F1C100S-完整nes游戏模拟器(显示60帧-可音频输出),后附测试文件可下载。 全志F1C100S使用ARM9内核,QNF88封装适合手工焊接,内置32M DDR,标准跑408Mhz,可超频到720Mhz无死机。 本人业余时间移槙nes模拟器到F1C100S...
  • ROMDOM允许您使用JavaScript来处理NES游戏,类似于通过DOM与网页进行交互的方式。 该库允许您使用Node.js与大多数包含Lua脚本功能的仿真器进行交互。 它旨在与NES游戏进行交互,但是大多数旧游戏的行为基本上是...
  • NES 游戏扩展库 概述: 【mind+ maixduino用户库】经典的 FC 红白机 游戏模拟器, 带我们回到小时候! 导入 加载库步骤如下:点击“扩展”选择“用户库” 在搜索栏输入:“https://gitee.com/hockel/nes_game” ...
  • 这是你编写NES游戏所需要的 1.汇编程序(或编译器) 2.贴图编辑器 3.Photoshop或GIMP(或类似) 4.Notepad ++(或类似) 5.一个好的NES模拟器 6.一个贴图地图程序 7.python 3(可选,...
  • 压缩包括多个游戏文件,有成龙踢馆1代无限命,吃豆人数不减,机械战警,六三四剑,冒险岛2,扑克方块等
  • NES格式热血系列游戏

    2010-10-28 12:27:16
    NES热血小游戏,让你回想儿时的快乐,再来试试吧。
  • 可用于MP5游戏使用,对于下载有问题的用户不防试一试,本用用着,挺好!费了好大的劲才下载下来的啊!
  • FC(nes)游戏开发资源

    万次阅读 2012-01-10 11:24:12
    美国的网站,所有NES模拟器(程序设计)方面的资料 http://nesdev.parodius.com   ...FCNES游戏开发教程CC65版本   维京猎人教程 http://hi.baidu.com/fogota/blog   目前最流行的FC/N
  • nes小霸王三国游戏

    2009-05-23 23:24:12
    一款好玩有刺激的游戏,一款让你终身难忘的游戏,值得一玩

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 558
精华内容 223
关键字:

下载nes游戏