AGS/Upstream

From ScummVM :: Wiki
< AGS
Revision as of 22:02, 20 June 2022 by Criezy (talk | contribs) (→‎Currently skipped: Add another skipped commit)
Jump to navigation Jump to search
TODO List
Name AGS Upstream Porting
Technical Contact(s) AGS Engine Team
Subsystem Engine

This page contains the details of commits from the upstream AGS that either haven't been done yet due to various issues, or are being explicitly skipped due to changes that have been done in the ScummVM implementation.

ScummVM currently matches upstream commit b73553d6b4655feec2f82ee1feaa67a6bc9fca23 - Engine: store certain overlay handles, not script ptrs, for safety from June 7, 2022

Still pending

  • cae84d689019313cad49b6dca7e916866b90e49e

We have slightly different blending code, commit needs to be modified to take that into account

  • 1c535719d04473821c525c1956eeb1c8f1ef8c28

Changes the audio channels array to std::array<std::unique_ptr<SOUNDCLIP> >
I couldn't get this to compile properly in ScumMVM with our version of std::unique_ptr.

  • 19a15acbf99ad223348c74d6de61cc56acc1ad69 - Engine: ListBox.FillDirList supports $DATA$ path token

Added new AssetsManager method, but the current Listbox class has ScummVM specific stuff for save files in it's FillDirList method

  • 30b44bc485941cc9ef0f0153657ae40416a0f5ec - Common: in streams don't implement Read/WriteInt8() by Read/WriteByte()

Applying this commit caused startup of my QFG2AGDI test game to hang.

  • 2fd9b8452c3bef53211c4f9d5e7f9cd34104248b - Engine: refactored parsing of a enum option represented as a string

Couldn't get the initializer list to work with our custom std::array implementation

  • 696a8eb62ef162a40c5b464544d553ed1f01aa02 - Engine: updated parsing and use of "override/os" option

Couldn't get the initializer list to work with our custom std::array implementation

  • 28a5c72321a925d1d81b27eb62a27226994c4aa8 - Engine: recreated FLIC playback as a FlicPlayer class

Currently skipped

Commits that are currently skipped, but may need to be referenced in the future.

  • 22b0f2b93e314b167f80e89a9dd138202a7e28a7 - Engine: merged SOUNDCLIP and CLIP_OPENAL

ScummVM has it's own sound clip classes, so doesn't have CLIP_OPENAL

  • ff05f69f2361c34212b6ba1db0f22b2c1ba38d7b - Engine: "transactional" SOUNDCLIP

ScummVM doesn't have the OPENAL decoder

  • 60d40072b429a641f6fcbf3cdb8c60809fc3f770 - Engine: dispose SOUNDCLIP when stopped playing

This is a bit mixed up with upstream's use of an audio core that ScumMVM doesn't use. But parts of the commit were included.

  • c7028047deaf4417f048f7f395cd263ef87d4f55 - Engine: fixed panning SDL implementation
  • 67f1d33c58fcf77037d82b57a8c6a269a0f3665c - Engine: a method for setting up a window icon via SDL2 or system api
  • c727fe047671feaf3a8a476c1e3969ce683f10a2 - Common: fixed CreateAllDirectories could mistreat sub-path location

We don't currently create directories, and making these changes causes the method, which currently doesn't do anything by default, to crash.

  • 72a3bf6c10a71ca7b7b80699a9bcc5a7c219bcbb - Engine: corrections for switching gfx mode
  • 3b84d2daebc9d525a86f8cc3dabe83e04def188c - Engine: split OpenALDecoder into SDLDecoder and OpenAlSource

And the following commits to the split classes

  • 73b009f35cbf5b4cc29fbf362e45dce10a64051c - Engine: for SDL_TEXTINPUT event, convert text to ascii for ags key code

Not sure if/how this applies to ScummVM since we dont have a TEXTINPUT common event

  • 7ca933ba2c3bedfd46b6f66b8d6c4cb3184dc051 - Engine: replaced allegro's findfile with our own FindFile methods

Our code already uses ScummVM specific variants. If used in future, particularly need to worry about listbox and populating savegame list.
This commit also addes a CurrentTime property to FindFile, which ScummVM can't support because Common::FSNode doesn't have a method to return a file/folder's datetime.

  • 3acb00a7890ddb5d1688695948e89cf108f9a56b - Engine: suppress "unused param" warnings in dynobject (un)serialization
  • 018d8790f8a8f3d39088cedace98b52d7ef730db - Engine: removed RichGameMedia header from saves

We use the rich media data for showing savegame thumbnails in the ScummVM GMM

  • 9ff2b8efb7ea71c275e5f0c574df438ebbdc86d1 - Engine: fixed TheoraPlayer stopping too early on some videos

ScummVM has its own theora decoder code

  • b93f6e097abd523dc0306ee44ce2905c880e5b5e - Engine: fixed AudioCoreSlot::Init() reopening decoder without need

ScummVM has its own audio code

  • 0c0420616422dd192269e6c35886562151c03670 - Engine: in audio core, store data as uint8 rather than char

ScummVM has its own audio code

  • Pull request #1666 - Restore support for sound streaming if file is big enough + sound cache for small sounds
    • 868b221bfe53a7b2dd2b2017b64ee7bfc9a6cfdf - Engine: implemented custom RWops using AGS streams
    • 0e6c996f263bfaf7fbe1be6bf44016f273aa3c7a - Engine: support sound data streaming, use if sound clip is large enough
    • 7f755c875005ee8fc3f46735833ac2260d94e71c - Engine: reimplemented sound cache
    • 216fec99630394cf61de0305bf9f40be82ae63a5 - Engine: let configure sound cache

ScummVM has its own audio code

  • 623db88c135304bc3c462edffb742633ec50d608 - Allegro4: restored proper PACKFILE write behavior

In ScummVM we have custom code for PACKFILE access (and writing is not implemented).