• Log In | Sign Up

  • News
  • Reviews
  • Games Database
  • Game Discovery
  • Search
  • New Releases
  • Forums

Adventure Gamers - Forums

Welcome to Adventure Gamers. Please Sign In or Join Now to post.

You are here: HomeForum Home → Gaming → Adventure → Thread


   

Blade Runner is being remastered

Total Posts: 45

Joined 2011-06-03

PM

tomimt - 15 March 2020 09:38 AM

I’d guess what they mean with reverse-engineering is the use of existing game logic in their own engine. In many ways, it’s similar to what ScummVM does, so they don’t have to re-code the game.

What ScummVM does IS a complete “re-code” of the game. The engine is completely rewritten from scratch, through meticulous analysis of function calls from the machine code in the games executable..

The source code for the game is lost, rewriting the engine is an enormous amount of work, which took the ScummVM devs many years to do. My guess is they have stolen the work already done by them and implemented it into their KEX engine. Will be interesting to see what is what.

     
Avatar

Total Posts: 7842

Joined 2012-01-02

PM

isn’t reverse-engineering is a method used with hacking and coding games with i.e C++ (and other programs)?

i guess since the game’s original data was lost there could be a way of reversing the game into its codes despite the common method. however, i don’t think this is possible without going thru loads errors and hiccups.

     

Total Posts: 45

Joined 2011-06-03

PM

Advie - 15 March 2020 11:35 AM

isn’t reverse-engineering is a method used with hacking and coding games with i.e C++ (and other programs)?

i guess since the game’s original data was lost there could be a way of reversing the game into its codes despite the common method. however, i don’t think this is possible without going thru loads errors and hiccups.

Once an executable is compiled from source code into machine code (which is what a computer can read, not humans) it is very difficult to read, modify or port to other platforms.

Reverse engineering is the process of studying and taking apart this code and then duplicate (or modify) it by rewriting the source code from scratch, with C++ or another programming language, yes. C++ is used by the ScummVM team for it’s cross platform portability, making the code able to run on many different systems with small modifications.

Many people think ScummVM is an emulator, but is is not even close to that. They basically rewrite the entire game code from scratch, by running and studying the game executable with different tools to identify it’s function calls, which is a tremendous amount of work, testing and failing. There is no simple way to reverse compiled code into it’s original functions.

This is why I am interested to see if they have indeed reverse engineered the game themselves, like they imply in this article or simply lifted the code from ScummVM.

     
Avatar

Total Posts: 911

Joined 2003-09-30

PM

Jawa - 15 March 2020 01:05 PM

Many people think ScummVM is an emulator, but is is not even close to that. They basically rewrite the entire game code from scratch, by running and studying the game executable with different tools to identify it’s function calls, which is a tremendous amount of work, testing and failing. There is no simple way to reverse compiled code into it’s original functions.

You mean they rewrite the entire game code from scratch even for games uses the same engine?

     

“The universe is a dream dreamed by a single dreamer where all the dream characters dream too.”

Total Posts: 45

Joined 2011-06-03

PM

Gabe - 15 March 2020 05:26 PM
Jawa - 15 March 2020 01:05 PM

Many people think ScummVM is an emulator, but is is not even close to that. They basically rewrite the entire game code from scratch, by running and studying the game executable with different tools to identify it’s function calls, which is a tremendous amount of work, testing and failing. There is no simple way to reverse compiled code into it’s original functions.

You mean they rewrite the entire game code from scratch even for games uses the same engine?

It depends on the engine, but usually no. In most cases where games use the same engine, there are many variations of it, as it has developed as time has passed, in the same way you would get updates to most software. All of these different variants have to be supported in a new, single engine. So some functions of the same engine can be reused, but new ones and variations have to be added. Most engines which have been used to create multiple games are not static. But once you have rewritten the code for one game, it is usually easier to add support for another as they share some (it really varies how much) of the same code.

The oldest Sierra games have a simple engine, and a more advanced versions of the same engine is used for newer games. All of these variations are rewritten and compiled into one new engine in ScummVM, which can handle all the different variants. But there are differences between most games and the majority of them need to be worked on separately to be supported. The newest Sierra games are 32 bit and the engine is quite different from the old games so they have their own engine in ScummVM.

Most game developers used their own proprietary engine. There are 76 separate game engines in ScummVM at present (not including unfinished/unsupported ones). In the case of Blade Runner, the entire game engine was rewritten from scratch, as it is the only game using this engine in ScummVM.

In some cases, they have obtained the source code from the original developers of the games and rewritten it in C++ (this makes it easier, but refactoring a whole codebase is still a lot of work).

     

Total Posts: 88

Joined 2018-08-12

PM

Jawa - 15 March 2020 01:05 PM

This is why I am interested to see if they have indeed reverse engineered the game themselves, like they imply in this article or simply lifted the code from ScummVM.

I saw the thread a bit late, but this is what we (ScummVM) are wary of, too. For the moment, since the press release is vague and does not provide any media to back the remaster claim, we have to wait and see what they will do.

To clarify some of the situation, Night Dive Studios have contacted us quite a long while ago for cooperation. It’s the team’s decision not to disclose the details of this communication as of yet, but I can say that we had samples of exactly what they were doing at late November last year, but after the GOG release (*) the nature of the communication changed and early this year the plans for cooperation completely fell through.

Honestly, I would love it if they made a proper remaster of the game, especially if they somehow got hold of the original assets recently. I would be peeved that a new version of the game was introduced with original issues and bugs (that we fixed in ScummVM’s engine) causing confusion to gamers, but a good remaster could be worth this.

What I don’t like is the misinformation and the particularly provoking wording (to our team). ““painstakingly reverse-engineered the code” is something that actually ScummVM has done in the course of years, in an open source format, fixed originals bugs, enhanced (subtitles support, UI QoL improvements), optimized, restored content (still WIP!), ported and tested on many platforms, and which has led to a public and very well reviewed release.

And then, I’ve read an article claiming that foreign subtitles were recovered from the game’s source files, which is a lie and quite insulting to me, personally, who did all the core work on introducing subtitles support to the engine code (the original has no support nor does it have subtitles stored in its game files), wrote, shared and currently maintain the English transcript, and implemented and shared tools to support other teams translating or transcribing the game to their language. It is also insulting to the great people, fans of the game, who worked on and completed the French and Spanish transcripts that we currently offer on the ScummVM website.

Night Dive makes no mention of ScummVM in their press release (expectedly), so they do have to prove that they are making all the work on their own (reverse engineer, bug fix, optimize, maybe do subtitles too) and then remastering the game on top of it. I am very doubtful that this can be accomplished in a timeframe of a few months, without “borrowing” from our source code, but, yeah, we just have to wait and see “tangible” media of their current work to say for certain.

To be clear on this, the ScummVM Blade Runner engine is an open source project protected by the GPLv2 license. So as long as a third party properly credits our work and releases the source code along with a commercial release, we are fine with them using our work to make profit. The thing is, console releases are tricky in the sense that Nintendo (definitely) and maybe Sony and Microsoft (I am unsure) don’t allow open sourcing the code for the games released on their platform. In which case special negotiations have to take place to license our code.

(*) The GOG release happened relatively very fast. They contacted us, told us they were close to resolving the rights situation, asked for co-operation and we helped to the best of our capability. Then a few days later the teasers made an appearance (in the Galaxy promos) and then we got the official release. They respected the GPL, distribute the ScummVM source code with the game and mention that the game runs with ScummVM (in the store page and by showing the ScummVM splash logo when launching the game via their shortcut). Overall, we were very happy with this cooperation. They made no changes whatsoever to the ScummVM engine too, which is great because we could immediately provide support and fix anything that was reported.

No money were involved nor did they hire anyone from the team. The only monetary compensation is the small commission (I don’t know how much, but it’s small) that goes to ScummVM if a purchase is made by following a link from the ScummVM site to GOG—this is the situation for all ScummVM supported titles, so it is nothing new, and the money goes to the project, not to programmers.

     
Avatar

Total Posts: 233

Joined 2017-12-19

PM

Luhr28 - 14 March 2020 09:01 AM

Not to mention, the code wouldn’t be of much use if they were planning on remaking everything from scratch. I don’t know exactly what “reverse engineered” means with respect to coding

As a wild guess, I would say it means that they are using the reverse-engineered and reimplemented code that ScummVM has, and using that as much as they can.

The fact that they are “reverse-engineering” code just soon after ScummVM released their own version is either the most suspicious coincidence ever, or a perfect way to get the job done with zero cost.

Jawa - 15 March 2020 01:05 PM

Many people think ScummVM is an emulator, but is is not even close to that. They basically rewrite the entire game code from scratch, by running and studying the game executable with different tools to identify it’s function calls, which is a tremendous amount of work, testing and failing. There is no simple way to reverse compiled code into it’s original functions.

Historically that is the case, but some more recent (WIP) additions are more debatable.
For instance, the WinterMute and AGS functionality brings ScummVM into, or at least closer to, emulator world. AFAIK, they are not reverse-engineering every WinterMute and AGS game ever made, but rather, creating something that resembles a real engine in those cases. So from a random AGS game’s point of view, ScummVM would act as an emulated AGS environment. Unless I am completely mistaken about that (haven’t tried either of those yet, so going by rumours here…).

     

Total Posts: 45

Joined 2011-06-03

PM

GateKeeper - 19 March 2020 11:01 AM
Luhr28 - 14 March 2020 09:01 AM

Not to mention, the code wouldn’t be of much use if they were planning on remaking everything from scratch. I don’t know exactly what “reverse engineered” means with respect to coding

As a wild guess, I would say it means that they are using the reverse-engineered and reimplemented code that ScummVM has, and using that as much as they can.

The fact that they are “reverse-engineering” code just soon after ScummVM released their own version is either the most suspicious coincidence ever, or a perfect way to get the job done with zero cost.

Jawa - 15 March 2020 01:05 PM

Many people think ScummVM is an emulator, but is is not even close to that. They basically rewrite the entire game code from scratch, by running and studying the game executable with different tools to identify it’s function calls, which is a tremendous amount of work, testing and failing. There is no simple way to reverse compiled code into it’s original functions.

Historically that is the case, but some more recent (WIP) additions are more debatable.
For instance, the WinterMute and AGS functionality brings ScummVM into, or at least closer to, emulator world. AFAIK, they are not reverse-engineering every WinterMute and AGS game ever made, but rather, creating something that resembles a real engine in those cases. So from a random AGS game’s point of view, ScummVM would act as an emulated AGS environment. Unless I am completely mistaken about that (haven’t tried either of those yet, so going by rumours here…).

You are mistaken, yes. As mentioned, they in some cases have access to the source code of the software used to create games, which is the case with AGS (and Wintermute, I believe), but they still have to be refactored into C++. In these cases, it is not necessary to reverse every separate game executable, because they are all created with different iterations of the same software and usually use the same functions. So the code for the software used to create the games is studied and reimplemented instead. But there are many different versions of AGS, which all have to be implemented into one singel engine in ScummVM.

An emulator imitates the hardware and/or software environment of a specific system or computer, allowing the original executable to be run on a different system or computer. ScummVM replaces the game executable of all these games, by writing a new engine, allowing the game engines to be compiled and run natively on a given system or computer. It does not emulate any system or computer. (with exception of sound systems like the MT-32, which they are forced to). The original executable of the AGS or Wintermute games are not used or needed in ScummVM, as it recreates the engine (I’m not sure what you mean by resembles a real engine, it is a real engine). AGS is not an environment in it self. It is an open source development tool (specifically for Windows platforms) used to create games, much like SCI was used to create Sierra games or SCUMM was used to create Lucasarts games. Same with Wintermute.

     
Avatar

Total Posts: 233

Joined 2017-12-19

PM

Jawa - 19 March 2020 12:08 PM

An emulator imitates the hardware and/or software environment of a specific system or computer, allowing the original executable to be run on a different system or computer. ScummVM replaces the game executable of all these games

