DAM XG-1000
A commercial Karaoke machine
https://www.dkkaraoke.co.jp/business/karaoke_service/products/old/premierdam/ http://web.archive.org/web/20080601222833/http://www.dkkaraoke.co.jp/business/karaoke_service/syouhin/PremierDAM/PremierDAM.html
Released at 2600000 Yen on 2007-04-19 it is now EOL and turning up on yahoo auctions now for around 5000 Yen.
https://auctions.yahoo.co.jp/category/list/2084048479/
It seems it was originally made by a Korean Company OSUNG MIDICOM CO., LTD.
Main Board:
Silkscreen: DAM-XG1000 Main Rev 1.5 OSUNGMIDICOM Co.,LTD. CPU: Sigma Designs SMP863X CPU spec: MIPS 34Kf Arch: MIPS32R2
RAM: 4x SAMSUNG K4H511638D-UCCC 512Mb D-die DDR SDRAM Specification
Main Flash: Spansion S29GL064 64 Megabit 3.0-Volt NOR Memory
FPGA: XC3S1000 Xilinx Spartan
FPGA RAM: SAMSUNG K4S643232H 64Mb H-die (x32) SDRAM Specification
SATA: Silicon Image SiI3114CTU PCI to Serial ATA Controller
VIDEO: VWEB VW2010 MPEG-1, -2, -4 Audio/Video CODEC Chip
VIDEO RAM: SAMSUNG K4S643232H-UC60
DSP board:
Silkscreen: X8203 WJ06370
DSP: TMS320D610A003ZDP Audio DSP System for Home Theater Products
DSP RAM: ESMT M
DSP Flash: MX
DSP FPGA: XILINX XC
YAMAHA: 2x YSS910C-V YSS915-M
USB board
Silkscreen: OSUNGMIDICOM Co., LTD. DAM-XG1000 HUB Rev 0.4
USB: GL850 USB 2.0 Low-Power HUB Controller
Receiver board
Silkscreen: WJ06360 X8202 W205H115
Top Side: AUDIO: 2 xYAMAHA XS725A0
RAM: 2x G-LINK GLT44016P-40J4 256K X 16 CMOS DYNAMIC RAM WITH EXTENDED DATA OUTPUT
CPU: 2x RENESAS HD6417014F28V 32-Bit RISC Microcomputer SuperH TM RISC engine family/SH7010 Series
Bottom Side: RAM: 2x ISSI IS42S16190C1-7TL 512K Words x 16 Bits x 2 Banks (16-MBIT) SYNCHRONOUS DYNAMIC RAM RAM: OKI M514260E-60J 262,144-Word x 16-Bit DYNAMIC RAM : FAST PAGE MODE TYPE Flash: 2x SPANSION S29AL008D70TF102 8-Mbit (1M x 8-Bit/512K x 16-Bit), 3 V Boot Sector Flash Flash: 2x MX B073735 YAMAHA (C) 2004 X5725A0 2U606600A1
Mixer board
Silkscreen: WJ06380
Mic board
Silkscreen: OSUNGMIDICOM Co.,LTD. DAM-G100X-MIC Rev 1.0
Plug-in Board
Silkscreen: U.S.PATENTS: 4967635/H2931, 4763553/H2321, 4974485/H2006, 4731835/H2606, 4584921/H2320, 4520708/H2023, 4738179/H2062
XG Plug-in Board PLG-100-XG
Top Side: YAMAHA XU947C0 OKI RAM IDT 71016 Mask ROM YAMAHA XW769
Other:
HDD: ST3750640AS Seagate BarraCuda 7200.10
DVD: CD-R、CD-RW、CD-ROM、DVD±R、DVD±RW、DVD-VIDEO、DVD-ROM
Power supply
You can connect an ATX power supply through one of the empty SATA power connectors. This will make most of the machine work except for Video out and Music out. For that you will have to connect -12V and power the 7805 regulator from the 12V supply. I’ve desoldered the diodes from the second analog power supply while I was looking for a short.
Remote
Along with the second machine i got a PM200zB remote. It has a Samsung ARM CPU and runs Linux 2.2.14-v5.1_PM200
Software side
The first partition has a loader that is run by /etc/init.d/S50NK1000 The second partition doesn’t have a filesystem and is accessed directly by the program. The third partition has all the data but to obfuscate it they changed the ext3 header, changing that one byte makes it mountable again.
Earliest file date: 2006-12-14 11:45 Latest file date: 2007-04-15 15:48
There are kernel modules with a version string.
vermagic=2.6.15-sigma MIPS32_R2 32BIT gcc-3.4
The executables in it, xg1000
and Karaoke
depend on
- GLIBCXX_3.4
- GCC_3.0
- CXXABI_1.3
- uClibc 0.9.27
I was able to run them in qemu-system-mips with vmlinux-2.6.32-5-4kc-malta from https://people.debian.org/~aurel32/qemu/mipsel/ and an image built with buildroot git version 257dcdeabfc7072023050be6c8da46e0b76d478e in a debian etch VM
Making it work again
The machine has telnet open and the “default” user has no password. You can log in and edit the /etc/shadow file with vi to remove the root password. Then reconnect and log in as root without a password.
I’ve automated the logging in part with an expect script
#!/usr/bin/expect
set ip "192.168.xxx.xxx"
spawn "/bin/sh"
send "telnet $ip\r"
expect "uclibc login:"
send "default\r"
expect "\$ "
send "vi /etc/shadow\r";
expect "root:"
for {set i 0} {$i < 38} {incr i} {
send "\033\[C"
}
send "a"
for {set i 0} {$i < 34} {incr i} {
send "\010"
}
send "\033:wq\r"
expect "$ "
send "exit\r"
expect "sh-5.2\$ "
send "telnet $ip\r"
expect "uclibc login:"
send "root\r"
expect "# "
send "whoami\r"
expect "# "
send "mount /dev/sdc1 /mnt\r"
interact
As root you can run /NK1000/Data/MODUL/SetTime 2020-06-06
to reset the date and make the machine work again if it has expired.
Hidden menus
Service menu
When the machine is off but has power (the power button will have a red LED and the screen is off) hold the Tempo- and Tempo+ buttons and then press the power button. Instead of the loading screen it will be black for a few seconds and then show the service menu. You can also hold the Tempo up key from the normal mode.
You can do a bunch of setups here and run basic tests.
Developer menu
To get in the developer menu, press the Tempo reset keys a few times from the top service menu. It will then ask for a password, on older updates this is 8650 on newer ones it is 865024. Here you can change the serial, set the IP address and reset the machine to factory settings which will clear the lock.
99 Menus
When the machine is on and running in normal mode, press 99 and then the DAM key to open a quick settings menu. Here you can adjust echo, volume and the type of background. Navigate with Tempo and Key keys and close with the DAM key.
98 Menu
The same thing but it’s a bar at the top of the screen instead of a big overlay
97 Menu
The same thing but it’s a window in the top left of the screen.
96 Menu
This is something about video
Owner mode
Play track number 0000-01 Here you can update the remote and permanently set some of the settings from the 99 menu.
Remote settings
To get into the settings of the デンモク remote you press the “Remote” button in the bottom right. Enter 983, then press メモリーセット. it will show a message, then enter the 9193 password and press メモリーセット again
Intro vid
7777-77 will play an Intro video that presents 4 feature:
-
Burn your terrible singing to disc Yo check out my mixtape
-
SD card Look at photos of your trip to the Korea DMZ while you sing. ((You need the Media dock for this))
-
iPod Play music from your iPod ((You need the Media dock for this))
-
Game There are at least 2 Games: One that just measures how loud you’ve been and calculates burnt calories from that. The calorie counter can be enabled/disabled in the owner menu. You can check the calories for the last tracks using 8000-30. A game like singstar where you actually have to kinda hit the tone to get a score. To start this game enter song 8000-01 for ranked and 8000-02 for casual games. You can look at past scores using 8000-99
Easter egg
5793-01 is the company track of DKK
Font file format
4bit grayscale
Folder contents
Folder | Content | Format |
---|---|---|
5 | empty | |
11 | empty | |
30 | weird history trivie | Shift-JIS txt |
40 | wavetables??? | YHMK (probably stands for Yamaha) |
44 | empty | |
56 | 6 demo videos | Windows Media Video 9 |
58 | DAMstation ad and binaries | Quicktime MP4 |
59 | 1 binary | YKCD???? |
115 | UI elements, fonts, the keypress beep audio, audio from the test menu | BMP, OSM_FONT2 (Osung Midicom?), WAV, MP3 |
300 | music instrumentals, numbered after the clubdam ID | MP3 |
301 | high entropy binaries, corresponging filenames to 300 | ??? |
302 | 9 subfolders images of track names and words | 291-314 bytes + PNG |
303 | videos of nature and ambiance music | WMV, MP3 |
304 | ambiance music | MP3 |
305 | next track tables, stock photos, list of new tracks, error screens | MPEG2 stills |
306 | 9 subfolders with binaries, libGooSystem refers to them as medley, they have clubdam IDs | ??? |
307 | 29 binaries and a script rename.sh that renamed each file from 22.* to 307.* | txt |
308 | binaries with names corresponding to clubdam IDs | MIDI??? |
310 | on screen menu images | BMP |
311 | online ranking game, gundam visual novel, golf animations, some pokemon graphics | MPEG2 stills, JPEG, BMP |
312 | vocals | mp3 |
313 | single 528b mp3 file | YOKA MP3 (can’t play) |
314 | binaries | YARC ??? |
315 | empty | |
316 | album/artist images | JPEG |
317 | binaries | YARC header and DBGV chunks |
318 | empty | |
319 | music video | WMV 9 |
320 | videos??? | WMB1P WMV3 (can’t play) |
321 | movie trailers (tetsuo shinohara’s gakko no kaidan) | WMV 9 |
323 | DAM channel videos | WMV 9 |
324 | NHK historic video with a note they can be played using 7500-xx (playing them gives a message they’re expired) | WMV 9 |
340 | an image of a pretty japanese woman and a note about data being received | JPEG, Shift-JIS TXT |
341 | the album cover to aerosmith’s “just push play”, the track “beyond beautiful”, an xml file describing it as T0001S01.wma and being on the album “Climbing!” by Mountain and a note about something being downloaded | JPEG, WMA2, Euc-JP XML, Shift-JIS TXT |
342 | OTHER PEOPLES SINGING ????????? | WAV |
343 | a file containing about 8 unrelated track names | no idea |
344 | a silent 4s mp3 | MP3 |
360 | empty | |
362 | empty | |
400 | empty | |
401 | empty | |
402 | empty | |
403 | empty | |
404 | empty | |
405 | empty | |
406 | empty | |
441 | empty | |
1017 | empty | |
1033 | empty | |
1528 | data | song index?? |
Folder 321 (which is all ads) uses up most of the space (388,1GB)
Special files: | Filename | Content | Note | |———-|———|——–| 1.133 | CommMode flag | 1.309 | CAutoBackup::CompareEntryNum | ??? 115.3 | front panel firmware | 115.17 | Rireki? 1byte 115.303 | OpenMusicType / GetNumberOfMusic | 115.306 | CheckPlayLock | 115.312 | error messages 115.911 | GetIrregularTerminal | looks like L0000001 is their dev serial 115.482 | GetMIDISongNumber | 115.905 | HSTP Haishin Stop 115.1012 | BGVpermission | doesn’t exist 115.1031 | NCB Content?? Contains Bingo and Sweet Angel | ??.426 | Playcount | 115.303 | some kind of track index | 44.1 | temp file for updating the remote | doesn’t exist 426.1 | doesn’t exist, putPlayCount references it | might exist on a running system or the A drive