-
Notifications
You must be signed in to change notification settings - Fork 2
/
VGMPlay.txt
149 lines (117 loc) · 6.04 KB
/
VGMPlay.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
VGM Player - Readme
==========
General
=======
Usage: Drop a file on the executable or open the program and type the filename.
Supported files types are:
- Video Game Music Files (*.vgm, *.vgz)
- Creative Music Files (*.cmf)
- DosBox RAW OPL Log Files (*.dro)
- Playlist files (*.m3u)
Supported chips
---------------
- SN76496** (Sega PSG) and T6W28** (NeoGeo Pocket custom)
- YM2413* (OPLL)
- YM2612 (OPN2)
- YM2151 (OPM)
- SegaPCM
- RF5C68
- YM2203 (OPN)
- YM2608 (OPNA)
- YM2610/B (OPNB)
- YM3812* (OPL2)
- YM3526* (OPL)
- Y8950* (MSX AUDIO)
- YMF262* (OP3)
- YMF278B (OPL4) !
- YMF271 (OPLX)
- YMZ280B
- RF5C164 (Sega MegaCD PCM)
- PWM (from Sega 32x)
- AY8910 (MSX PSG)
- GameBoy DMG
- NES APU (incl. FDS)
- MultiPCM
- UPD7759
- OKI6258 (Sharp X68000 ADPCM)
- OKI6295
- K051649
- K054539
- HuC6280 (PC Engine)
- C140
- K053260
- Pokey (Atari)
- QSound
- SCSP (Saturn Custom Sound Processor, YMF292-F)
* This chip can be emulated via OPL Hardware (like Soundblaster sound cards).
** OPL hardware emulation is available, but software emulation is prefered. Hardware emulation is used if another chip activates HW emulation or FMForce is True.
! You need a sample ROM, called yrw801.rom, to make playback work. Place it in the directory where VGMPlay.exe lies.
OPL hardware emulation can be enabled by setting the "FMPort"-entry in the ini-file.
If you want to use FM Hardware under Windows NT/2000/XP/... you have to install PortTalk.
PortTalk Website: http://www.beyondlogic.org/porttalk/porttalk.htm
Under Linux the program must have root rights to use Hardware FM.
It's possible to write Wave-Files by editing the "LogSound"-line in the ini-file.
Batch conversions are possible by opening a playlist.
FM Hardware can't be logged to Wave files.
Keys
----
You can use the following keys during playback:
Space - Pause
Cursor Left/Right - Seek 5 seconds backward/forward
Ctrl + Cursor Left/Right - Seek 1 minute backward/forward
ESC/Q - Quit the program
F - Fade out
R - Restart current Track
PageUp/B - Previous Track
PageDown/N - Next Track
Note: All keys also work during silent sound logging.
System Reqiurements
===================
It depends on the files you want to play.
Minimum Reqiurements
--------------------
Software Emulation:
166 MHz should be enough for SN76496 + YM2612.
For chips with 12+ FM channels you need probably need at least 700 MHz.
16 MB RAM (plus a size of the VGM you want to play, so for a 100 MB vgm, you need ~110 MB RAM)
That allows you to play VGMs with up to 2x FM, 2x PSG or FM + PSG + PCM.
It's NOT enough for YMF271 emulation.
The YMF262 is equal to 2x FM. The YMF278B is Wavetable + YMF262 (with the latter one disabled if unused).
Hardware FM Playback:
486 with 33 MHz? - I dunno
On my PII 233 MHz FM Playback takes 3.5% CPU at a maximum.
Bugs
====
PauseEmulation is disabled under Linux unless FM Hardware is used.
Under Linux you have to double-tap ESC to quit the program (or just press Q). I haven't yet found a way around it.
Sometimes MAME's sound cores tend to sound strange. I already fixed some, but it's not my fault.
Ubuntu refuses to run (or maybe compile) VGMPlay correctly. It either crashes upon opening a vgm file or doesn't open the sound device. (and the ini-file, too. VGMs are opened for some reason.)
Using Wine with the Windows-version of VGMPlay should work.
It runs fine on openSUSE. (I compile and test it regularly with 12.3 64-bit. Older version were successfully tested with 11.1 32-bit and 11.4 64-bit)
It also ran fine on the Debian system at university.
Comments
========
If you want to set some options, open the ini-file. It's well commented.
The T6W28 doesn't use MAME's T6W28 core. Instead I modified the SN76496 core to emulate the T6W28 with 2 SN76496 chips.
The SN76496 OPL emulation is okay, but it's impossible to get the noise sound right.
EMU2413 Emulator was added, because sometimes the one of MAME sounds strange.
I added the Gens YM2612 core for the same reason (before I fixed MAME's YM2612 core).
I haven't yet found a player that supports all three version of dro files.
P.S.: AdPlug now seems to support them.
Some may be wondering, how someone can have the idea to implement OPL Hardware support. Here a more or less small story:
I like CMF MIDI files, but I was unable to listen to them while doing other things on my computer in Windows 95. It was impossible to listen to them unter Windows 2000. When I found AdPlug, the CMF support was bad and I started to make my VGM Player play CMF files. Debugging wasn't nice - a Pentium2 233MHz isn't stong enough for a Software OPL Emulator in Debug Mode. The OPL2-Port option in AdPlug was interesting (I have a Soundblaster 16) and showed me the power of PortTalk.
My MIDI-FM Player that got OPL-Hardware-Support earlier than my VGM Player, because playing usual MIDI files requires a lot more debugging than playing simple VGM files. When it was working in my MIDI player, I implemented OPL-Hardware-Support into VGMPlay. Of course the first working chips were OPL/OPL2/OPL3. I remembered that Meka had OPL-Support, too and wrote my OPLL->OPL-Mapper. It sounded quite good, but I was unable to get the PSG and the YM2413 of Space Harrier Theme in sync. So a PSG->OPL-Mapper followed. Later I ported Meka's OPL Mapper, because I liked the bass of some Phantasy Star tunes.
Credits
=======
This program was written by Valley Bell.
- almost all software emulators are from MAME (http://mamedev.org)
- EMU2413 and Gens YM2612 were ported from Maxim's in_vgm
- the YMF278B core was ported from openMSX
- zlib compression by Jean-loup Gailly and Mark Adler is used
- all custom OPL Mappers were written using MAME software emulators and the OPL2/3 programming guides by Jeffrey S. Lee and Vladimir Arnost
- one YM2413 OPL Mapper was ported from MEKA.
- the RF5C164 and PWM cores were ported from Gens/GS
- the MAME YM2612 core was fixed with the help of Blargg's MAME YM2612 fix and Genesis Plus GX' YM2612 core
- AdLibEmu (OPL2 and OPL3 core) was ported from DOSBox
- The default HuC6280 core is from Ootake.
- EMU2149, the alternative NES APU core and the NES FDS core were ported from rainwarrior's NSFPlay.