Author Topic: What I'm working on  (Read 7647 times)

Myria kitty

  • *
  • Posts: 42
    • View Profile
What I'm working on
« on: 2008-01-21 18:17:40 »
Things that are already done:
  • Boot loader that loads FF7 with my DLL added.  Patches aren't applied to files directly.
  • Playing PSF files instead of the MIDI files.  Rather than have an external process monitoring the MIDI output, I take over the midi* API calls and translate them to a background thread with the Winamp plugin.  (I'd use the Foobar2000 version if I could figure out how.)  Since Windows never gets the MIDI data, there isn't an issue with it playing over the song.  I don't currently fake the consumption of data; if some part of FF7 relies upon reaching a particular point in MIDI playback I could have trouble.
  • Implement "reverse speakers" with PSF playback.  This is a hack - when in_psf.dll calls Out_Module::Write, I flip the samples.  There's probably a way to do this within in_psf.dll itself.
  • Complete registry indirection.  FF7's registry read requests are manipulated.
  • plugin.ini reading is also taken over to allow setting "play indefinitely" in in_psf.dll.
  • Fixing obvious bugs: Chocobo racing uninitialized pointer, redundant RegCloseKey, tm20dec.ax appcompat fix.

Things I'd like to do:
  • File indirection.  The game would always be presented with "C:\FF7" as its directory, even if it is actually somewhere else.
  • Translate DirectX 5 to DirectX 8.
  • Detect when the hardware can't do P8 textures and translate accordingly.
  • Replace video playback entirely with libavcodec.  This has many advantages, such as avoiding dependence upon the current system configuration, and the upside-down movie bug.


Much of this is probably redundant with some existing hacks out there.

Olie

  • *
  • Posts: 63
    • View Profile
Re: What I'm working on
« Reply #1 on: 2008-01-22 12:16:54 »
good luck i hope this all works :D

kini

  • *
  • Posts: 135
    • View Profile
    • open source web
Re: What I'm working on
« Reply #2 on: 2008-01-31 09:57:32 »
what do you mean by the
 "Complete registry indirection.  FF7's registry read requests are manipulated."

Olie

  • *
  • Posts: 63
    • View Profile
Re: What I'm working on
« Reply #3 on: 2008-01-31 11:57:21 »
care posting an RS mirror for what you have done so far?

Myria kitty

  • *
  • Posts: 42
    • View Profile
Re: What I'm working on
« Reply #4 on: 2008-02-01 04:55:30 »
what do you mean by the
 "Complete registry indirection.  FF7's registry read requests are manipulated."

When the game requests a registry key, instead of it going to the actual registry, it goes to a fake registry controlled by my program.

care posting an RS mirror for what you have done so far?

What's RS?

I could give it out, since I planned on GPL'ing it eventually anyway.  However, it's not configurable at all at the moment.  All the settings are hardcoded, and the program won't work unless you have the files in the same directory that I do.  If you really want it that state, I could give it.

There are two major stumbling blocks to the project at the moment:

- Reimplementing DirectShow well enough to be able to use libavcodec for the movies.  WINE and ReactOS don't implement enough of DirectShow, so I can't just copy their code.
- Translating DirectX 5 to DirectX 8, which is difficult because the COM interfaces have nothing in common.

Chrisu

  • *
  • Posts: 363
  • Simply there
    • View Profile
    • Christian's Programs
Re: What I'm working on
« Reply #5 on: 2008-02-01 15:07:08 »
I think RS = Rapidshare.com

yoshi314

  • *
  • Posts: 318
    • View Profile
Re: What I'm working on
« Reply #6 on: 2008-02-02 11:09:12 »
Quote
When the game requests a registry key, instead of it going to the actual registry, it goes to a fake registry controlled by my program.
oooh, redirection :D

kini

  • *
  • Posts: 135
    • View Profile
    • open source web
Re: What I'm working on
« Reply #7 on: 2008-02-02 16:13:59 »
so with the registry hack could the game be played from a USB pen drive?

yoshi314

  • *
  • Posts: 318
    • View Profile
Re: What I'm working on
« Reply #8 on: 2008-02-02 17:53:10 »
i think so. you would still to work around the cd check issue, though.

The Skillster

  • *
  • Posts: 2284
  • Loving every Final Fantasy
    • View Profile
Re: What I'm working on
« Reply #9 on: 2008-02-03 00:09:33 »
I guess this sounds like a wrapper for FF7 exe, sounds promising.
Any chance of choosing between MP3 or PSF?
Anychance something like this could come out for FF8?

Myria kitty

  • *
  • Posts: 42
    • View Profile
Re: What I'm working on
« Reply #10 on: 2008-02-03 02:00:33 »
I guess this sounds like a wrapper for FF7 exe, sounds promising.
Any chance of choosing between MP3 or PSF?
Anychance something like this could come out for FF8?

"a wrapper for FF7 exe" is a pretty good description of it.

MP3 would be somewhat different from PSF.  My wrapper currently is hardcoded for PSF support, because I make some patches to Highly Experimental.  For example, I hack Highly Experimental's reading of Winamp's plugin.ini so that I can force songs to loop forever regardless of what the user selected in Winamp.  Currently, my code doesn't track the state of the PSF player - if I wanted MP3, I'd need to watch it so that I can trigger a loop when the song ended.

My goal was to preserve the optimum quality FF7 experience, not customize it.  PSF playback restores the sound to as Uematsu intended.  I'd eventually consider the high-resolution patch, the better model patch, and the Advent Children status portrait patch, because those improve quality without changing the gameplay, story or style.  Bugfixes would also be acceptable, even if the PSX version had them broken (W-Item as a simple example).

This is all predicated upon me having the time and motivation to continue - currently I'm rather burned out.  DirectShow and DirectX are daunting tasks.

As for FF8 PC, I don't have the game or know any technical details about it.

hay

  • *
  • Posts: 211
  • If I had a buggy, I'd cross the southern desert
    • View Profile
Re: What I'm working on
« Reply #11 on: 2008-02-05 09:44:40 »
I love what you did(in theory, since I can't verify it), really great job.
Since you're planning to release hi-res patch with this "wrapper" is it possible to implement interpolation of sprites? It would be awesome to improve it since it looks "edgy" on hi-res mode. You would be my personal idol with this accomplishment.