您尚未登录。

楼主 #1 2020-06-11 16:38:39

Opcode
会员
注册时间: 2018-03-29
已发帖子: 30
积分: 30

Allwinner A13 GBA Emulator. BareMetal (Low-Level).

致力于“三角带给人欢乐”的粉丝们!

前身:https://gamedev.ru/flame/forum/?id=246512

我掌握了裸金属级别的Allwinner A13 SoC。每个人都知道这些石头是专门为Linux和android推的。没有文档,并且开发工具不是很...

我花了很多时间,但我实现了目标:我启动并配置了内核(必要的外围设备)。
时间:大约1个月。

只有裸机,不要在这里寻找Linux或android-他们不在这里,永远也不会!

最重的2D模拟器-GBA现在具有60 FPS甚至声音。

全志Allwinner A13 SoC击败了DSP C6745。 笑还是哭?

影片播放中:https://www.youtube.com/watch?v=zXyjdnBK-Go

https://whycan.cn/files/members/706/1_20200611-1633.jpg

https://whycan.cn/files/members/706/2_20200611-1634.jpg

https://whycan.cn/files/members/706/screenshot.png

https://whycan.cn/files/members/706/screenshot2.png

在以前的DSP C6745上如何运行:https://www.youtube.com/watch?v=ulLPALpHOGk






v3s - 易于DIY的芯片

离线

楼主 #9 2020-06-25 12:27:53

Opcode
会员
注册时间: 2018-03-29
已发帖子: 30
积分: 30

Re: Allwinner A13 GBA Emulator. BareMetal (Low-Level).

我开始学习V3s(这个不错的小工具具有焊接友好的外壳和64MB的内部存储器)。

并痛苦地发现没有UI Scaler,我无法将框架拉伸2或3次(使用硬件方法,而不是软方法)。

在这里,您需要将显示更改为较小的显示。 DMA在这里也不是助手,因为在V3s中DMA不支持可变增量步长,并且无法在其上执行缩放器!

在u-boot中也发现错误,由于某种原因,限制了颜色模式的数量,我已修复它!

//display.h:
//...
#define SUNXI_DE2_FORMAT_ABGR_1555              0x11 /* добавил */
#define SUNXI_DE2_UI_CFG_ATTR_FMT(f)		((f & 0x1F) << 8) /* ((f & 0xf) << 8) */ /* u-boot代码错误:将模式限制为15,还有更多! */
//...
  
//sunxi_display.c:
//...
        data = SUNXI_DE2_UI_CFG_ATTR_EN |
               SUNXI_DE2_UI_CFG_ATTR_FMT(SUNXI_DE2_FORMAT_ABGR_1555) |
	       SUNXI_DE2_UI_CFG_ATTR_ALPMOD(1) |
	       SUNXI_DE2_UI_CFG_ATTR_ALPHA(0xff);

	writel(data, &de_ui_regs->cfg[0].attr);
//...

一切正常,但LCD上没有缩放器,这真的让人很难过...由于LCD不是VGA监视器,并且您无法设置任意扫描时间线,因此您必须对LCD 800x480上小尺寸的模拟器感到满意。 V3没有像A13那样简单的像素拉伸,因此有三种解决方法:

1)使用视频缩放器,这意味着另外将240x160 RGB帧转换为YUV。

2)使用软件缩放器-它们严重低估了性能:在FPS = 480的游戏中,缩放器将FPS低估了2倍至120(随着面积增加4倍)。

3)放弃笨拙的显示器,并以较低的分辨率拍摄。

而且V3中的DMA不支持可变增量步长,这确实让人很难过-您无法执行DMA定标器。不过,A13 DMA更好...

这是原始出来的帧大小:

2_jpg_9b0df1cccdd0da1ad6d8a4d3d945a416.jpg

最近编辑记录 Opcode (2020-06-25 12:28:13)






v3s - 易于DIY的芯片

离线

楼主 #10 2020-07-30 20:35:21

Opcode
会员
注册时间: 2018-03-29
已发帖子: 30
积分: 30

Re: Allwinner A13 GBA Emulator. BareMetal (Low-Level).

谢谢大家的关注! 我感激你!

将传奇的 "Space Adventure Cobra Retpixmod” 移植到Lichee Pi Zero(全志V3s SoC)。

800x480模式下的最高游戏性能(简单框架沿每个轴拉伸2倍)为490 FPS,SaI2x过滤器(800x480)为180 FPS的峰值性能。

DSP TMS320C6745令人羡慕地咬肘...

在正常模式下,启用VSYNC,将帧速率限制为60 FPS。

Video: https://www.youtube.com/watch?v=MTZEJD1JCCc

下载这个游戏: https://gamejolt.com/games/spacecobra/517754

Screenshot_2020-07-30%20%D0%A4%D0%BE%D1%80%D1%83%D0%BC%20ELECTRONIX.png

最近编辑记录 Opcode (2020-07-30 20:36:42)






v3s - 易于DIY的芯片

离线

楼主 #12 2020-08-24 21:52:59

Opcode
会员
注册时间: 2018-03-29
已发帖子: 30
积分: 30

Re: Allwinner A13 GBA Emulator. BareMetal (Low-Level).

众神教我们勇于忍受邻居的错误!






v3s - 易于DIY的芯片

离线

楼主 #15 2020-09-08 22:36:43

Opcode
会员
注册时间: 2018-03-29
已发帖子: 30
积分: 30

Re: Allwinner A13 GBA Emulator. BareMetal (Low-Level).

wupaul2001 说:

可以使用Dispaly Engine实现硬件拉绅

此处不使用Display Engine加速,因为对我来说,保持程序跨平台以便将其移植到其他硬件很重要!

Display Engine acceleration is not used here because it is important for me to keep the programs cross-platform for porting them to other hardware!






v3s - 易于DIY的芯片

离线

楼主 #16 2020-09-09 13:08:34

Opcode
会员
注册时间: 2018-03-29
已发帖子: 30
积分: 30

Re: Allwinner A13 GBA Emulator. BareMetal (Low-Level).

我设计并构建了一个名为“ COBURA”的全新Allwinner V3s游戏机,该游戏机在日语(コ ブ ラ Space Cobra)中意为“眼镜蛇”。
I designed and built a new Allwinner V3s game console called "COBURA", which is Japanese for "Cobra" (Japanese コ ブ ラ Space Cobra).

45.jpg


专门针对游戏问题“ MisterX”订购了游戏机,尤其是针对“ Space Cobra RetPixMod”游戏。
但是,没有什么可以阻止我之前已经做过的所有遗留工作在此控制台上运行:不同的模拟器和游戏端口。
The game console was made to order for the gaming concern "MisterX" especially for the game "Space Cobra RetPixMod".
But nothing prevents from running on this console all the legacy that I have already done earlier: different emulators and game ports.

1_20200909-1304.jpg

印刷电路板上的阻焊层下方有一个铜质徽标-酷家伙“ Cobra” :)并且控制台的名称为英文和日文。 显示创建控制台的年份。
On the PCB there is a copper logo under a solder mask - cool dude Cobra smile And the name of the console in English and Japanese. The year of creation of the console is indicated.

1_20200909-1307.jpg






v3s - 易于DIY的芯片

离线

楼主 #18 2020-09-09 19:47:52

Opcode
会员
注册时间: 2018-03-29
已发帖子: 30
积分: 30

Re: Allwinner A13 GBA Emulator. BareMetal (Low-Level).

redstar 说:

漂亮,好像是电阻网络的VGA输出?

视频DAC由电阻组成。 MOSFET开关可在VBLANK期间禁用色度通道。
The video DAC consists of resistors. And MOSFET switches to disable chroma channels during VBLANK.

完整原理图在这里。
Full schematics here.
https://gamedev.ru/files/images/v3s_gameconsole.png

v3s_gameconsole.png






v3s - 易于DIY的芯片

离线

楼主 #19 2020-09-12 09:08:53

Opcode
会员
注册时间: 2018-03-29
已发帖子: 30
积分: 30

Re: Allwinner A13 GBA Emulator. BareMetal (Low-Level).

特别是对于“ SpaceCobra Retpixmod”游戏

我正在使用原始视频模式400x480,行加倍。 我使用NEON指令复制到视频内存(在该处理器中,事实证明这是最快的方法)。

通过在游戏配置中设置一个,可以使用SaI 2x过滤器。 在这种情况下,视频模式将为800x480。

在所有情况下,帧频均为60 Hz。 在此类监视器和分辨率上,也可以毫无问题地设置120 Hz。

1.png

2.png

最近编辑记录 Opcode (2020-09-12 09:09:45)






v3s - 易于DIY的芯片

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn