Quote:
Originally Posted by jotd
What about the messages that are displayed on the bottom green bar ? It also is an effect, I don't see it in your list.
|
You're right, i forgot to mention it.
When a puzzle is accepted (all 3 conditions true), the effect is executed AND a message displayed (facultative).
If you want a message to appear when you reach a specific location (without picking up a Hint), just use a puzzle event with a message and without condition, nor effect.
Quote:
Also: there are moving blocks that stop once they have reached their destination, and others which move constantly back and forth.
|
I still have to decode the moving block parts. I only have the initial state of the moving blocks right now. I will do this after the rendering part and before the CRIPAL part.
Just for info, the files "alfils.0XY" are in fact a concatenation of several files (found in some demos):
- flying waves (missing name)
- godYX.evt
- ground waves (missing name)
- intel.0YX (the cripal file for intelligent AI)
- switches.0YX
- teleport.0YX
- trapdoor.0YX
- mblocks.0YX
Concerning the SMC (self modified code), it
seems it's only used to optimize the main game loop (for example, when the player reaches a guardian, most function calls in the main loop ends up to a RTS : no need to check for moving platforms, most collisions, etc...).
Even if this frees up many cpu cycles to avoid unnecessary checks, i don't understand why conditional JSR/BSR are not used like everyone do. I'm not sure the gain is great (without talking about the problem/incompatibility of cache flushing on higher cpu and disabling the JIT in emulator).
On top of that, the JSR/BSR is still executed, using unneeded cycles with the stack.
Example:
Code:
RAM:00019248 MovingBlocks_Update:
RAM:00019248 nop
RAM:0001924A tst.w (nbMovingBlocksB).w
RAM:0001924E bne.s loc_1925A
RAM:00019250 move.w #$4E75,(MovingBlocks_Update).l
RAM:00019258 rts
RAM:0001925A loc_1925A
[...]
You can see that 4E75 (RTS) is put at the NOP when nbMovingBlocksB=0.
There are around 50 cases like this (more or less equivalent).