A project for the latest Steam PC (US) release of Resident Evil 4 that patches the game to use high-quality MP4 video.

Overview

Resident Evil 4 / バイオハザード4 HD PC Video Project

A project for the latest Steam PC (US) release of Resident Evil 4 (1.0.0RELEASE_DEV.0) that patches the game to use high-quality MP4 video.

Players can also adjust the internal rendering aspect ratio and width/height (Example).

Additionally, there are a few debug options built-in to help quickly navigate the game and debug the compiled build. Please see the "Config/Debug" section for further details.

This project was originally created for the Resident Evil 4 HD Project, but was unfortunately unable to be completed in time for final release.

All rights, including the copyrights of game, scenario, music and program are reserved by CAPCOM Co., Ltd.

Do not distribute this project with the retail game or any high-quality video patches/packages.

Build Prerequisites

Microsoft DirectX 9 SDK

For this project, I used the FFmpeg libraries from the Nvidia Video Codec SDK. Custom libraries can be compiled and tested using media-autobuild_suite.

The following FFmpeg library files are required:

avcodec.lib
avformat.lib
avutil.lib
swresample.lib

The following FFmpeg include folders are required:

libavcodec
libavformat
libavutil
libswresample
libswscale

In the Nvidia Video Codec SDK, these files and folders can be found in the Samples\External\FFmpeg directory.

Build Instructions

The entire project solution should be placed into the C:\Bio4HD directory.

By default, the project will look for FFmpeg headers and libraries in the C:\Bio4HD\FFmpeg directory. You can adjust the following Visual Studio Project Property Pages to specify custom locations of the FFmpeg headers and libraries:

Configuration Properties -> C/C++ -> General -> Additional Include Directories
Configuration Properties -> Linker -> Input -> Additional Dependencies

This project will produce a file named winmm.dll that will automatically be placed into the C:\Program Files (x86)\Steam\steamapps\common\Resident Evil 4\Bin32 directory after compiling the Visual Studio solution.

Note: The "Debug | Win32" profile build will immediately crash the game; please compile the "Release | Win32" profile instead.

Usage and Implementation

The game will playback MP4 video instead of the standard SFD filetype from CRI Middleware.

MP4 files must be placed into the C:\Program Files (x86)\Steam\steamapps\common\Resident Evil 4\BIO4\movie directory and have the same naming convention as their SFD counterparts ("opening_pal.mp4" for example).

I've only tested the following encoded video type, but many other codecs and variations are supported:

Video: MPEG4 Video (H264) 1920x1080 30fps 15014kbps [V: Alias Data Handler [eng] (h264 main L4.1, yuv420p, 1920x1080, 15014 kb/s)]
Audio: AAC 48000Hz stereo 317kbps [A: Alias Data Handler [eng] (aac lc, 48000 Hz, stereo, 317 kb/s)]

Config/Debug

Configuration options will created upon first-use of this custom dynamic link library and will be located in the C:\Program Files (x86)\Steam\steamapps\common\Resident Evil 4\Bin32\bio4.ini file. Detailed descriptions of each option are included in this document and can be manually modified with any basic text editor (Note: some descriptions are outdated).

Additionally, if enabled, the following debug output log files will be placed in the same directory:

OSReport.log
_vsprintf_s_l.log
snprintf.log
sprintf_s.log

Status

  • Add support for "New/Load Game" and "Movie Browser"
  • Fix support for "Separate Ways" campaign mode
  • Fix poorly-implemented audio playback code
  • Fix Fullscreen/Window mode errors
  • Add support for Keyboard/Controller input during playback
  • Simple code cleanup

Only Fullscreen playback is supported; the game will crash in Window mode.

Keyboard/Controller input is ignored during playback preventing users from skipping the video.

The game has been tested from start to finish in "New/Load Game" mode and confirmed to be in working status. Additionally, MP4 playback in the "Movie Browser" is also in working status.

"Separate Ways" will immediately crash the game after playing r500s10.mp4 (the opening video). The game executable uses different threaded code for the "New/Load Game" and "Separate Ways" campaign modes that needs to be properly accessed and patched.

2 February 2022

Initial Release (v.0.1.0.0)

Issues
  • Symbols source

    Symbols source

    Hi there, just came across your project and saw there's some great work here, hope we'll get to see it continued, would help HD project a lot to move away from that awful Sofdec1 encoding...

    I was going through some of the source and noticed a few symbol names were different to what I'd found (eg. lr_rate_1504), I've been compiling an IDA database for PC by using symbols from a bunch of different builds (GC debug, PS2, RE4VR...), but sadly each of those have their own missing pieces in different places, if you know of any other sources besides those it'd probably help a lot to fill them!

    If you're still interested in RE4 reversing at all I've been collecting some things at https://github.com/emoose/re4-research, you can find my current IDA databases in the issues section there too, have named quite a lot (~70%) of the PC exe so far (no Ghidra unfortunately, but can probably be converted without too much work).

    We're still trying to make improvements to the game with re4_tweaks too but there's a few areas we're still stuck in (mostly modelling/graphics/animation related), if you'd like to help with it at all it'd be very much appreciated!

    opened by emoose 1
Owner
Megan Grass
Megan Grass
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.

Video Stabilization Contents General Info Installation To Do General Info Video stabilization is a software-based approach in real-time to eliminating

null 5 Mar 7, 2022
An Open Source PSVita/TV MP4 player with 1080p playback and subtitle support

Vita-Media-Player An Open Source PSVita/TV MP4 player with 1080p playback and subtitle support 1080i output supported on the PSTV natively and on the

Jaylon Gowie 42 May 28, 2022
simple mp4 player based on rockchip rv1109 platform

mp4player RV1109平台上实现一个简单的 mp4 播放器,主要是本人使用的开发板QT无法播放mp4,应该是没有编译qst所致,因而想利用rockchip平台自有的 功能实现一个简单的播放器。 base目录包含一些基础框架实现,包含信号,线程,时间等,线程和消息泵的实现非常非常简单,因而不

null 9 Jul 17, 2022
Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content.

This project is a Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content. The application decodes the h.264/5 compressed content using an HW accelerated decoder, the decoded YCbCr frames are processed with Vulkan Graphics and then presented via the Vulkan WSI.

NVIDIA DesignWorks Samples 115 Aug 4, 2022
Minimalist video maker -- simplify your music score video making process!

VisualScores 极简视频制作程序,简化你的乐谱视频制作! 如果需要编译,请解压 lib 文件夹中压缩包。 使用前请参考 manual 文件夹中的用户手册。 请勿修改、移动或删除 resource 文件夹中的任何文件。 VisualScores Minimalist video maker

Chen and Sim 5 Jan 11, 2022
Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.

An open source video game library manager and launcher with support for 3rd party libraries like Steam, GOG, Origin, Battle.net and Uplay. Includes game emulation support, providing one unified interface for your games.

Josef Nemec 4.3k Aug 7, 2022
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

ossrs 18.8k Aug 4, 2022
Use rtsp protocol to push local H265 video encoding files

rtspServerH265 Use rtsp protocol to push local H265 video encoding files 项目介绍 C++11实现的RTSP服务器和推流器。主要完成对H265视频编码文件的RTSP推流 使用说明 1.编译并运行程序; 2.打开VLC软件,在媒体

codec2021 2 May 18, 2022
Example how to use ffmpeg to decode video file.

FFMpeg-decode-example Example how to use ffmpeg to decode video file. Link to article about decode with FFMpeg. Russian article. Example shows you the

Unick Soft 32 Jul 8, 2022
A homebrew software suite for video game consoles developed to help in the evaluation of upscalers, upscan converters

A homebrew software suite for video game consoles developed to help in the evaluation of upscalers, upscan converters, line doublers and of course TV processing of 240p video. The Wii and Dreamcast versions have modes for 480i and 480p evaluation as well.

Artemio Urbina 88 Jul 25, 2022
Open h.265 video codec implementation.

libde265 - open h.265 codec implementation libde265 is an open source implementation of the h.265 video codec. It is written from scratch and has a pl

struktur AG 1.4k Aug 4, 2022
Vireo is a lightweight and versatile video processing library written in C++11

Overview Vireo is a lightweight and versatile video processing library that powers our video transcoding service, deep learning recognition systems an

Twitter 855 Jul 28, 2022
Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive Team 6.3k Jul 29, 2022
Video player for 3ds

Video player for 3DS Patch note v1.0.1 Added allow skip frames option v1.0.0 Initial release Summary Video player for 3DS Performance 256x144(144p)@30

Core 2 Extreme 109 Jul 22, 2022
Plugin for VLC that pauses/plays video on mouse click

Pause Click plugin for VLC VLC plugin that allows you to pause/play a video by clicking on the video image. Can be configured to work nicely with doub

null 629 Aug 4, 2022
A WFH utility to visually indicate user engagement of audio and video

DIY: In meeting indicator - WFH Utility The need for in meeting indicator at home So many of you have gotten accustomed to work from home by now. This

krishna kumar T 10 Jun 28, 2021
Real-Time Intermediate Flow Estimation for Video Frame Interpolation filter for VapourSynth

Description RIFE filter for VapourSynth, based on rife-ncnn-vulkan. Usage rife.RIFE(clip clip[, int model=0, int gpu_id=auto, int gpu_thread=2, bint t

Home Of VapourSynth Evolution 57 Aug 1, 2022
Anki-like app for spaced repetition of video clips

ReeePlayer The ReeePlayer application is designed for spaced repetition of fragments (clips) of video and audio files with similar principle as in Ank

Filipp Volodin 11 May 2, 2022
NymphCast is a audio and video casting system with support for custom applications.

NymphCast is a software solution which turns your choice of Linux-capable hardware into an audio and video source for a television or powered speakers. It enables the streaming of audio and video over the network from a wide range of client devices, as well as the streaming of internet media to a NymphCast server, controlled by a client device.

Maya Posch 2.2k Aug 5, 2022