[zxspectrum] Re: HeadBall
- From: "Alessandro" <apoppi@xxxxxxxx>
- To: <zxspectrum@xxxxxxxxxxxxx>
- Date: Mon, 1 May 2006 17:56:06 +0200
On Monday, May 01, 2006 12:49 PM [GMT+1],
Enrico Maria Giordano <e.m.giordano@xxxxxxxxxxxxxxx> wrote:
Dalla pagina piena di giochi recentemente segnalata ho scaricato
HeadBall e devo dire che è veramente carino! Semplice, dalla grafica
varia e ben rifinita e dai movimenti fluidi. Se fosse un gioco 48k lo
avrei già incluso in TBOSG. Complimenti all'autore!
Grazie dell'info, lo scarico anche io.
Ho trovato un bug nelle routines di snapshot: Magic Fields faceva crashare
clamorosamente sia lo snapshot che il restore sia su MMC che via rs-232.
Il crash, particolarmente spettacolare, provvedeva anche a scrivere dati a
caso sulla MMC (anche se lo snap avveniva via seriale!!!) (uno spettacolo).
Dopo varie indagini ho scoperto la causa: la routine che rileva l'IM-MODE
non puo` evitare di disabilitare gli interrupt, che dovranno essere
riabilitati all'uscita. Non posso pero` settare solo IFF2 (in modo da avere
la riabilitazione degli int mascherabili solo all'uscita del mio handler,
ovvero all'esecuzione della RETN), ma solo settare sia IFF1 che IFF2 con una
istruzione EI.
Il fatto e` che se il gioco in esecuzione usa IM2 E la relativa routine di
interrupt conta sulla presenza della ROM del basic, questo va in crash
perche` almeno un interrupt viene eseguito mentre c'e' ancora la mia rom
swappata dentro. La mia rom prevede una routine fake composta da EI, RETI,
solo che in IM2 non viene eseguita.
Adesso faccio cosi`: quando so di avere a che fare con IM2 e devo
riabilitare gli interrupt, prima di tutto setto IM1, poi abilito con EI, poi
eseguo un paio di HALT, dopodiche` passo a IM2 ed esco rapidamente. In
questo modo ho 20ms (10 se lavoro a 100Hz) prima del prossimo interrupt, che
trovera` la rom giusta.
Il motivo per cui mi si attivava la scrittura in MMC e` che casualmente il
salto in rom da parte dell'handler dell'interrupt avveniva in quella zona.
Ciao!
Other related posts: