Commit Graph
137148 Commits
Author SHA1 Message Date
Simon Delamarre bc18fc6361 GOB: workaround to handle application CD changes in some Adibou2 versions
Some versions of Adibou2 are only able to handle one CD at a time. This workaround enable to add Adibou2 applications by copying them as a subdirectory of the game directory, just like in multi-cd-aware versions.
2022-12-02 11:44:32 +01:00
Simon Delamarre 0fcbc34266 GOB: fix regression in Adibou2 paths handling
We still need to call getFile() on paths to remove special tokens (@:, <ALLCD>...), but we do not strip paths anymore.
2022-12-02 11:44:32 +01:00
Simon Delamarre 4a6520c670 GOB: fix exercises completion details in Adibou2 tree 2022-12-02 11:44:32 +01:00
Simon Delamarre 33e13b2ba3 GOB: workaround a bug in Adibou2 scripts after character deletion
Characters deletion in Adibou2 work by deleting all files matching with character number as suffix, but this removes also some unrelated save files about installed applications
2022-12-02 11:44:31 +01:00
Simon Delamarre d9951de616 GOB: fix a crash in o7_readData when filename is empty 2022-12-02 11:44:31 +01:00
Simon Delamarre baf76dd2d7 GOB: increase Variables stack size (600 -> 1000)
Previous max size (600) can be reached in some Adibou2 scripts
2022-12-02 11:44:31 +01:00
Simon Delamarre 8a08d6470b GOB: o7_deleteFile, allow to delete all files matching a pattern
Fixes the "delete character" button in Adibou2

We cannot strip paths for this opcode, as scripts sometimes delete all files in a directory (e.g. "TEMP\*.*", that would have been simplified as "*.*" with path stripping).

Use also full path match for read/write/copy/move operations, to allow distinguishing savegames with same filename under different directories, with a fallback to simple filename matching.
2022-12-02 11:44:31 +01:00
Simon Delamarre 73a3b0580f GOB: fix a uint16/uint32 cast error in o2_pushVars
Ints were converted to uint16 first and then uint32 before being pushed, and popped as uint32, so a pushed (int32) "-1" was popped as (uint32) 65535.
This fixes an infinite loop when making a mistake in Adibou2 "write sentence in order" exercise.
2022-12-02 11:44:31 +01:00
Simon Delamarre 736223cb7b GOB: work around a bug in Adibou2 script of "pleasant/unpleasant" game
The script accessed uninitialized parts of an array (index 0 while the array was initialized from index 1).
2022-12-02 11:44:31 +01:00
Simon Delamarre 283fd1b103 GOB: more cursor resizing fixes for Adibou2
This fixes remaining cursor issues in an English version of Adibou2.
2022-12-02 11:44:31 +01:00
Simon Delamarre 4e77480374 GOB: cursors can now be loaded from NE executables
Some Adibou2 versions use NE executables instead of PE, and rely on the "name table" feature for map the cursor name the cursor data.
2022-12-02 11:44:31 +01:00
Simon Delamarre 37965283bf COMMON: add support for "name table" resource in NE executables
A "resource ID -> name" mapping found in some NE executables, stored as a resource.

Not described by any documentation I could find, but the corresponding #define can be encountered in some old header files.

Mentioned by this blog post https://www.toptensoftware.com/blog/win3mu-5/ (section "The Mysterious Resource Type #15").
2022-12-02 11:44:31 +01:00
Simon Delamarre 0ac43888f2 GOB: handle saving Adibou2 drawings on "floppy disk"
They will just land on the save directory, as other saves, with fix filename "adibou2_drawing_on_floppy_disk".

The use case is to facilitate sharing drawings between different Adibou characters, for example to continue a friend's drawing. In this view, we wrap the full picture and its thumbnail in a same file with a fix filename, so that one need only to move the "adibou2_drawing_on_floppy_disk" file between Adibou2 installations to share "floppy disk" drawings.
2022-12-02 11:44:30 +01:00
Simon Delamarre 5d66b9a200 GOB: add some Adibou1 stubs 2022-12-02 11:44:30 +01:00
Simon Delamarre cab63f8d31 GOB: skip copy protection test in Adibou1 2022-12-02 11:44:30 +01:00
Simon Delamarre 87536a16e4 GOB: fix errors in Adibou2 savegame files list 2022-12-02 11:44:30 +01:00
Simon Delamarre 680077d92b GOB: add save handler stubs for Adibou1
Remove a blocking "floppy disk error" screen on some versions.
2022-12-02 11:44:30 +01:00
Simon Delamarre a0c30a957e GOB: add more Adibou1 versions 2022-12-02 11:44:30 +01:00
Simon Delamarre b6e991f1c4 GOB: implement case -1 of o1_keyFunc
Same as case 1. Fixes the "Cancel" button of "Change CD" screen in Adibou2.
2022-12-02 11:44:30 +01:00
Simon Delamarre 572ac219ba GOB: another fillRect mode used in Adibou2, "fill except one color"
Fixes level 3 of the "mask" game.
2022-12-02 11:44:30 +01:00
Simon Delamarre 141cd85e75 GOB: workaround for an issue with text tool in Adibou2 paint game 2022-12-02 11:44:30 +01:00
Simon Delamarre f187fdf5a4 GOB: add an English version of Adibou ("Adiboo") 2022-12-02 11:44:29 +01:00
Simon Delamarre 656cc44dfe GOB: use oPlaytoons_printText in Adibou2
Partially fix the "text" tool in paint game, font spacing is now correct (there is still a key listening issue, though).
2022-12-02 11:44:29 +01:00
Simon Delamarre d1793fb833 GOB: fix in oPlaytoons_printText 2022-12-02 11:44:29 +01:00
Simon Delamarre da7439b3f3 GOB: Adibou2 forces palette entries 0 / 255 to be black / white 2022-12-02 11:44:29 +01:00
Simon Delamarre 65ec3bfa8a GOB: remove a forced retrace in newCycleAnim for Adibou2
Lead to glitches (scenes shown too soon before loading the correct palette), and does not seem to be needed.
2022-12-02 11:44:29 +01:00
Simon Delamarre 519b9b88ec GOB: disable filename replacement for Adibou2 database IDs.
Fix missing names in applications list.
2022-12-02 11:44:29 +01:00
Simon Delamarre edb0528536 GOB: no "fade" animation in Adibou2 after o1_palLoad
No fade transitions in the original game, and it leads to glitches (e.g. sometimes a scene is shown to soon, with a wrong palette, due to unexpected retrace in fade() call).
2022-12-02 11:44:29 +01:00
Simon Delamarre f19528a0ad GOB: avoid warning in o7_setActiveCD when matching main game directory 2022-12-02 11:44:29 +01:00
Simon Delamarre b907d2afa6 GOB: workaround for a bug in Adibou2 scripts of "cooking" activity 2022-12-02 11:44:29 +01:00
Simon Delamarre fc8b36f1d8 GOB: DRAW_PUTPIXEL with pattern 0xFF is getPixel() in Adibou2 2022-12-02 11:44:28 +01:00
Simon Delamarre 46f23e34bf GOB: another fillRect mode in Adibou2 (replace a specific color)
Fixes choice highlighting in "Adibou station" game
2022-12-02 11:44:28 +01:00
Simon Delamarre 48fa677c17 GOB: fix cursor issues in Adibou2
- resizeCursors should be able to shrink cursor sizes (sometimes Adibou2 uses 50*50 cursors, and then goes back to 32*32)
- cursor palettes (_draw->_cursorPalettes) should not be used when initializing cursoes with o1_initCursor
2022-12-02 11:44:28 +01:00
Simon Delamarre e3e6c76923 GOB: handle saves for Adibou2 construction minigame
A few int16->utin16 were needed again.
2022-12-02 11:44:28 +01:00
Simon Delamarre 601dd605d8 GOB: handle remaining Adibou2 characters animations
EFR : scared
PAR : talk
PAU : pause
RIR : laugh
2022-12-02 11:44:28 +01:00
Simon Delamarre 97a66c329e GOB: yet more int16->uint16 changes, to accommodate for Playtoons/Adibou2 larger variable space
This makes the Playtoons-like minigame in Adibou2 playable (with glitches).
2022-12-02 11:44:28 +01:00
Simon Delamarre 962e9f9386 GOB: save breakout game progress in Adibou2 2022-12-02 11:44:28 +01:00
Simon Delamarre a31b588ad0 GOB: fix "paint" game in Adibou2
All tools now work correctly, except "text tool" which is still buggy.
Most missing graphical primitives had already stubs in "Inter_Playtoons", implement them there instead of "Inter_v7".
2022-12-02 11:44:28 +01:00
Simon Delamarre fa13e43c18 GOB: remove "multiple click protection" from o1_keyFunc in Adibou2
(As already done for Fascination)
Adibou scripts sometimes call functions with a storeMouse() in  a row before checking the result, expecting a mouse down from the first processing to be still stored in variables.

E.g.
sub_5257 {
	o1_animatePalette();
	o1_keyFunc(1);
	o1_keyFunc(2);
	if (var32_16==1) {
2022-12-02 11:44:27 +01:00
Simon Delamarre 93f29de14f GOB: close only live sound when getting special video "RIEN" in Adibou2
Instead of closing all *videos*, which messes with open slots and lead to glitches.
2022-12-02 11:44:27 +01:00
Simon Delamarre e67c5be5a5 GOB: fix disappearing sprites issues in Adibou2 2022-12-02 11:44:27 +01:00
Simon Delamarre 44c724db55 GOB: more video object glitches fixes in Adibou2 2022-12-02 11:44:27 +01:00
Simon Delamarre 1e020bcd04 GOB: fix phantom sprites glitches in Adibou2 vegetables garden 2022-12-02 11:44:27 +01:00
Simon Delamarre da923e24c1 GOB: Mult_object field_38 is videofile metadata, equivalent to 'slot' field 2022-12-02 11:44:27 +01:00
Simon Delamarre 81d4a437e9 GOB: implement deleteFile() for Adibou2 save handlers 2022-12-02 11:44:27 +01:00
Simon Delamarre b7349f8195 GOB: more save handlers for Adibou2
"TEMP01.CSA" is actually "weather" file for player1.
The first time, it needs to be copied from "TEMP.CSA" (copy file is now implemented, remove previous workaround)
2022-12-02 11:44:27 +01:00
Simon Delamarre 6e820968c2 GOB: remove _mapUnknownBool warning
This "unknown bool" is true and used in Adibou2 (although its exact meaning is not clear yet)
2022-12-02 11:44:27 +01:00
Simon Delamarre 40f834fd7c GOB: implement copyFile and moveFile 2022-12-02 11:44:26 +01:00
Simon Delamarre 964133c415 GOB: misc file path related adjustments in Adibou2 2022-12-02 11:44:26 +01:00
Simon Delamarre da2d5c731f GOB: temp workaround to enable cake decoration in Adibou2
Rely on DRAW_PUTPIXEL with pattern OxFF ; only mock the variable update at the end for now.
+ use Draw_Playtoons for Adibou2
2022-12-02 11:44:26 +01:00