[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: