Commit Graph

443 Commits

Author SHA1 Message Date
Max Horn
ac247c9b94 Started to move some resource related code into a new class ResourceManager (hypothetic goal for the future: use ResourceManager in ScummEx)
svn-id: r17311
2005-03-31 21:39:31 +00:00
Eugene Sandulenko
f4c50eff95 Switch to headerless PRG data for MM NES for better compatibility.
svn-id: r17302
2005-03-30 23:25:49 +00:00
Eugene Sandulenko
7ae3da082e Support for direct reading from NES ROM:
o extend MemoryReadStream with XOR facility
  o implement MemoryWriteStream
  o _fileHandle now is a reference to BaseScummFile class and is created on the fly
  o implement ScummNESFile class which is basically extract_mm_nes utility
  o update NES MM md5's due to above changes

NOTE: to run MM NES now you need to remove *.LFL files and (probably) rename
ROM to standard conventional name 'Maniac Mansion (XXX).nes'

svn-id: r17300
2005-03-30 21:59:12 +00:00
Eugene Sandulenko
dbfeb393aa Patch from Quietust for MM NES
o Fix number of global objects
 o Camera-related differences
 o Proper user states
 o Updated MD5 for new 00.lfl

svn-id: r17268
2005-03-27 21:21:05 +00:00
Max Horn
abcf7bf2de Tie the AKOS code into the new costume infrastructure, too
svn-id: r17259
2005-03-27 01:07:22 +00:00
Max Horn
446be21239 Started to overhaul the costume infrastructure a bit, properly separating the NES costume code in the process (sorry if I broke stuff for the NES folks, but I figure it is better to get this done properly now before we have to untangle the mess later)
svn-id: r17257
2005-03-27 00:23:38 +00:00
Max Horn
9a4bc8ce16 Patch #1117443 (Experimental plugin code revision)
svn-id: r17231
2005-03-25 17:55:57 +00:00
Max Horn
df129b198c Some more cleanup
svn-id: r17227
2005-03-25 01:59:47 +00:00
Max Horn
47ee0ce884 Moved _roomStrips to class Gdi; put some GFX pre-room init code into the new method Gdi::roomChanged(); some more cleanup
svn-id: r17226
2005-03-25 01:52:20 +00:00
Max Horn
c86b18716b Started some cleanup work on class Gdi (in particular, I try to limit that class to GFX decoding only, and moved the screen rendering code out of it)
svn-id: r17225
2005-03-25 01:27:28 +00:00
Max Horn
7ed1c19f6c Cleanup: collect the C64 specific render data into a struct inside class Gdi
svn-id: r17224
2005-03-25 00:56:03 +00:00
Max Horn
980576a4b6 Do not use (non-const) local static variables
svn-id: r17221
2005-03-25 00:37:14 +00:00
Eugene Sandulenko
33952c09cb Correct positioning of inventory and verbs in MM NES.
Started to tackle inventory.

svn-id: r17219
2005-03-24 21:34:35 +00:00
Eugene Sandulenko
2226aa6bc9 Add support for russian spyfox2 and spyfox3
svn-id: r17218
2005-03-24 12:33:53 +00:00
Eugene Sandulenko
9ab0962f6d Lots of MM NES changes from Quietust and me
o Swap palette entries 0x00 and 0x1D in all necessary places. This gets
    rid of gray background
  o added a function NES_loadCostumeSet(int n) in order to do #1 for sprites
  o Widen screen to 256 pixels and center narrow rooms in it
  o Partial fix for subtitle rendering, now at least first line is
    rendered with identation

svn-id: r17212
2005-03-24 03:22:32 +00:00
Travis Howell
a72a1ef827 Patch from Quietust:
-update md5 checksums for NES maniac

svn-id: r17204
2005-03-23 05:59:24 +00:00
Eugene Sandulenko
8102efa7a3 Add three new HE sports games. Baseball is most playable now.
Add some unhandled KernelGet/SetFunctions used by new titles.

svn-id: r17198
2005-03-22 20:57:14 +00:00
Travis Howell
097a3a0aac Cleanup
svn-id: r17192
2005-03-22 00:46:48 +00:00
Eugene Sandulenko
0bcb0ac257 Many MM NES fixes/improvements from Quietust:
o Doesn't crash when going upstairs. Now game is playable up to
    the green tentacle
  o Proper subtitles colors
  o Room mask is decoded but doesn't affect sprites yet
  o Inventory draw issues fixed
  o Fix actors position when they're facing right

