|
Re: mode7 demo article [message #369626 is a reply to message #369618] |
Tue, 26 June 2018 14:11 |
|
Originally posted by: Thomas Harte
On Tuesday, 26 June 2018 12:13:28 UTC-4, vi...@pianoman.cluster.toy wrote:
> So if anyone wants more details, there's an article on my
> Apple II Mode7 Demo in the just-released PoC||GTFO 0x18.
>
> If you don't want to download that 80MB PDF to read it, I have a much
> smaller extended version of the article availble here:
> http://www.deater.net/weave/vmwprod/mode7_demo/mode7_demo.pd f
>
> Vince
Good read! I once implemented Mode 7 on an Atari Lynx, which is a 65SC02 but otherwise so different as not to be a particularly relevant comparison (it has a parallel maths unit, and a blitter) other than that I'm curious about the tilelookup(tilex, tiley) part of your inner loop.
I think I ended up with the source image being a 1 byte per pixel bitmap, and self-modifying the high part of the address prior to a lda address, y for a 2d lookup. But that prima facie expects the bitmap to be the full 64kb address space.
So you probably came up with a smarter solution?
|
|
|
Re: mode7 demo article [message #369631 is a reply to message #369626] |
Tue, 26 June 2018 15:25 |
Vince Weaver
Messages: 136 Registered: April 2013
Karma: 0
|
Senior Member |
|
|
On 2018-06-26, Thomas Harte <thomas.harte@gmail.com> wrote:
> I'm curious about the tilelookup(tilex, tiley) part of your inner
> loop.
>
> I think I ended up with the source image being a 1 byte per pixel
> bitmap, and self-modifying the high part of the address prior to a lda
> address, y for a 2d lookup. But that prima facie expects the bitmap to
> be the full 64kb address space.
>
> So you probably came up with a smarter solution?
The lookup is extemely low-resolution.
The tile lookup is just a 64x64 grid, which wraps (by masking off the
high bits).
Each grid point is a solid-color byte, of which only half is used for
the color (the lo-res 16 colors).
To save space, on the island map the island is an 8x8 grid and the ocean
is a separate 8x4 grid, and the lookup code picks the proper one to look into.
For the checkerboard background the grid is just a 2x2 black/white grid
generated on the fly.
I probably could make it use a much finer grained background image at the
expense of a lot more RAM. I was semi-intentionally going for a blocky
look so when 64x64 looked OK I didn't try anything more elaborate.
Vince
|
|
|
Re: mode7 demo article [message #369685 is a reply to message #369618] |
Wed, 27 June 2018 21:02 |
|
Originally posted by: Tom Porter
When this first game out I hacked the map... I attempted to copy/simplify it but was unsuccessful at the time... (my decimal assembler may have had something to do with it). MODE 7 is the ultimate APPLE project... its right up there with Lawless Legends! Great job Vince!
|
|
|