Emulator 板


LINE

2015.04.03 "Making Your Ears Bleed " April 1st is typically about making your brain hurt with ridiculous concepts and fake news. This year I’ve decided that instead of hurting your brain I’ m going to hurt your ears with some very preliminary sound emulation. The Hyper NeoGeo 64 is a system we’ve never quite got to grips with, it’s a difficult emulation target on several levels, and even the sound system is an unusual setup; a DSP found on a fairly expensive synth, driven by an NEC V53A processor (the synth also uses a V53 interestingly) Over the last few weeks I’ve been looking at the V53 side of things. A V53 is a V33 with added onboard peripherals, and as it happens those peripherals are basically NEC equivalents / modified versions of a typical PC chipset (DMA controllers, Serial controllers, and an Interrupt controller). Luckily with all the advancements in PC emulation in the MESS side of the project, all of those components are now emulated, so I was able to create a new CPU type and hook them up to it. With the peripherals and their associated/configured ports identified and hooked up the remaining ports on the sound CPU stuck out more, and things like the ROM banking were immediately more obvious; fixing that up improved the flow of the V53 code dramatically. I’m actually unclear why they even need it, they had 2MB of sound program RAM for the V53 program and data structures, but no game uses even close to that, in fact, everything that is uploaded could have easily fit into the standard V53 address space with no banking at all. It looks like earlier in the design of the system they’d planned for 4MB of sound program RAM too, as there is an unmapped 2Mb space below the sound program on the MIPS side (if you map it then Xrally gets confused) and all bank addresses on the V53 side have the highest bit set. Anyway, despite configuring various devices, I’m not entirely sure the system makes use of the serial functionality (although there’s clearly an interrupt associated with it) and all it ever seems to DMA is a buffer of 0x00 data from RAM. Maybe I’ll find out what these are for later, maybe, like so many things on the system, they were simply underused, or even unused. Kale hooked up the 2 way communication ports between the MIPS and the V53 (surprisingly they didn’t just use the shared RAM) and also an interrupt on the V53 side that appears related to those ports, and for most of the games we started to see communication across the CPUs, commands being sent when sounds were trigger etc. During the whole process described above a lot of code was refactored in preparation for more work. With all that in place I then hooked what I’d earlier identified as writes to the sound chip to a new placeholder sound core, triggering some very rough sample playable. I took what seemed to be the sample start address, and set up the code so that it would play 0x2000 bytes of samples at that position for each request. What that resulted in can be seen / heard in the video below. https://www.youtube.com/watch?v=6WXWrU_pzDA&feature=player_embedded
Of course, this sounds TERRIBLE. The PCM data format I’m using is wrong (it seems to be some kind of 8/16-bit hybrid format rather than plain signed 8-bit PCM) and there’s no concept at all of sample length, so some samples are cut off (Final Round) and others play for too long, resulting in garbage sounds, or unwanted extra bits of voice clips (Round 1,2) instead of Round 1 etc. However, as terrible as it sounds, the first time you hear sound in something is a very special moment, so I decided it was worth preserving in a video. People have said that I don’t post enough ‘Work in Progress’ news pieces here these days, so here it is, as raw and ugly as it comes. There’s still a long way to go with emulating the Hyper NeoGeo 64 to any good level, I did make some fixes to the texture rendering on Xtreme Rally (billboards etc.) a few weeks ago, but the 3D is still a flickery mess there because we don’t fully understand the 3D buffering techniques. The floor on Fatal Fury still needs hooking up again (I have some ideas) The network CPU needs emulating properly (otherwise Roads Edge is broken even if you force it to go ingame) Priorities and mixing need handling properly (I imagine that will hide a lot of the garbage sprites and layers you see at the moment) Sprite zoom needs fixing, Mosaic effects need adding, 3D colours and texturing still needs further fixing, 3D projection needs fixing in some cases (very obvious on the letterboxed Fatal Fury intro where it clearly attempts to project to full-screen instead of the letterboxed area) The 3D needs threading out to improve performance, and even the I/O is still an issue because the I/O mcus are not dumped, and the exact communication protocol isn’t understood meaning we’re relying on hacks to get any inputs at all. As you can see, there’s a huge list of things that still need doing here, but, every little step is important with this driver, so finally being able to hear something is very significant, even if you’re not going to be able to tolerate it for more than a few seconds. Some of the tasks are remarkably difficult, the network CPU is a truly insane Z80 based chip, with many opcodes only taking a single cycle, and a complex MMU system slapped on for good measure, to make things worse, the only documentation is in Japanese. The I/O MCU problem we can’t do anything about, we have no way to dump them, so it’s going to reqiure painstaking simulation code. Understanding a lot of the video registers is also going to take time, and maybe even hardware tests, because so many features are barely used. 来源:http://mamedev.emulab.it/haze/ -- ポーラステーション http://perry0517a.blogspot.tw/ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.160.75.123
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Emulator/M.1428228060.A.0DF.html







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP