diff --git a/macros/APP.MACS.S b/macros/APP.MACS.S index ae5b7dd..b8f8999 100644 --- a/macros/APP.MACS.S +++ b/macros/APP.MACS.S @@ -24,20 +24,10 @@ _Mul128 mac asl asl <<< -; xba ; Naive is 7 ASL instructions = 14 cycles -; lsr ; By using XBA, we can save a couple cycles -; bcc *+5 -; ora #$8000 -; and #$007F - - -_Mul4096 mac - xba - asl - asl - asl - asl - <<< +; Possible optimization (assumes accumulator is <512). 8 cycles/5 bytes vs 14 cycles/7 bytes +; cmp #$0100 +; xba +; ror _Div16 mac lsr @@ -200,6 +190,10 @@ next + + + + diff --git a/package-lock.json b/package-lock.json index 88655ec..82b4205 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,15 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "exec-sh": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", @@ -13,6 +22,46 @@ "merge": "^1.2.0" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "dev": true + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "dev": true, + "requires": { + "punycode": "2.x.x" + } + }, + "joi": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", + "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "dev": true, + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + }, + "dependencies": { + "hoek": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==", + "dev": true + } + } + }, "merge": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", @@ -25,12 +74,57 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true + }, + "node-expat": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/node-expat/-/node-expat-2.4.0.tgz", + "integrity": "sha512-X8Y/Zk/izfNgfayeOeUGqze7KlaOwVJ9SDTjHUMKd0hu0aFTRpLlLCBwmx79cTPiQWD24I1YOafF+U+rTvEMfQ==", + "dev": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.13.2" + } + }, "pngjs": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", "dev": true }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "string-builder": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/string-builder/-/string-builder-0.1.8.tgz", + "integrity": "sha512-0pUtikmhChLaf+uLqzYTgzTCQc4jAjaWHolxPGq3D77SgSoTqkOlv0RVF3XwDxMR9x/y1WPPwkTNalZCA9DGnQ==", + "dev": true + }, + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "dev": true, + "requires": { + "hoek": "6.x.x" + }, + "dependencies": { + "hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==", + "dev": true + } + } + }, "watch": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", @@ -40,6 +134,17 @@ "exec-sh": "^0.2.0", "minimist": "^1.2.0" } + }, + "xml2json": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/xml2json/-/xml2json-0.12.0.tgz", + "integrity": "sha512-EPJHRWJnJUYbJlzR4pBhZODwWdi2IaYGtDdteJi0JpZ4OD31IplWALuit8r73dJuM4iHZdDVKY1tLqY2UICejg==", + "dev": true, + "requires": { + "hoek": "^4.2.1", + "joi": "^13.1.2", + "node-expat": "^2.3.18" + } } } } diff --git a/package.json b/package.json index 31d968a..47d7487 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,8 @@ "build:assets-woz": "node ./tools/png2iigs.js ./assets/woz.png ./emu/bg1a.bin --start-index 6 && node ./tools/pngtoiigs.js ./assets/woz-shifted.png ./emu/bg1b.bin --start-index 6 && node ./tools/pngtoiigs.js ./assets/donut-plains-1-6-color.png ./emu/fg1.bin", "build:assets-woz-fatbits": "node ./tools/png2iigs.js ./assets/woz-pixelated.png ./emu/bg1a.bin --start-index 6 && node ./tools/pngtoiigs.js ./assets/woz-shifted.png ./emu/bg1b.bin --start-index 6 && node ./tools/pngtoiigs.js ./assets/donut-plains-1-6-color.png ./emu/fg1.bin", "build:assets-color-cycle": "node ./tools/png2iigs.js ./assets/rotopattern.png ./emu/bg1a.bin --start-index 6 && node ./tools/pngtoiigs.js ./assets/woz-shifted.png ./emu/bg1b.bin --start-index 6 && node ./tools/pngtoiigs.js ./assets/donut-plains-1-6-color.png ./emu/fg1.bin", - "build:map": "node ./tools/tiled2iigs.js ./assets/tiled/world_1-1.json > ./src/Level.s", - "build:tiles": "node ./tools/png2iigs.js ./assets/tilesets/smb-16.png --as-tile-data > src/App.Tile.s" + "build:map": "node ./tools/tiled2iigs.js ./assets/tiled/world_1-1.json --output-dir ./src", + "build:tiles": "node ./tools/png2iigs.js ./assets/tilesets/smb-16.png --as-tile-data > src/App.TileSet.s" }, "repository": { "type": "git", @@ -36,6 +36,8 @@ "homepage": "https://github.com/lscharen/iigs-game-engine#readme", "devDependencies": { "pngjs": "^6.0.0", - "watch": "latest" + "string-builder": "^0.1.8", + "watch": "latest", + "xml2json": "^0.12.0" } } diff --git a/src/App.Main.s b/src/App.Main.s index e4ef4b2..f84a5c3 100644 --- a/src/App.Main.s +++ b/src/App.Main.s @@ -1275,7 +1275,9 @@ qtRec adrl $0000 put blitter/Vert.s put blitter/BG1.s PUT TileMap.s - PUT Level.s + PUT App.TileMapBG0.s + PUT App.TileMapBG1.s + diff --git a/src/Level.s b/src/App.TileMapBG0.s similarity index 98% rename from src/Level.s rename to src/App.TileMapBG0.s index bae822e..d1da561 100644 --- a/src/Level.s +++ b/src/App.TileMapBG0.s @@ -1,19 +1,21 @@ + ; Tiled Map Export ; ; This is a generated file. Do not modify. -BG0SetUp + +BG1SetUp lda #256 - sta TileMapWidth + sta BG1TileMapWidth lda #30 - sta TileMapHeight - lda #Tile_Layer_1 - sta TileMapPtr - lda #^Tile_Layer_1 - sta TileMapPtr+2 + sta BG1TileMapHeight + lda #App_TileMapBG0 + sta BG1TileMapPtr + lda #^App_TileMapBG0 + sta BG1TileMapPtr+2 rts -Tile_Layer_1 +App_TileMapBG0 dw 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 dw 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 dw 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 @@ -384,7 +386,7 @@ Tile_Layer_1 dw 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 dw 41,41,56,21,21,21,21,59,41,41,41,41,41,41,41,41 dw 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 - dw 41,41,57,58,41,41,41,41,41,41,41,41,41,41,41,41 + dw 41,41,57,2147483705,41,41,41,41,41,41,41,41,41,41,41,41 dw 41,41,41,41,41,41,41,41,15,16,17,18,41,41,41,41 dw 41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22 dw 41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22 @@ -400,7 +402,7 @@ Tile_Layer_1 dw 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 dw 41,56,21,62,21,21,62,21,59,41,41,41,41,41,41,41 dw 41,41,41,41,41,41,41,41,42,43,42,43,42,43,41,41 - dw 41,56,21,62,59,41,41,41,41,41,41,41,41,41,41,41 + dw 41,56,21,62,2147483704,41,41,41,41,41,41,41,41,41,41,41 dw 42,43,41,41,41,41,41,41,19,20,21,22,41,41,41,41 dw 41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22 dw 41,41,41,41,42,43,42,43,41,41,41,41,19,20,21,22 @@ -416,7 +418,7 @@ Tile_Layer_1 dw 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 dw 56,21,21,21,21,21,21,21,21,59,41,41,41,41,41,41 dw 41,41,41,41,41,41,41,44,45,45,45,45,45,45,46,41 - dw 56,21,21,21,21,59,41,41,41,41,41,41,41,41,41,44 + dw 56,21,21,21,21,2147483704,41,41,41,41,41,41,41,41,41,44 dw 45,45,46,41,41,41,41,41,19,20,21,22,41,41,41,41 dw 41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22 dw 41,41,41,44,45,45,45,45,46,41,41,41,19,20,21,22 @@ -493,4 +495,4 @@ Tile_Layer_1 dw 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 dw 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 dw 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 - dw 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 + dw 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 \ No newline at end of file diff --git a/src/App.TileMapBG1.s b/src/App.TileMapBG1.s new file mode 100644 index 0000000..87079de --- /dev/null +++ b/src/App.TileMapBG1.s @@ -0,0 +1,498 @@ + +; Tiled Map Export +; +; This is a generated file. Do not modify. + + +BG0SetUp + lda #256 + sta TileMapWidth + lda #30 + sta TileMapHeight + lda #App_TileMapBG1 + sta TileMapPtr + lda #^App_TileMapBG1 + sta TileMapPtr+2 + rts + +App_TileMapBG1 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,90,91,94 + dw 95,94,95,94,95,92,93,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,130,131,134 + dw 135,134,135,134,135,132,133,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,90,91,94,95,94,95,94 + dw 95,92,93,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,130,131,134,135,134,135,134 + dw 135,132,133,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,90,91,94,95,94,95,92,93,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,130,131,134,135,134,135,132,133,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,54,55,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,54,55,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,54,55,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,54,55,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,54,55,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,54,55,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,54,55,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,54,55,0,0,0,0,0,0,0 + dw 0,54,55,0,0,0,0,0,0,0,0,0,0,54,55,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \ No newline at end of file diff --git a/src/App.TileSet.s b/src/App.TileSet.s new file mode 100644 index 0000000..2fd3355 --- /dev/null +++ b/src/App.TileSet.s @@ -0,0 +1,2180 @@ + +tiledata ENT + +; Reserved space (tile 0 is special...) + ds 128 +; Tile ID 1 + hex 01111111 + hex 10000000 + hex 10000000 + hex 10000000 + hex 10000000 + hex 10000000 + hex 10000000 + hex 10000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 11111110 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 2 + hex 12011110 + hex 02100002 + hex 02100002 + hex 02100002 + hex 02120002 + hex 02022220 + hex 02111112 + hex 02100002 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 01111021 + hex 20000120 + hex 20000120 + hex 20000120 + hex 20002120 + hex 02222020 + hex 21111120 + hex 20000120 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 3 + hex 10000000 + hex 10000000 + hex 22000000 + hex 11220000 + hex 10112222 + hex 10001112 + hex 10000002 + hex 02222220 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000001 + hex 00000001 + hex 00000022 + hex 00002211 + hex 22221101 + hex 21110001 + hex 20000001 + hex 02222220 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 4 + hex 02100002 + hex 02100002 + hex 21000002 + hex 21000002 + hex 10000002 + hex 10000002 + hex 10000022 + hex 12222220 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 20000120 + hex 20000120 + hex 20000012 + hex 20000012 + hex 20000001 + hex 20000001 + hex 22000001 + hex 02222221 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 5 + hex 01111111 + hex 10111111 + hex 11011111 + hex 11101111 + hex 11110000 + hex 11110000 + hex 11110000 + hex 11110000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 11111110 + hex 11111101 + hex 11111011 + hex 11110111 + hex 00001111 + hex 00001111 + hex 00001111 + hex 00001111 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 6 + hex 11111112 + hex 11111122 + hex 11111222 + hex 11112222 + hex 00002222 + hex 00002222 + hex 00002222 + hex 00002222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 21111111 + hex 22111111 + hex 22211111 + hex 22221111 + hex 22220000 + hex 22220000 + hex 22220000 + hex 22220000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 7 + hex 11110000 + hex 11110000 + hex 11110000 + hex 11110000 + hex 11122222 + hex 11222222 + hex 12222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00001111 + hex 00001111 + hex 00001111 + hex 00001111 + hex 22222111 + hex 22222211 + hex 22222221 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 8 + hex 00002222 + hex 00002222 + hex 00002222 + hex 00002222 + hex 22220222 + hex 22222022 + hex 22222202 + hex 22222220 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22220000 + hex 22220000 + hex 22220000 + hex 22220000 + hex 22202222 + hex 22022222 + hex 20222222 + hex 02222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 9 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + +; Tile ID 10 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 43333333 + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 0fffffff + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex 33333334 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + hex fffffff0 + +; Tile ID 11 + hex 22222222 + hex 24444444 + hex 25555544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22222222 + hex 44444442 + hex 44555552 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 12 + hex 22222222 + hex 44444444 + hex 44445555 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22222222 + hex 44444444 + hex 55554444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 13 + hex 22222222 + hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22222222 + hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 14 + hex 22222222 + hex 44444442 + hex 55555552 + hex 54545442 + hex 55454442 + hex 54545442 + hex 55454442 + hex 54545442 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22222222 + hex 24444444 + hex 25555555 + hex 24454545 + hex 24445455 + hex 24454545 + hex 24445455 + hex 24454545 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 15 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 22222222 + hex 33222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex ff000000 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 22222222 + hex 22222233 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 000000ff + +; Tile ID 16 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 22222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 22222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 17 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 22222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 22222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 18 + hex 55454442 + hex 54545442 + hex 55454442 + hex 54545442 + hex 55454442 + hex 54545442 + hex 22222222 + hex 22222233 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 000000ff + hex 24445455 + hex 24454545 + hex 24445455 + hex 24454545 + hex 24445455 + hex 24454545 + hex 22222222 + hex 33222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex ff000000 + +; Tile ID 19 + hex 33244455 + hex 33244455 + hex 33244455 + hex 33244455 + hex 33244455 + hex 33244455 + hex 33244455 + hex 33244455 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex 55444233 + hex 55444233 + hex 55444233 + hex 55444233 + hex 55444233 + hex 55444233 + hex 55444233 + hex 55444233 + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + +; Tile ID 20 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 21 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 22 + hex 45444233 + hex 54544233 + hex 45444233 + hex 54544233 + hex 45444233 + hex 54544233 + hex 45444233 + hex 54544233 + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex 33244454 + hex 33244545 + hex 33244454 + hex 33244545 + hex 33244454 + hex 33244545 + hex 33244454 + hex 33244545 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + +; Tile ID 23 + hex 00000000 + hex 00002000 + hex 00002000 + hex 00002000 + hex 00020000 + hex 00020000 + hex 00020000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00020000 + hex 00020000 + hex 00020000 + hex 00002000 + hex 00002000 + hex 00002000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 24 + hex 11110002 + hex 00010002 + hex 00010002 + hex 00012222 + hex 00010000 + hex 00010000 + hex 00010000 + hex 22211111 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 20001111 + hex 20001000 + hex 20001000 + hex 22221000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 11111222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 25 + hex 00011111 + hex 00010000 + hex 00010000 + hex 22210000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 11112222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 11111000 + hex 00001000 + hex 00001000 + hex 00001222 + hex 00001000 + hex 00001000 + hex 00001000 + hex 22221111 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 26 + hex 00000002 + hex 00000002 + hex 00000002 + hex 22222222 + hex 00020000 + hex 00020000 + hex 00020000 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 22222222 + hex 00002000 + hex 00002000 + hex 00002000 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 27 + hex 32222222 + hex 20000000 + hex 20200000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex f0000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22222223 + hex 00000002 + hex 00000202 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 0000000f + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 28 + hex 22222223 + hex 00000002 + hex 00000202 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 0000000f + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 32222222 + hex 20000000 + hex 20200000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex f0000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 29 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20200000 + hex 20000000 + hex 32222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f0000000 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000202 + hex 00000002 + hex 22222223 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 0000000f + +; Tile ID 30 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000202 + hex 00000002 + hex 22222223 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 0000000f + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20200000 + hex 20000000 + hex 32222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f0000000 + +; Tile ID 31 + hex 11113333 + hex 00013333 + hex 00013333 + hex 00013333 + hex 00013333 + hex 00013333 + hex 00013333 + hex 22211111 + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 00000000 + hex 33331111 + hex 33331000 + hex 33331000 + hex 33331000 + hex 33331000 + hex 33331000 + hex 33331000 + hex 11111222 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex 00000000 + +; Tile ID 32 + hex 33311111 + hex 33310000 + hex 33310000 + hex 33310000 + hex 33310000 + hex 33310000 + hex 33310000 + hex 11112222 + hex fff00000 + hex fff00000 + hex fff00000 + hex fff00000 + hex fff00000 + hex fff00000 + hex fff00000 + hex 00000000 + hex 11111333 + hex 00001333 + hex 00001333 + hex 00001333 + hex 00001333 + hex 00001333 + hex 00001333 + hex 22221111 + hex 00000fff + hex 00000fff + hex 00000fff + hex 00000fff + hex 00000fff + hex 00000fff + hex 00000fff + hex 00000000 + +; Tile ID 33 + hex 00000222 + hex 00022222 + hex 00222222 + hex 22222222 + hex 02222222 + hex 02222222 + hex 22222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22200000 + hex 22222000 + hex 22222200 + hex 22222222 + hex 22222220 + hex 22222220 + hex 22222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 34 + hex 22200002 + hex 22222002 + hex 22222202 + hex 22222222 + hex 22222220 + hex 22222220 + hex 22222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 20000222 + hex 20022222 + hex 20222222 + hex 22222222 + hex 02222222 + hex 02222222 + hex 22222222 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 35 + hex 33333322 + hex 33333245 + hex 33332455 + hex 33332455 + hex 33332555 + hex 33332555 + hex 33333255 + hex 33333322 + hex ffffff00 + hex fffff000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex fffff000 + hex ffffff00 + hex 22333333 + hex 54233333 + hex 55423333 + hex 55423333 + hex 55523333 + hex 55523333 + hex 55233333 + hex 22333333 + hex 00ffffff + hex 000fffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 000fffff + hex 00ffffff + +; Tile ID 36 + hex 22333333 + hex 55233333 + hex 55523333 + hex 55523333 + hex 55523333 + hex 55523333 + hex 55233333 + hex 22333333 + hex 00ffffff + hex 000fffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 000fffff + hex 00ffffff + hex 33333322 + hex 33333255 + hex 33332555 + hex 33332555 + hex 33332555 + hex 33332555 + hex 33333255 + hex 33333322 + hex ffffff00 + hex fffff000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex fffff000 + hex ffffff00 + +; Tile ID 37 + hex 33322222 + hex 33244444 + hex 32444444 + hex 32444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex fff00000 + hex ff000000 + hex f0000000 + hex f0000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22222333 + hex 44444233 + hex 44444423 + hex 44444423 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 00000fff + hex 000000ff + hex 0000000f + hex 0000000f + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 38 + hex 22222222 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 22222222 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 39 + hex 22222333 + hex 44444233 + hex 44444423 + hex 44444423 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 00000fff + hex 000000ff + hex 0000000f + hex 0000000f + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 33322222 + hex 33244444 + hex 32444444 + hex 32444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex fff00000 + hex ff000000 + hex f0000000 + hex f0000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 40 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + +; Tile ID 41 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + +; Tile ID 42 + hex 33333322 + hex 33333244 + hex 33322444 + hex 33244444 + hex 33244444 + hex 33244444 + hex 32444554 + hex 24445444 + hex ffffff00 + hex fffff000 + hex fff00000 + hex ff000000 + hex ff000000 + hex ff000000 + hex f0000000 + hex 00000000 + hex 22333333 + hex 44233333 + hex 44422333 + hex 44444233 + hex 44444233 + hex 44444233 + hex 45544423 + hex 44454442 + hex 00ffffff + hex 000fffff + hex 00000fff + hex 000000ff + hex 000000ff + hex 000000ff + hex 0000000f + hex 00000000 + +; Tile ID 43 + hex 22333333 + hex 44233333 + hex 44423333 + hex 44423233 + hex 44442423 + hex 45444442 + hex 44544442 + hex 44444442 + hex 00ffffff + hex 000fffff + hex 0000ffff + hex 0000f0ff + hex 0000000f + hex 00000000 + hex 00000000 + hex 00000000 + hex 33333322 + hex 33333244 + hex 33332444 + hex 33232444 + hex 32424444 + hex 24444454 + hex 24444544 + hex 24444444 + hex ffffff00 + hex fffff000 + hex ffff0000 + hex ff0f0000 + hex f0000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 44 + hex 33333222 + hex 33332444 + hex 33324444 + hex 33344444 + hex 32244444 + hex 24444444 + hex 24444444 + hex 32444444 + hex fffff000 + hex ffff0000 + hex fff00000 + hex fff00000 + hex f0000000 + hex 00000000 + hex 00000000 + hex f0000000 + hex 22233333 + hex 44423333 + hex 44442333 + hex 44444333 + hex 44444223 + hex 44444442 + hex 44444442 + hex 44444423 + hex 000fffff + hex 0000ffff + hex 00000fff + hex 00000fff + hex 0000000f + hex 00000000 + hex 00000000 + hex 0000000f + +; Tile ID 45 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 46 + hex 23323333 + hex 23242333 + hex 42442333 + hex 44442323 + hex 44444242 + hex 44444442 + hex 44444442 + hex 44444423 + hex 0ff0ffff + hex 0f000fff + hex 00000fff + hex 00000f0f + hex 00000000 + hex 00000000 + hex 00000000 + hex 0000000f + hex 33332332 + hex 33324232 + hex 33324424 + hex 32324444 + hex 24244444 + hex 24444444 + hex 24444444 + hex 32444444 + hex ffff0ff0 + hex fff000f0 + hex fff00000 + hex f0f00000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f0000000 + +; Tile ID 47 + hex 66726666 + hex 11726111 + hex 11726111 + hex 11726111 + hex 11726111 + hex 11726111 + hex 77727777 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 66662766 + hex 11162711 + hex 11162711 + hex 11162711 + hex 11162711 + hex 11162711 + hex 77772777 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 48 + hex 66666672 + hex 61111172 + hex 61111172 + hex 61111172 + hex 61111172 + hex 61111172 + hex 77777772 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 27666666 + hex 27111116 + hex 27111116 + hex 27111116 + hex 27111116 + hex 27111116 + hex 27777777 + hex 22222222 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 49 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444442 + hex 32444423 + hex 33222233 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f000000f + hex ff0000ff + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 24444442 + hex 32444423 + hex 33222233 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f000000f + hex ff0000ff + +; Tile ID 50 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444442 + hex 24444423 + hex 32222233 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 0000000f + hex f00000ff + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 24444444 + hex 32444442 + hex 33222223 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f0000000 + hex ff00000f + +; Tile ID 51 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444442 + hex 24444425 + hex 52222255 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 24444444 + hex 52444442 + hex 55222225 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 52 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 24444442 + hex 32444423 + hex 33222233 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f000000f + hex ff0000ff + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444442 + hex 32444423 + hex 33222233 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f000000f + hex ff0000ff + +; Tile ID 53 + hex 33333361 + hex 33333631 + hex 33333113 + hex 33361333 + hex 33311333 + hex 36133333 + hex 63133333 + hex 11333333 + hex ffffff00 + hex fffff0f0 + hex fffff00f + hex fff00fff + hex fff00fff + hex f00fffff + hex 0f0fffff + hex 00ffffff + hex 16333333 + hex 13633333 + hex 31133333 + hex 33316333 + hex 33311333 + hex 33333163 + hex 33333136 + hex 33333311 + hex 00ffffff + hex 0f0fffff + hex f00fffff + hex fff00fff + hex fff00fff + hex fffff00f + hex fffff0f0 + hex ffffff00 + +; Tile ID 54 + hex 33332111 + hex 33332111 + hex 33332111 + hex 33332111 + hex 33332111 + hex 33332211 + hex 33333212 + hex 33332121 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex fffff000 + hex ffff0000 + hex 11123333 + hex 11123333 + hex 11123333 + hex 11123333 + hex 11123333 + hex 11223333 + hex 21233333 + hex 12123333 + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 000fffff + hex 0000ffff + +; Tile ID 55 + hex 11123333 + hex 12123333 + hex 12123333 + hex 12123333 + hex 12123333 + hex 11223333 + hex 21233333 + hex 12123333 + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 000fffff + hex 0000ffff + hex 33332111 + hex 33332121 + hex 33332121 + hex 33332121 + hex 33332121 + hex 33332211 + hex 33333212 + hex 33332121 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex fffff000 + hex ffff0000 + +; Tile ID 56 + hex 33333332 + hex 33333325 + hex 33333255 + hex 33332555 + hex 33325555 + hex 33255555 + hex 32555555 + hex 25555555 + hex fffffff0 + hex ffffff00 + hex fffff000 + hex ffff0000 + hex fff00000 + hex ff000000 + hex f0000000 + hex 00000000 + hex 23333333 + hex 52333333 + hex 55233333 + hex 55523333 + hex 55552333 + hex 55555233 + hex 55555523 + hex 55555552 + hex 0fffffff + hex 00ffffff + hex 000fffff + hex 0000ffff + hex 00000fff + hex 000000ff + hex 0000000f + hex 00000000 + +; Tile ID 57 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333222 + hex 33222555 + hex 22555555 + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex fffff000 + hex ff000000 + hex 00000000 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 22233333 + hex 55522233 + hex 55555522 + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex 000fffff + hex 000000ff + hex 00000000 + +; Tile ID 58 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 22233333 + hex 55522233 + hex 55555522 + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex 000fffff + hex 000000ff + hex 00000000 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333222 + hex 33222555 + hex 22555555 + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex ffffffff + hex fffff000 + hex ff000000 + hex 00000000 + +; Tile ID 59 + hex 23333333 + hex 52333333 + hex 55233333 + hex 55523333 + hex 55552333 + hex 55555233 + hex 55555523 + hex 55555552 + hex 0fffffff + hex 00ffffff + hex 000fffff + hex 0000ffff + hex 00000fff + hex 000000ff + hex 0000000f + hex 00000000 + hex 33333332 + hex 33333325 + hex 33333255 + hex 33332555 + hex 33325555 + hex 33255555 + hex 32555555 + hex 25555555 + hex fffffff0 + hex ffffff00 + hex fffff000 + hex ffff0000 + hex fff00000 + hex ff000000 + hex f0000000 + hex 00000000 + +; Tile ID 60 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 61 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 62 + hex 55555255 + hex 55552225 + hex 55552225 + hex 55552225 + hex 52252225 + hex 52255255 + hex 52255555 + hex 52255555 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 55255555 + hex 52225555 + hex 52225555 + hex 52225555 + hex 52225225 + hex 55255225 + hex 55555225 + hex 55555225 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 63 + hex 66666666 + hex 36666666 + hex 33666666 + hex 33366666 + hex 33336666 + hex 33333666 + hex 33333366 + hex 33333336 + hex 00000000 + hex f0000000 + hex ff000000 + hex fff00000 + hex ffff0000 + hex fffff000 + hex ffffff00 + hex fffffff0 + hex 66666666 + hex 66666663 + hex 66666633 + hex 66666333 + hex 66663333 + hex 66633333 + hex 66333333 + hex 63333333 + hex 00000000 + hex 0000000f + hex 000000ff + hex 00000fff + hex 0000ffff + hex 000fffff + hex 00ffffff + hex 0fffffff + +; Tile ID 64 + hex 66666666 + hex 65555566 + hex 55656556 + hex 56656656 + hex 56555656 + hex 55565556 + hex 55555556 + hex 66555666 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 66666666 + hex 66555556 + hex 65565655 + hex 65665665 + hex 65655565 + hex 65556555 + hex 65555555 + hex 66655566 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 diff --git a/src/App.s b/src/App.s index 629f277..f475c9d 100644 --- a/src/App.s +++ b/src/App.s @@ -1,22 +1,22 @@ ; IIgs Game Engine - TYP $B3 ; S16 file + TYP $B3 ; S16 file DSK GTETestApp XPL ; Segment #1 -- Main execution block ASM App.Main.s - DS 0 ; Number of bytes of 0's to add at the end of the Segment - KND #$1100 ; Type and Attributes ($11=Static+Bank Relative,$00=Code) - ALI None ; Boundary Alignment (None) + DS 0 ; Number of bytes of 0's to add at the end of the Segment + KND #$1100 ; Type and Attributes ($11=Static+Bank Relative,$00=Code) + ALI None ; Boundary Alignment (None) SNA Main ; Segment #2 -- 64KB Tile Memory - ASM App.Tile.s + ASM App.TileSet.s DS 0 - KND #$1001 ; Type and Attributes ($11=Static+Bank Relative,$01=Data) + KND #$1001 ; Type and Attributes ($11=Static+Bank Relative,$01=Data) ; ALI BANK SNA Tiles @@ -24,6 +24,7 @@ ASM RotData.s DS 0 - KND #$1001 ; Type and Attributes ($11=Static+Bank Relative,$01=Data) + KND #$1001 ; Type and Attributes ($11=Static+Bank Relative,$01=Data) ALI BANK SNA RotData + diff --git a/src/blitter/DirectPage.s b/src/blitter/DirectPage.s index 77d1612..b998d12 100644 --- a/src/blitter/DirectPage.s +++ b/src/blitter/DirectPage.s @@ -51,7 +51,11 @@ TileMapWidth equ 70 TileMapHeight equ 72 TileMapPtr equ 74 -Next equ 78 +BG1TileMapWidth equ 78 +BG1TileMapHeight equ 80 +BG1TileMapPtr equ 82 + +Next equ 86 BankLoad equ 128 @@ -84,3 +88,4 @@ DIRTY_BIT_BG0_REFRESH equ $0010 DIRTY_BIT_BG1_REFRESH equ $0020 + diff --git a/src/blitter/Tiles.s b/src/blitter/Tiles.s index 5e8abee..9154d05 100644 --- a/src/blitter/Tiles.s +++ b/src/blitter/Tiles.s @@ -334,10 +334,10 @@ CopyTileMemV ; LDA 00,x / PHA where the operand is fixed when the tile is rendered ; $B5 $00 $48 ; -; A = dynamic tile id (must be an 8-bit value) +; A = dynamic tile id (must be <32) -DynTile - and #$00FF +DynamicTile + and #$007F ; clamp to < (32 * 4) ora #$4800 sta: $0004,y sta $1004,y @@ -379,6 +379,104 @@ DynTile rep #$20 rts +; Helper function to copy tile data to the appropriate location in Bank 0 +; X = address of tile +; Y = tile address in bank 0 +CopyTileDToDyn + phb + pea $0000 + plb + plb + + ldal tiledata+0,x + sta: $0000,y + ldal tiledata+2,x + sta: $0002,y + ldal tiledata+4,x + sta $0100,y + ldal tiledata+6,x + sta $0102,y + ldal tiledata+8,x + sta $0200,y + ldal tiledata+10,x + sta $0202,y + ldal tiledata+12,x + sta $0300,y + ldal tiledata+14,x + sta $0302,y + ldal tiledata+16,x + sta $0400,y + ldal tiledata+18,x + sta $0402,y + ldal tiledata+20,x + sta $0500,y + ldal tiledata+22,x + sta $0502,y + ldal tiledata+24,x + sta $0600,y + ldal tiledata+26,x + sta $0602,y + ldal tiledata+28,x + sta $0700,y + ldal tiledata+30,x + sta $0702,y + + plb + rts + +; Helper function to copy tile mask to the appropriate location in Bank 0 +; +; X = address of tile +; Y = tile address in bank 0 +; +; Argument are the same as CopyTileDToDyn, the code takes care of adjust offsets. +; This make is possible to call the two functions back-to-back +; +; ldx tileAddr +; ldy dynTileAddr +; jsr CopyTileDToDyn +; jsr CopyTileMToDyn +CopyTileMToDyn + phb + pea $0000 + plb + plb + + ldal tiledata+32+0,x + sta: $0080,y + ldal tiledata+32+2,x + sta: $0082,y + ldal tiledata+32+4,x + sta $0180,y + ldal tiledata+32+6,x + sta $0182,y + ldal tiledata+32+8,x + sta $0280,y + ldal tiledata+32+10,x + sta $0282,y + ldal tiledata+32+12,x + sta $0380,y + ldal tiledata+32+14,x + sta $0382,y + ldal tiledata+32+16,x + sta $0480,y + ldal tiledata+32+18,x + sta $0482,y + ldal tiledata+32+20,x + sta $0580,y + ldal tiledata+32+22,x + sta $0582,y + ldal tiledata+32+24,x + sta $0680,y + ldal tiledata+32+26,x + sta $0682,y + ldal tiledata+32+28,x + sta $0780,y + ldal tiledata+32+30,x + sta $0782,y + + plb + rts ; This should never be called, because empty control value should be fast-pathed solid @@ -430,6 +528,13 @@ masked_hvflip brl CopyTileMemMV dynamic + plx + pla + asl + asl + xba ; Undo the x128 we just need x2 + brl DynamicTile + dyn_masked plx pla @@ -512,6 +617,23 @@ CopyTile + + + + + + + + + + + + + + + + +