mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-23 02:11:38 +00:00
TOOLS: Added engine patch for use with skycpt and updated skycpt README
This patch removes the description for required code modification to sky engine for generation of RESET.* files from the README and places it into a patch file. This patch also adds two modifications which are required to get RESET.* with current codebase not mentioned in the README. svn-id: r52961
This commit is contained in:
parent
cc69fa8297
commit
4293dbb7f3
@ -32,12 +32,17 @@ If you still want to waste your time by creating this file:
|
|||||||
v.0.00365: CD Demo
|
v.0.00365: CD Demo
|
||||||
v.0.00368: Full CD version
|
v.0.00368: Full CD version
|
||||||
v.0.00372: Final CD version
|
v.0.00372: Final CD version
|
||||||
4) Change scummvm/sky/logic.cpp, function fnSkipIntroCode
|
4) Apply the supplied skycpt-engine.patch to a clean copy of the ScummVM
|
||||||
so that it calls _skyControl->doLoadSavePanel()
|
codebase. This modifies the sky engine to allow savefiles to be generated
|
||||||
|
containing the required data for the skycpt tool.
|
||||||
5) Compile the patched ScummVM.
|
5) Compile the patched ScummVM.
|
||||||
6) Start each of the BASS versions, enjoy the intro over and over again.
|
6) Start each of the BASS versions with this patched version, enjoy the intro
|
||||||
|
over and over again.
|
||||||
Afterwards, it'll automatically show the load/save dialog where you save the game.
|
Afterwards, it'll automatically show the load/save dialog where you save the game.
|
||||||
7) Rename the Savegame files you created to "RESET.*", depending on the version.
|
Except for Demo (v0.00356) which lacks the dialog, so this will autosave to slot 1
|
||||||
|
at the end of the intro.
|
||||||
|
7) Rename the Savegame files you created (SKY-VM.000 etc., not the ASD or SAV
|
||||||
|
file) to "RESET.*", depending on the version.
|
||||||
e.g. RESET.288 for v.0.00288
|
e.g. RESET.288 for v.0.00288
|
||||||
8) Rename each file with a ".gz" suffix and run gunzip on it.
|
8) Rename each file with a ".gz" suffix and run gunzip on it.
|
||||||
This removes the ScummVM gzip savefile compression.
|
This removes the ScummVM gzip savefile compression.
|
||||||
|
54
tools/skycpt/skycpt-engine.patch
Normal file
54
tools/skycpt/skycpt-engine.patch
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
Index: engines/sky/compact.cpp
|
||||||
|
===================================================================
|
||||||
|
--- engines/sky/compact.cpp (revision 52957)
|
||||||
|
+++ engines/sky/compact.cpp (working copy)
|
||||||
|
@@ -138,11 +138,15 @@
|
||||||
|
if (fileVersion != 0)
|
||||||
|
error("unknown \"sky.cpt\" version");
|
||||||
|
|
||||||
|
+#if 0
|
||||||
|
+ // Disabled as sky.cpt / compact.dbg used during RESET.* generation is
|
||||||
|
+ // a different size from expected.
|
||||||
|
if (SKY_CPT_SIZE != _cptFile->size()) {
|
||||||
|
GUI::MessageDialog dialog("The \"sky.cpt\" file has an incorrect size.\nPlease (re)download it from www.scummvm.org", "OK", NULL);
|
||||||
|
dialog.runModal();
|
||||||
|
error("Incorrect sky.cpt size (%d, expected: %d)", _cptFile->size(), SKY_CPT_SIZE);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// set the necessary data structs up...
|
||||||
|
_numDataLists = _cptFile->readUint16LE();
|
||||||
|
Index: engines/sky/control.cpp
|
||||||
|
===================================================================
|
||||||
|
--- engines/sky/control.cpp (revision 52957)
|
||||||
|
+++ engines/sky/control.cpp (working copy)
|
||||||
|
@@ -432,7 +432,8 @@
|
||||||
|
_lastButton = -1;
|
||||||
|
_curButtonText = 0;
|
||||||
|
|
||||||
|
- saveRestorePanel(false);
|
||||||
|
+ // Parameter modified to true to ensure save dialog, not load is shown
|
||||||
|
+ saveRestorePanel(true);
|
||||||
|
|
||||||
|
memset(_screenBuf, 0, GAME_SCREEN_WIDTH * FULL_SCREEN_HEIGHT);
|
||||||
|
_system->copyRectToScreen(_screenBuf, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, FULL_SCREEN_HEIGHT);
|
||||||
|
Index: engines/sky/logic.cpp
|
||||||
|
===================================================================
|
||||||
|
--- engines/sky/logic.cpp (revision 52957)
|
||||||
|
+++ engines/sky/logic.cpp (working copy)
|
||||||
|
@@ -2376,6 +2376,15 @@
|
||||||
|
|
||||||
|
bool Logic::fnSkipIntroCode(uint32 a, uint32 b, uint32 c) {
|
||||||
|
SkyEngine::_systemVars.pastIntro = true;
|
||||||
|
+
|
||||||
|
+ // Demo (v0.0365) lacks Save/Load Panel resources, so
|
||||||
|
+ // automatically save to Slot 1, rather than displaying dialog
|
||||||
|
+ if (SkyEngine::isDemo()) {
|
||||||
|
+ _skyControl->_selectedGame = 1;
|
||||||
|
+ _skyControl->saveGameToFile();
|
||||||
|
+ } else {
|
||||||
|
+ _skyControl->doLoadSavePanel();
|
||||||
|
+ }
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user