View Single Post
Old 14 August 2020, 11:10   #94
ross
Defendit numerus
 
ross's Avatar
 
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,468
Quote:
Originally Posted by mr.spiv View Post
Sounds something like the "original" non-ADFable loader that old Smarty preview had. Although, it used file table but 4 bytes alignment for "files". It also had this nice property of doing per track (vs. per sector now) decompression while disk DMA was already loading the next track I think the ripped loader is in the Smarty preview "crack" of mine from 2015.

Btw #1.. what do you mean by "residuals"?

Btw #2.. I could have a nice Scoopex trainer intro available, lol
Missed this 2015 'preview'! I've to take a look at it .
Back to this ADF loader. I had two option:
- recycle and modify my Ocean free-position loader, adapted for the sector based depacker
- make something totally new adapting to the existing code

I chose the latter because it seemed much easier and faster to implement.
So how to manage the sectors that are required by the loader and depacker?
I defined a new fat format with four 16bit fields: 1) start sector, 2) how many -1, 3) offset in residuals table, 4) residual length
'Residuals' is nothing else than the [last sector valid bytes] for all file stacked together somewhere in 'fast' ram.
So I made a very simple program in C, to which I pass the list of files, which generates me: an ADF containing the data of the files for all 'full' 512 bytes sectors, a residual file that I will immediately stock in fast ram at boot and a fat that I will use in the loader.
Residuals are only 4260 bytes, there is plenty of space in fast ram for it

Quote:
Originally Posted by jotd View Post
The lowlevel routines of this game were impressive.Too bad more games weren't produced with it.

@ross yes I alslo added a keyboard routine and a pause key. Game waits for VBL interrupt actively I put that here.
Yep, I inserted mine when game is on state 3, at $2c088
And yes, this game is really well written.
ross is offline  
 
Page generated in 0.04766 seconds with 11 queries