That’s exactly the point.
Unless I am very mistaken, the way e.g. AGS in ScummVM would work, is that it would run the game executable inside ScummVM. There’s no reverse-engineering (or rewriting from the source) that makes the original executable obsolete, as is the case with traditional ScummVM implementations.

To confirm, I took a quick look at one of the AGS games that I played recently. There are only six files in the distribution package. Most are stuff that are actually unnecessary in ScummVM, such as readme and configuration tools. There are only two files that are over 1 MB, one is the audio package, and the other one is the game exe.

Now, unless that exe is reverse-engineered for ScummVM (which it won’t be), then ScummVM will use that exe to run the game. And then the old “original executable is no longer needed” statement is not true anymore. Something is being used from the original executable, and that’s better described as a form of emulation rather than reimplementation and recoding.

Again, I haven’t tried those WIP engines, but if that executable is deleted, where in heck would ScummVM get the game scripts from? 1 kB readme? Configuration file?

To me, that takes ScummVM into the emulator field, not that it emulates any specific hardware, but it emulates whatever process is at work when AGS games run themselves from their original executables.

     

Total Posts: 88

Joined 2018-08-12

PM

GateKeeper - 19 March 2020 01:08 PM

To confirm, I took a quick look at one of the AGS games that I played recently. There are only six files in the distribution package. Most are stuff that are actually unnecessary in ScummVM, such as readme and configuration tools. There are only two files that are over 1 MB, one is the audio package, and the other one is the game exe.

Now, unless that exe is reverse-engineered for ScummVM (which it won’t be), then ScummVM will use that exe to run the game. And then the old “original executable is no longer needed” statement is not true anymore. Something is being used from the original executable, and that’s better described as a form of emulation rather than reimplementation and recoding.

We do make a point to clarify always that ScummVM is not an emulator. The name of the project is probably a bit unfortunate (it is not a virtual machine either). We do implement the engines for the games to run on.

I have not been actively involved in the AGS games engine but in the occasions that the EXE file is required from ScummVM, it is due to data resources being packed in the exe, that the ScummVM engine needs to load up in order for the game to run properly. ScummVM will not execute the “.exe” binary in any situation whatsoever.

     

Total Posts: 45

Joined 2011-06-03

PM

GateKeeper - 19 March 2020 01:08 PM
Jawa - 19 March 2020 12:08 PM

An emulator imitates the hardware and/or software environment of a specific system or computer, allowing the original executable to be run on a different system or computer. ScummVM replaces the game executable of all these games

That’s exactly the point.
Unless I am very mistaken, the way e.g. AGS in ScummVM would work, is that it would run the game executable inside ScummVM. There’s no reverse-engineering (or rewriting from the source) that makes the original executable obsolete, as is the case with traditional ScummVM implementations.

As stated by stroggoff, this is incorrect.

     
Avatar

Total Posts: 911

Joined 2003-09-30

PM

Looks like upscale already been made.
Blade Runner Upscale

Blade Runner Upscale1

     

“The universe is a dream dreamed by a single dreamer where all the dream characters dream too.”

Avatar

Total Posts: 2294

Joined 2013-03-14

PM

In many ways, the backgrounds in BR are ideal for AI upscalers. The BG comparison shows nicely how well the tech can bring out more detail from the kind of a rundown world it is set in with all its rusted metal surfaces and whatnot. In any case, those do show the line the official remaster has to achieve what comes to their take on the upscales. Otherwise, there’s very little reason to buy it again, especially when some fan is going to mod ScummVM version to use HR backgrounds.

     
Avatar

Total Posts: 7842

Joined 2012-01-02

PM

how we start pushing our expectations high to get disappointed is only our fault

     
Avatar

Total Posts: 2294

Joined 2013-03-14

PM

Advie - 22 March 2020 07:07 AM

how we start pushing our expectations high to get disappointed is only our fault

True words indeed.

     

You are here: HomeForum Home → Gaming → Adventure → Thread

Welcome to the Adventure Gamers forums!