Benvenuto Visitatore(Log In|Registrati)

189 Pagine V  « < 21 22 23 24 25 > »   
Reply to this topicStart new topic
> [PC-DOS] HEROQUEST by Gremlin (1991) REMASTERED, - Modding, Bugfixing e Traduzione ITA/ESP devlog
raul
messaggio4 Mar 2024, 23:17
Messaggio #551



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




Rallegrati, puoi farcela.
In realtà, al momento, i problemi più importanti sono l'intelligenza artificiale dei mostri e le famose trappole. In quest'ordine, ma andiamo, oggi il gioco è molto migliore di prima ed è tutto merito vostro. Sono felice XD
 
raul
messaggio4 Mar 2024, 23:51
Messaggio #552



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




CITAZIONE (TheRuler @ 4 Mar 2024, 19:49) *
A differenza del gioco da tavolo, dove quando cerchi in un corridoio lo ispezioni tutto, in questa versione per PC ricerchi solo nella sezione visibile. Questa è una differenza che intendo lasciare, anche perché dove definisci la fine della ricerca? i 4 corridoi esterni sono composti da 5 sezioni, dovrei inserire un codice che verifica anche quelle, ma quelle esterne sono a L, proseguono in basso all'interno dei corridoi orizzontali. Non ho spazio per mettere il primo controllo, figuriamoci per modificare il codice in modo da dividere in due sezioni separate i corridoi ad angolo. E' escluso.


Rileggendo i vostri messaggi, mi è venuta in mente un'informazione curiosa che potrebbe essere utile per la vostra ricerca...
Come tutti sappiamo, l'eroe può interagire solo nelle sezioni visibili (io le chiamo aree dello schermo), ma nella mappa di gioco potevo vedere l'intero corridoio. Ecco un esempio:

In questa schermata l'eroe è proprio di fronte alla porta, ma quando uso la chiave della porta, una piccola parte del corridoio è visibile, e quando oltrepasso la porta, vedo l'intero corridoio fino alla fine e se ci fossero dei nemici potrei anche vederli, quello che non può vedere, come è logico, è il doppio corridoio che si trova più a nord di quel corridoio. In breve, questo nella mappatura se si vede bene e si può supportare la ricerca con questi dati.

Davanti alla porta non aperta


Porta aperta (icona della chiave)


Supero la porta ed entro nel corridoio.


Messaggio modificato da raul il 4 Mar 2024, 23:51
 
TheRuler
messaggio5 Mar 2024, 00:47
Messaggio #553



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Lo avevo notato, è effettivamente un comportamento avanzato molto bello, ma non realmente sfruttato. E' estetico, non ha un vero fine pratico se non quello di poter già attaccare un nemico in diagonale vicino. Tra l'altro poco corretto visto che i mostri non ti attaccano quando si è in stanze diverse!
Al momento è un'informazione poco utile, ma potrebbe diventarlo quando guarderò il pathfinding (già sudo).


--------------------
 
TheRuler
messaggio5 Mar 2024, 01:25
Messaggio #554



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




SIGNORI. Dopo quasi una settimana di studio del codice, offset, registri, opcode e ho finalmente trovato il check che non permette di cliccare direttamente la trappola pozzo.

CODICE
01EF:6857  80BF6F5800          cmp  byte [bx+586F],00      ds:[59C4]=0032
01EF:685C  7503                jne  00006861 ($+3)         (down)
01EF:685E  EB11                jmp  short 00006871 ($+11)  (down)
01EF:6860  90                  nop
01EF:6861  80BF6F5832          cmp  byte [bx+586F],32      ds:[59C4]=0032        <--- THIS
01EF:6866  7501                jne  00006869 ($+1)         (down)
01EF:6868  C3                  ret
01EF:6869  80BF6F5840          cmp  byte [bx+586F],40      ds:[59C4]=0032
01EF:686E  7201                jc   00006871 ($+1)         (no jmp)
01EF:6870  C3                  ret


Sono esausto, ma appagato. Ho cambiato UN SINGOLO FOTTUTO BYTE.

File Allegato  ezgif_2_3fa30d36ee.gif ( 2.49mb ) Numero di download: 9

Clicca per vedere la gif animata.


CITAZIONE
SOLUZIONE:
all'offset di QUEST.EXE (decompresso) 0x6C85 sostituire 32 con 00


--------------------
 
raul
messaggio5 Mar 2024, 06:40
Messaggio #555



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




Tu sai davvero fare le magie, il mago e l'elfo sono dilettanti.


Incredibile, questo gioco sta iniziando ad essere un altro, non so nemmeno come qualificare questo progetto, e pensare che è iniziato con il problema del file .bin e guarda quanto lontano sei arrivato.
Non capisco come sia possibile che cambiando un singolo byte si possa risolvere il problema, vuol dire che i programmatori hanno lasciato che la trappola fosse così?

Ho attivato tutte le trappole nei corridoi e non sono riuscito a scoprire dove fossero, FANTASTICO, CI SEI RIUSCITO, CONGRATULAZIONI!!!!


Messaggio modificato da raul il 5 Mar 2024, 06:59
 
Nyerguds
messaggio5 Mar 2024, 07:28
Messaggio #556



Gruppo icone

Gruppo: OldGamer
Messaggi: 332
Iscritto il: 27 June 14
Utente Nr.: 20.463
BGE Command & Conquer: Tiberian Dawn
SO Windows7




QUOTE (TheRuler @ 5 Mar 2024, 01:25) *
Sono esausto, ma appagato. Ho cambiato UN SINGOLO FOTTUTO BYTE.

Ha, yea, it's often like that. There's one pretty awful bug in C&C where every time you start setting up your base, the game takes away power usage that can never be recovered (it adds the power usage of the Construction Yard twice when it deploys from vehicle-form to building-form; a bug in the code to activate a building if it was 'built' in this non-standard way), and I noticed that even in the Remaster they didn't fix that correctly, instead they fixed it in a way that worked for the player but gave the AI free extra power. And, after a whole day of research in the code, it also turned out they changed way too much on the wrong parts, and the real fix was one single byte 121.gif

Anyway, another bug squashed! Nice work! icon_salut.gif

QUOTE (raul @ 5 Mar 2024, 06:40) *
Incredibile, questo gioco sta iniziando ad essere un altro, non so nemmeno come qualificare questo progetto, e pensare che è iniziato con il problema del file .bin e guarda quanto lontano sei arrivato.

Yea, he's really just making an entire game upgrade patch, isn't he? biggrin.gif

Messaggio modificato da Nyerguds il 5 Mar 2024, 07:57


--------------------
Expert on all things Command & Conquer 1. Creator of a bunch of small modding tools.
 
TheRuler
messaggio5 Mar 2024, 09:51
Messaggio #557



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




CITAZIONE (Nyerguds @ 5 Mar 2024, 07:28) *
Ha, yea, it's often like that. There's one pretty awful bug in C&C where every time you start setting up your base, the game takes away power usage that can never be recovered (it adds the power usage of the Construction Yard twice when it deploys from vehicle-form to building-form; a bug in the code to activate a building if it was 'built' in this non-standard way), and I noticed that even in the Remaster they didn't fix that correctly, instead they fixed it in a way that worked for the player but gave the AI free extra power. And, after a whole day of research in the code, it also turned out they changed way too much on the wrong parts, and the real fix was one single byte 121.gif

Ahahaha great, I know I am not alone ;-)

As soon as I address all the bugs, I will release a patch for the english version too. My challenge now is to make the patch the smallest possible! ahaha ;-) kiddin'
I will play with the code to make it more efficient and less prone to unexpected behaviours. I leave it to you Raul to test it thoroughly!!!


CITAZIONE
, vuol dire che i programmatori hanno lasciato che la trappola fosse così?

Sure, the devs put the specific code you see above in the codebox intentionally. They wanted to make the game easier, I suppose.


--------------------
 
raul
messaggio5 Mar 2024, 15:53
Messaggio #558



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




CITAZIONE (Nyerguds @ 5 Mar 2024, 07:28) *
Yea, he's really just making an entire game upgrade patch, isn't he? biggrin.gif

Yes, but I need to know how to name my "translation" patch. Update and translation?

CITAZIONE (TheRuler @ 5 Mar 2024, 09:51) *
I leave it to you Raul to test it thoroughly!!!




Messaggio modificato da raul il 5 Mar 2024, 15:55
 
TheRuler
messaggio5 Mar 2024, 22:58
Messaggio #559



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




AHAHAHAA!
CITAZIONE (raul @ 5 Mar 2024, 15:53) *
CITAZIONE (Nyerguds @ 5 Mar 2024, 07:28) *
Yea, he's really just making an entire game upgrade patch, isn't he? biggrin.gif

Yes, but I need to know how to name my "translation" patch. Update and translation?

Fixed Spanish Heroquest

Don't know really,


BTW, today I've started messing with the task 6 of the list:
6- lanciare un incantesimo in modo sbagliato (ad esempio contro un mostro non visibile) non deve sprecarlo

Here the devs really used a convoluted code. There are TWO places where the "deletion" of the thrown spell takes place. Same call, different position.
CODICE
01EF:2D7E  E80300              call 00002D84 ($+3)

01EF:0E9A  E8E71E              call 00002D84 ($+1ee7)


The TARGET cases are 3: Hero, Monster, all other position, and they can mix and match with the type of spell. Then they're routed to the first place or the second one.

I managed to bypass the check that wastes the spell if you click on a position on the map that is not a monster or a hero.
I managed to bypass the check that wastes the spell if you click on a monster for every spell BUT FOUR (ball of flame, send to sleep, heal body, tempest)

Why if I fix the first of the two 2D84 calls it works and the second call does not?
The problem is that in 2D7E the deletion is positioned AFTER the Text scroll (THAT SPELL HAS NO EFFECT...) is displayed, so if I bypass it I am sure is bypassed only for that case.
In 0E9A the deletion is positioned WAY BEFORE all the Text scrolls for the spells that has a hero or a monster as a target.
They probably wanted from the beginning that a misclicked spot would waste a spell.

Fix the second part would require a massive rework of the code. At least clicking on an unoccupied tile doesn't waste any spell anymore. The wasting remain for those 4 spells only.

So, the partial solution is:
CITAZIONE
all'offset 0x319E sostituire E80300 con 909090

e cambiare il testo su italian.BIN da:
PURTROPPO LA MAGIA NON HA...EFFETTO, L'INCANTESIMO e...ANDATO SPRECATO
a:
NON PUOI SCEGLIERE...TALE BERSAGLIO PER...QUESTO INCANTESIMO.


--------------------
 
raul
messaggio5 Mar 2024, 23:23
Messaggio #560



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




Bravo, hai padroneggiato questo gioco sempre di più.


Pensavo che stessi indagando sull'IA dei mostri...

Non preoccuparti, in realtà il problema più grande è stato cliccare involontariamente su una posizione diversa da quella di un mostro o di un eroe, mi è capitato ed è stata una rottura di scatole. Gli incantesimi che si sprecano sui mostri, si tratta solo di imparare a usarli correttamente. Non preoccuparti di questo, hai già risolto quello importante.

Domani lo proverò a fondo, ora vado a fare qualche controllo generale per poter dormire tranquillo.

Messaggio modificato da raul il 5 Mar 2024, 23:36
 
TheRuler
messaggio6 Mar 2024, 12:30
Messaggio #561



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




CITAZIONE (raul @ 5 Mar 2024, 23:23) *
Pensavo che stessi indagando sull'IA dei mostri...

questo sarà davvero una brutta bestia.
Ti avevo detto che avevo già cominciato a studiarlo, ma avevo utilizzato un approccio molto euristico, basato su tentativi e cambi di valori pseudo-casuali. Il fatto è che così non si va avanti, ci vorrebbe troppa fortuna. Devo studiare e mappare tutto il pathfinding originale.
Per farti capire la complessità, e ho solo scalfito la superficie...
CODICE
studio diverso path per mostri che non si muovono se dietro altri mostri:

01EF:2235 è LA CALL CHE MOSTRA LA MAPPA

01EF:2268  E85800              call 000022C3 ($+58)                                - è la call che seleziona il mostro.
01EF:226B  59                  pop  cx
01EF:226C  8B36D63F            mov  si,[3FD6]              ds:[3FD6]=4663
01EF:2270  83C61A              add  si,001A
01EF:2273  803EA83F00          cmp  byte [3FA8],00         ds:[3FA8]=0100        - check se eroe e mostro sono a distanza 1?
01EF:2278  7503                jne  0000227D ($+3)         (no jmp)                - se è IL SECONDO MOSTRO SALTA DI 3
01EF:227A  E95102              jmp  000024CE ($+251)       (down)                - una volta a contatto salta a 24CE
01EF:227D  803EA83F03          cmp  byte [3FA8],03         ds:[3FA8]=0102        - questo check lo fa solo dal secondo mostro
01EF:2282  7503                jne  00002287 ($+3)         (down)
01EF:2284  E94702              jmp  000024CE ($+247)       (down)
01EF:2287  E2D4                loop 0000225D ($-2c)
01EF:2289  C3                  ret


01EF:24CE  893ED43F            mov  [3FD4],di              ds:[3FD4]=4DB8
01EF:24D2  8A0EA93F            mov  cl,[3FA9]              ds:[3FA9]=0001
01EF:24D6  0AC9                or   cl,cl
01EF:24D8  7455                je   0000252F ($+55)        (down)
01EF:24DA  32ED                xor  ch,ch
01EF:24DC  BBA240              mov  bx,40A2
01EF:24DF  891ECA40            mov  [40CA],bx              ds:[40CA]=40A4
01EF:24E3  51                  push cx
01EF:24E4  8B3ED43F            mov  di,[3FD4]              ds:[3FD4]=4DB8
01EF:24E8  8B5501              mov  dx,[di+01]             ds:[4DB9]=0F06
01EF:24EB  E8903B              call 0000607E ($+3b90)
01EF:24EE  8A8F6F58            mov  cl,[bx+586F]           ds:[59FB]=0000
01EF:24F2  C6876F5800          mov  byte [bx+586F],00      ds:[59FB]=0000
01EF:24F7  8B1ECA40            mov  bx,[40CA]              ds:[40CA]=40A2
01EF:24FB  8B5501              mov  dx,[di+01]             ds:[4DB9]=0F06
01EF:24FE  0217                add  dl,[bx]                ds:[018C]=1149
01EF:2500  027701              add  dh,[bx+01]             ds:[018D]=0611
01EF:2503  895501              mov  [di+01],dx             ds:[4DB9]=0F06
01EF:2506  8306CA4002          add  word [40CA],0002       ds:[40CA]=40A2
01EF:250B  E8703B              call 0000607E ($+3b70)
01EF:250E  888F6F58            mov  [bx+586F],cl           ds:[AE50]=0A16
01EF:2512  81C36F54            add  bx,546F
01EF:2516  895D04              mov  [di+04],bx             ds:[4DBC]=55E1
01EF:2519  E834F5              call 00001A50 ($-acc)
01EF:251C  8B3ED43F            mov  di,[3FD4]              ds:[3FD4]=4DB8
01EF:2520  E81C00              call 0000253F ($+1c)
01EF:2523  E8BE3B              call 000060E4 ($+3bbe)
01EF:2526  B9F401              mov  cx,01F4
01EF:2529  E85B21              call 00004687 ($+215b)                            - questa call sposta il mostro!
01EF:252C  59                  pop  cx
01EF:252D  E2B4                loop 000024E3 ($-4c)
01EF:252F  51                  push cx
01EF:2530  B93200              mov  cx,0032
01EF:2533  E86A11              call 000036A0 ($+116a)
01EF:2536  E2FB                loop 00002533 ($-5)
01EF:2538  59                  pop  cx
01EF:2539  E853F8              call 00001D8F ($-7ad)                            - IL MOSTRO ATTACCA
01EF:253C  E99131              jmp  000056D0 ($+3191)      (down)
01EF:253F  8A4502              mov  al,[di+02]             ds:[EF42]=3736
01EF:2542  32E4                xor  ah,ah
01EF:2544  BA000A              mov  dx,0A00
01EF:2547  F7E2                mul  dx
01EF:2549  8BD8                mov  bx,ax



routine chiamata da 2268: è l'inizio del pathfinding (?)

01EF:22C3  C606A83F00          mov  byte [3FA8],00         ds:[3FA8]=0000
01EF:22C8  803C00              cmp  byte [si],00           ds:[4663]=06FF
01EF:22CB  7503                jne  000022D0 ($+3)         (no jmp)
01EF:22CD  E98101              jmp  00002451 ($+181)       (down)
01EF:22D0  8A4403              mov  al,[si+03]             ds:[4666]=C726
01EF:22D3  3A4503              cmp  al,[di+03]             ds:[4DBB]=FB26
01EF:22D6  7403                je   000022DB ($+3)         (down)
01EF:22D8  E97601              jmp  00002451 ($+176)       (down)
01EF:22DB  F6441801            test byte [si+18],01        ds:[467B]=0000
01EF:22DF  7403                je   000022E4 ($+3)         (down)
01EF:22E1  E96D01              jmp  00002451 ($+16d)       (down)
01EF:22E4  8B5401              mov  dx,[si+01]             ds:[4664]=0D06
01EF:22E7  52                  push dx
01EF:22E8  57                  push di
01EF:22E9  E864F7              call 00001A50 ($-89c)
01EF:22EC  5F                  pop  di
01EF:22ED  57                  push di
01EF:22EE  E84E02              call 0000253F ($+24e)
01EF:22F1  E8F03D              call 000060E4 ($+3df0)
01EF:22F4  B9F401              mov  cx,01F4
01EF:22F7  E88D23              call 00004687 ($+238d)
01EF:22FA  5F                  pop  di
01EF:22FB  5A                  pop  dx
01EF:22FC  8816A53F            mov  [3FA5],dl              ds:[3FA5]=1106
01EF:2300  8836A63F            mov  [3FA6],dh              ds:[3FA6]=0411
01EF:2304  BBA240              mov  bx,40A2
01EF:2307  891ECA40            mov  [40CA],bx              ds:[40CA]=40A2
01EF:230B  E8703D              call 0000607E ($+3d70)                            se disattivo questa call seleziona il mostro ma non lo muove né attacca se a contatto di base.

