Autore Topic: Koala Linker (problemi)  (Letto 3322 volte)

MEGANOID

  • Neo-iscritto
  • *
  • Post: 19
  • Gioco Preferito: Commando
Koala Linker (problemi)
« il: 15 Settembre 2008, 21:05:34 »
 Salve ragazzi,

mi stavo cimentando in un tentativo che mi stava a cuore ossia linkare una immagine in formato Koala davanti ad un gioco ad es: Commando (Elite).
Allo scopo ho usato il Project One per covertire un'immagine jpeg in formato Koala Painter. Successivamente ho trasferito detta immagine su un .D64 che mi sono creato con il Programma Dir Master e sulla stessa .D64 ho messo il programma  Koala Linker V1.0 (Xades) che ho trovato sul sito CSdB.
Premetto che sto usando il Vice.
Con il Koala Linker ho provveduto poi a caricare l'immagine che avevo salvato in Koala la quale una volta caricata mi è stata correttamente visualizzata.
Koala Linker mi ha chiesto,poi, un indirizzo JMP e ho fornito il 2066 in Hex ossia $0812.
Il programma mi dice che va tutto bene e che potro' visualizzare detta immagine con la sys 51004 in quanto salvera' la stessa come $c73c-$f000.
Avrei successivamente Linkato la mia immagine cosi' nuovamente elaborata al gioco "commando" con il programma  Eca Linker V4 ma la cosa non mi riesce perchè una volta avvenuto il link e dato il RUN rimane lo schermo azzurro.
Vi chiedo a questo punto un aiuto su come fare dato che se carico l'immagine elaborata dal Koala Linker con LOAD "PICTURE",8,C73C e faccio SYS 51004 mi compare un READY in alto allo schermo e se faccio LIST mi escono delle righe in BASIC con messaggi di errore. Se invece carico l'immagine con LOAD "PIACTURE" ,8,1 dopo alcuni secondi il VICE si blocca e cambia il colore di sfondo.
Pregherei di darmi una dritta e vi ringrazio anticipatamente per colui o coloro che vorranno aiutarmio.

 :doh:

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Koala Linker (problemi)
« Risposta #1 il: 15 Settembre 2008, 22:04:38 »
 il koala linker genera un prg che visualizza l'immagine, aspetta un tasto e poi esegue una jmp all'indirizzo che ti chiede, che deve essere la sys di inizio del programma compresso a cui vuoi accodare la pic. Essendo l'indirizzo di partenza del visualizzatore a $c73c, implica che il programma non deve essere superiore a ($c73c-$0801)/$fe = 192 blocchi. Il tuo gioco da quanti blocchi e'?
Io ho appena provato con un programma da 100 blocchi e tutto funziona perfettamente.
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

MEGANOID

  • Neo-iscritto
  • *
  • Post: 19
  • Gioco Preferito: Commando
Koala Linker (problemi)
« Risposta #2 il: 15 Settembre 2008, 22:54:19 »
 Grazie per rispondermi iAN_COOG,

dunque il gioco che voglio linkare è 117 blocchi ma come ho detto sopra non riesco nemmeno a eseguire la Pic salvata con il Koala Linker dando la sys a 51004 e sia caricando con ,8,1 e sia caricando ,8,c73c.
Vorrei prima poter visualizzare la pic salvata e poi effettuare il link.
Cmq il gioco è 117 blocchi.

Cosa faccio?
 

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Koala Linker (problemi)
« Risposta #3 il: 15 Settembre 2008, 23:11:17 »
Citazione da: "MEGANOID"
Cosa faccio?
Scommetto che stai provando a caricare i prg senza cartuccia tipo AR o senza prima averli compattati.
Un C64 "non attrezzato" puo' caricare solo prg che non superano $cfff.
La pic va da $c73f a $f000 quindi se provi a caricarla i bytes eccedenti $d000 finiscono direttamente nei registri VIC/SID/CIA... chiaramente impallando tutto.
Devi compattare i prg una volta linkati per far si' che non superino i 202 blocchi e comunque non vadano oltre $cfff.
La stessa pic o la compatti o la carichi da monitor ma assicurandoti prima di aver disabilitato la ROM e attivato la configurazione a tutta RAM, ad esempio da vice:
> 01 38
l "pic etcetc" 0
> 01 37
x
e poi dai la sys
Come compressore non posso che suggerire Exomizer per comprimere direttamente da pc. Se proprio vuoi fare tutto da C64/emulatore puoi sempre usare lo stesso ECA linker che fa anche da packer, ma il risultato non e' ottimale perche' effettua solo una compressione RLE e non LZW
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

MEGANOID

  • Neo-iscritto
  • *
  • Post: 19
  • Gioco Preferito: Commando
Koala Linker (problemi)
« Risposta #4 il: 16 Settembre 2008, 18:27:46 »
 
Citazione da: "iAN CooG/HF"

Scommetto che stai provando a caricare i prg senza cartuccia tipo AR o senza prima averli compattati.
 
Indovinato,in effetti avevo caricato i programmi senza usare la AR e non sapevo fosse necessario compattarli.
Citazione da: "iAN CooG/HF"

La stessa pic o la compatti o la carichi da monitor ma assicurandoti prima di aver disabilitato la ROM e attivato la configurazione a tutta RAM, ad esempio da vice:
> 01 38
l "pic etcetc" 0
> 01 37
x
e poi dai la sys
 

Come detto nel precedente post se andavo a caricare la picture elaborata con il Koala Linker e salvata a partire dall'indirizzo $C73C non riuscivo ad eseguirla con la SYS 51004.
Allora ho subito provato a caricarla dal Monitor della AR ed eseguirla con G $C73C e funzionava.
Poi ho provveduto a compattare l'immagine con l'Eca Linker e riesco a visualizzarla perfettamente.

 

MEGANOID

  • Neo-iscritto
  • *
  • Post: 19
  • Gioco Preferito: Commando
Koala Linker (problemi)
« Risposta #5 il: 16 Settembre 2008, 18:59:39 »
 iAN CooG ti ringrazio per la gentile risposta ma sono riuscito a fare solatanto un piccolo passo in avanti sino ad ora per cui vorrei esporre i tentativi da me effettuati nell'arco delle ultime 24 ore chiedendoti ancora un piccolo aiuto sempre se cio' non causi problema.

Citazione da: "iAN CooG/HF"

Scommetto che stai provando a caricare i prg senza cartuccia tipo AR o senza prima averli compattati.
 

Indovinato,in effetti avevo caricato i programmi senza usare la AR e non sapevo fosse necessario compattarli.

Citazione da: "iAN CooG/HF"


La stessa pic o la compatti o la carichi da monitor ma assicurandoti prima di aver disabilitato la ROM e attivato la configurazione a tutta RAM, ad esempio da vice:
> 01 38
l "pic etcetc" 0
> 01 37
x
e poi dai la sys
 

Come detto nel precedente post se caricavo la picture elaborata con il Koala Linker che veniva salvata a partire dall'indirizzo $C73C risultava che non riuscivo ad eseguirla con la SYS 51004.
Allora ho subito provato a caricarla dal Monitor della AR ed eseguirla con G $C73C e tutto funzionava egregiamente.
Poi ho provato a compattare l'immagine con l'Eca Linker e sono riuscito  a visualizzarla perfettamente.
Ho anche provato a caricare l'immagine dal Monitor del VICE ma non ancora non capisco cosa sarebbe l'indirizzo 01 38.
Ho letto il manuale dei comandi del Monitor del Vice ma non mi riesce nemmeno il load dell'immagine in quanto se scrivo L "immagine" 0 mi appare il seguente errore:
Cannot Open immagine

e mi riporta l'indirizzo (C:$e5d4) non quello che dovrei ottenere con 01 38.

Poi ho effetuato numerosissimi tentativi di Linking tra l'immagine compattata che parte a $0801 e un gioco di meno blocchi di quello provato ieri ossia Frogger della Sierra On Line che parte con sys 2080. Per cui ho provveduto a rielaborare l'immagine con il Koala Linker indicando che doveva effettuare il JMP a $0820 una volta premuta la barra spaziatrice.

I programmi da me utilizzati per tentare il Linking sono stati prima l'Eca Linker V4/DD e poi il TCD's Link'n'Crunch V2.0 (Triangle 3532).
Dopo avere infruttuosamente esperito tantissime operazioni di unione immagine + gioco prima con il primo e poi con il secondo linker ma quando lanciavo il gioco con la intro davanti il commodore si bloccava o usciva un Ready.
Dato l'insuccesso ho forse pensato che i programmi di linking non riallocano automaticamente la memoria del secondo file accodandolo al primo file e quindi forse sarebbe errato voler linkare due file che partono entrambi a $0801.

In ogni caso onde fugare ogni possibile equivoco o errore in cui posso essere caduto vorrei  esporre i vari passaggi che ho effettuato in modo di capire anche il funzionamento dei linker che non mi è molto chiaro.

Per cui con l'Eca Linker avevo fatto

Enter LOW-MEM: $0801
skip $ (Vuoto)

filename: intro

filename: gioco

program lenght 23037 Bytes=91  Blocks

Compacted:

program lengh 17448 Bytes =69 Blocks

Enter SYS-ADR: $ 0801                ( Quale è il SYS address? )

Filename: gioco finale

ma caricato il gioco finale risultato Commodore bloccato.

Poi il TCD's Link'n'Crunch V2.0 (Triangle 3532)
http://noname.c64.org/csdb/release/?id=48084

intro $0801
gioco $0801

$01 val:$37
Start-Jmp: $0810

Bytes:$b6 Occurences:$0002
Press 'A' for another ,RETURN to link

risultato compuer bloccato e nessun file salvato.


Quindi non so come procedere, mi sa che devo riallocare la memoria.
Ho anche provato a caricare il gioco dal monior della AR dalla locazione di memoria immediatamente successiva a quella finale della Intro e a salvarla.
Ho rieffettuato il link ma nessun risultato.

Per quanto riguarda Exomizer che mi hai consigliato, essendo novello mi risulta difficile anche la sintassi del comando.

Ti ringrazio in anticipo calorosamente per le ulteriori dritte di cui ho bisogno

 :mechico:

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Koala Linker (problemi)
« Risposta #6 il: 16 Settembre 2008, 21:02:01 »
 Non devi compattare la pic: il linker carica in memoria i files che devono stare al loro posto e poi li compatta, ma non puo' certo sapere dove vorresti che finissero se li carichi ENTRAMBI a $0801. Lascia stare la pic cosi' come ti e' stata generata dal koalalinker, carica gioco e pic* e compatta dando come jmp $c73c (nel koala linker avrai dato la sys del gioco invece)

$0801 e' il loading address non l'indirizzo di partenza.

> e' il comando per scrivere bytes in memoria, in vice digita
?
per l'help sui comandi e
?
per l'help specifico su un comando ad esempio
Codice: [Seleziona]
(C:$ded5) ? >

Syntax: > [<address>] <data_list>

Write the specified data at `address'.

$01 e' la locazione che comanda (tra l'altro) il banking del C64. Un valore = $37 indica configurazione normale, $38=tutta ram, fai riferimento a Mapping the C64 o AAY64 per saperne di piu'.

l "filename" 0 implica che il file e' su HD nella dir corrente, forse tu ce l'hai su un d64 montato su drive 8, quindi dovresti dare
l "filename" 8
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

MEGANOID

  • Neo-iscritto
  • *
  • Post: 19
  • Gioco Preferito: Commando
Koala Linker (problemi)
« Risposta #7 il: 16 Settembre 2008, 22:39:34 »
 Allora ricapitolando ho creato l'immagine con il Koala Linker dando al programma come JMP$ l'indirizzo del gioco a cui voglio "legarla".
Poi nell'Eca Linker ho dato Enter LOW-MEM: $c73c , ho caricato la picture,poi il gioco e ad Enter SYS-ADR: ho dato $0801.
La prima volta che ho caricato il nuovo file che mi era stato creato è uscita l'immagine Koala ma una volta premuta la barra spaziatrice mi è uscito Ready e cursore.
Quindi ho pensato che fosse il gioco Commando a darmi problemi e ho provato a linkare successivamente vari giochi tra cui Frogger, Pac Man e Congo Bongo rimodificando ogni volta con il Koala Linker il JMP$ a cui doveva eseguire il gioco premuto  il tasto "space".
Nonostante cio' non sono ancora riuscito a far funzionare il tutto.
Dove è che sbaglio stavolta? Percaso in  LOW-MEM o SYS-ADR dell'Eca Linker?

Grazie come sempre!

 :c64:
 

eregil

  • Administrator
  • Utente
  • *****
  • Post: 710
  • Gioco Preferito: Impossible Mission
Koala Linker (problemi)
« Risposta #8 il: 16 Settembre 2008, 23:27:33 »
 La risposta te l'ha già data sopra, se avessi letto più attentamente... usa $c73c come SYS-ADR (indirizzo della SYS di partenza, vuoi dargli quella del visualizzatore koala) e $0800 come LOW-MEM (indirizzo iniziale della memoria da crunchare), skip niente.

Mettere $0801 come SYS-ADR è un errore grossolano, a quell'indirizzo c'è il link della riga BASIC e non codice macchina eseguibile (è come se provassi a caricare un programma e poi a dare SYS 2049).
 
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.

MEGANOID

  • Neo-iscritto
  • *
  • Post: 19
  • Gioco Preferito: Commando
Koala Linker (problemi)
« Risposta #9 il: 17 Settembre 2008, 12:57:04 »
 Bene, innanzitutto grazie a iAN CooG/HF e ad Eregil per tutto ma ahimè mancherebbe davvero molto poco per farmi felice e vedere uno dei miei desideri avverarsi.
Dunque ho seguito l'ultima dritta nel senso che faccio saltare la picture creata con Koala Linker a $0812 che sarebbe SYS 2066 del gioco Commando.
Poi nell'Eca Linker ho fatto come dice Eregil mettendo come LOW-MEM $0800 ( che non capisco ancora che indirizzo sia ) e come SYS-ADR $c73c ossea quello dell'imagine del Koala Linker.
Il risultato è che compare l'immagine del Koala linkata al gioco ma una volta premuto spazio esce ready e se solo do sys 2066 inizia il gioco commando.

Cosa posso fare?

Davvero un grazie di cuore a tutti voi per l'auito

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Koala Linker (problemi)
« Risposta #10 il: 17 Settembre 2008, 20:28:20 »
 Non mi funziona la sfera magica. Metti a disposizione i files e programmi che stai usando tu che vediamo dove sta l'errore.
Questo e' un d64 con le mie prove e funziona.

iancoog.altervista.org/hid/yawn.rar

Ah, il low-mem da quanto ne so indica l'indirizzo piu' basso da dove il compattatore di eca linker dovra' partire a compattare la memoria.
Ci sono linkers piu' semplici e intelligenti da usare, ad esempio Sledgehammer 2, ma davvero, exomizer e' ancora piu' immediato per me:

exomizer sfx $c73c "commando.prg" "pic (c73c-f000).prg" -o "commando+pic.prg" -n
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

MEGANOID

  • Neo-iscritto
  • *
  • Post: 19
  • Gioco Preferito: Commando
Koala Linker (problemi)
« Risposta #11 il: 17 Settembre 2008, 21:57:23 »
 Grazie di cuore iAN_CooG/HF ,in effetti ho visto che a te funziona io ho fatto un altro tentativo ma niente da fare per cui ti allego l'immagine del mio .D64 cosi' ci dai un'occhiata.

http://www.fileqube.com/shared/PJPzM105657

In effetti la versione di Commando che uso io parte con Sys 2061 per cui l'immagine del Koala Link da me elaborata fa JMP$ a 080d e nell'Eca Linker a Low Mem ho dato 0800 come suggerito da Eregil ma dopo la pressione di SPACE nel file finale esce Ready!

Fammi sapere a te cosa succede o dove sbaglio.

Poi grazie alla sintassi che mi hai illustrato provero anche Exomizer ma prima volevo capire come funzionasse l'Eca Linker!

Grazie davvero di Cuore!

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Koala Linker (problemi)
« Risposta #12 il: 17 Settembre 2008, 22:09:01 »
 hai dato semplicemente la jmp sbagliata nel pic linker
Codice: [Seleziona]
Filename: PIC (C73C-F000).prg
Loading address: $C73C


C793  20 E4 FF  JSR $FFE4
C796  F0 FB     BEQ $C793

C798  20 9E C7  JSR $C79E
C79B  4C 50 00  JMP $0050 <---
devi immettere $080d per esteso, $ e 4 cifre, oppure in decimale 2061  
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

MEGANOID

  • Neo-iscritto
  • *
  • Post: 19
  • Gioco Preferito: Commando
Koala Linker (problemi)
« Risposta #13 il: 17 Settembre 2008, 22:42:54 »
 Finalmente Funziona! Adesso si che posso considerarmi contento.
Sono due giorni che ci sbatto la testa  :doh: e forse vi annoio con i miei esperimenti e tutto non andava per un $.
Se avessi dato l'indirizzo in Decimale avrei fatto prima!
Ma purtroppo sbagliando si impara!
Di nuovo un mio fraterno grazie per la gentilezza,zelo e cordialità!

Long Live to Ready64!  :c64: