NEOJUKEBOX 2.7 Miguel Angel Horna mahorna@teleline.es INTRODUCTION What is NeoJukebox?. Neojukebox is a program that allows to hear all the music and sounds of NEOGEO Games. Music and sound data are played throught a Z80 processor and a Yamaha 2610. There is also a noise and tone generator. The sound data is stored in the ???_m1.rom and ???_v?.rom files. The Z80 is emulated using Richard Mitton's RAZE core. YM2610 emulation by Hiromitsu Shioya using SEAL audio libraries. Neojuke is not driver based, so any new dumped games (you know what game I'm talking about) should work without any modifications, just type the name of the _m1 file and it should work (and it really works). USAGE Now Neojukebox uses Winamp Skins. You can use any Winamp Skin (see below). You can use the standard Winamp Play control keys (ZXCVB) to use the playing buttons. The 'L' key brings the Load dialog. The following keys are used to change the sound and track numbers: Q Track+10 W Track+1 E Sound+10 R Sound+1 A Track-10 S Track-1 D Sound-10 F Sound-1 The Sound and track numbers can be modified with the arrow buttons under them. The left button changes the left digit and the right button changes the right number. If you press the PlayList Button, you'll get the preset selector. This list shows the song name of the actual track and sound. The checkbox next to the name is reserved for future versions and must be checked. To add a new preset, set the track and sound you want, write the name in the EditBox and press the Add button. The presets are stored in a file called "music.dat" in the NeoJukebox directory. This file uses the Windows INI-file layout, so you can add the names manually or cut&paste songs from other file. The Section name (the one in brackets) is the name of the _m1 file of the game. The Key number is the track and sound number put together (track 1 sound 10 makes 110) and the value is the text that appears in the box. There is a good idea to make a big database with song and sound names. If anyone wants to coordinate the compilation, please mail me. If there isn't any, you can send your music.dat files and I'll try compile them into a big database. NEW: You can include the complete name of the game writing it in the key Title (example: Title=Waku Waku 7) The Suffle button is not used yet. The button next to the Suffle button (with a red dot) is the Record button ( see recording below) The button next to the playlist one (with the word SET written) is the Settings button, it brings the Settings Screen (see SETTINGS below). Clicking in the lower right corner brings the about screen. RECORDING Well, recording is easy, just push the record button and it is, but there are some important things you must know first. If there is no music playing, when you hit the record button, the actual trach and sound is played, this is good for ripping the music without starting blanks. If there is music playing, then the current output is stored in the wav file. The name of the wav file is the one in the presets box, so you can name it although it weren't in the preset list. If there is no name in the box, then the name is made with the track and sound values put together. If the file already exists, it will be OVERWRITTEN without asking. If you press the stop button, the recording is not stopped, to stop recording, push the Record button again. The output wave file 16 bit and stereo so it could be very big, but it is not a problem, it's easy to reduce its size mantaining the quality. SETTINGS Directories: You must not supply the trailing backslash in the directory name. Rom directory: Is the directory that appears when you hit the Load button Recording Directory: Directory where the WAV files are stored. Skin Directory: Directory/zipfile where the skin data is. Sound Options: Sampling Rate: Adjust the sampling rate of the sound output. It may improve the performance in slower machines. Visualization: Always on top: Makes the Neojuke window always visible. WINAMP SKINS You can use any winamp Skin to change the look of neojuke but you need some additional files: Letters.bmp : contains the letters from A to F to make the hex number in track and sound. Neojuke.bmp : contains some special buttons used by neoJuke: The arrows to change sound and track The words TRACK and SOUND The Record button The Settings button See the included skin for more info. WHAT DOES TRACK AND SOUND MEAN? NeoGeo Games store sound and music data in sets that I've called "Tracks". Each tracks contains many music and sound sequences, the sequence to play is selected by the "Sound" value. There is not a fixed value that every game uses for music, but most of them use the Track 7, so it is the default value. Sound tracks are usually in the tracks above 10, usually start at 1a. Metal Slugs require some special initialization so they doesn't work yet. There are some special tracks: Track 1 turns the sound off and reset the sound system. Track 2 plays the introduction song (the one that plays while the spinning NEOGEO letters) Track 3 turns the sound on and enables the processor to recieve commands. There is no need to do the speech trick anymore, now it works OK. HISTORY v1.00 First version. Using MAME to emulate soundtracks. v1.01 Fixed a bug that didn't allow to play sound in some games (Samurai Shodown for example) v2.00 Start again. The code is written from scratch. v2.01 Fixed a but in bankswitching. All tracks play now. v2.02 Switched to Neil Bradley's core. v2.03 Fixed speed problem bug, all games should work OK (even kof's) Added speed modification keys. v2.1 Windows 9x port Zip file support Wav file recording Preset storing V2.11 Fixed a bug that made the music "jump" especially in AMD machines. v2.2 Winamp Look with skins Removed Speed changing (it caused too many problems) Added settings screen Sampling rate Directories configuration Always on top Many visual improvements. Fixed a mismatch in the sampling speeds that make the sound loop sometimes. Changed the name detection from _m1 to m1. The games with files ending in V11, V12 should work now (untested) Raised Sound thread priority, now the sound shouldn't "jump" when task switching. v2.21 Solved graphics problems when using windows large fonts Files ending in -m1 instead _m1 really didn't work. Files ending in V11,V12 didn't work too. v2.21a Song list is correctly saved on exit v2.3 Rewritten the main emulation code, now is 4 times faster. Switched to RAZE core because Neil Bradley's C core has some bugs. (I was unable to compile RAZE for Borland C++ (NASM option doesn't work) if anybody know how to make it, please tell me how. All non-working games should work now: ZedBlade, Shock Troopers, Breakers, Breakers Revenge,... Street Hoop working: musics track 16 sounds 1,2,3,... SFX track 18 sounds 1,2,3,.... Metal Slug 1,2,X :musics track 0 sounds 21,22,23,... SFX track 10 Now the games with files ending in V11,V12 work (tested) v2.4 Volume Control Speed control in the Balance control (use , and . keys to change speed without using mouse) v2.5 Zipped Skins support. Skin Selection enabled. Fixed a bug that made the volume lower each time Neojuke was closed. Ability to select the YM2610 channels individually v2.6 Separated the GUI and emulation core. Now it's possible to add new modules to support new systems (QSound??). Skinned the playlist. Many internal changes that I don't remember now. v2.7 Added remove/change name facility to the PlayList. To remove a name, use the remove button :). To change the name, select the song in the list and modify its name in the Edit box, then puss the add button and the new name will overwrite the older one. Added the "Misc Options" button to the Playlist: You can set the title of a rom, and it will appear in the information bar instead of the rom name. You select to save the playlist data to the global database (music.dat) or to a per-game database (rom_name.dat), so you can share your playlist with your friends more easyly. The GUI no can process messages sent from the drivers to simulate button presses, song and track change,... My web page address has changed, now it's teleline.terra.es/personal/mahorna My e-mail address is still the same. PROJECTS I'm looking for a QSound (sound system of CPS1 and CPS2 boards) emulation source to do something like Sardu's QSP but with NeoJukebox interface. If you have a emulation of this chip or technical info, please send it to me. Please, send me your music.dat files to make a big database. KNOWN BUGS ???? FINAL REMARKS If you can, try Waku Waku 7. I love the Japanese musics and Arina's one is one of the only sung songs I've heard in an arcade (it's track 7 sound 32) This program uses DirectSound so it's possible to launch more than one instance and play both at the same time, but it requires a lot of processor power (and I mean really a lot). There is a sample music.dat file called music.da_ so it won't overwrite yours when you unzip this program. The next version may take some time since I'm starting my exams at University. Please, anybody intersted in making a Web page with music.dat files, send me your addresses. GREETINGS All the people that mails me with suggestions and bugs. HyprF0N1C for the great icon. Emulatronia for the Skin and for publishing my program. For bugs or suggestions, my email address is Miguel Angel Horna http://teleline.terra.es/personal/mahorna mahorna@teleline.es 432937@cepsz.unizar.es