mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2025-02-26 22:29:56 +00:00
nes: update presets, vram cur/tmp display
This commit is contained in:
parent
61ffe2ae79
commit
b5d0c2410b
@ -339,9 +339,9 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||
<h3 class="modal-title">Publish Project on GitHub</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>This will migrate your existing files to a new GitHub repository.</p>
|
||||
<p><input id="githubRepoName" size="50" placeholder="Enter a project name"></input></p>
|
||||
<p><input id="githubRepoDesc" size="50" placeholder="Enter a project description"></input></p>
|
||||
<p>This will migrate your existing project to a new GitHub repository.</p>
|
||||
<p>https://github.com/username/ <input id="githubRepoName" size="35" placeholder="Enter a project name"></input></p>
|
||||
<p><input id="githubRepoDesc" size="60" placeholder="Enter a project description"></input></p>
|
||||
<p>Your repository will be <select id="githubRepoPrivate">
|
||||
<option value="public">Public</option>
|
||||
<option value="private">Private</option>
|
||||
|
@ -7,6 +7,9 @@
|
||||
#include "apu.h"
|
||||
//#link "apu.c"
|
||||
|
||||
#include "vrambuf.h"
|
||||
//#link "vrambuf.c"
|
||||
|
||||
// link the pattern table into CHR ROM
|
||||
//#link "chr_generic.s"
|
||||
|
||||
@ -79,6 +82,16 @@ void play_sound() {
|
||||
APU_NOISE_DECAY(vals[16]|vals[19], vals[17], vals[18]);
|
||||
}
|
||||
|
||||
void print_status() {
|
||||
byte i;
|
||||
vrambuf_clear();
|
||||
for (i=0; i<APU_DEFCOUNT; i++) {
|
||||
char ch = APU.status & APU_DEFS[i].chmask ? '*' : ' ';
|
||||
vrambuf_put(NTADR_A(29,i+1), &ch, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void main(void)
|
||||
{
|
||||
pal_col(1,0x04);
|
||||
@ -94,7 +107,13 @@ void main(void)
|
||||
}
|
||||
print_sound();
|
||||
play_sound();
|
||||
ppu_on_all();//enable rendering
|
||||
while (!pad_trigger(0)) ; // wait for key
|
||||
vrambuf_clear();
|
||||
set_vram_update(updbuf);
|
||||
ppu_on_all();
|
||||
// wait for key
|
||||
while (!pad_trigger(0)) {
|
||||
ppu_wait_nmi();
|
||||
print_status();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
10
src/emu.ts
10
src/emu.ts
@ -311,7 +311,9 @@ export function dumpRAM(ram:Uint8Array|number[], ramofs:number, ramlen:number) :
|
||||
return s;
|
||||
}
|
||||
|
||||
export const Keys = {
|
||||
interface KeyDef {c:number, n:string};
|
||||
|
||||
export const Keys : {[keycode:string]:KeyDef} = {
|
||||
VK_ESCAPE: {c: 27, n: "Esc"},
|
||||
VK_F1: {c: 112, n: "F1"},
|
||||
VK_F2: {c: 113, n: "F2"},
|
||||
@ -445,7 +447,7 @@ export function setKeyboardFromMap(video, switches, map, func?) {
|
||||
});
|
||||
}
|
||||
|
||||
export function makeKeycodeMap(table) {
|
||||
export function makeKeycodeMap(table : [KeyDef,number,number][]) {
|
||||
var map = {};
|
||||
for (var i=0; i<table.length; i++) {
|
||||
var entry = table[i];
|
||||
@ -454,7 +456,7 @@ export function makeKeycodeMap(table) {
|
||||
return map;
|
||||
}
|
||||
|
||||
export function padBytes(data, len) {
|
||||
export function padBytes(data:Uint8Array|number[], len:number) : Uint8Array {
|
||||
if (data.length > len) {
|
||||
throw Error("Data too long, " + data.length + " > " + len);
|
||||
}
|
||||
@ -547,7 +549,7 @@ export class Toolbar {
|
||||
}
|
||||
|
||||
// https://stackoverflow.com/questions/17130395/real-mouse-position-in-canvas
|
||||
export function getMousePos(canvas : HTMLCanvasElement, evt) {
|
||||
export function getMousePos(canvas : HTMLCanvasElement, evt) : {x:number,y:number} {
|
||||
var rect = canvas.getBoundingClientRect(), // abs. size of element
|
||||
scaleX = canvas.width / rect.width, // relationship bitmap vs. element for X
|
||||
scaleY = canvas.height / rect.height; // relationship bitmap vs. element for Y
|
||||
|
@ -55,8 +55,8 @@ const JSNES_KEYCODE_MAP = makeKeycodeMap([
|
||||
[Keys.VK_RIGHT, 0, 7],
|
||||
[Keys.VK_Q, 1, 0],
|
||||
[Keys.VK_E, 1, 1],
|
||||
[Keys.VK_4, 1, 2],
|
||||
[Keys.VK_3, 1, 3],
|
||||
[Keys.VK_1, 1, 2],
|
||||
[Keys.VK_2, 1, 3],
|
||||
[Keys.VK_W, 1, 4],
|
||||
[Keys.VK_S, 1, 5],
|
||||
[Keys.VK_A, 1, 6],
|
||||
@ -335,10 +335,10 @@ class JSNESPlatform extends Base6502Platform implements Platform {
|
||||
var scrollY = ppu.regFV + ppu.regVT*8;
|
||||
s += "ScrollX $" + hex(scrollX) + " (" + ppu.regHT + " * 8 + " + ppu.regFH + " = " + scrollX + ")\n";
|
||||
s += "ScrollY $" + hex(scrollY) + " (" + ppu.regVT + " * 8 + " + ppu.regFV + " = " + scrollY + ")\n";
|
||||
s += " Vstart $" + hex(ppu.vramTmpAddress,4) + "\n";
|
||||
s += "\n";
|
||||
s += " Scan Y: " + ppu.scanline + " X: " + ppu.curX + "\n";
|
||||
s += " VRAM " + (ppu.firstWrite?"@":"?") + " $" + hex(ppu.vramAddress,4) + "\n";
|
||||
s += "VramCur" + (ppu.firstWrite?" ":"?") + "$" + hex(ppu.vramAddress,4) + "\n";
|
||||
s += "VramTmp $" + hex(ppu.vramTmpAddress,4) + "\n";
|
||||
/*
|
||||
var PPUREGS = [
|
||||
'cntFV',
|
||||
|
@ -249,7 +249,7 @@ export class GithubService {
|
||||
var s = README_md_template;
|
||||
s = s.replace(/\$NAME/g, encodeURIComponent(reponame));
|
||||
s = s.replace(/\$PLATFORM/g, encodeURIComponent(platform_id));
|
||||
s = s.replace(/\$GITHUBURL/g, encodeURIComponent(repo.html_url));
|
||||
s = s.replace(/\$GITHUBURL/g, encodeURIComponent(repo.htmlUrl));
|
||||
s = s.replace(/\$MAINFILE/g, encodeURIComponent(mainPath));
|
||||
var config = {
|
||||
message: '8bitworkshop: updated metadata in README.md',
|
||||
|
@ -468,6 +468,7 @@ function _publishProjectToGithub(e) {
|
||||
}
|
||||
var modal = $("#publishGithubModal");
|
||||
var btn = $("#publishGithubButton");
|
||||
$("#githubRepoName").val(getFilenamePrefix(current_project.mainPath));
|
||||
modal.modal('show');
|
||||
btn.off('click').on('click', () => {
|
||||
var name = $("#githubRepoName").val()+"";
|
||||
@ -475,6 +476,10 @@ function _publishProjectToGithub(e) {
|
||||
var priv = $("#githubRepoPrivate").val() == 'private';
|
||||
var license = $("#githubRepoLicense").val()+"";
|
||||
var sess;
|
||||
if (!name) {
|
||||
alertError("You did not enter a project name.");
|
||||
return;
|
||||
}
|
||||
modal.modal('hide');
|
||||
setWaitDialog(true);
|
||||
getGithubService().login().then( () => {
|
||||
|
@ -637,7 +637,8 @@ export class MemoryView implements ProjectView {
|
||||
var nextofs = parseInt(_nextofs); // convert from string (stupid JS)
|
||||
var nextsym = addr2sym[nextofs];
|
||||
if (sym) {
|
||||
if (sym.endsWith('_SIZE__') || sym.endsWith('_LAST__') || sym.endsWith('STACKSIZE__') || sym.endsWith('FILEOFFS__'))
|
||||
// ignore certain symbols
|
||||
if (sym.endsWith('_SIZE__') || sym.endsWith('_LAST__') || sym.endsWith('STACKSIZE__') || sym.endsWith('FILEOFFS__') || sym.startsWith('l__'))
|
||||
sym = '';
|
||||
if (MemoryView.IGNORE_SYMS[sym]) {
|
||||
ofs = nextofs;
|
||||
|
@ -242,6 +242,12 @@ var PLATFORM_PARAMS = {
|
||||
data_start: 0x4e10,
|
||||
data_size: 0x1f0,
|
||||
stack_end: 0x5000,
|
||||
extra_segments:[
|
||||
{name:'BIOS',start:0x0,size:0x2000,type:'rom'},
|
||||
//{name:'Cart ROM',start:0x2000,size:0x2000,type:'rom'},
|
||||
//{name:'Magic RAM',start:0x0,size:0x4000,type:'ram'},
|
||||
{name:'Screen RAM',start:0x4000,size:0x1000,type:'ram'},
|
||||
],
|
||||
},
|
||||
'astrocade-arcade': {
|
||||
code_start: 0x0000,
|
||||
|
Loading…
x
Reference in New Issue
Block a user