svn-id: r17191
2005-03-21 23:51:48 +00:00
Eugene Sandulenko
d1e46a5420 Implement proper scene transition mode for MM NES.
svn-id: r17189
2005-03-21 00:27:39 +00:00
Travis Howell
91bfb91d77 These VARS are only used in Loom [CD] and scumm5 onwards.
svn-id: r17185
2005-03-19 02:40:42 +00:00
Eugene Sandulenko
b4ed62e1ad Some Russian Sam'n'Max releases have files renamed to RAMNMAX. So support
those. Also made file name substitution a general thing so we can
eventually get rid of monkey1 target et al.

svn-id: r17179
2005-03-18 15:10:16 +00:00
Travis Howell
47e9cc1b3a Add string height override for loom
svn-id: r17178
2005-03-18 15:04:37 +00:00
Eugene Sandulenko
f86768fee8 Preliminary support for NES charsets. Colors are wrong and we get glitches
caused by too narrow screen. Also text clearing doesn't work.

svn-id: r17164
2005-03-16 03:20:32 +00:00
Eugene Sandulenko
968e900a0f oops
svn-id: r17158
2005-03-15 18:46:35 +00:00
Eugene Sandulenko
088eb28c17 Add md5's of all known MM NES versions.
svn-id: r17157
2005-03-15 18:10:06 +00:00
Eugene Sandulenko
4824af64bb Minor NES-related fixes
o Actors do not leave trails, though background isn't restored since
    that code always uses two buffers and nes isn't. I have to switch it to
    use two
  o Add Swedish version of MM NES
  o Code formatting fixes

svn-id: r17156
2005-03-15 17:56:50 +00:00
Travis Howell
065710ee80 Doesn't apply to NES maniac.
svn-id: r17148
2005-03-15 05:28:20 +00:00
Travis Howell
e00d808433 Patch from Quietust:
Fix room scrolling in NES maniac.

svn-id: r17147
2005-03-15 04:24:49 +00:00
Eugene Sandulenko
4e39d96e9d Update MM NES md5 due to changed index file.
svn-id: r17144
2005-03-15 02:49:43 +00:00
Travis Howell
7bb8de561b Off by one.
svn-id: r17138
2005-03-15 01:19:36 +00:00
Eugene Sandulenko
ef57db4105 First attempt to draw NES sprites. There are these problems:
o Position is not correct
  o Colors are wrong
  o No animation
  o They're not wiped out correctly, maybe because of first problem

svn-id: r17137
2005-03-14 21:13:35 +00:00
Eugene Sandulenko
654528422d Preliminary support for MM NES.
svn-id: r17133
2005-03-13 23:18:59 +00:00
Travis Howell
4a18a5de44 Off by one.
svn-id: r17097
2005-03-12 14:32:09 +00:00
Travis Howell
8b484a2acf Missing pop
svn-id: r17086
2005-03-12 04:05:26 +00:00
Travis Howell
c39a92933d Add key to toggle speech/subtitles
svn-id: r17082
2005-03-12 00:47:17 +00:00
Chris Apers
8e77e899d0 PalmOS : move MD5 table to a database too save memory and data segment space
svn-id: r17075
2005-03-11 10:46:28 +00:00
Travis Howell
d6b8386241 Add English HE100 versions of freddi2/maze
svn-id: r17069
2005-03-11 03:16:52 +00:00
Eugene Sandulenko
154c4af8dc Mass-renamed all variables of Actor object according to our current code
formatting standards. Earlier we had half of vars named with leading
underscore and half without it.

Now code in actor.cpp is considerably more readable.

svn-id: r17068
2005-03-11 01:10:06 +00:00
Eugene Sandulenko
3cf691e9f9 Add --force-1x-overlay command line option as discussed in bugreport
#1160454 "ALL: Failed assertion when using 1x scaler"

svn-id: r17067
2005-03-10 16:29:08 +00:00
Travis Howell
248bee4d24 Change o72_openFile to always use saved game path for writing.
svn-id: r17056
2005-03-10 00:46:26 +00:00
Eugene Sandulenko
7bb53f3bf1 Patch #1013937 "OSystem layer with bigger resolution". Now you will always
get at least 640x400 window. And finally we have means of implementing
nice looking GUI.

Also updated all backends. If your backend has ability to run with 640x400 or
640x480 resolution then read patch tracker item to find out details. Other
port maintainers shouldn't worry, as this patch doesn't affect them, they
still get their 320x200.

svn-id: r17055
2005-03-09 23:07:32 +00:00
Max Horn
0ec193b4be changing AudioDataType -> SoundType, so now the constant names match the name of the data type / the SoundMixer method names
svn-id: r17052
2005-03-09 18:12:54 +00:00
Travis Howell
ebcf64df56 _imagesNum should be clear in startScene()
svn-id: r17044
2005-03-09 05:04:14 +00:00
Travis Howell
cb492e9b08 Restriction no longer required.
svn-id: r17022
2005-03-07 01:04:07 +00:00
Travis Howell
7627f75d9b Missed a bit
svn-id: r17021
2005-03-07 00:57:38 +00:00
Travis Howell
bf9bdd6c2e Allow EGA option in Amiga/Atari ST games.
Restore correct palette after reloading saved game.

svn-id: r17020
2005-03-07 00:53:30 +00:00
Travis Howell
07aa92063a Add Amiga renderer mode for EGA games.
svn-id: r17019
2005-03-07 00:39:48 +00:00
Travis Howell
bad34c12cd Add two more VARs for HE89+
Minor cleanup

svn-id: r16977
2005-03-02 23:14:06 +00:00
Eugene Sandulenko
50f6eb740c Distinguish between green and amber hercules. Now specify it via hercGreen
and hercAmber. Updated documentation accordingly.

svn-id: r16975
2005-03-02 21:46:51 +00:00
Eugene Sandulenko
7a2a4f34dc Make detection of v1 SCUMM games at detection stage, not resource
loading. This lets me disable hercules dithering for these games.

svn-id: r16974
2005-03-02 21:39:16 +00:00
Eugene Sandulenko
ee03994a78 Commit o100_paletteOps WIP based on cyx's patch. Original patch just
tends to be unappliable anymore, so that's why I decided to commit it when
it required not so much work of manual patching.

I've checked validness of it against IDB but we still have main question open:
How to plug it in properly into our palette code?

svn-id: r16973
2005-03-02 20:02:59 +00:00
Travis Howell
36705d4344 Add support for script cycles used by HE90+ games.
svn-id: r16958
2005-02-28 13:23:10 +00:00
Eugene Sandulenko
e106b0a853 Disable ditrherers for v1 games. Algorithm there is different and also
palette settings seem to be different too. So to not let people get confused
it is disabled until proper implementation.

svn-id: r16928
2005-02-26 11:02:27 +00:00
Max Horn
51391279cc cleanup
svn-id: r16910
2005-02-25 10:00:06 +00:00
Travis Howell
587d4da23a Init sprites
svn-id: r16908
2005-02-25 01:34:33 +00:00
Travis Howell
350ed76947 Update sprite calls in main loop
svn-id: r16894
2005-02-24 08:00:30 +00:00
Travis Howell
88a70e46b8 init vars
svn-id: r16891
2005-02-24 07:43:29 +00:00
Eugene Sandulenko
1ad372c589 Initial implementation of spritesProcessWiz. Also plugged it into main loop.
svn-id: r16887
2005-02-24 04:04:17 +00:00
Travis Howell
a45a0de658 All languages
svn-id: r16858
2005-02-22 07:31:54 +00:00
Eugene Sandulenko
0835583948 Implementation of GFX transactions. May cause some regressions in case I
missed some unusual mode switching. This implementation let us avoid two nasty
hacks in scumm.cpp.

*Now* we could return to OSystem layers.
patch.

svn-id: r16855
2005-02-22 01:29:27 +00:00
Eugene Sandulenko
6409a3c4e4 Fix _heversion for Russian updated pajama2. Today I played it with kids
and found that it is actually 99, not 98.