01EF:230E  81C36F54            add  bx,546F
01EF:2312  8A07                mov  al,[bx]                ds:[3F28]=4040        questi tre comandi si trovano in tre punti del codice, dovrebbero disegnare quello che l'eroe vede.
01EF:2314  243F                and  al,3F                                        quindi bx e al non comandano il movimento
01EF:2316  3A4503              cmp  al,[di+03]             ds:[4DBB]=FB26
01EF:2319  7403                je   0000231E ($+3)         (down)
01EF:231B  E93301              jmp  00002451 ($+133)       (down)
01EF:231E  B501                mov  ch,01
01EF:2320  A0A53F              mov  al,[3FA5]              ds:[3FA5]=1106
01EF:2323  2A4501              sub  al,[di+01]             ds:[4DB9]=0F06
01EF:2326  7504                jne  0000232C ($+4)         (no jmp)
01EF:2328  B500                mov  ch,00
01EF:232A  EB08                jmp  short 00002334 ($+8)   (down)
01EF:232C  3C80                cmp  al,80
01EF:232E  7204                jc   00002334 ($+4)         (no jmp)
01EF:2330  F6D8                neg  al
01EF:2332  B5FF                mov  ch,FF
01EF:2334  A2A13F              mov  [3FA1],al              ds:[3FA1]=0100
01EF:2337  882EA33F            mov  [3FA3],ch              ds:[3FA3]=0100
01EF:233B  B501                mov  ch,01
01EF:233D  A0A63F              mov  al,[3FA6]              ds:[3FA6]=0411
01EF:2340  2A4502              sub  al,[di+02]             ds:[4DBA]=260F
01EF:2343  7504                jne  00002349 ($+4)         (no jmp)
01EF:2345  B500                mov  ch,00
01EF:2347  EB08                jmp  short 00002351 ($+8)   (down)
01EF:2349  3C80                cmp  al,80
01EF:234B  7204                jc   00002351 ($+4)         (no jmp)
01EF:234D  F6D8                neg  al
01EF:234F  B5FF                mov  ch,FF
01EF:2351  A2A23F              mov  [3FA2],al              ds:[3FA2]=0001
01EF:2354  882EA43F            mov  [3FA4],ch              ds:[3FA4]=0601  messo a 90 i mostri non si muovono in verticale come prima mossa
01EF:2358  8B5501              mov  dx,[di+01]             ds:[4DB9]=0F06
01EF:235B  89169F3F            mov  [3F9F],dx              ds:[3F9F]=1006
01EF:235F  C606A93F00          mov  byte [3FA9],00         ds:[3FA9]=0000
01EF:2364  8A5D09              mov  bl,[di+09]             ds:[4DC1]=8100
01EF:2367  02DB                add  bl,bl
01EF:2369  02DB                add  bl,bl
01EF:236B  025D09              add  bl,[di+09]             ds:[4DC1]=8100
01EF:236E  32FF                xor  bh,bh
01EF:2370  8A870648            mov  al,[bx+4806]           [illegal]
01EF:2374  A29C3F              mov  [3F9C],al              ds:[3F9C]=0003
01EF:2377  8A0EA23F            mov  cl,[3FA2]              ds:[3FA2]=0001
01EF:237B  A0A13F              mov  al,[3FA1]              ds:[3FA1]=0100
01EF:237E  3AC1                cmp  al,cl
01EF:2380  7203                jc   00002385 ($+3)         (no jmp)
01EF:2382  EB6A                jmp  short 000023EE ($+6a)  (down)
01EF:2384  90                  nop
01EF:2385  8B169F3F            mov  dx,[3F9F]              ds:[3F9F]=1006
01EF:2389  3836A63F            cmp  [3FA6],dh              ds:[3FA6]=0411
01EF:238D  7425                je   000023B4 ($+25)        (down)
01EF:238F  A0A43F              mov  al,[3FA4]              ds:[3FA4]=0601
01EF:2392  0AC0                or   al,al
01EF:2394  741E                je   000023B4 ($+1e)        (down)
01EF:2396  02F0                add  dh,al
01EF:2398  E8DD00              call 00002478 ($+dd)
01EF:239B  3CFF                cmp  al,FF
01EF:239D  7503                jne  000023A2 ($+3)         (no jmp)
01EF:239F  E9B500              jmp  00002457 ($+b5)        (down)
01EF:23A2  0AC0                or   al,al
01EF:23A4  750E                jne  000023B4 ($+e)         (no jmp)
01EF:23A6  8A26A43F            mov  ah,[3FA4]              ds:[3FA4]=0601
01EF:23AA  E8B000              call 0000245D ($+b0)
01EF:23AD  7303                jnc  000023B2 ($+3)         (down)
01EF:23AF  E99900              jmp  0000244B ($+99)        (down)
01EF:23B2  EBD1                jmp  short 00002385 ($-2f)  (up)
01EF:23B4  8B169F3F            mov  dx,[3F9F]              ds:[3F9F]=1006
01EF:23B8  A0A53F              mov  al,[3FA5]              ds:[3FA5]=1106
01EF:23BB  3AC2                cmp  al,dl
01EF:23BD  7503                jne  000023C2 ($+3)         (no jmp)
01EF:23BF  E98F00              jmp  00002451 ($+8f)        (down)
01EF:23C2  A0A33F              mov  al,[3FA3]              ds:[3FA3]=0100
01EF:23C5  0AC0                or   al,al
01EF:23C7  7503                jne  000023CC ($+3)         (no jmp)
01EF:23C9  E98500              jmp  00002451 ($+85)        (down)
01EF:23CC  02D0                add  dl,al
01EF:23CE  E8A700              call 00002478 ($+a7)
01EF:23D1  3CFF                cmp  al,FF
01EF:23D3  7503                jne  000023D8 ($+3)         (no jmp)
01EF:23D5  E97F00              jmp  00002457 ($+7f)        (down)
01EF:23D8  0AC0                or   al,al
01EF:23DA  7403                je   000023DF ($+3)         (down)
01EF:23DC  EB73                jmp  short 00002451 ($+73)  (down)
01EF:23DE  90                  nop
01EF:23DF  A0A33F              mov  al,[3FA3]              ds:[3FA3]=0100
01EF:23E2  32E4                xor  ah,ah
01EF:23E4  E87600              call 0000245D ($+76)
01EF:23E7  7303                jnc  000023EC ($+3)         (down)
01EF:23E9  EB60                jmp  short 0000244B ($+60)  (down)
01EF:23EB  90                  nop
01EF:23EC  EB97                jmp  short 00002385 ($-69)  (up)
01EF:23EE  8B169F3F            mov  dx,[3F9F]              ds:[3F9F]=1006
01EF:23F2  A0A53F              mov  al,[3FA5]              ds:[3FA5]=1106
01EF:23F5  3AC2                cmp  al,dl
01EF:23F7  7426                je   0000241F ($+26)        (down)
01EF:23F9  A0A33F              mov  al,[3FA3]              ds:[3FA3]=0100
01EF:23FC  0AC0                or   al,al
01EF:23FE  741F                je   0000241F ($+1f)        (down)
01EF:2400  02D0                add  dl,al
01EF:2402  E87300              call 00002478 ($+73)
01EF:2405  3CFF                cmp  al,FF
01EF:2407  7503                jne  0000240C ($+3)         (no jmp)
01EF:2409  EB4C                jmp  short 00002457 ($+4c)  (down)
01EF:240B  90                  nop
01EF:240C  0AC0                or   al,al
01EF:240E  750F                jne  0000241F ($+f)         (no jmp)
01EF:2410  A0A33F              mov  al,[3FA3]              ds:[3FA3]=0100
01EF:2413  32E4                xor  ah,ah
01EF:2415  E84500              call 0000245D ($+45)
01EF:2418  7303                jnc  0000241D ($+3)         (down)
01EF:241A  EB2F                jmp  short 0000244B ($+2f)  (down)
01EF:241C  90                  nop
01EF:241D  EBCF                jmp  short 000023EE ($-31)  (up)
01EF:241F  8B169F3F            mov  dx,[3F9F]              ds:[3F9F]=1006
01EF:2423  3836A63F            cmp  [3FA6],dh              ds:[3FA6]=0411
01EF:2427  7428                je   00002451 ($+28)        (down)
01EF:2429  A0A43F              mov  al,[3FA4]              ds:[3FA4]=0601
01EF:242C  0AC0                or   al,al
01EF:242E  7421                je   00002451 ($+21)        (down)
01EF:2430  02F0                add  dh,al
01EF:2432  E84300              call 00002478 ($+43)
01EF:2435  3CFF                cmp  al,FF
01EF:2437  741E                je   00002457 ($+1e)        (down)
01EF:2439  0AC0                or   al,al
01EF:243B  7514                jne  00002451 ($+14)        (no jmp)
01EF:243D  8A26A43F            mov  ah,[3FA4]              ds:[3FA4]=0601
01EF:2441  E81900              call 0000245D ($+19)
01EF:2444  7303                jnc  00002449 ($+3)         (down)
01EF:2446  EB03                jmp  short 0000244B ($+3)   (down)
01EF:2448  90                  nop
01EF:2449  EBA3                jmp  short 000023EE ($-5d)  (up)
01EF:244B  C606A83F01          mov  byte [3FA8],01         ds:[3FA8]=0000
01EF:2450  C3                  ret
01EF:2451  C606A83F02          mov  byte [3FA8],02         ds:[3FA8]=0000
01EF:2456  C3                  ret
01EF:2457  C606A83F00          mov  byte [3FA8],00         ds:[3FA8]=0000
01EF:245C  C3                  ret
01EF:245D  89169F3F            mov  [3F9F],dx              ds:[3F9F]=1006
01EF:2461  8B1ECA40            mov  bx,[40CA]              ds:[40CA]=40A2
01EF:2465  8807                mov  [bx],al                ds:[3F28]=6148
01EF:2467  886701              mov  [bx+01],ah             ds:[3F29]=0061
01EF:246A  8306CA4002          add  word [40CA],0002       ds:[40CA]=40A2
01EF:246F  FE06A93F            inc  byte [3FA9]            ds:[3FA9]=0000
01EF:2473  FE0E9C3F            dec  byte [3F9C]            ds:[3F9C]=0003
01EF:2477  C3                  ret
01EF:2478  A0BC3F              mov  al,[3FBC]              ds:[3FBC]=0000
01EF:247B  E80139              call 00005D7F ($+3901)
01EF:247E  803C00              cmp  byte [si],00           ds:[4663]=06FF
01EF:2481  7408                je   0000248B ($+8)         (down)
01EF:2483  3B5401              cmp  dx,[si+01]             ds:[4664]=0D06
01EF:2486  7503                jne  0000248B ($+3)         (no jmp)
01EF:2488  B0FF                mov  al,FF
01EF:248A  C3                  ret
01EF:248B  B500                mov  ch,00
01EF:248D  382EBC3F            cmp  [3FBC],ch              ds:[3FBC]=0000
01EF:2491  7412                je   000024A5 ($+12)        (down)
01EF:2493  8AC5                mov  al,ch
01EF:2495  E8E738              call 00005D7F ($+38e7)
01EF:2498  803C00              cmp  byte [si],00           ds:[4663]=06FF
01EF:249B  7408                je   000024A5 ($+8)         (down)
01EF:249D  3B5401              cmp  dx,[si+01]             ds:[4664]=0D06
01EF:24A0  7503                jne  000024A5 ($+3)         (no jmp)
01EF:24A2  B001                mov  al,01
01EF:24A4  C3                  ret
01EF:24A5  FEC5                inc  ch
01EF:24A7  80FD04              cmp  ch,04
01EF:24AA  75E1                jne  0000248D ($-1f)        (no jmp)
01EF:24AC  52                  push dx
01EF:24AD  E8CE3B              call 0000607E ($+3bce)
01EF:24B0  5A                  pop  dx
01EF:24B1  81C36F58            add  bx,586F
01EF:24B5  803F00              cmp  byte [bx],00           ds:[3F28]=6148
01EF:24B8  7403                je   000024BD ($+3)         (down)
01EF:24BA  B002                mov  al,02
01EF:24BC  C3                  ret
01EF:24BD  8A8700FC            mov  al,[bx-0400]           ds:[3B28]=E04B
01EF:24C1  243F                and  al,3F
01EF:24C3  3A4503              cmp  al,[di+03]             ds:[4DBB]=FB26
01EF:24C6  7503                jne  000024CB ($+3)         (no jmp)
01EF:24C8  32C0                xor  al,al
01EF:24CA  C3                  ret
01EF:24CB  B003                mov  al,03
01EF:24CD  C3                  ret



01EF:607E  8ADE                mov  bl,dh                    è la routine che resetta le variabili e le posizioni
01EF:6080  B700                mov  bh,00                    degli eroi e dei mostri
01EF:6082  03DB                add  bx,bx
01EF:6084  81C3C55A            add  bx,5AC5
01EF:6088  8B07                mov  ax,[bx]                ds:[0130]=0101
01EF:608A  B600                mov  dh,00
01EF:608C  03D0                add  dx,ax
01EF:608E  8BDA                mov  bx,dx
01EF:6090  C3                  ret

Lo farò come ultima cosa.

CITAZIONE
Non preoccuparti, in realtà il problema più grande è stato cliccare involontariamente su una posizione diversa da quella di un mostro o di un eroe, mi è capitato ed è stata una rottura di scatole. Gli incantesimi che si sprecano sui mostri, si tratta solo di imparare a usarli correttamente. Non preoccuparti di questo, hai già risolto quello importante.

Domani lo proverò a fondo, ora vado a fare qualche controllo generale per poter dormire tranquillo.

Fammi sapere. Lo segno come FIX PARZIALE, anche se è risolto al 90%.
Per tutti gli incantesimi che non richiedon linea di vista il problema non c'è, visto che l'incantesimo se lanciato su un mostro o eroe viene correttamente applicato e rimosso.



Nel frattempo ho deciso di compilare la lista dei fix fatti e in corso nel primo post.
Così sarà più facile tenerne traccia e ricordarsi cosa è stato fatto. Di alcuni me ne ero proprio scordato! meno male che mi segno sempre tutto. ;-)


Raul, hai provato il dosbox con savestate? Se hai domande chiedi pure.

--------------------
 
raul
messaggio6 Mar 2024, 19:29
Messaggio #562



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




CITAZIONE (TheRuler @ 6 Mar 2024, 12:30) *
Fammi sapere. Lo segno come FIX PARZIALE, anche se è risolto al 90%.
Per tutti gli incantesimi che non richiedon linea di vista il problema non c'è, visto che l'incantesimo se lanciato su un mostro o eroe viene correttamente applicato e rimosso.[/url]


Stamattina mi sono svegliato presto e ho potuto fare qualche controllo e in effetti solo gli incantesimi usati a lungo raggio vengono sprecati quando in realtà sono a corto raggio. Leggendo il tuo messaggio me l'hai confermato, immagino sia sciocco per me testarlo a fondo.

CITAZIONE
Nel frattempo ho deciso di compilare la lista dei fix fatti e in corso nel primo post.

Lo so e lo seguo da vicino per vedere quali cose aggiungete XD. A proposito, voglio proporvi altri punti da aggiungere alla lista.

CITAZIONE


Sì ed è molto utile, quello che non so è come risolvere l'orribile suono che produce nel gioco. È come se gli effetti sonori non funzionassero.

Messaggio modificato da raul il 6 Mar 2024, 19:30
 
raul
messaggio6 Mar 2024, 23:19
Messaggio #563



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




Sono riuscito a risolvere il problema del suono del programma.
C'è una cosa molto curiosa che ho visto mentre provavo questo nuovo dosbox: l'incantesimo del coraggio.

Uso l'incantesimo con un mostro da vicino.


Uso l'incantesimo su un eroe da lontano.


Negli incantesimi palla di fuoco e a distanza ravvicinata, dovrebbe esserci quel messaggio e non il primo testo e, come avete potuto vedere, c'è anche il testo che indica che un incantesimo non ha effetto contro un nemico.
Ora un'altra cosa...

Ho notato che se si usa questo incantesimo con il proprio eroe contro il muro della stanza successiva dove si trova il bersaglio (un altro eroe), funziona perfettamente. Questo mi è venuto in mente quando hai detto che con la tua modifica all'IA i nemici attaccano anche quando sono in un'altra stanza. Ti ho chiesto se i mostri attaccassero attraverso il muro e, confrontando il comportamento dell'incantesimo, sarebbe logico che i mostri attaccassero in quel modo.

Messaggio modificato da raul il 6 Mar 2024, 23:25
 
TheRuler
messaggio7 Mar 2024, 11:18
Messaggio #564



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




CITAZIONE (raul @ 6 Mar 2024, 23:19) *


corretto, il primo è quello generico quando lanci un incantesimo su un MOSTRO fuori portata o su un qualunque altro punto della mappa.
il secondo esce solo quando lanci un incantesimo contro un EROE fuori portata.
Fa un check particolare, è proprio voluto.
Il codice del lancio incantesimi è davvero complesso. Non è flessibile per niente, evidentemente non avevano previsto l'aggiunta di nuovi incantesimi.

CITAZIONE
Ho notato che se si usa questo incantesimo con il proprio eroe contro il muro della stanza successiva dove si trova il bersaglio (un altro eroe), funziona perfettamente. Questo mi è venuto in mente quando hai detto che con la tua modifica all'IA i nemici attaccano anche quando sono in un'altra stanza. Ti ho chiesto se i mostri attaccassero attraverso il muro e, confrontando il comportamento dell'incantesimo, sarebbe logico che i mostri attaccassero in quel modo.

l'avevo notato anche io, ma ero stato zitto per paura che mi facessi mettere a posto anche quello! e invece te ne sei accorto... biggrin.gif
Ho visto che succede anche se lanci una palla di fuoco contro i mostri da una stanza adiacente senza linea di vista. Questo è grave.
Fai una prova raul

a proposito di F5 sul forum, non hai bisogno di fare il refresh della pagina, ti basta attivare la sottoscrizione della discussione, clicca in alto a destra OPZIONI, Sottoscrivi questa discussione. Così ti arriva la notifica via mail.


--------------------
 
raul
messaggio7 Mar 2024, 18:42
Messaggio #565



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




CITAZIONE (TheRuler @ 7 Mar 2024, 11:18) *
corretto, il primo è quello generico quando lanci un incantesimo su un MOSTRO fuori portata o su un qualunque altro punto della mappa.
il secondo esce solo quando lanci un incantesimo contro un EROE fuori portata.
Fa un check particolare, è proprio voluto.
Il codice del lancio incantesimi è davvero complesso. Non è flessibile per niente, evidentemente non avevano previsto l'aggiunta di nuovi incantesimi.


Intendo dire che in realtà abbiamo tutti i casi possibili e le loro funzioni già integrate nel gioco e che potrebbero essere aggiustate negli incantesimi per migliorare i testi. So che è molto difficile e che bisogna andare in profondità nel codice, ma vedendo la tua progressione, ciò che ora sta andando in profondità per te, con l'evoluzione che stai avendo, prima o poi conoscerai il codice molto meglio e non sembrerà così tanto come ora. Ci sono cose più importanti, su questo sono d'accordo, voglio solo che tu lo tenga a mente per il futuro, che forse non ne vale la pena, ma non si sa mai se un giorno lo vedrai con occhi diversi.

CITAZIONE
l'avevo notato anche io, ma ero stato zitto per paura che mi facessi mettere a posto anche quello! e invece te ne sei accorto... biggrin.gif


Non contavano sulla mia astuzia...


CITAZIONE
a proposito di F5 sul forum, non hai bisogno di fare il refresh della pagina, ti basta attivare la sottoscrizione della discussione, clicca in alto a destra OPZIONI, Sottoscrivi questa discussione. Così ti arriva la notifica via mail.




Messaggio modificato da raul il 7 Mar 2024, 18:44
 
raul
messaggio7 Mar 2024, 19:13
Messaggio #566



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




Bene, dopo il mio tentativo di farvi aggiungere alla lista per correggere gli incantesimi, vado a cercare un altro "bug" che trovo curioso.

Probabilmente lo sapete già, ma quando si entra in una stanza attraverso una porta, una volta entrati, non si può tornare indietro attraverso la stessa porta, almeno in quel turno, e, al massimo, si può uscire dalla stanza in quel turno usando un'altra porta.

Credo che l'abbiano fatto per dare un po' di difficoltà al gioco, il che non mi sembra sbagliato, anche se nel gioco da tavolo questo non è contemplato, anzi, voglio proporre che non si possa uscire da quel turno attraverso un'altra porta, ma ovviamente tutto questo tenendo conto della scarsa IA dei mostri, visto che attaccano solo se ci si trova nella stessa sezione visibile.

Un altro fatto importante è che se ci sono 2 porte in un corridoio, una volta entrati nel corridoio attraverso una di queste porte, non si può più attraversare l'altra porta e si deve rimanere nel corridoio per quel turno, il gioco probabilmente rileverà le due porte come la stessa cosa, cioè come se si fosse entrati da entrambe, essendo interpretate come porte di ingresso.

Non sono un programmatore, ma credo che il gioco interpreti le porte in due modi, ingresso e uscita, quindi nella stessa stanza non si può tornare indietro attraverso la porta da cui si è entrati ma si può passare attraverso un'altra porta che chiamerei di uscita. Spero che il traduttore traduca bene questa spiegazione, altrimenti posso fare degli screenshot e mettere in scena un po' la spiegazione.

Messaggio modificato da raul il 7 Mar 2024, 19:19
 
TheRuler
messaggio7 Mar 2024, 21:47
Messaggio #567



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




CITAZIONE (raul @ 7 Mar 2024, 19:13) *
Un altro fatto importante è che se ci sono 2 porte in un corridoio, una volta entrati nel corridoio attraverso una di queste porte, non si può più attraversare l'altra porta e si deve rimanere nel corridoio per quel turno, il gioco probabilmente rileverà le due porte come la stessa cosa, cioè come se si fosse entrati da entrambe, essendo interpretate come porte di ingresso.

Credo di ricordare il punto a cui ti riferisci. Se non sbaglio le due porte si affacciano sulla stessa casella del corridoio. Secondo me il check rudimentale che hanno applicato è che appena cambi stanza venga applicato un flag su quella casella che non permette al giocatore di attraversare di nuovo la porta. Basta spostare la seconda porta nella casella a fianco per risolvere.

il fatto che non abbiano permesso all'eroe di tornare da dove è venuto è stato per rendere la situazione più difficile e, visto che i mostri non possono inseguirti fuori dalla stanza, la scelta più ponderata.


--------------------
 
raul
messaggio7 Mar 2024, 22:26
Messaggio #568



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




CITAZIONE (TheRuler @ 7 Mar 2024, 21:47) *
Credo di ricordare il punto a cui ti riferisci. Se non sbaglio le due porte si affacciano sulla stessa casella del corridoio.

Sì, c'era un corridoio che era un'unica casella e conteneva entrambe le porte, ma c'era anche un altro corridoio con più caselle che facevano la stessa cosa, o almeno così ricordo.

Sarebbe possibile fare lo stesso con le altre porte di una stanza per evitare che escano nello stesso turno o sarebbe troppo complicato da studiare?

Messaggio modificato da raul il 7 Mar 2024, 22:29
 
TheRuler
messaggio7 Mar 2024, 23:30
Messaggio #569



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




CITAZIONE (raul @ 7 Mar 2024, 22:26) *
Sarebbe possibile fare lo stesso con le altre porte di una stanza per evitare che escano nello stesso turno o sarebbe troppo complicato da studiare?

Sarebbe sbagliato perché nel gioco da tavolo puoi farlo. Aprire una porta è un'azione gratuita e il regolamento non limita il giocatore ad aprire più di una porta. Del resto, la nuova stanza potrebbe avere mostri, saresti fregato ugualmente.


--------------------
 
TheRuler
messaggio8 Mar 2024, 00:16
Messaggio #570



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




Credo di essere riuscito a mettere a posto anche la seconda parte degli incantesimi.
Ho trovato un sistema che mi ha permesso di scambiare due blocchi di posto, cambiando relativamente poco codice.
Visto che il blocco 1 era quello che cancella la magia, mentre il blocco 2 successivo quello che controlla se la magia è stata lanciata su un eroe o su un mostro fuori dalla linea di vista, è bastato invertirli di posto in modo che PRIMA avvenisse il controllo eroe/mostro e POI la cancellazione della magia, ma solo se il controllo era positivo alla linea di vista.

File Allegato  BLOCK_SHIFTED.jpg ( 298.88k ) Numero di download: 2


Siccome ora non perde più la magia ma solo l'azione (come è giusto che sia) ho rielaborato le frasi in questo modo:

File Allegato  Screenshot_2024_03_08_000653.png ( 36.04k ) Numero di download: 2

File Allegato  Screenshot_2024_03_08_000824.png ( 29.28k ) Numero di download: 2


CITAZIONE
SOLUTION:
in uncompressed QUEST.EXE at offset 0x12B9 substitute these 0x65 bytes:
50E8E71EE8C41A583C0674593C0D74553C097451A0CA3F3A45197449E863073C1572108AE88B1ED0
3F8A8700FC243F3AC57432803ECA3F05720FE86802803EA83F007403E98A00EB1CA0CA3FE8974E8A7
C018A5C02E85702BB2400803EA83F007403EB7090
with:
3C0674593C0D74553C097451A0CA3F3A45197449E86B073C1572108AE88B1ED03F8A8700FC243F3A
C57432803ECA3F05720FE87002803EA83F007403E99200EB1CA0CA3FE89F4E8A7C018A5C02E85F02B
B2400803EA83F007403EB789050E88A1EE8671A58


Raul, ti tocca testare per bene tutte le magie e combinazioni ora. ;-)


--------------------
 
raul
messaggio8 Mar 2024, 06:09
Messaggio #571



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




Mi stai abituando male, sai cosa significa?


Messaggio modificato da raul il 8 Mar 2024, 06:13
 
TheRuler
messaggio8 Mar 2024, 13:32
Messaggio #572



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter







Ho verificato che il testo "QUANDO ENTRI, IL SIGNORE DEGLI STREGONI ..." è completamente orfano. Non esiste nessun riferimento da nessuna parte nell'exe.
Evidentemente è stata una cosa prevista ma mai implementata.

Ho trovato questo testo nella missione "The Halls of the Dead":
CITAZIONE
B- This is the hall of the Witch Lord, use the Chaos Sorcerer to represent him as he stands in the space marked X. Do not lay this room out until the Dwarf or Wizard reveal it. The Elf and Barbarian then start here. They do not have any equipment, Treasure, Spells, Artefacts, etc. When the Dwarf or Wizard enter the Witch lord curses them and vanishes in a puff of smoke, they are then free to move normally.

In quella missione non avviene nulla di tutto ciò, forse avevano finito il tempo e hanno dovuto tagliare quella parte della missione.
Assieme alla 21, sono le uniche missioni senza eventi speciali. Anche la stanza centrale ha un sacco di mostri e un forziere ma nessuna ricompensa. E' una missione lasciata a metà, sarebbe da rivedere.

probabilmente il forziere era pensato per questo:
CITAZIONE
C All the Elf and Barbarian’s belongings are in this Treasure Chest, save for all their Gold, Gems and other valuables.


--------------------
 
TheRuler
messaggio8 Mar 2024, 17:20
Messaggio #573



Gruppo icone

Gruppo: SMod
Messaggi: 14.545
Iscritto il: 20 January 06
Da: Bologna
Utente Nr.: 2.653
Entropologo part-time

BGE AG: Indy3
Arcade: Silpheed
Free Roaming: Shadow of the Colossus
RTS: Praetorians

Playing Magari...
SO Windows7

OGI Supporter




EUREKA!
I've finally found the function in charge to make the GENIE SPELL "reveal room content" FULLY FUNCTIONAL!

File Allegato  Screenshot_2024_03_08_154802.png ( 22.95k ) Numero di download: 1


CITAZIONE
SOLUTION:
At offset 0x3182 substitute 04 with 03

Again, 3 days, one single bastard byte.

There is one catch, by the way: that part of the Genie spell can be repeated every turn. And this could likely be the reason they decided to disable it.
Or maybe they made an error and it never came out in testing.
It has nothing to do with my new code that does not waste a spell if not casted correctly, since I've tested the Genie-reveal fix also BEFORE the spell-waste fix.

I am a bit torn between leaving it reusable or making it usable once only.
I would be inclined to choose the former, but I want your opinions.
Here are the pros and cons:

CON:
- in the boardgame the original spell is usable once
- every turn the spellcaster can reveal a room/corridor
- the devs decided to ditch it rather than fix it
- it requires additional code to cram into already zero space free
- could potentially spoil the fun of exploring if abused (raul)

PRO:
- in the pc game the spell is broken, now it works
- in the boardgame I NEVER SAW ONCE the GENIE used to reveal a room rather than to attack
- the room is only revealed, you can still search for traps/treasure once inside.
- makes the spell more appealing
- gives to the gameplay another possible tactic approach
- it is not a gamebreaker
- the spellcaster can only either use this spell or perform a physical attack
- the choice of abuse the spell is up to the player, this choice was simply not possible before the fix
- explore the room by using the key or the spell has the same effect, only the latter is performed by distance
- opening a door from the outside is like an infinite reveal spell, since monster cannot chase you outside the room


Please add yours


Now the techincal (boring) part:
CODE
01EF:2D1D F6069B3F02 test byte [3F9B],02 ds:[3F9B]=0400
01EF:2D22 7405 je 00002D29 ($+5) (no jmp)
01EF:2D24 C6062C4000 mov byte [402C],00 ds:[402C]=0000
01EF:2D29 E81D33 call 00006049 ($+331d)
01EF:2D2C C606AF3F00 mov byte [3FAF],00 ds:[3FAF]=0000
01EF:2D31 8B3E3746 mov di,[4637] ds:[4637]=4697
01EF:2D35 8A0EC93F mov cl,[3FC9] ds:[3FC9]=0003 <--- capire dove viene messo a 3 questo byte.
01EF:2D39 F606C93F01 test byte [3FC9],01 ds:[3FC9]=0003 !!! POTREBBE ESSERE LA SOLUZIONE AL RIVELARE !!!
01EF:2D3E 740A je 00002D4A ($+a) (no jmp)
01EF:2D40 A0B53F mov al,[3FB5] ds:[3FB5]=00FF <--- d 0:F665 (cambia con mov al,[si+01]) vedi sotto
01EF:2D43 3CFF cmp al,FF (verificare SI+19)
01EF:2D45 7403 je 00002D4A ($+3) (no jmp) <--- se tolgo questo jump funziona ma rompo l'attacco del genio
01EF:2D47 E92FE1 jmp 00000E79 ($-1ed1) (up) <--- QUESTA CALL FA RIVELARE LA STANZA!
01EF:2D4A F606C93F02 test byte [3FC9],02 ds:[3FC9]=0003
01EF:2D4F 7423 je 00002D74 ($+23) (no jmp)
01EF:2D51 A0AC3F mov al,[3FAC] ds:[3FAC]=0100 <--- questo byte cambia se sposto su un mostro
01EF:2D54 803EAC3F00 cmp byte [3FAC],00 ds:[3FAC]=0100
01EF:2D59 7403 je 00002D5E ($+3) (no jmp)
01EF:2D5B E9F0E0 jmp 00000E4E ($-1f10) (up)
01EF:2D5E F606C93F04 test byte [3FC9],04 ds:[3FC9]=0003 <--- EUREKA!!! se setto 03 invece di 4 funziona e non rompe l'attacco.
01EF:2D63 740F je 00002D74 ($+f) (no jmp)
01EF:2D65 803EAD3F00 cmp byte [3FAD],00 ds:[3FAD]=0101 <--- questo byte cambia se sposto in zone vuote
01EF:2D6A 7408 je 00002D74 ($+8) (no jmp)
01EF:2D6C C606CA3F06 mov byte [3FCA],06 ds:[3FCA]=0000
01EF:2D71 E90BE1 jmp 00000E7F ($-1ef5) (up)
01EF:2D74 BB5600 mov bx,0056 <--- scroll incantesimo "sprecato"
01EF:2D77 E8735B call 000088ED ($+5b73)
01EF:2D7A 8B3E3746 mov di,[4637] ds:[4637]=4697
01EF:2D7E E80300 call 00002D84 ($+3) <--- sostituito da 909090 come fix parte 1 dello spell-waste fix
01EF:2D81 E926E5 jmp 000012AA ($-1ada) (up)

Basically I first tried removing the conditional jump at 2D45 after FF compared at 2D43 to go directly to the call E79 that IS in charge of revealing the room, but It happened that the subsequent attack of a genie does not function at all (you click on the monster and nothing happens).
Then I investigated the other checks by looking at how and when the various locations (3FC9,3FAC, 3FAD, 3FCA) would change while hovering the mouse over the tiles of the map. I've discovered cool things, like the coordinates of the mouse, the id of the target, whether or not the mouse is inside the map or outside, an already discovered room, heroes IDs...
The coolest thing was discovering that [3FC9] stores the byte of the line of sight flag of the spell you're casting: 1=in sight 3=out of sight
every spell has a flag set, and can be only 1 or 3. Genie reveal is 3, but this code above only checks for 1,2 or 4.
I didn't figure out yet what 2 or 4 does but they exit the loop in the same way, so I chose the bottom one (test 3FAD, 4) and that did the trick!
The 3FAD is never set other than 1 or 3 in the code, but I can be wrong because it can be set using addition or combination of different registers or locations, so I need further testing.
Please Raul go for it!


EDIT: the change breaks the spell "fire of wrath". So a rollback and further analysis are needed.
SOLUTION 2: https://www.oldgamesitalia.net/forum/index....mp;#entry388475


--------------------
 
raul
messaggio8 Mar 2024, 18:24
Messaggio #574



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account






CITAZIONE (TheRuler @ 8 Mar 2024, 17:20) *
I am a bit torn between leaving it reusable or making it usable once only.

senza dubbio, dovrebbe essere usato solo una volta, altrimenti si perde il divertimento e l'avventura di visitare tutti i luoghi inesplorati.

Messaggio modificato da raul il 8 Mar 2024, 18:25
 
raul
messaggio8 Mar 2024, 18:49
Messaggio #575



Gruppo icone

Gruppo: OldGamer
Messaggi: 2.695
Iscritto il: 15 September 17
Da: España
Utente Nr.: 21.627
SO Sono un BOT, cancellami l'account




CITAZIONE (TheRuler @ 8 Mar 2024, 13:32) *
Ho trovato questo testo nella missione "The Halls of the Dead":
CITAZIONE
B- This is the hall of the Witch Lord, use the Chaos Sorcerer to represent him as he stands in the space marked X. Do not lay this room out until the Dwarf or Wizard reveal it. The Elf and Barbarian then start here. They do not have any equipment, Treasure, Spells, Artefacts, etc. When the Dwarf or Wizard enter the Witch lord curses them and vanishes in a puff of smoke, they are then free to move normally.

In quella missione non avviene nulla di tutto ciò, forse avevano finito il tempo e hanno dovuto tagliare quella parte della missione.
Assieme alla 21, sono le uniche missioni senza eventi speciali. Anche la stanza centrale ha un sacco di mostri e un forziere ma nessuna ricompensa. E' una missione lasciata a metà, sarebbe da rivedere.

probabilmente il forziere era pensato per questo:
CITAZIONE
C All the Elf and Barbarian’s belongings are in this Treasure Chest, save for all their Gold, Gems and other valuables.



Sì, sono molto tagliati, ma lo sapevamo già, e mancano ancora alcune cose...

 

189 Pagine V  « < 21 22 23 24 25 > » 
Reply to this topicStart new topic
1 utenti stanno leggendo questa discussione (1 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


Versione Lo-Fi Oggi è il: 4th November 2026 - 10:33