(WIP) NMK004 sound CPU.... - 模擬器

Elizabeth avatar
By Elizabeth
at 2014-09-09T11:19

Table of Contents

2014.09.07

搞定了!!!

NMK004 ROM Dumping, Part 2

This is post is a sequel to a previous post:
http://daifukkat.su/blog/archives/2014/09/05/nmk004_rom_dumping_progress/

An interstitiary post now. I realize that I absolutely blew right through any
background information and as a result that last post was probably gibberish
to most people. A bit of explanation is in order then. Before continuing, I'd
like to give thanks to all of the people who worked on the NMK004 simulation
in MAME. Though this work could have been done without it, it definitely
would have taken much much longer. I owe a great amount of gratitude to those
contributors, especially Nicola Salmoria.

First off, this short project's goal is to dump the internal ROM of a
protected sound CPU used on many arcade PCBs made by NMK. This sound CPU is
labeled NMK004, and is a TLCS-90 CPU -- essentially a Z80 on 16-bit steroids
-- with an internal code ROM, and some other stuff that doesn't matter much.
The internal code ROM has never been dumped, and as a result, any attempt to
emulate these games has resulted in either poor sound emulation due to
incomplete/wrong simulation of the behavior of the NMK004, or none due to not
bothering to simulate the chip at all.

A quick list of games that utilize this sound CPU:

‧USAAF Mustang
‧Uchuu Senkan Gomorrah (Bio-ship Paladin)
‧Vandyke
‧Black Heart
‧Acrobat Mission
‧Koutetsu Yousai Strahl
‧Thunder Dragon
‧Hacha Mecha Fighter
‧Choujikuu Yousai Macross
‧GunNail

These games all use the same sound setup: two OKI MSM6295s (simple 4 channel
ADPCM playback chips) and one Yamaha YM2203 (3 channel FM sound chip with 3
channel PSG built in, first entry in the OPN sound chip family). They also
have an external EPROM used to hold the song data for each game. Different
games have completely different contents here, because they have different
music. An important note, and the very feature that allows my hack to work,
is that the ROM's data layout is flexible. There is a header (well, footer)
located at 0xEFE0 in the external ROM. This header contains pointers to a
bunch of tables, containing information for music playback. These pointers
point at direct addresses, so they are not transformed at all before being
used.

This alone wouldn't have been enough. It would have been possible to prevent
this attack in a few ways, but there didn't seem to be any attempts to secure
the MCU's code. The external ROM is on the same address space as the internal
ROM. The external ROM is also in an "overlay" configuration, meaning that
when it's being accessed, the address is not transformed before being sent to
the device. This means that I can set the pointers to point into the internal
ROM instead of the external ROM with absolutely no problem. This simple
attack could have been defeated if they had merely checked the bounds of the
pointer before using it, but they must have felt content with just having
locked down internal ROM. Admittedly, their solution worked quite well, since
as far as I'm aware, there were no bootlegs of the hardware that didn't just
replace the sound section wholesale or weren't just conversions of other
games.


I said last post that I'd give a breakdown of the functioning of my hacks in
this post, but I don't think it's time for a full breakdown yet. Instead,
here's a breakdown of the contents of that external ROM, the vulnerabilities
that it affords, and the pros and cons of each table to be used for an
attack. Most of this information comes directly from my notes, or has been
slightly modified to make it more understandable to an outsider.


來源:http://daifukkat.su/blog/

--
另外,滿貫財神的聲音修復也有明顯進展:
http://player.youku.com/player.php/sid/XNzc3MTQ2MDA0/v.swf (優酷連結)

--
ポーラステーション
http://perry0517a.blogspot.tw/

--

All Comments

(WIP) DU Update: Jump Jump

Enid avatar
By Enid
at 2014-09-08T09:08
: 推 hdd60311: 感謝分享,測試了下雷電2的確能正常模擬了(大拇指 09/08 02:41 : → hdd60311: 不過模擬器讀不到雷電DX日版rom? 09/08 02:46 Cheat : Region Change 比較快 ...

nullDC 記錄問題

Steve avatar
By Steve
at 2014-09-07T22:16
今天剛灌了這個模擬器 要重溫當年玩 永恆的阿爾卡迪亞的感動 我想問一下這個模擬器 是不是只能從遊戲裡面的紀錄點開始玩? 沒有辦法像其他的模擬器 ex ps2的模擬器pcsx2 可以即時記錄這樣 例如打魔王前就記錄 不用從記錄點開始這樣 這個模擬器我好像找不到可以可以即時記錄的地方 只能從遊戲裡面的紀錄點開始 ...

請問nds版三國ds2怎麼自創武將拿到[霸王]?

Skylar DavisLinda avatar
By Skylar DavisLinda
at 2014-09-07T15:37
※ 引述《cc55 (世界意唱[囧香國] )》之銘言: : [霸王]戰技可使將軍氣力減半使用戰技.. : 請問nds版三國ds2怎麼自創武將拿到[霸王]戰技? : 若要訪問名人學[霸王]戰技.. : 請問何年何月,在哪個地點訪問哪位名人呢? : 請問有中日文攻略網站或巴哈攻略嗎? 幫你估狗了一下日本人的討論 ...

請問nds版三國ds2怎麼自創武將拿到[霸王]?

Lydia avatar
By Lydia
at 2014-09-07T13:52
[霸王]戰技可使將軍氣力減半使用戰技.. 請問nds版三國ds2怎麼自創武將拿到[霸王]戰技? 若要訪問名人學[霸王]戰技.. 請問何年何月,在哪個地點訪問哪位名人呢? 請問有中日文攻略網站或巴哈攻略嗎? - ...

(WIP) DU Update: Jump Jump

Dorothy avatar
By Dorothy
at 2014-09-07T11:48
2014.09.06 system11 dumped Jump Jump. http://blog.system11.org/?p=847 - Jump Jump https://www.youtube.com/watch?v=a5wjcYzlwS4andamp;feature=player_ ...