页次: 1
漂亮,好像是电阻网络的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
我设计并构建了一个名为“ 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).
专门针对游戏问题“ 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.
印刷电路板上的阻焊层下方有一个铜质徽标-酷家伙“ Cobra” :)并且控制台的名称为英文和日文。 显示创建控制台的年份。
On the PCB there is a copper logo under a solder mask - cool dude Cobra And the name of the console in English and Japanese. The year of creation of the console is indicated.
楼主太强了,想请问STM32H750是否可以移植这些经典游戏?
将能够:Space Cobra Retpixmod, NES, GB Color/BW, Turbo Grafx-16, SEGA Gamegear/Master System, Atari Lynx
无法完全解决:SEGA Genesis,SNES,NEO-GEO,CPS 1,2,GBA
当使用400 MHz的单核时,来自第二行的仿真器的仿真速度将非常慢,并且每秒低于60帧,并且声音会延迟。
您可以花招,跳过帧或关闭声音。 但这已经是一个次等的解决方案,我不喜欢它。
如果可能的话,最好使用双核STM32,以便在需要时使第二核负责协处理器的图形或仿真(Z80)。
BlackPrism Desktop TV game console. TMS320C6745 DSP + S1D13746 Video.
BlackPrism台式电视游戏机。 TMS320C6745 DSP + S1D13746视频。
TMS320C6745正在运行。 STM32令人羡慕地咬肘!
https://www.youtube.com/watch?v=d0Q2PX1XtfQ
在线玩这个游戏 (自由)!Play this game online(FREE): https://misterpix.itch.io/space-cobra-retpixmod-web-editon
谢谢大家的关注! 我感激你!
将传奇的 "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
传说中的“眼镜蛇”已移植到BlackPrism Portable游戏机上。
最高游戏性能:170 FPS(C6745 456 MHz / 152 MHz内存)。
在正常模式下,启用VSYNC,将帧速率限制为60 FPS。
您可以在此处下载适用于Windows和Linux的游戏: https://gamejolt.com/games/spacecobra/517754
我开始学习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更好...
这是原始出来的帧大小:
致力于“三角带给人欢乐”的粉丝们!
前身: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
在以前的DSP C6745上如何运行:https://www.youtube.com/watch?v=ulLPALpHOGk
这是有怀旧情怀驱动的吧,否则看不出它有什么商业价值,以前经常见到用ADI的Blackfin芯片做这些玩具。
是的,我这样做是出于对90年代(NES,SEGA)游戏机的怀旧之情。 在那之后,人们希望为此制作几款游戏(“ Gradius 3 Total Terror”游戏已经准备就绪!)。
我12年前做过的ADSP BlackFin BF532上的游戏机!
但是,与TMS320C745相比,BF532的处理器明显较弱,因为它没有浮点单元,并且没有用于并行算法的其他协处理器。
这是我在2008年-2010年制造的所有控制台的列表:http://zx-spectrum128k.narod.ru/Romanich/emu-apparatchik/
感谢分析,看来楼主是外国友人
当然是!
如果努力,就能找到!
https://www.chinahao.com/Product/596197278893/
456 MHz
https://www.chinahao.com/Product/596375739205/
375 MHz
是的,我不知道是否可以信任那个卖方。 芯片的质量未知。
感谢您的关注!
最近,我为桌面游戏机版本的旋转立方体修改了程序!
该控制台可通过编程方式绘制3D图形!
https://www.youtube.com/watch?v=NrAwHHGjqS4
该计划的来源: https://vrtp.ru/index.php?act=Attach&type=post&id=812670
可以在此论坛的主题中下载资源: https://vrtp.ru/index.php?showtopic=30775&st=0
在此之前,他在STM32H743上做了另一个EMU-Pocket游戏机:
https://vrtp.ru/index.php?showtopic=30174
在这两个主题中,Keil ARM MDK和CCS v.6的源代码
你们国家的创意和游戏机呢? 只有少数人与我们一起从事这项工作,他们都是爱人!
大家好!
我很高兴引起您的注意-TMS320C6745 数字信号处理器上的 BlackPrism 游戏机!
前缀有两种形式:
1)可穿戴选项:BlackPrism Portable
2)固定选项:BlackPrism Desktop
便携式版本图: http://forum.easyelectronics.ru/download/file.php?id=40726&mode=view
桌面版本图: http://forum.easyelectronics.ru/download/file.php?id=41526&mode=view
专门用于创建游戏机的主题: http://forum.easyelectronics.ru/viewtopic.php?f=17&t=39290&start=200 ( 主要主题!)
游戏控制台支持以下模拟器:NES, GB, GBC, SNES, TurboGrafx16, SEGA Genesis/MegaDrive, SEGA GameGear/Master System, Atari Lynx, NEO-GEO, Capcom Play System 1,2, GBA.
游戏端口: Open Tyrian, Alex 4 Allegator
原生游戏:Gradius 3 Total Terror
多媒体: WAV, ADPCM, OGG Vorbis, MP3, FLAC, CELT(Opus), MJPEG, JPEG, BMP, MP4(H264), DIY Codecs.
一些视频:
https://www.youtube.com/watch?v=jBiEOLvC2xo - (3D立方体)
https://www.youtube.com/watch?v=O1g8AbYWrzE - SEGA MD (没有协处理器,有协处理器)
https://www.youtube.com/watch?v=VTnZjDd_VHI - (影片介绍)
https://www.youtube.com/watch?v=6MdQyq1Ah3s - (SEGA)
https://www.youtube.com/watch?v=D9qnQALoYQM - (SNES + NES)
视频频道: https://www.youtube.com/channel/UCmVFYDZEcJ3sVFal5K42F-Q
游戏 Gradius 3 Total Terror:
https://www.youtube.com/watch?v=GEn2ZrCHyEU - (ARM920T)
https://www.youtube.com/watch?v=HTyDnkViiIE - (C6745 DSP)
NES 释放 : https://www.youtube.com/watch?v=VFXhTIhZWf4
不要在这里寻找Linux或其他操作系统-它不在这里! 用纯净的意识流直接编程铁!
仅限BareMetal!
我仍然为这些游戏机提供免费的印刷电路板! 如果有兴趣,给我写一封电子邮件: repstosw2018 [at] gmail [dot] com
感谢您的阅读!
我想写我的基于LCD的ILI9341控制器的驱动程序。 这款LCD具有16位宽的数据总线,理想情况下使用Allwinner v3s CPU CPU I / F i8080接口。
我搜索了Linux BSP,发现了一些有用的功能。 我写了一些代码,请验证它 - 此代码是否适用于LCD的寄存器/数据写入?
在我的情况下需要为外设TCON0启用一些时钟信号? 如果是,那么哪个时钟信号?
至于GPIO映射,我知道什么GPIO必须切换映射到LCD接口!
代码如下:
#define CA 25 /* A1位 A1 bit */
#define TCON 0x01C0C000 /* TCON基地址 TCON Base Address */
#define TCON0_CPU_IF_REG *(volatile u32*)(TCON+0x60)
#define TCON0_CPU_WR_REG *(volatile u32*)(TCON+0x64)
void TCON0_INDEX(u32 index)
{
TCON0_CPU_IF_REG&=~(1UL<<CA); //清除CA位 clear CA bit
TCON0_CPU_WR_REG=index; //写索引 write index
}
void TCON0_DATA(u32 data)
{
TCON0_CPU_IF_REG|=(1UL<<CA); //设置CA位 set CA bit
TCON0_CPU_WR_REG=data; // 写入数据 write data
}
页次: 1