[Back to Index]

[00:00] <TMM> well, the game was, the codec may be older, it's an interplay thing
[00:00] <TMM> the windows codec I'm using to re this is from 1995, the game was originally for dos and also released in 1995
[00:00] <TMM> so they probably used an older version
[00:01] <snover> i wish i knew more about video hardware limitations at the time; i feel like that might help to explain it.
[00:04] <TMM> I think this was intended for slow computers with slow cdroms, that may explain it
[00:09] <snover> i would think in that case that the pixel data in the blocks would also be compressed in some way, though maybe it was already efficient enough (or i misunderstood what you said about the blocks not being compressed).
[00:09] <TMM> maybe the computers couldn't keep up with the cdrom as well as data decompression?
[00:09] <TMM> but yeah, the 8x8 blocks are stored verbatim
[00:10] <snover> the decoder relies on self-modifying x86 code to function eesh.
[00:10] <snover> talk about optimising.
[00:12] <TMM> yeah, but that's for the compressed version
[00:12] <TMM> the version of the codec I'm implementing now isn't documented anywhere
[00:12] <TMM> trust me, I've looked
[00:12] <snover> :)
[00:13] <TMM> this code doesn't do anything particularly tricky, it was just annoying to figure out
[00:13] goom (goom@cpe-173-174-162-201.satx.res.rr.com) left #scummvm ("Leaving").
[00:13] <snover> i understand
[00:14] <snover> sounds similar to my experience with Robot.
[00:14] <TMM> Robot?
[00:15] <m_kiewitz> Intergalactic robots of course
[00:15] <m_kiewitz> https://www.youtube.com/watch?v=qORYO0atB6g
[00:15] <snover> the SCI Robot animation format
[00:16] <TMM> oh, is that also a video format?
[00:16] <-- Henke37 left irc: Quit: ERR_SHUTDOWN
[00:17] <snover> yeah. the video part is all keyframes, with optional LZS compression + scanline deletion
[00:18] <snover> the audio part though&
[00:18] --> dreammaster joined #scummvm.
[00:18] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services.
[00:18] <TMM> in this format the audio is just raw pcm :P
[00:19] <snover> they used their standard DPCM compression, which does not have a start sample, so to packetise the audio stream they used 8 bytes of runway in each audio packet to calculate back to where the sample should have been at the end of the previous packet
[00:19] <TMM> ...
[00:19] <snover> incidentally the packet header is also 8 bytes, so that was annoying
[00:20] <snover> they also broke the audio into two 11kHz streams
[00:20] <snover> and sometimes just discarded one of the streams
[00:21] <m_kiewitz> lol
[00:21] <m_kiewitz> that's Sierra
[00:22] <snover> wjp was the one that actually figured out the DPCM runway. i was banging my head against that for weeks.
[00:23] <snover> in the end, nothing particularly tricky, just& annoying.
[00:24] <snover> i sure wish that they had come up with a better solution for bandwidth limiting than deleting scanlines. it looks so awful.
[00:25] <TMM> yeah, and not something we can fix in scummvm :P
[00:25] <-- Axy left irc: Ping timeout: 268 seconds
[00:25] <snover> if scirgb ever becomes a thing, it could probably be improved a bit by better interpolation than NN
[00:27] <TMM> scirgb?
[00:29] <snover> it is a fork wjp was working on many years ago, to fix things like ugly colours in SCI16 during transitions (when the game loads the palette for the new screen, while the old screen is still partially displayed during the transition)
[00:31] <snover> https://github.com/wjp/scummvm/tree/sci_rgb here
[00:32] <m_kiewitz> i bet we will get mail from certain fans that they will want the 256 color palette back :/
[00:32] <snover> it would also fix m_kiewitzs pet peeve about the text scaling looking ugly in GK1 in hires mode :)
[00:32] --> GitHub5 joined #scummvm.
[00:32] <GitHub5> [scummvm] dreammaster pushed 2 new commits to master: https://git.io/vHgDR
[00:32] <GitHub5> scummvm/master 26ee9ca Paul Gilbert: TITANIC: Fix calculations in CStarCamera fn2
[00:32] <GitHub5> scummvm/master 9583083 Paul Gilbert: TITANIC: Simplify DVector fn4
[00:32] GitHub5 (GitHub5@192.30.252.34) left #scummvm.
[00:33] <m_kiewitz> can't this be fixed anyway by stopping aspect ratio to get applied for text?
[00:33] <m_kiewitz> i did something like that (ignore upscaling ratio when uneven) for sci16
[00:33] <m_kiewitz> otherwise some text of sci16 also looks horrible
[00:33] <m_kiewitz> when in "hires" mode
[00:36] <snover> that just exchanges one problem (NN interpolation) with another (bad AR)
[00:38] --> _sev joined #scummvm.
[00:38] <-- _sev left irc: Changing host
[00:38] --> _sev joined #scummvm.
[00:38] #scummvm: mode change '+o _sev' by ChanServ!ChanServ@services.
[00:39] <-- Farmboy0 left irc: Remote host closed the connection
[00:40] <-- Strangerke left irc: Ping timeout: 260 seconds
[00:41] <-- _sev_ left irc: Ping timeout: 240 seconds
[00:41] <m_kiewitz> snover: well the text would look fine then (when you simply upscale it 1:2 / 1:4)
[00:42] <m_kiewitz> it would be 2 or 3 pixels too small, but that's it
[00:43] <snover> anyway, there are enough things left to do to just get all these games running well that these kinds of experiments are somewhere in the nebulous future
[00:49] <m_kiewitz> sure
[00:58] --> GitHub15 joined #scummvm.
[00:58] <GitHub15> [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vHgy5
[00:58] <GitHub15> scummvm/master a673531 Paul Gilbert: TITANIC: Minor cleanups in vector/matrix calculations
[00:58] GitHub15 (GitHub15@192.30.252.42) left #scummvm.
[00:59] <snover> speaking of which, can i delete setting r_acc from EngineState::wait yet? ;)
[01:28] --> Axy joined #scummvm.
[01:28] <-- Axy left irc: Changing host
[01:28] --> Axy joined #scummvm.
[01:30] <-- SylvainTV left irc: Read error: Connection reset by peer
[01:31] <-- Dominus left irc: Read error: Connection reset by peer
[01:31] --> Dominus joined #scummvm.
[01:41] <-- m_kiewitz left irc: Read error: Connection reset by peer
[01:46] --> DominusExult joined #scummvm.
[01:50] <-- Dominus left irc: Ping timeout: 260 seconds
[01:50] Nick change: DominusExult -> Dominus
[01:56] --> Joefish joined #scummvm.
[01:56] #scummvm: mode change '+v Joefish' by ChanServ!ChanServ@services.
[01:56] <-- Joefish_ left irc: Ping timeout: 258 seconds
[02:26] <-- dreammaster left irc:
[02:32] --> omer_mor_ joined #scummvm.
[02:34] <-- omer_mor left irc: Ping timeout: 260 seconds
[04:04] --> DJW|Home joined #scummvm.
[04:04] #scummvm: mode change '+o DJW|Home' by ChanServ!ChanServ@services.
[04:07] <-- DJW|Badger left irc: Ping timeout: 255 seconds
[04:51] --> omer_mor joined #scummvm.
[04:52] <-- omer_mor_ left irc: Ping timeout: 260 seconds
[05:11] <-- Lightkey left irc: Ping timeout: 255 seconds
[05:24] --> Lightkey joined #scummvm.
[05:55] --> Begasus joined #scummvm.
[06:00] <-- phyber left irc: Read error: Connection reset by peer

[06:08] <-- balrog left irc: Ping timeout: 255 seconds
[06:09] --> balrog joined #scummvm.
[06:24] --> Begas_VB joined #scummvm.
[06:30] <-- Axy left irc: Ping timeout: 260 seconds
[06:32] --> Mia joined #scummvm.
[06:32] <-- Mia left irc: Changing host
[06:32] --> Mia joined #scummvm.
[06:38] --> ny00123 joined #scummvm.
[06:56] --> omer_mor_ joined #scummvm.
[06:57] <-- ced117 left irc: Ping timeout: 240 seconds
[06:57] --> ced117 joined #scummvm.
[06:58] <-- omer_mor left irc: Ping timeout: 260 seconds
[07:02] --> Strangerke joined #scummvm.
[07:02] #scummvm: mode change '+o Strangerke' by ChanServ!ChanServ@services.
[07:10] --> omer_mor joined #scummvm.
[07:12] <-- omer_mor_ left irc: Ping timeout: 260 seconds
[07:23] --> omer_mor_ joined #scummvm.
[07:26] <-- omer_mor left irc: Ping timeout: 255 seconds
[07:30] <wanwan> LePhilousophe, hello. Yep, I'm still working on Cryo games. Feel free to ask me any questions or coordinate our efforts
[07:37] --> Henke37 joined #scummvm.
[07:58] --> waltervn joined #scummvm.
[07:58] #scummvm: mode change '+o waltervn' by ChanServ!ChanServ@services.
[08:11] <-- octolith left irc: Quit: Connection closed for inactivity
[08:12] <LePhilousophe> wanwan: hi
[08:13] <LePhilousophe> I am quite ready to begin the implementation
[08:13] <LePhilousophe> so I would like to know what you already have
[08:13] <LePhilousophe> on which Omni3D game do you have worked?
[08:43] <-- LittleToonCat left irc: Remote host closed the connection
[08:43] --> m_kiewitz joined #scummvm.
[08:43] #scummvm: mode change '+o m_kiewitz' by ChanServ!ChanServ@services.
[09:21] --> girafe joined #scummvm.
[09:23] --> WooShell joined #scummvm.
[09:24] <WooShell> good meowning =^.^=
[09:45] <TMM> hihi
[09:58] <m_kiewitz> nooo, where is he?
[10:07] <waltervn> hi all
[10:10] <Strangerke> heya waltervn
[10:57] --> ajax16384 joined #scummvm.
[10:57] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[11:02] --> h00ligan joined #scummvm.
[11:02] #scummvm: mode change '+o h00ligan' by ChanServ!ChanServ@services.
[11:02] <-- ajax16384 left irc: Client Quit
[11:02] <-- h00ligan left irc: Client Quit
[11:02] --> ajax16384 joined #scummvm.
[11:02] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[11:39] <-- ced117 left irc: Ping timeout: 255 seconds
[11:44] --> ced117 joined #scummvm.
[11:52] --> dafioram joined #scummvm.
[12:04] --> Strangerke_ joined #scummvm.
[12:06] <-- Strangerke left irc: Ping timeout: 255 seconds
[12:06] Nick change: Strangerke_ -> Strangerke
[12:09] --> SylvainTV joined #scummvm.
[12:09] #scummvm: mode change '+o SylvainTV' by ChanServ!ChanServ@services.
[12:14] <wanwan> LePhilousophe, i have most of Atlantis code recovered, currently working on cutscenes 3d engine (which is the reason why Atlantis is not really qualifies as ScummVM-relevant game)
[12:17] <-- girafe left irc: Read error: Connection reset by peer
[12:23] <-- thesquib left irc: Quit: ZNC - http://znc.in
[12:25] <criezy> wanwan, LePhilousophe: you are both aware of the work from Littleboy did some years ago on Omni3D?
[12:25] <criezy> Also I though those games used fake 3D. But if there is some real 3D used, then it would indeed be a better fit for ResidualVM.
[12:28] <wanwan> criezy, i saw some of his very early work on the engine, but as i remember it was very-very basic stuff (like, resources loading and such)
[12:28] <wanwan> as for the engine itself... it's complicated
[12:29] <wanwan> Atlantis, for example, uses fake 3d for the most part, except cutscenes. there game switches to full-blown 3d soft-render engine
[12:30] --> thesquib joined #scummvm.
[12:32] <wanwan> which is the same one as was used in Dreams to Reality game
[12:34] <wanwan> (3rd person action somewhat like Tomb Raider)
[12:42] <criezy> My experience in Cryo game is quite limited. The only game I played back in the days was Versailles (and a couple of Arxel Tribe games published by Cryo).
[12:43] <criezy> And it looks like I own Lost Eden and Atlantis I and II on GoG. But I haven't played them yet.
[12:45] <wanwan> Many of Cryo's games aren't that great. But the Lost Eden has awesome soundtrack and funny dialogs, at least
[12:48] <Lightkey> that.. doesn't even make sense, it was usually the other way around, 3D games with pre-rendered cut-scenes for higher quality graphics
[12:49] <wanwan> it's not that kind of cutscenes. they used 3d engine for character interaction scenes (aka dialogs)
[12:50] <wanwan> other cutscenes are in video files, yes
[12:51] <-- dafioram left irc: Quit: Page closed
[12:52] <wanwan> i believe they go this way to make "realistic" lipsync, that can be easily adapted to different languages
[12:55] <Lightkey> ah
[12:55] <Lightkey> btw have you read Hajime no Ippo?
[12:56] <wanwan> no, why?
[12:57] <Lightkey> your nickname is in there, was just a guess
[12:58] <wanwan> really? heh
[13:08] --> phyber joined #scummvm.
[13:45] Nick change: Vampire0_ -> Vampire0
[14:03] --> Mataniko joined #scummvm.
[14:29] <LePhilousophe> criezy: I saw littleboy's code and indeed it's really basic
[14:29] <LePhilousophe> wanwan: I did main reverse for Versailles
[14:29] <LePhilousophe> I just have to do the hardcoded logic but it seems quite simple
[14:30] <LePhilousophe> I already have basic implementation of warping in python + parsing of binary files
[14:31] <LePhilousophe> (sprites, wam, hlz, hnm, ...)
[14:31] <LePhilousophe> I saw you have an hnm parser in lost eden
[14:31] <LePhilousophe> wanwan: did you already write some engine code?
[14:47] <-- Begas_VB left irc: Ping timeout: 240 seconds
[14:47] <-- Begasus left irc: Ping timeout: 255 seconds
[14:52] <-- Henke37 left irc: Quit: ERR_SHUTDOWN
[14:53] <wanwan> not yet, but i have 200+kb source, close to the original one
[14:53] <TMM> \o/ got the movies playing perfectly now
[14:54] <LePhilousophe> ok, I must admit I don't really know how to start
[14:55] <LePhilousophe> littleboy has some engine code with many blanks, I don't know if it's a good start
[15:01] <wanwan> well, if you like it and feel comfortable to build your engine on it - why not?
[15:03] --> LittleToonCat joined #scummvm.
[15:05] <LePhilousophe> ok I will see
[15:05] <LePhilousophe> thanks for your infos
[15:08] <wanwan> you are welcome
[15:19] --> m-kiewitz joined #scummvm.
[15:19] <-- m-kiewitz left irc: Changing host
[15:19] --> m-kiewitz joined #scummvm.
[15:19] #scummvm: mode change '+o m-kiewitz' by ChanServ!ChanServ@services.
[15:19] <-- m_kiewitz left irc: Read error: Connection reset by peer
[15:35] <-- bgK left irc: Ping timeout: 260 seconds
[15:49] --> bgK joined #scummvm.
[15:49] #scummvm: mode change '+o bgK' by ChanServ!ChanServ@services.
[15:51] --> guardianxx joined #scummvm.
[15:57] <-- guardianxx left irc: Read error: Connection reset by peer
[16:15] --> Strangerke_ joined #scummvm.
[16:18] <-- Strangerke left irc: Ping timeout: 260 seconds
[16:18] Nick change: Strangerke_ -> Strangerke
[16:31] <-- broosky left irc: Remote host closed the connection
[16:31] --> borosky joined #scummvm.
[16:39] --> Littleboy joined #scummvm.
[16:39] #scummvm: mode change '+o Littleboy' by ChanServ!ChanServ@services.
[16:59] <-- Mataniko left irc: Read error: Connection reset by peer
[17:08] <-- Mia left irc: Ping timeout: 255 seconds
[17:09] --> m_kiewitz joined #scummvm.
[17:09] <-- m_kiewitz left irc: Changing host
[17:09] --> m_kiewitz joined #scummvm.
[17:09] <-- m-kiewitz left irc: Read error: Connection reset by peer
[17:09] #scummvm: mode change '+o m_kiewitz' by ChanServ!ChanServ@services.
[17:57] <Simei> I use lockScreen() to get the screen surface to blit for transparent surface, and then unlockScreen(). The transparency and scaling works well, but the sprites are flickering. Is this the right way to display a transparent surface? Does anyone have an idea?
[18:04] <somaen> In general for WME I keep a full screen surface
[18:04] <somaen> That I then copyRectToScreen on flip()
[18:04] <somaen> Reason being that I need to keep track of everything that's drawn because of transparency.
[18:05] <somaen> (This is a simplification of what actually happens, as I added a ton of logic on top of that to speed it up)
[18:07] <somaen> If you look at the documentation for lockScreen() it might not be what you want exactly, because of the part about potentially stalling everything while it's locked.
[18:08] <somaen> Either way, your engine has full control of what it's drawing in any given frame, so you might as well keep your own Graphics::Surface that you render into, and then copyRectToScreen() that when you're finished with a frame.
[18:10] <somaen> (Or, depending on how rendering works in Sludge, you might want to copyRectToScreen() smaller rectangles, that all boils down to whether the engine itself always renders everything in every frame, or just what changed since last frame)
[18:10] <somaen> Hope that clears something up.

