0x1F9F1 / Open1560

A mod for Midtown Madness 1, primarily focused on supporting modern computers and fixing bugs.
https://0x1F9F1.github.io/Open1560
GNU General Public License v3.0
110 stars 8 forks source link

Play Midtown Madness's soundtrack without the need to insert its disc or mount an iso of the game? #117

Open tetration opened 1 year ago

tetration commented 1 year ago

In the original executable, the game's engine only plays the game's songs if the Midtown Madness 1 CD is in the driver or a backup iso file is mounted. Would it be possible to code this reversed-engineered version of the game to play the game's soundtrack without needing to insert the CD every time we want to play it?

What are the functions of the game responsible for this restriction? Are they hard-coded in the game's engine?

0x1F9F1 commented 1 year ago

The music is stored on the CD just like a regular audio CD, and played using https://docs.microsoft.com/en-us/windows/win32/multimedia/mci. Most of the code to do this has already been reverse engineered at https://github.com/0x1F9F1/Open1560/blob/master/code/midtown/mmaudio/cd.cpp.

While adding support for playing the music from disk is on my TODO list, it's not high priority.

Guspr181 commented 1 year ago

@tetration

Well actually is possible to play the game without using any dvd, for that you must do this three things:

  1. Use this line argument: "-cdid"

  2. Rip all the tracks from the cd in .ogg format using an external program and do it with the following names (track02.ogg,track03.ogg,etc) (skip track01.ogg because that is the data partition) and move them in a folder called "music" inside the root folder of the game.

  3. Move the following files from this portable program called "DxWnd" to the root folder of your game: vcda/winmm.dll vcda/winmm.ini dxwplay.dll libogg.dll libvorbis.dll libvorbisfile.dll

DxWnd Link: https://sourceforge.net/projects/dxwnd/

I hope that this was helpful :D

tetration commented 1 year ago

@tetration

Well actually is possible to play the game without using any dvd, for that you must do this three things:

  1. Use this line argument: "-cdid"
  2. Rip all the tracks from the cd in .ogg format using an external program and do it with the following names (track02.ogg,track03.ogg,etc) (skip track01.ogg because that is the data partition) and move them in a folder called "music" inside the root folder of the game.
  3. Move the following files from this portable program called "DxWnd" to the root folder of your game: vcda/winmm.dll vcda/winmm.ini dxwplay.dll libogg.dll libvorbis.dll libvorbisfile.dll

DxWnd Link: https://sourceforge.net/projects/dxwnd/

I hope that this was helpful :D

Thank you @Guspr181 ! I didn't know about the existence of dxwnd. Being able to play this game and other games of my childhood that rely on the CD in order to play the soundtrack will be a truly nostalgic experience. I'm going to try it out this weekend.