From 5f96ccfe3ff5d8c5f065cb1981cf8763a8944dd1 Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Sat, 4 Apr 2020 11:02:29 -0400 Subject: [PATCH] Expand menu entry size from 96 -> 128, add pokemon font --- README.md | 6 ++++-- font/Pokemon.woff | Bin 0 -> 14980 bytes index.html | 7 +++++-- script/app.js | 4 ++-- script/gbnp.js | 20 +++++++++++--------- style.css | 15 ++++++++++++++- 6 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 font/Pokemon.woff diff --git a/README.md b/README.md index f02fe6b..f1e780a 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,12 @@ This tool can build the data necessary to flash new games to a [Nintendo Power G - Early GameBoy Font: https://www.dafont.com/early-gameboy.font - Nokia Cellphone FC Font: https://www.dafont.com/nokia-cellphone.font - Gamer Font: https://www.dafont.com/gamer-2.font +- Pokemon Classic Font: https://www.dafont.com/pokemon-classic.font ## Ideas +- Upload multiple games at once - Move more templating into components -- Add ability to upload arbitrary 96x8 images for menu entries +- Add ability to upload arbitrary 128x8 images for menu entries - Save settings to local storage - A setting to change scrolling ticker text -- Other romhacks to the menu? +- Upload custom background iamge diff --git a/font/Pokemon.woff b/font/Pokemon.woff new file mode 100644 index 0000000000000000000000000000000000000000..ccf0cf9ec02d0ebfdf213b79d6c3cbe239613824 GIT binary patch literal 14980 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 Font: - + - + + + +
diff --git a/script/app.js b/script/app.js index da50c47..7a102c1 100644 --- a/script/app.js +++ b/script/app.js @@ -100,12 +100,12 @@ Vue.component('bitmap-preview', { renderCanvas: function() { let canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); - ctx.putImageData(new ImageData(this.data, 96, 8), 0, 0); + ctx.putImageData(new ImageData(this.data, 128, 8), 0, 0); ctx.imageSmoothingEnabled = false; ctx.scale(2, 2); ctx.drawImage(ctx.canvas, 0, 0); ctx.setTransform(1, 0, 0, 1, 0, 0); } }, - template: '' + template: '' }); diff --git a/script/gbnp.js b/script/gbnp.js index 0f67361..940055e 100644 --- a/script/gbnp.js +++ b/script/gbnp.js @@ -14,10 +14,11 @@ const BITMAP_PREVIEW_BYTES = [ [0x00, 0x00, 0x00, 0xFF] // black ] const FONTS = [ - { style: 'normal 16px Pixeltype', y: 7 }, { style: 'normal 8px Gameboy', y: 7 }, + { style: 'normal 16px Pixeltype', y: 7 }, { style: 'normal 8px Nokia', y: 7 }, - { style: 'normal 16px Gamer', y: 7 } + { style: 'normal 16px Gamer', y: 7 }, + { style: 'normal 8px Pokemon', y: 7 }, ] class Menu { @@ -121,16 +122,19 @@ class ROM { const canvas = document.createElement("canvas"); canvas.height = 8; - canvas.width = 96; + canvas.width = 128; const ctx = canvas.getContext('2d'); ctx.imageSmoothingEnabled = false; ctx.fillStyle = 'white'; - ctx.fillRect(0, 0, 96, 8); + ctx.fillRect(0, 0, 128, 8); const font = FONTS[fontIndex || 0]; ctx.font = font.style; ctx.fillStyle = 'black'; ctx.fillText(this.menuText,1,font.y); - const imageData = ctx.getImageData(0, 0, 96, 8).data; + ctx.fillStyle = 'white'; + ctx.fillRect(127, 0, 127, 8); + + const imageData = ctx.getImageData(0, 0, 128, 8).data; for (let i = 0; i < imageData.length; i+=16){ let byte = 0; @@ -144,8 +148,8 @@ class ROM { } let outputBuffer = [] - for (let h = 0; h < 24; h+=2) { - for (let i = h; i < 192; i+=24) { + for (let h = 0; h < 32; h+=2) { + for (let i = h; i < 256; i+=32) { let a = buffer[i] let b = buffer[i+1] @@ -347,8 +351,6 @@ class Processor { // title bitmap romFile.writeBytes(rom.bitmapBuffer); - rom.bitmapBuffer - romFileIndex += 512 } diff --git a/style.css b/style.css index de3b79c..047e68c 100644 --- a/style.css +++ b/style.css @@ -26,6 +26,13 @@ font-style: normal; } +@font-face { + font-family: "Pokemon"; + src: url("./font/Pokemon.woff") format("woff"); + font-weight: normal; + font-style: normal; +} + html { font-family: sans-serif; line-height: 1.4; @@ -175,13 +182,19 @@ label#nokia { } label#gamer { - font-family: Gamer; + font-family: 'Gamer'; font-size: 32px; line-height: 0; position: relative; top: -2px; } +label#pokemon { + font-family: 'Pokemon'; + position: relative; + top: -2px; +} + noscript { font-weight: bold; color: red;