Benvenuto Visitatore(Log In|Registrati)
![]() ![]() |
13 Mar 2024, 01:27
Messaggio
#651
|
|
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 |
Intendevo dire che queste coordinate dovrebbero essere usate come esempio per la spiegazione degli eroi, ma beh, sarebbe un sovraccarico di pagine. Aggiungere le X e le Y nella tabella La spiegazione indica già che il primo byte è X e il secondo Y: https://moddingwiki.shikadi.net/wiki/HeroQu...#Hero_Positions Per quanto riguarda la tabella è superfluo indicarlo, tutti sanno che orizzontale è X e verticale Y. CITAZIONE Ho appena finito con i tesori e le trappole. Domani continuerò e scaricherò anche notepad ++. Cosa stai facendo che mi incuriosisce? In che senso finito con tesori e trappole? Io ho guardato il problema del blocco del proiettile attraverso caselle con porte segrete. Ho scoperto che è presente anche se spari in verticale e in mezzo c'è una porta segreta. Anche la porta normale aperta blocca la linea di vista! Ho capito dove fa il controllo nel codice, l'ho trovato al primo colpo cercando il codice relativo al controllo della balestra (10h) vicino alle altre armi da lancio: CODICE 01EF:0AD4 F6451110 test byte [di+11],10 ds:[46A8]=0010 <-- balestra 01EF:0AD8 750F jne 00000AE9 ($+f) (down) 01EF:0ADA F6451120 test byte [di+11],20 ds:[46A8]=0010 <-- ascia 01EF:0ADE 7509 jne 00000AE9 ($+9) (down) 01EF:0AE0 F6451140 test byte [di+11],40 ds:[46A8]=0010 <-- lancia 01EF:0AE4 7503 jne 00000AE9 ($+3) (down) 01EF:0AE6 B0FC mov al,FC 01EF:0AE8 C3 ret Se hai visto la pagina del savegame, il gioco salva l'inventario come maschera di bit. E guarda cosa sono 10,20 e 40? Una volta trovato il punto dove controllare ho messo un breakpoint. Così quando testo il gioco con il debugger l'elaborazione si mette in pausa appena scocco un dardo. Andando poi passo passo ho trovato il check della casella sulla traiettoria tra eroe e mostro: CODICE il check della casella lo fa qui (sbagliando il 28) TRAIETTORIA ORIZZONTALE: 01EF:1221 80BF6F5600 cmp byte [bx+566F],00 ds:[576C]=8128 01EF:1226 742A je 00001252 ($+2a) (no jmp) 01EF:1228 8A876F56 mov al,[bx+566F] ds:[576C]=8128 <-- 28 è la casella con porta segreta 01EF:122C 833EE93701 cmp word [37E9],0001 ds:[37E9]=0001 <-- 1=orizzontale, 0=verticale 01EF:1231 7411 je 00001244 ($+11) (no jmp) 01EF:1233 24AC and al,AC <-- qui controlla l'AND binario se VERTICALE (con A0 FUNZIONA ma rompe altro) 01EF:1235 0AC0 or al,al contolla se in mezzo ci sono muri o porte orizzontali 01EF:1237 7419 je 00001252 ($+19) (no jmp) 01EF:1239 A820 test al,20 <-- porta orizzontale 01EF:123B 7442 je 0000127F ($+42) (down) 01EF:123D A804 test al,04 <-- porta aperta 01EF:123F 743E je 0000127F ($+3e) (down) 01EF:1241 EB0F jmp short 00001252 ($+f) (down) 01EF:1243 90 nop 01EF:1244 245C and al,5C <-- qui controlla l'AND binario (con 50 FUNZIONA ma rompe altro) 01EF:1246 0AC0 or al,al controlla se ci sono muri o porte verticali 01EF:1248 7408 je 00001252 ($+8) (down) 01EF:124A A810 test al,10 <-- porta verticale 01EF:124C 7431 je 0000127F ($+31) (down) 01EF:124E A804 test al,04 <-- porta aperta 01EF:1250 742D je 0000127F ($+2d) (down) 01EF:1252 803EEB3701 cmp byte [37EB],01 ds:[37EB]=6E03 01EF:1257 742B je 00001284 ($+2b) (down) 01EF:1259 80BF6F5800 cmp byte [bx+586F],00 ds:[1576F]=3637 01EF:125E 740E je 0000126E ($+e) (down) 01EF:1260 8A876F58 mov al,[bx+586F] ds:[1576F]=3637 01EF:1264 BB4649 mov bx,4946 Ho trovato il controllo dei casi di linea di vista orizzontale e verticale e ho eliminato la componente della porta segreta e porta aperta. Prendiamo l'esempio della porta orizzontale (29h) su linea di vista orizzontale in accordo con il wall_layout: l'istruzione 01EF:1244 245C , fa l'AND logico con 5C bisogna convertire tutto da esadecimale in binario quindi: CODICE 29 = 00101001 5C = 01011100 and= 00001000 poi verifica l'OR logico ed essendoci un 1 (l'or vuole tutti 0 per dare zero) il codice salta via credendo che la casella sia impassabile. Ho sostituito i valori di controllo H e V in modo da non tener conto delle porte segrete/aperte così 5C=50 e AC=A0. Funziona, ma purtroppo non era ancora possibile sparare attraverso le porte aperte. Ho cambiato anche i check successivi 04=porta_aperta e ho risolto. se vuoi provare, fammi sapere se ho rotto altro: CITAZIONE SOLUZIONE: All'offset 0x1654 sostituire AC con A0 All'offset 0x165E sostituire 04 con 20 All'offset 0x1665 sostituire 5C con 50 All'offset 0x166F sostituire 04 con 10 Studiando questa logica ho capito il perché del bug che ti permette di lanciare un incantesimo in un'altra stanza scoperta se sei a contatto con un muro. Non controlla la casella su cui sei presente ma parte dalla successiva. Di fatto è possibile uccidere questo goblin con la balestra e con la palla di fuoco:
Screenshot_2024_03_13_012242.png ( 18.08k )
Numero di download: 0Verificalo prima di applicare i cambiamenti. Ti allego una versione modificata della quest 21 che ti fa partire con l'elfo vicino. Nel corridoio a destra verticale ho messo in alto uno scheletro così controlli anche la linea di vista con porta aperta.
QUEST21.ZIP ( 906byte )
Numero di download: 3-------------------- |
|
|
|
13 Mar 2024, 15:33
Messaggio
#652
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Ben fatto... Inizierò a testare appena possibile.
Solo nelle sezioni con le porte possono impedirti di sparare o sai come farlo senza quelle porte? |
|
|
|
13 Mar 2024, 16:40
Messaggio
#653
|
|
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 |
Solo nelle sezioni con le porte possono impedirti di sparare o sai come farlo senza quelle porte? Rielabora la domanda, non ho capito. Il codice originale permette all'elfo in quella posizione di uccidere i tre mostri nella stanza scoperta col genio. Si tratta della scala: appena il check arriva alla scala l'attacco viene dato come valido e il proiettile parte. Fa troppo ridere questa cosa. La linea di vista è decisamente bacata.
Screenshot_2024_03_13_163828.png ( 21.88k )
Numero di download: 1-------------------- |
|
|
|
13 Mar 2024, 18:42
Messaggio
#654
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Ti allego una versione modificata della quest 21 che ti fa partire con l'elfo vicino. Nel corridoio a destra verticale ho messo in alto uno scheletro così controlli anche la linea di vista con porta aperta.
QUEST21.ZIP ( 906byte )
Numero di download: 3Questo file non è stato modificato, in quanto sono presenti le schermate. |
|
|
|
13 Mar 2024, 19:46
Messaggio
#655
|
|
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 |
Ti allego una versione modificata della quest 21 che ti fa partire con l'elfo vicino. Nel corridoio a destra verticale ho messo in alto uno scheletro così controlli anche la linea di vista con porta aperta.
QUEST21.ZIP ( 906byte )
Numero di download: 3Questo file non è stato modificato, in quanto sono presenti le schermate. Non ho capito. quali schermate? Il file è modificato come ti ho spiegato sopra. -------------------- |
|
|
|
13 Mar 2024, 19:56
Messaggio
#656
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Intendo dire che non mi sembra che sia stato modificato, come mostrano gli screenshot che hai postato.
Messaggio modificato da raul il 13 Mar 2024, 19:59 |
|
|
|
13 Mar 2024, 20:15
Messaggio
#657
|
|
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 |
Intendo dire che non mi sembra che sia stato modificato, come mostrano gli screenshot che hai postato. Ma l'hai provato? le schermate sopra sono della missione 2. Il file è la 21. -------------------- |
|
|
|
13 Mar 2024, 21:06
Messaggio
#658
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
OK, ora capisco tutto.
Sì, sono riuscito a usare la balestra senza problemi contro lo zombie nella missione 21, e allo stesso tempo non sono riuscito a sparare nel corridoio dall'altra parte che ha come ostacolo la roccia che fa da muro, quindi quella sezione è perfetta. ![]() La domanda che ho fatto all'inizio era se il blocco del tiro con la balestra dipende dalla presenza di una porta? Lo chiedo a causa degli scheletri nell'immagine, che possono usare la balestra. ![]() Ho un'altra brutta notizia: è possibile utilizzare le armi con attacco diagonale attraverso la roccia del muro.
Messaggio modificato da raul il 13 Mar 2024, 21:24 |
|
|
|
13 Mar 2024, 21:38
Messaggio
#659
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Il codice originale permette all'elfo in quella posizione di uccidere i tre mostri nella stanza scoperta col genio. Si tratta della scala: appena il check arriva alla scala l'attacco viene dato come valido e il proiettile parte. Fa troppo ridere questa cosa. La linea di vista è decisamente bacata. Ha più errori di quanto pensassi inizialmente. Ne ho fatti alcuni anche nella missione 2 e ci sono cose strane, come ad esempio che dalla porta posso sparare al goblin ma non all'orco. ![]() Ma quella che trovo più strana e importante è che se si può sparare attraverso il muro con la balestra o gli incantesimi ma non si può attaccare in mischia. Si potrebbe usare la stessa logica della mischia con la balestra e gli incantesimi? Non capisco perché non programmino questi comportamenti allo stesso modo.
Messaggio modificato da raul il 13 Mar 2024, 21:53 |
|
|
|
14 Mar 2024, 09:20
Messaggio
#660
|
|
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 |
La domanda che ho fatto all'inizio era se il blocco del tiro con la balestra dipende dalla presenza di una porta? Lo chiedo a causa degli scheletri nell'immagine, che possono usare la balestra. la linea di vista orizzontale è bloccata da muri e porte chiuse verticali, mentre la linea di vista verticale è bloccata da muri e porte chiuse orizzontali. Con il mio fix ho rimosso dalla verifica le porte segrete e le porte aperte visto che le porte segrete, quando visualizzate, sono SEMPRE aperte. La linea di vista è proprio rotta. Al momento non ho idea di come aggiustarla. il problema è intrinseco al metodo che hanno utilizzato per la gestione della mappa e la maschera di bit usata per il check. Se avessero dato la possibilità di settare per ogni casella i 4 muri possibili, invece che solo quelli nord e ovest, sarebbe stato perfetto, invece hanno voluto risparmiare un byte. CITAZIONE Ho un'altra brutta notizia: è possibile utilizzare le armi con attacco diagonale attraverso la roccia del muro. Problema che mi aspettavo, la roccia per terra è controllata solo nelle routine di movimento, non per quella di attacco (distanza/corpo a corpo/magia). Il fix più facile che mi viene in mente è modificare le mappe in modo da aggiungere muri invisibili attorno alle rocce. EDIT: no, non funziona. si può colpire lo stesso anche se attrono ci sono muri. Incredibile. Con il bastone si può colpire questo Zombi:
Screenshot_2024_03_14_105648.png ( 14.42k )
Numero di download: 1Puoi giocare qualunque missione con un solo eroe equipaggiato con balestra e bastone. Gli basta aprire le porte e da fuori stanza fa una strage. Ho aggiornato come al solito il primo post con i nuovi bug segnati. -------------------- |
|
|
|
14 Mar 2024, 15:30
Messaggio
#661
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Si potrebbe creare una porta invisibile con una bandiera di blocco in modo che non possano attraversarla (forse non è nemmeno necessario) per bloccare la balestra come è successo con la mummia? Forse con questa tecnica si potrebbe avere una soluzione parziale per le altre sezioni con lo stesso problema.
![]() Puoi giocare qualunque missione con un solo eroe equipaggiato con balestra e bastone. Gli basta aprire le porte e da fuori stanza fa una strage. Sì, ve ne ho già parlato, l'unico inconveniente è che se uccidete un mostro che lascia cadere dell'equipaggiamento, non lo otterrete. Messaggio modificato da raul il 14 Mar 2024, 15:31 |
|
|
|
14 Mar 2024, 17:36
Messaggio
#662
|
|
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 |
il problema dei sassi che non bloccano la linea di vista è secondario, non cambierei il codice. Quello che ho scritto sopra andrebbe bene in questo caso.
CITAZIONE Problema che mi aspettavo, la roccia per terra è controllata solo nelle routine di movimento, non per quella di attacco (distanza/corpo a corpo/magia).
Il fix più facile che mi viene in mente è modificare le mappe in modo da aggiungere muri invisibili attorno alle rocce. -------------------- |
|
|
|
14 Mar 2024, 18:02
Messaggio
#663
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Beh, niente, un altro bug per la lista.
La cosa positiva è che ne rimangono sempre meno. |
|
|
|
14 Mar 2024, 23:56
Messaggio
#664
|
|
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 |
Beh, niente, un altro bug per la lista. La cosa positiva è che ne rimangono sempre meno. Stanno restando i bug più difficili. Sto facendo ordine, ho cominciato a compilare la pagina di moddingwiki relativa alle routine dentro l'exe. Ho studiato per bene il codice di lancio e devo dire che è piuttosto complesso; fa controlli e imposta variabili che non credevo, oltre a immagazzinare le coordinate XY dell'eroe, del mostro e del proiettile, verifica anche la distanza X e Y tra i tre, e se il mostro si trova a destra, sinistra, sopra e sotto rispetto all'eroe. C'è tutto quello che serve sapere, capire come aggiustarlo è un problema. Se a contatto con un muro lo puoi oltrepassare se il mostro è sopra, a sinistra o in una qualsiasi direzione perfettamente diagonale. Come per l'attacco in mischia, anche qui la diagonale è rotta, ho colpito il mostro che era sotto il puntatore del mouse da qui:
Screenshot_2024_03_14_234829.png ( 34.64k )
Numero di download: 0-------------------- |
|
|
|
15 Mar 2024, 06:42
Messaggio
#665
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Ho studiato per bene il codice di lancio e devo dire che è piuttosto complesso; fa controlli e imposta variabili che non credevo, oltre a immagazzinare le coordinate XY dell'eroe, del mostro e del proiettile, verifica anche la distanza X e Y tra i tre, e se il mostro si trova a destra, sinistra, sopra e sotto rispetto all'eroe. C'è tutto quello che serve sapere, capire come aggiustarlo è un problema. Credo che dovreste lasciare questo problema per la fine, ricercandone uno meno difficile, come il punto 25. 25- Il signore degli stregoni può essere ucciso dalla magia nella missione 24. CITAZIONE Se a contatto con un muro lo puoi oltrepassare se il mostro è sopra, a sinistra o in una qualsiasi direzione perfettamente diagonale. Così lontano? È completamente rotto, ora sembra un alfiere degli scacchi. Messaggio modificato da raul il 15 Mar 2024, 06:57 |
|
|
|
15 Mar 2024, 12:18
Messaggio
#666
|
|
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 che dovreste lasciare questo problema per la fine, ricercandone uno meno difficile, come il punto 25. Tutta la conoscenza che sto costruendo con la linea di vista sarà utile per il movimento. Condividono parte del codice.25- Il signore degli stregoni può essere ucciso dalla magia nella missione 24. CITAZIONE Così lontano? È completamente rotto, ora sembra un alfiere degli scacchi. Se in mezzo ci sono solo stanze non attive (marcate con 00) queste vengono oltrepassate senza controllare nulla. Si potrebbe cercare un valore diverso per eliminare almeno quel problema, ma la questione più grave rimarrebbe, ovvero sparare ttraverso un muro tra due stanze attive. -------------------- |
|
|
|
15 Mar 2024, 14:12
Messaggio
#667
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
sarà utile per il movimento. Condividono parte del codice. In questo caso vi invio un incantesimo del genio affinché siate 2 in questo progetto. CITAZIONE Se in mezzo ci sono solo stanze non attive (marcate con 00) queste vengono oltrepassate senza controllare nulla. Si potrebbe cercare un valore diverso per eliminare almeno quel problema, ma la questione più grave rimarrebbe, ovvero sparare ttraverso un muro tra due stanze attive. Sistemare 1 cosa è sempre un grande passo in questo gioco, non tutto può essere fatto ma almeno renderlo il più decente possibile è un risultato, in ogni caso, oggi è un gioco molto migliore di prima e nessuno può contestarlo. Messaggio modificato da raul il 15 Mar 2024, 22:38 |
|
|
|
18 Mar 2024, 15:26
Messaggio
#668
|
|
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 |
I really struggle to find a proper workaround for the shooting routine. I am really starting to think it would be better to create another on from scratch (saving some blocks) rather than fix it.
I've annotated every possible bit I could find here. Is anyone out there with fresh eyesight that could take a look and help? Maybe it is a matter of swapping two registry in a mov instruction... -------------------- |
|
|
|
20 Mar 2024, 14:34
Messaggio
#669
|
|
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 |
Decompilando l'exe con IDA ho definito quali sono le funzioni che si occupano dei due pathfinding, quello che funziona alla perfezione è quello dell'eroe mentre quello "rotto" è quello dei mostri.
L'hanno voluto fare proprio così: rendere impossibile ai mostri lasciare la stanza in cui nascono. Ho provato a dirottare la funzione del mostro verso quella dell'eroe ma non funziona (sarebbe stato troppo bello) sebbene non vada in crash nulla perché le aree di memoria e i registri usati sono gli stessi. Per avere una visione di quanto differiscono le due funzioni: Eroe
Screenshot_2024_03_20_142345.png ( 20.33k )
Numero di download: 3Mostro
Screenshot_2024_03_20_142245.png ( 31.45k )
Numero di download: 2-------------------- |
|
|
|
20 Mar 2024, 15:26
Messaggio
#670
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
TI MANDO IN LINGUA HEROQUEST UN SACCO DI INCORAGGIAMENTO, SI PUÒ !!!!
|
|
|
|
23 Mar 2024, 10:00
Messaggio
#671
|
|
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 |
Only an update, no solution yet (neither shooting nor monster movement).
Studying the hero's movement I've found out how the game make it happen, and it is very clever. It checks for every possible actual impediment on the map, monsters, heroes, furniture, closed/hidden doors. This pathfinding is COMPLETE. I can't believe they didn't use the same algorithm for monster's movements also. Probably because there is no actual animation for monsters, only a moving icon on the map. The "click on a tile player's action" triggers a routine that draws ANOTHER 26x19 virtual map and build all possible paths of the hero: Starting from memory location 0B6B:0A0E the following 512 bytes are set to 1A1A x100h (256 times) by this function: CODICE 01EF:2DE9 B90001 mov cx,0100 01EF:2DEC 50 push ax 01EF:2DED B86B0B mov ax,0B6B 01EF:2DF0 8EC0 mov es,ax 01EF:2DF2 58 pop ax 01EF:2DF3 B81A1A mov ax,1A1A 01EF:2DF6 F3AB repe stosw basically cleaning all previous paths taken in the previous turn by a hero. Then the code from 01EF:6449 builds up all the possible paths from a starting tile to the maximum reachable tile. In this case I've rolled a 11 and note how the code stops building a path at 7, when it reaches the point of no return based an the left steps required to reach the destination. CODICE 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 07 06 07 08 09 1A 09 08 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 07 06 05 06 09 0A 09 08 07 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 06 05 04 05 0A 0B 0A 09 06 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 05 04 03 04 0B 1A 1A 1A 05 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 03 02 01 02 01 02 03 04 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 05 04 03 02 1A 1A 1A 1A 05 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 06 05 04 03 1A 1A 1A 1A 06 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 07 06 05 04 1A 1A 1A 1A 07 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 07 06 05 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 07 06 07 08 09 -- 09 08 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 07 06 05 06 09 0A 09 08 07 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 06 05 04 05 0A 0B 0A 09 06 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 05 04 03 04 0B -- -- -- 05 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 03 02 01 02 01 02 03 04 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 05 04 03 02 -- -- -- -- 05 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 06 05 04 03 -- -- -- -- 06 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 07 06 05 04 -- -- -- -- 07 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 07 06 05 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1A removed for better reading.
Screenshot_2024_03_23_092310.png ( 45.03k )
Numero di download: 0Here is the graphical game map, where the starting hero tile is pointed by the mouse (the 02 between those 01 in the sequence 03 02 01 02 01 02 03 above) and the ending tile is where the dwarf is (0B in the code map) There also is another temporary location where all the math and possible paths are aligned, here is the variable values I've found so far: hero's movement 3FEE = HERO'S X STARTING POSITION 3FEF = HERO'S Y STARTING POSITION 3FF0 = mouse click X position 3FF1 = mouse click Y position 3FF2 = 03 3FF3 = FF 3FF4 = FF 3FF5 = HERO'S X POSITION (copy) 3FF6 = HERO'S Y POSITION (copy) 3FF9 = rolled movement 3FFB - 4005 = math locations that varies among 00,01,02,03, at the end every byte is set to 03 this is the final block of the function 2DFF that sets those locations recursively: CODICE loc_12E72: mov byte ptr ds:3FF2h, 0 dec byte ptr ds:3FF6h call sub_12DFF <-- call itself again inc byte ptr ds:3FF6h mov byte ptr ds:3FF2h, 1 inc byte ptr ds:3FF5h call sub_12DFF <-- call itself again dec byte ptr ds:3FF5h mov byte ptr ds:3FF2h, 2 inc byte ptr ds:3FF6h call sub_12DFF <-- call itself again dec byte ptr ds:3FF6h mov byte ptr ds:3FF2h, 3 dec byte ptr ds:3FF5h call sub_12DFF <-- call itself again inc byte ptr ds:3FF5h What I don't know yet is the values of 3FF3-6 and why the values are seto to 00-03 only. Possible 4 directions to check? Once every byte is set to 03, the hero's moving animation is then delegated to in-game the main loop routines. -------------------- |
|
|
|
23 Mar 2024, 10:37
Messaggio
#672
|
|
|
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, state andando avanti e questa è la cosa più importante.
Sono abbastanza sicuro che tutto ciò che non sono riusciti a implementare in questo gioco l'hanno fatto con Space Cruise. Più gioco a quel gioco e più ne sono convinto. |
|
|
|
23 Mar 2024, 22:18
Messaggio
#673
|
|
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 |
Bene, state andando avanti e questa è la cosa più importante. Sono abbastanza sicuro che tutto ciò che non sono riusciti a implementare in questo gioco l'hanno fatto con Space Cruise. Più gioco a quel gioco e più ne sono convinto. Non faccio progressi, credo di essere arrivato al limite delle mie conoscenze. Finora tutti i bug risolti erano uno scherzo in confronto a questo, il patfinding dei mostri è GIGANTESCO e totalmente diverso da quello dell'eroe. Scrivono e leggono mappe diverse, sembra che le due funzioni siano state pensate da due persone diverse (il che è probabile). Quindi non vorrei smorzare gli animi ma se non ricevo una mano il pathfinding rimarrà così. Continuo a scavare nel codice e a trovare una funzione nuova che non avevo mai visto, e per capire cosa fa devo studiarla e fare prove, poi scopro che si tratta di una funzione che disegna la mappa e quindi ho perso tempo. Il problema è che queste funzioni sono quasi 400. E' troppo per una persona sola e alle prime armi come me. Raul, non hai un amico esperto di assembly in grado di darmi una mano? -------------------- |
|
|
|
23 Mar 2024, 23:45
Messaggio
#674
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Ho amici programmatori, il problema è che non sono interessati a questi giochi, infatti, relativamente di recente, ho parlato con diversi di loro per vedere se potevano aiutarmi a modificare il font delle lettere per Space Crusade e non credo di aver avuto molto successo.
Il problema di tutto questo è che siamo in pochi ad essere interessati a questi giochi classici, comunque non fatevi sopraffare, cercate di sistemare le cose meno difficili e se non ci riuscite nemmeno voi, forse in futuro potrete fare qualcosa, la cosa più importante è che non vi bruciate con questo, ricordatevi che è solo un hobby. Messaggio modificato da raul il 23 Mar 2024, 23:45 |
|
|
|
25 Mar 2024, 02:08
Messaggio
#675
|
|
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 |
Torniamo ai fix facili (mi ha preso un paio d'ore):
CITAZIONE Il signore degli stregoni può essere colpito dalle magie nella missione 24. 0x1282: 0E -> 1A Ho trovato il codice che è stato aggiunto per l'espansione e ha un controllo strano. Prima verifica se si tratta della missione 0F, cunicoli di ghiaccio, poi se si tratta del mostro goblin 0E (non è usato in nessuna missione). Ho sostituito quello 0E con 1A, il witch lord dell'espansione della missione 24. CODICE 01EF:0E5A 803E923F0F cmp byte [3F92],0F ds:[3F92]=3838 <--- questo controlla il numero di missione (la 0F è cunicoli di ghiaccio!?) 01EF:0E5F 7204 jc 00000E65 ($+4) (no jmp) 01EF:0E61 3C0E cmp al,0E <--- Controlla se il mostro è il GOBLIN non usato. 01EF:0E63 EB06 jmp short 00000E6B ($+6) (down) va sostituito con 1A (witch lord espansione) 01EF:0E65 FEC0 inc al 01EF:0E67 24FE and al,FE 01EF:0E69 3C0C cmp al,0C <--- Controlla se il mostro è il witch lord del gioco base 01EF:0E6B 7512 jne 00000E7F ($+12) (down) Mi piacerebbe capire nella missione "i cunicoli di ghiaccio" cosa dovrebbe succede se usassi la magia contro i mostri. In teoria nulla, forse hanno solo sbagliato ID quando hanno inserito la condizione. -------------------- |
|
|
|
![]() ![]() |
| Versione Lo-Fi | Oggi è il: 2nd November 2026 - 01:31 |