svn-id: r16851
2005-02-21 14:27:09 +00:00
Eugene Sandulenko
47400c1932 Restrict CGA/EGA/Hercules dithering to PC only.
svn-id: r16819
2005-02-20 01:50:18 +00:00
Eugene Sandulenko
27469a1896 Patch #1121337 (CGA rendering in early LEC titles).
Differences against patch:
  o Updated documentation
  o Fixed text colors
  o Implemented Hercules dithering

Ditherers are based on loom ega and monkey ega, so for zak and mm they're
wrong, i.e. these games look better than with original ditherers.

TODO:
  Proper ditherers for zak & MM
  EGA ditherers for VGA SCUMM v5 games

svn-id: r16816
2005-02-20 00:17:22 +00:00
Max Horn
695b0fcb5f Fix a small bug (wrong mouse cursor is briefly shown) in the F5 menu
svn-id: r16804
2005-02-18 00:28:56 +00:00
Travis Howell
e1323556c3 Correction number of actors in a few HE games.
VAR_NUM_ACTORS doesn't always have the correct value.

svn-id: r16799
2005-02-17 01:22:31 +00:00
Eugene Sandulenko
c49642bb8b o Added 5 updated Russian freddi-related titles.
o Fixed ScummEngine_v72he::o72_openFile() so autogenerated names also
  checked for substitution.
o New case 0 in o100_actorOps() used by Russian updated freddicove. Number
  of stack items weren't checked against disassembly

svn-id: r16792
2005-02-14 21:19:00 +00:00
Eugene Sandulenko
142a646da0 Fix typo in football substitute.
svn-id: r16783
2005-02-13 23:32:49 +00:00
Eugene Sandulenko
cfdde90be0 HE version correction for russian spyfox
svn-id: r16782
2005-02-13 07:16:44 +00:00
Eugene Sandulenko
a43f4bead8 Added new Russian HE titles.
svn-id: r16780
2005-02-13 06:54:03 +00:00
Paweł Kołodziejski
ce832686a0 fixed warning
svn-id: r16777
2005-02-12 14:16:17 +00:00
Eugene Sandulenko
7ea113dbb1 Renamed substDataFileNames to substResFileNames. Just forgot to do it last
time.

svn-id: r16772
2005-02-11 13:29:15 +00:00
Torbjörn Andersson
420712fb28 Added "PuttPuttTTT" as an alias for "putttime", since that's what my copy
of the game uses. (Unfortunately the data files do not all use the same
capitilization. Some are named "PuttPuttTTT"-something, while others are
named "puttputtTTT"-something.)

svn-id: r16770
2005-02-11 08:17:23 +00:00
Eugene Sandulenko
0851c89aa3 Sorted multiple_versions_md5_settings[] table to ease maintenance.
svn-id: r16768
2005-02-11 04:17:24 +00:00
Eugene Sandulenko
b4295347f8 Few more targets eliminated. Though they never existed. Need to check this
with joostp.

svn-id: r16766
2005-02-11 04:08:21 +00:00
Eugene Sandulenko
a9ceee26d8 Turned HE Mac resource filename generator into generall, whole SCUMM-purpose
method. Right now it is used to eliminate those Windows HE titles which
have different target base names.

If you want to use it, then define another entry in substDataFileNameTable[].
If your version with different base name has other features then you need
to define GF_MULTIPLE_VERSIONS for main entry and add any additional
entries to multiple_versions_md5_settings based on MD5 of the entry.

svn-id: r16764
2005-02-11 03:45:10 +00:00
Joost Peters
9a44a6b333 correct typos
svn-id: r16733
2005-02-02 23:24:51 +00:00
Eugene Sandulenko
f63a433c3d Small correction to baseball2003
svn-id: r16729
2005-02-02 11:49:58 +00:00
Travis Howell
e2678369d1 These demos make use of Smacker.
svn-id: r16724
2005-02-02 03:45:45 +00:00
Eugene Sandulenko
ff7e16dc2b o Added few targets
* baseball2003 and Soccer2004 use Bink videos but just for intro movies and
    logos, so we may add them.
  * artdemo and readdemo also use Bink, but seems that additionally it uses
    them in cutscenes, but since there are just few of them, not like in
    full games, we may try to look at them too
  * SoccerMLS is (alsmost) working. It runs the intro, shows menu, lets
    to select from it but then fails at some Wiz stuff and there is no
    hotspots to choose. I think it may be related to overall HE99 problem
    with inventory where there is a bug preventing from item selection
o baseball2003 and Soccer2004 featured new LECF index block. Add stub for it
o SoccerMLS used kernelSetFunction 2001 in intro. add stub for it
o Alternative russian freddi3 uses badly formatted logo substitution in intro,
  so error() in default case in Gdi::drawBMAPBg() was replaced with warning().

svn-id: r16722
2005-02-02 00:32:02 +00:00
Travis Howell
5178ba2104 Add HE100 version of Pajama Sam 1/ Pajama Sam's Lost & Found.
svn-id: r16717
2005-02-01 04:58:14 +00:00
Eugene Sandulenko
2b8fb48833 Yet another correction to 'dog'. Kirben, please check it as you have different
version than me. It seems that the game was released on multiple engine
versions.

svn-id: r16716
2005-01-31 21:22:15 +00:00
Eugene Sandulenko
3891fbdfd5 HE version correction for 'dog'. Game is fully playable, just columns' palette
is wrong.

svn-id: r16715
2005-01-31 20:12:10 +00:00
Eugene Sandulenko
c32e936723 Support for Mac cursors.
TODO:
    o Allow reading from non-processed game executable. Now you need to get
      .bin file out of it
    o Use color versions of cursors
    o Combine MacResExtractor with Win32ResExtractor. Now I just stupidly
      create 2 objects and do not use new cursor caching code.

svn-id: r16713
2005-01-31 03:53:35 +00:00
Travis Howell
85f8b9bb93 ADD HE100 version of Balloon O Rama
svn-id: r16702
2005-01-30 05:11:04 +00:00
Travis Howell
8c1cb5ae51 Add updated Cheese Chase
svn-id: r16700
2005-01-30 04:55:47 +00:00
Travis Howell
399dcad5bd Skip cursors in Macintosh version of HE72 games for now.
Add early Macintosh HE games.

svn-id: r16698
2005-01-30 02:00:24 +00:00
Travis Howell
3c1934cc8f Singe HE71 version of freddi too.
svn-id: r16697
2005-01-30 01:07:22 +00:00
Travis Howell
df3734bddb Only HE71 demos were on puttputt CD.
svn-id: r16696
2005-01-30 00:57:51 +00:00
Travis Howell
24248fe79e Switch airdemo checksums, only a single HE71 version.
svn-id: r16695
2005-01-30 00:38:18 +00:00
Eugene Sandulenko
66c524f0ee Add support for Humongous Mac titles in native format. Please test :)
svn-id: r16693
2005-01-29 17:58:47 +00:00
Max Horn
b6ea449335 Renamed _localScriptList to _localScriptOffsets for clarity
svn-id: r16691
2005-01-29 15:49:57 +00:00
Travis Howell
169599fc5d Last few added.
svn-id: r16690
2005-01-29 05:11:30 +00:00
Travis Howell
98e25fb848 Add freddi's.
svn-id: r16689
2005-01-29 04:47:16 +00:00
Travis Howell
96750ceda3 Add a few more
svn-id: r16688
2005-01-29 04:23:46 +00:00
Travis Howell
cd5aef92f0 Add a few
svn-id: r16687
2005-01-29 03:49:15 +00:00
Eugene Sandulenko
6b6830c688 Add detection of HE Mac titles which use different naming scheme.
Committed for review/criticize. No further support by the engine, i.e.
detected games will not run, but most complex task is done. Will finish
it tomorrow unless some nasty bugs will pop up.

svn-id: r16686
2005-01-29 03:12:48 +00:00
Eugene Sandulenko
5a0085a581 Fix regression with 640x480 HE games so it will not let them scale above 1x.
Though I _don't_ like this fix. It looks like a dirty hack to me. There
is something completely wrong with our logics here.

svn-id: r16644
2005-01-27 12:23:36 +00:00
Travis Howell
4aa9f43879 Add swedish freddi
svn-id: r16642
2005-01-26 14:14:51 +00:00
Max Horn
cffd917165 system.h was being included in tons of places, without any good reason; reduced this (total dependencies on system.h went down from 193 to 85 files)
svn-id: r16527
2005-01-10 22:06:49 +00:00