Recent Posts

Pages: [1] 2 3 ... 10
1
Pretty neat, what's the compression ratio like? Imagine if Police Quest 2 was on just one disk etc... that would have been a game changer (literally!) back in the day.

Are there any SCI0 games that push the limit of the hunk memory?

So here is a comparison with my game. Its at 7.66mb right now but I still have to add all the music resources. So I think I'll be hitting 9.5mb when finished. Way too big. LOL

Code: [Select]
┌──────────────────────────────────────────────────────────────┬────────────────────┬─────────────────────────┐
│                           Version                            │  Size (measured)   │         vs raw          │
├──────────────────────────────────────────────────────────────┼────────────────────┼─────────────────────────┤
│ Raw/uncompressed (game-o/RESOURCE.001)                       │ 7.66 MB (7.30 MiB) │ ?                       │
├──────────────────────────────────────────────────────────────┼────────────────────┼─────────────────────────┤
│ Original SCI0 LZW/Huffman (MAKEVOLS, doc figure)             │ ~5.20 MB           │ ~1.40:1 (28.6% smaller) │
├──────────────────────────────────────────────────────────────┼────────────────────┼─────────────────────────┤
│ New DCL Implode patch (compress/RESOURCE.001, current build) │ 3.91 MB (3.73 MiB) │ ~1.96:1 (48.9% smaller) │
└──────────────────────────────────────────────────────────────┴────────────────────┴─────────────────────────┘

I did achieve better compression using RAR on the raw/uncompressed resource file, but in my case I not only wanted to save space on floppy disks I also want to save space on the hard disk as some of the older systems have very small hard disks. So I think the payoff of loosing 5kb memory, less hard disk space and number of floppy disks is the "happy medium".

2
AGI Development Tools / Re: WinAGI v3.0.0 BETA is now officially AVAILABLE!
« Last post by AGKorson on July 19, 2026, 11:50:44 PM »
There were two things I spotted with the beta - first, when working on a picture, I found it very useful in the previous version to scroll through the command list and see the picture update as I scroll. In the new version the picture is only updated when I stop scrolling.
I think I see what you mean- when holding down an arrow key, in 2.3.7, the picture updates as each draw command is selected; in v3, it only updates when key is released. Is this what you mean?

I can look into that- I should be able to restore that behavior.

The second thing (and it's really minor) is that the increased font size and extra whitespace in the command list means you can't see as many entries

Not huge problems by any stretch, but I found the earlier version to be a little better in those respects at least.
I see what you mean. In v2.3.7 the font for forms and controls is MS Sans Serif and can't be changed. In v3, I have added the ability to change the font for forms and controls (which is the same font used for previewing logics, which can be changed on the Logics tab on the Settings dialog. The default is Consolas. I also restrict the available fonts to only mono-spaced fonts otherwise the preview text box won't work correctly. In addition to the Picture Editor draw commands list, other controls that use this font include the resource list, word editor, object editor, view editor list and several others.

The controls used in v3 also add some extra padding to the listbox items; not sure I can control that - it's a VS/C#/WinForms thing.

You could try choosing a different font/font size on the Settings dialog. Consolas at 10 pt or even 9 pt are a closer match to v2.3.7.

I could also see about using different fonts for the logic previews and forms/controls; then you could choose non-monospaced fonts for the forms and controls at a smaller size but still leave the preview logics as monospaced and at a different size as needed/desired. Let me know if you feel strongly about it and if so I'll see what I can do.
3
There were two things I spotted with the beta - first, when working on a picture, I found it very useful in the previous version to scroll through the command list and see the picture update as I scroll. In the new version the picture is only updated when I stop scrolling.

The second thing (and it's really minor) is that the increased font size and extra whitespace in the command list means you can't see as many entries

Not huge problems by any stretch, but I found the earlier version to be a little better in those respects at least.
4
AGI Development Tools / Re: WinAGI v3.0.0 BETA is now officially AVAILABLE!
« Last post by AGKorson on July 16, 2026, 11:14:28 PM »
Beta.25 is now available:

https://github.com/AGKorson/WinAGI-GDS/releases/tag/v3.0.0-beta.25

This build includes support for the newly discovered (at least new for me) version 2.230. It can load views with the alternate mirroring format. I made the decision to not support editing that format though. It would add another layer of complexity that I don't feel is worth the trouble; if a view with the alternate mirroring format is edited, the loops are instead converted to regular loops (the mirroring is removed). This does mean views will be slightly larger after editing, but since this version appears to be extremely rare and , I don't see a need to provide support for this view format.

I have not gotten any feedback at all since releasing the first beta version. A bit disappointing to be sure, but I guess I should have expected it. I am going to let this version percolate for a week or two, then call it good and drop the beta designation.
5
AGI Development Tools / Re: AGI reverse engineering with AI
« Last post by AGKorson on July 16, 2026, 10:44:15 PM »
That's some amazing work. I've spent years disassembling the AGI files the old fashioned way. A labor of love you might say. With AI, what took years now can be done in days.  Makes me feel a bit obsolete...
6
SCI Syntax Help / Re: Stopping IconBar eating mouse events.
« Last post by lskovlun on July 16, 2026, 04:13:21 PM »
There is a newer decompiler by Sluicebox, which does better. The LSL6 decompilation is here: https://github.com/sluicebox/sci-scripts/tree/main/lsl6-dos-1.000/src
7
SCI Syntax Help / Re: Stopping IconBar eating mouse events.
« Last post by Kawa on July 16, 2026, 04:12:10 PM »
The trick I recall seeing from studying Gabriel Knight and LSL6 is that the icon bar you see is not the real icon bar. If I remember correctly off the top of my head there was a separate "draw everything" function or method, and putting the mouse cursor in the hot zone activated the "real" icon bar. Hope this helps~
8
SCI Syntax Help / Re: Stopping IconBar eating mouse events.
« Last post by Scavenger on July 16, 2026, 04:00:28 PM »
I did look at LSL6, but opening LSL6 in SCI Companion gives me basically machine code that I can't read, so unless someone has done all that work deciphering it and commenting it, I don't think I could use it.
9
SCI Syntax Help / Re: Stopping IconBar eating mouse events.
« Last post by lskovlun on July 16, 2026, 03:55:12 PM »
Have you looked at LSL6? Does it do what you want?
10
SCI Syntax Help / Stopping IconBar eating mouse events.
« Last post by Scavenger on July 16, 2026, 03:42:39 PM »
Hey, I'm trying to customise the IconBar in the template game so it's always on screen and at the bottom, as a first step towards turning it into a verb box. So far I have it positioned right and removed all the hide/show commands so it doesn't crash the engine after a few clicks, however it eats all the user input no matter where on screen the mouse is.  Is there a way to solve this? I'll paste my edited code below. The scripts are a little hard to read as there's lots of magic numbers and temp variable names, but I'm sure I can work it out. Thanks in advance!

Quote
   (method (handleEvent pEvent &tmp temp0 pEventType temp2 temp3 theGCursorNumber theCurIcon theCurInvIcon)
      (pEvent localize:)
      (= pEventType (pEvent type?))
      (cond
         ((& state $0004))
         (
            (or
               (and
                  (not pEventType)
                  (& state $0400)
                  ;(<= -10 (pEvent y?))
                  (<= 168 (pEvent y?) )
                  (<= 0 (pEvent x?))
                  (<= (pEvent x?) 320)
                  (not (= temp0 0))
               )
               (and
                  (== pEventType evKEYBOARD)
                  (or
                     (== (pEvent message?) KEY_ESCAPE)
                     (== (pEvent message?) KEY_DELETE)
                  )
                  (= temp0 1)
               )
            )
            (pEvent globalize:)
            (= oldMouseX (pEvent x?))
            (= oldMouseY (pEvent y?))
            (= theGCursorNumber gCursorNumber)
            (= theCurIcon curIcon)
            (= theCurInvIcon curInvIcon)
            ;(self show:)
            ;(gGame setCursor: 999)
            (if temp0
               (gGame
                  setCursor:
                     gCursorNumber
                     1
                     (+
                        (curIcon nsLeft?)
                        (/ (- (curIcon nsRight?) (curIcon nsLeft?)) 2)
                     )
                     (- (curIcon nsBottom?) 3)
               )
            )
            (self doit:)
            (= temp3
               (if (or (gUser canControl:) (gUser canInput:))
                  (curIcon cursor?)
               else
                  gWaitCursor
               )
            )
            (if temp0
               (gGame setCursor: temp3 1 oldMouseX oldMouseY)
            else
               (gGame
                  setCursor: temp3 1 ((pEvent new:) x?) (Max (pEvent y?) (+ 1 height))
               )
            )
            ;(self hide:)
         )
         ((& pEventType evKEYBOARD)
            (switch (pEvent message?)
               (KEY_RETURN
                  (cond
                     ((not (IsObject curIcon)))
                     ((or (!= curIcon useIconItem) curInvIcon)
                        (pEvent
                           type: (curIcon type?)
                           message:
                              (if (== curIcon useIconItem)
                                 (curInvIcon message?)
                              else
                                 (curIcon message?)
                              )
                        )
                     )
                     (else (pEvent type: 0))
                  )
               )
               (KEY_NUMPAD0
                  (if (gUser canControl:) (self swapCurIcon:))
                  (pEvent claimed: TRUE)
               )
               (JOY_NULL
                  (if (& (pEvent type?) evJOYSTICK)
                     (self advanceCurIcon:)
                     (pEvent claimed: TRUE)
                  )
               )
            )
         )
         ((& pEventType evMOUSEBUTTON)
            (cond
               ((& (pEvent modifiers?) emSHIFT) (self advanceCurIcon:) (pEvent claimed: TRUE))
               ((& (pEvent modifiers?) emCTRL)
                  (if (gUser canControl:) (self swapCurIcon:))
                  (pEvent claimed: TRUE)
               )
               ((IsObject curIcon)
                  (pEvent
                     type: (curIcon type?)
                     message:
                        (if (== curIcon useIconItem)
                           (curInvIcon message?)
                        else
                           (curIcon message?)
                        )
                  )
               )
            )
         )
      )
   )
Pages: [1] 2 3 ... 10

SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.044 seconds with 16 queries.