Commit Graph
68 Commits
Author SHA1 Message Date
athrxx 2474d96709 KYRA: more coding style cleanup 2022-09-26 19:59:35 +02:00
athrxx b54f6adcb7 KYRA: more coding style and sanity checking cleanup 2022-09-23 21:37:55 +02:00
athrxx 77866676a7 KYRA: init non-initialized member vars 2022-09-23 21:37:51 +02:00
athrxx 236db2d658 KYRA: init non-initialized member vars 2022-09-20 20:32:44 +02:00
athrxx b56c26f134 KYRA: (HOF) - fix bug no. 13709 (Zanthia walks through a rock in Volcania) 2022-07-17 15:56:54 +02:00
athrxx ff5a1cb2ae KYRA: cleanup static resource loader
(the latest changes were a bit on the ugly side)
2022-06-28 23:59:38 +02:00
athrxx 22e33f97b9 KYRA: (MR/ZH) - fix ZH font issue when language is set to other than ZH (Step 2)
Allow reloading individual kyradat resources with a different language. Until now, our multi-language games did not require this, but for more or less random reasons (e. g. it just isn't possible to restart the intro or the main menu after changing the language ingame). However, the Chinese MR versions require this for the font loading.
2022-06-28 00:36:37 +02:00
athrxx 05b9df0821 KYRA: (LoK/KOR) - make use of new Johab string encoding 2022-06-13 19:38:51 +02:00
athrxx c6a02db614 KYRA: (LoK/KOR) - fine tune dialogue text lines 2022-06-09 00:49:05 +02:00
athrxx a6fb73725a KYRA: (LoK/KOR) - fine tune ingame menus 2022-06-09 00:49:05 +02:00
athrxx 6d83986bca KYRA: (LoK/KOR) - more font related fixes
e. g.
- font spacing
- scene message field
- ingame menus
- Brynn's note
2022-06-09 00:49:05 +02:00
athrxx 4670159f26 KYRA: (LoK/KOR) - inital font support
This is still glitchy and will need some more polishing, but at least the intro runs...
2022-06-09 00:49:05 +02:00
athrxx 8461189916 KYRA: rename some flags 2022-06-07 18:31:35 +02:00
athrxx c1a01e9708 KYRA: (LOK) - slow down intro to make it closer to the original
Animations often run at full speed without any delays. Apparently the target hardware of that time (286/386, Amiga, Mac) would ensure sufficient slowdown. Unfortunately, comparing with DOSBox, ScummVM runs somewhat faster. I have tried to add extra delays depending on the amount of onscreen activity. I have finally gotten a result which is very similiar to DOSBox execution.

Basing this on the screen activity is not optimal. Ideally, it would be based on the orignal cpu activity. But we can hardly do that...
2022-03-29 14:17:10 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
athrxx c837fafaa8 KYRA: (LoK/Mac) - fix line breaks glitch
(regression from 6f2df10d)

The dialog text displayer functions really only handle '\n' in the Mac version. But the equivalent function to our Screen::printText() function actually handles both '\r' and '\n'.
2021-12-05 17:03:02 +01:00
athrxx 9673b0a0ea KYRA: implement idle screen updates
Apparently, as I have been told, there are (still) OS'es with non-compositing window managers which may cause glitches when drawing windows over the ScummVM window, unless the engine keeps updating the screen. So, now we do that, even if there isn't any actual on-screen activity. The whole thing is a bit more tricky than it would appear at first glance, since one misplaced/untimely screen update may cause palette glitches. I have implemented a timer which is reset whenever actual on-screen activity happens. That should work around any such glitches.

Maybe the rates for the timer have to be tweaked some more. I have also added an ifdef so this could be disabled or restricted to certain platforms if required.
2021-12-05 15:18:38 +01:00
D G Turner 6e097626ce KYRA: Fix GCC Signed vs. Unsigned Comparison Compiler Warnings 2021-12-04 16:14:46 +00:00
athrxx 6f2df10d03 KYRA: (LoK/Mac) - fix linebreak chars
Mac uses '\n' instead of '\r'. I have verified from disasm that it only uses '\n'. '\r' is not used at all.

Now, I know only 2 cases where it matters and these are hard coded cases: "That snake must\nbe poisonous!" and "The flask is now filled\nwith %s water.". So I could just hard code these differently.
But the scripts might have more of these linebreaks, so it makes sense to have it accurate...
2021-12-03 21:31:05 +01:00
athrxx f436ebbeb0 KYRA: (HOF/Traditional Chinese) - fix ingame texts
(adjust ui, text formatting, menus, etc)
2021-12-01 22:39:24 +01:00
athrxx ad05db611d KYRA: (HOF/Traditional Chinese) - fix intro and main menu 2021-12-01 22:38:35 +01:00
athrxx d9850a2d78 KYRA: (HOF/Traditional Chinese) - add static resources 2021-12-01 22:37:59 +01:00
athrxx a7fda28519 KYRA: (LoK/Traditional Chinese) - finish support
(add font drawing, gui and text formatting fixes etc.)
2021-11-15 01:01:25 +01:00
athrxx f0255f3fe2 KYRA: (FM-Towns) - fix minor font glitch 2021-11-15 01:01:16 +01:00
athrxx db2c959289 KYRA: (LoK/Traditional Chinese) - add static resources 2021-11-15 01:01:06 +01:00
athrxx 2c4f9fcc95 KYRA: (Chinese) - refactor Chinese font code to allow better support for different formats
(the Chinese font code is similiar enough between the KYRA games, but with some differences (e. g. LoK has the Ascii glyphs in an extra file, MR has these in the executable; LoK has a lookup table for the two-byte glyphs etc.)
2021-11-15 01:00:48 +01:00
Orgad Shaneh da751361a4 KYRA: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Orgad Shaneh 14f516282c KYRA: Replace new[]/memset with new[]() 2021-11-10 19:53:15 +01:00
Paul Gilbert 005561d305 COMMON: Increase Stream pos, seek, size from int32 to int64 2021-07-08 18:24:28 -07:00
athrxx 376df2f14c KYRA: fix bug no. 12514 ("Graphic glitch in Legend of Kyrandia 3")
(regression from 8f41adc9)
2021-05-06 17:16:51 +02:00
athrxx 94d5cea3b5 KYRA: (MR/Chinese) - Chinese font drawing + main menu fixes
Things kind of work now, but many specific tweaks (font shading) still need to be added.
2021-04-27 22:07:06 +02:00
athrxx f1f8214f3b KYRA: (EOB/SegaCD/Japanese) - text related fixes and cleanup 2020-11-29 21:24:15 +01:00
athrxx 08c6423403 KYRA: (EOB) - fix CGA mode glitch 2020-10-06 19:10:30 +02:00
athrxx 7b66f1191d KYRA: whitespace cleanup 2020-08-29 23:50:29 +02:00
Cameron Cawley 298114e692 KYRA: Fix compilation 2020-08-16 19:54:35 +01:00
athrxx 28342da2cc KYRA: optimize/cleanup sjis scale code 2020-08-15 22:22:32 +02:00
athrxx 87ec24fbfd KYRA: (EOB/SegaCD) - update character generator 2020-07-30 22:19:18 +02:00
athrxx 03a87dc6db KYRA: (EOB/SegaCD) - first part of camp menu
- fix preferences menu
- fix party resting
2020-07-30 22:19:15 +02:00
athrxx a904ba4f48 KYRA: (EOB/SegaCD) - fix text display, inventory and stats page 2020-07-30 22:19:14 +02:00
athrxx 8f41adc969 KYRA: - fix copyBlockToPage() glitch
(fix for negative out-of-bounds x offsets - apparently never used like that before)
2020-07-30 22:19:13 +02:00
athrxx 9d8c249015 KYRA: (EOB/SegaCD) - vertically shift screen output
The ingame graphics use up 208 pixels out of 224. The top and bottom 8x8 pixel tile rows are left blank.
This commit emulates that. But actually it looks ugly, especially in windowed mode. On a TV screen of that era it was probably unnoticeable.
TODO: GET RID OF THIS COMMIT AND FIND ANOTHER SOLUTION
2020-07-30 22:19:13 +02:00
athrxx 5da41b3e11 KYRA: (EOB/SegaCD) - fix level loading
The first level will now load up when selecting 'start default party' and it is possible to walk around a bit. The Gui (playfield, compass, inventory) is still completely broken, but at least the level blocks and some of the decoration shapes are drawn correctly. Monsters will be drawn, but their anim frames are mixed up, so they will always face the wrong direction and cannot visibly attack.
2020-07-30 22:19:12 +02:00
athrxx 91b18f8343 KYRA: (EOB/SegaCD) - more graphics and sequence player code
- add support for the Sega Font and add text display methods at least for the sequence player
- finish sequence player (add all missing opcodes and other missing code portions)
- some improvement to the resource class
- some renaming and cleanup
2020-07-30 22:19:09 +02:00
athrxx 5e8691b726 KYRA: (EOB) - minor font code cleanup 2020-07-30 22:19:09 +02:00
athrxx 7365c25ce1 KYRA: (EOB/SegaCD) - set screen height to 224 pixels
This version uses a NTSC 224 pixels screen height.
2020-07-30 22:19:08 +02:00
athrxx dbec5ad0e7 KYRA: (LOK) - fix possible invalid memory access
It does not actually happen, but that's only due to the actual game script data...
2020-01-11 21:23:24 +01:00
athrxx ec872b8dc8 KYRA: (LOK) - shakeScreen() improvement
(maintain smooth mouse cursor movement during shakes)
2020-01-08 20:27:54 +01:00
athrxx 70d7de0b98 KYRA: (LOK) - implement FM-TOWNS specific screen shake
(the FM-TOWNS version has a better shake animation)
2020-01-07 22:47:31 +01:00
athrxx 2f16ddc982 KYRA: (LOK) - fix shakeScreen
This has become too fast for modern systems and needs an extra delay. Otherwise the screen shake won't be actually noticed.

There seem to be other issues with shakeScreen outside the Kyra code that have to be addressed separately (improper scaling of the shake offsets).
2020-01-06 23:46:00 +01:00
athrxx 4b7a48fb75 KYRA: fix broken builds (now for real?) 2019-12-18 22:29:49 +01:00