Age | Commit message (Collapse) | Author |
|
|
|
- Folded all comparison operators in a single function, cmp()
- Simplified the + operator, and removed the SQ1 workaround, as it's not
needed anymore
- Removed the workaround for uninitialized variables in the * operator
- Removed division by zero workarounds in the / and % operators
- Added a better description of pointerComparisonWithInteger(), based
on fingolfin's description and comments. Also, changed the SCI versions
where this is used to SCI0-SCI1. The SCI1.1 case in QFG3 was a script
bug
|
|
Added wrapper functions to read/write from dynmem segments, as these are
treated as BE in Amiga versions (as we treat them like raw data instead
of reg_t's), whereas the rest are LE. Thanks to waltervn and wjp for their
help on this
|
|
|
|
The additional text positioning code in kDisplay was added in SCI1
middle, not SCI1 late. Also, did some slight cleanup
|
|
SCI32 has no ports
|
|
Thanks to fingolfin's comments regarding these
|
|
playing"
|
|
|
|
|
|
|
|
|
|
occurs with the latest fixes to kDoBresen
|
|
changes regarding hunk pointers in r0d555c4
|
|
This is a bug in the SCI32 class library, and there are similar workarounds
for a number of SCI32 games.
|
|
SCI scripts can contain stale pointers, which are used later on. We now delete
the contents of hunk entries without invalidating the relevant pointers and let
the GC clear the references. Many thanks to waltervn and wjp for all their work
and help on this.
|
|
|
|
detection code
|
|
Confirmed with QfG2 disassembly (the only 1_EGA_ONLY game)
that it behaves the same as SCI_VERSION_1_EARLY games, except
for the uninitialized read already mentioned in kDoBresen.
|
|
This renaming allows us to better distinguish that this version is for games
that only had an EGA version, and avoid confusion with newer SCI1 game releases
with EGA graphics (e.g. KQ5 EGA). The only game with this SCI version is QFG2,
a SCI1 EGA game with a parser. Also, added some games for each SCI version.
|
|
|
|
This fixes moonwalking in LSL1 and movement speed in KQ5.
It appears to be have been a RE bug.
|
|
|
|
the unimplemented kTextSize kernel call in SCI32
|
|
palette in the PQ:SWAT demo
|
|
|
|
palette
|
|
When the ABORT_ON_INFINITE_LOOP define is defined in vm.cpp, the VM will now
abort in cases where a conditional statement is followed by an unconditional
jump (which will most likely lead to an infinite loop). Aids in detecting
infinite loop bugs such as #3040722.
|
|
|
|
|
|
with negative numbers in SCI0 games older than 0.000.685
|
|
|
|
This version only handles signed integers. The modulo operator was changed in
SCI0 late (Iceman, and perhaps all SCI0 0.000.685 and later) so that it handles
negative numbers as well. We need to see if there really is a need to keep two
different modulo operators (which will only be necessary if any SCI0 game asks
for the modulo of a negative number by mistake, or a number larger than 32767).
Thus, error out in such a case for SCI0, so that this can be investigated
properly
|
|
|
|
|
|
only place where it's used
|
|
|
|
This refactoring reduces a lot of code duplication, allows for better control,
makes the code more readable and allows us to remove a lot of now unneeded
workarounds
|
|
Thanks to alexbevi
|
|
Thanks to alexbevi for providing details on the format
|
|
|
|
The heuristic in question was used to detect the pseudo mouse control
functionality, however the change in controls seems to have occurred with the
transition to cursor views. Fixes keypad control in Conquest of the Longbow.
Moreover, the code also checked for key scan code 76 when checking for the middle
keypad button, which seems to be a mistake, as that case never occurred.
|
|
Removed validate_arithmetic(), signed_validate_arithmetic(), validate_unsignedInteger() and validate_signedInteger()
|
|
The frames/items in GfxFrameout need to be cleared upon loading
|
|
This was an omission, observed after a discussion with clone2727
|
|
This is a regression from a9b051beff3157e1aa8
|
|
a missing parameter check, which has also been added.
|
|
|
|
The suffix check for "vmd" failed for uppercase files.
|
|
svn-id: r55890
|