[18:11] <somaen> What kind of flicker are you experiencing btw?
[18:14] <Simei> somean, thanks! I look around a bit in the code. I think it's "_renderSurface" that you mention here in the code ?
[18:17] <Simei> Sprites are flickering constantly. Maybe just appear for a short time at the beginning of every frame, I guess? Only transparent surfaces .
[18:21] <TMM> snover, wjp, so I have some code here that apparently tries to do a loop based on how long a short int stays positive. It does this by multiplying the value every loop iteration until it hits a negative number, or 0. Have either of you ever seen something like this before?
[18:23] <snover> multiplies by a constant value, or&?
[18:27] <TMM> yeah, multiplied by 2
[18:34] --> Henke37 joined #scummvm.
[19:02] <somaen> IIRC the entire screen is in practice updated when updateScreen() is called, so if you have flicker then you're presumably not producing the same frame consistently
[19:02] <somaen> If you for instance do multiple updateScreen() calls for an actual frame, and some of those overwrite something you've previously rendered, then that could make sense, since you're effectively producing as many frames as you have calls to updateScreen()
[19:05] <Simei> somaen, Ah, yes, that's what I did, multiple updateScreen() calls. I understand why it doesn't work now.
[19:06] <Simei> somaen, your advice of using a full screen surface works quite well for me! Thanks! :D
[19:26] --> omer_mor joined #scummvm.
[19:28] <-- omer_mor_ left irc: Ping timeout: 255 seconds
[19:47] <-- Joefish left irc: Read error: Connection reset by peer
[19:50] --> Strangerke_ joined #scummvm.
[19:52] <-- Strangerke left irc: Ping timeout: 240 seconds
[19:52] Nick change: Strangerke_ -> Strangerke
[19:56] --> girafe joined #scummvm.
[20:01] --> Joefish joined #scummvm.
[20:01] #scummvm: mode change '+v Joefish' by ChanServ!ChanServ@services.
[20:07] <-- ajax16384 left irc: Read error: Connection reset by peer
[20:40] <TMM> It appears to be a way to skip or not skip a certain number of blocks in the output. What a... interesting way of doing that
[21:08] --> dreammaster joined #scummvm.
[21:08] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services.
[21:14] --> GitHub85 joined #scummvm.
[21:14] <GitHub85> [scummvm] dreammaster pushed 1 new commit to master: https://git.io/vH22t
[21:14] <GitHub85> scummvm/master 8c31328 Paul Gilbert: TITANIC: Extra comments and fix an incorrect DMatrix to be FMatrix
[21:14] GitHub85 (GitHub85@192.30.252.45) left #scummvm.
[21:17] <m_kiewitz> http://dilbert.com/strip/2017-05-15
[21:17] <m_kiewitz> hah
[22:07] <-- ny00123 left irc: Quit: Leaving
[22:16] <TMM> argh I can't figure this thing out, I'm so close to having a video playing
[22:17] <TMM> this video format is only used for the logo
[22:18] <TMM> I'm so annoyed
[22:18] <TMM> all the other videos play
[22:21] TMM hates it
[22:37] <m_kiewitz> TMM: which game?
[22:51] <TMM> Kingdom: The Far Reaches
[22:52] <TMM> they helpfully included debug symbols
[22:56] <Strangerke> (dos version)
[22:59] <-- WooShell left irc: Quit: If you understand or if you don't, if you believe or if you doubt - There's a universal justice, and the eyes of truth are always watching you.
[22:59] <-- girafe left irc: Read error: Connection reset by peer
[23:00] <m_kiewitz> TMM: so the Interplay logo animation?
[23:14] <TMM> yeah
[23:15] <TMM> I implemented the other animation method now
[23:15] <TMM> I should send a note to multimedia mike
[23:17] <TMM> I'm so annoyed, one of those data streams has 67 entries per frame but I'm only ever consuming 64, and everything is off by a couple of blocks... I'm sure the two are related but I have no idea why
[23:30] <-- Henke37 left irc: Quit: ERR_SHUTDOWN
[23:34] <snover> TMM: i dont think i have seen anything like what you were describing with the multiplication. im interested to see what your reconstruction of that machine code looks like, so i can file it away for next time :)
[23:36] <TMM> it looks pretty bad :P
[23:39] <TMM> snover, http://paste.debian.net/964588/ <-- that's what it looks like now
[23:40] <TMM> it *seems* to make sense
[23:41] <-- waltervn left irc: Quit: Leaving
[23:44] <TMM> those entries in unk[] dictate when blocks get skipped combined with another stream of data
[23:44] <TMM> and how many
[23:45] <TMM> the code in the other stream is super trivial I don't see how I could've gotten that one wrong
[23:45] <snover> famous last words :)
[23:45] <TMM> possible
[23:45] <snover> are you doing this outside of scummvm right now?
[23:45] <TMM> yeah
[23:46] <TMM> this is the current working code for the 0x06 opcode: https://notabug.org/hp/rekingdom
[23:46] <TMM> the 0x05 opcode has this little gem in it
[23:48] <TMM> the code isn't exactly cleaned up yet :P
[23:50] --> omer_mor_ joined #scummvm.
[23:51] <snover> that condition on line 10 looks weird. are you intending to cast the result of cur_unk * 2 to short? because im pretty sure that isnt doing that
[23:52] <-- omer_mor left irc: Ping timeout: 268 seconds
[23:53] <-- m_kiewitz left irc: Quit: technology isn't intrinsically good or evil. It's how it's used. Like the Death Ray.
[23:58] <TMM> oh, yeah, missing some ()
[23:59] <TMM> snover, oh goddamnit, that was the problem
[23:59] TMM hates everything
[00:00] --- Sun Jun 4 2017