by Tdarcos » Wed Jun 24, 2020 8:22 pm
Sometimes there is a problem in new systems supporting older ones, how do you allow people to use new features under an older environment?
This was a problem in hardware going back to how it was documented in Tracy Kidder's The Soul of a New Machine when Dtat General was developing a 32-bit version of their Nova mnicomputer, to compete with the Digital Equipment Corporation (DEC) VAX Mainframe, which is also a 32-bit machine.
Someone wanted to add a "Mode bit," which if toggled would enable 32-bit mode. A simple fix, but the company president, Edson DaCastro, vetoed. DaCastro, who quit DEC to found Data General and had seen some bad choices made there, didn't want to add a mode bit, because when you get kludges added to fix a problem, they end to spread elsewhere.
ScummVM is one of two systems most likely, not having looked at the source code: (1) a multiple interpreter including separate execution modules for each game type; or more likely (2) a 'meta interpreter' which takes the code of that particular game, uses a custom "switcher" for that game's instructions, acquires the particular locations which will have data for those instructions, then passes these arguments to the execution module for that function. In the case of the latter, the effectiveness of the interpreter is directly related to how well it maps the functions of the original interpreter to its own functions.
Sometimes there is a problem in new systems supporting older ones, how do you allow people to use new features under an older environment?
This was a problem in hardware going back to how it was documented in Tracy Kidder's [i]The Soul of a New Machine[/i] when Dtat General was developing a 32-bit version of their Nova mnicomputer, to compete with the Digital Equipment Corporation (DEC) VAX Mainframe, which is also a 32-bit machine.
Someone wanted to add a "Mode bit," which if toggled would enable 32-bit mode. A simple fix, but the company president, Edson DaCastro, vetoed. DaCastro, who quit DEC to found Data General and had seen some bad choices made there, didn't want to add a mode bit, because when you get kludges added to fix a problem, they end to spread elsewhere.
ScummVM is one of two systems most likely, not having looked at the source code: (1) a multiple interpreter including separate execution modules for each game type; or more likely (2) a 'meta interpreter' which takes the code of that particular game, uses a custom "switcher" for that game's instructions, acquires the particular locations which will have data for those instructions, then passes these arguments to the execution module for that function. In the case of the latter, the effectiveness of the interpreter is directly related to how well it maps the functions of the original interpreter to its own functions.