From 0f292a422f59ebcd5edfd8c5f10049c48b88c073 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Fri, 10 May 2019 21:25:21 -0400 Subject: [PATCH] update nes presets, renamed .asm to .dasm --- presets/nes/climber.c | 2 +- presets/nes/{ex0.asm => ex0.dasm} | 4 +-- presets/nes/{ex1.asm => ex1.dasm} | 4 +-- presets/nes/{ex2.asm => ex2.dasm} | 4 +-- presets/nes/{ex3.asm => ex3.dasm} | 6 ++-- presets/nes/{ex4.asm => ex4.dasm} | 4 +-- presets/nes/{famitone2.asm => famitone2.dasm} | 0 presets/nes/flicker.c | 28 ++++++++++--------- .../nes/{helloworld.asm => helloworld.dasm} | 4 +-- presets/nes/{musicdemo.asm => musicdemo.dasm} | 4 +-- presets/nes/{nesdefs.asm => nesdefs.dasm} | 0 presets/nes/{nesppu.asm => nesppu.dasm} | 0 presets/nes/rletitle.c | 2 +- presets/nes/{road.asm => road.dasm} | 4 +-- presets/nes/{scrollrt.asm => scrollrt.dasm} | 4 +-- presets/nes/skeleton.dasm | 4 +-- presets/nes/{xyscroll.asm => xyscroll.dasm} | 4 +-- src/platform/nes.ts | 18 ++++++------ 18 files changed, 49 insertions(+), 47 deletions(-) rename presets/nes/{ex0.asm => ex0.dasm} (95%) rename presets/nes/{ex1.asm => ex1.dasm} (97%) rename presets/nes/{ex2.asm => ex2.dasm} (98%) rename presets/nes/{ex3.asm => ex3.dasm} (98%) rename presets/nes/{ex4.asm => ex4.dasm} (98%) rename presets/nes/{famitone2.asm => famitone2.dasm} (100%) rename presets/nes/{helloworld.asm => helloworld.dasm} (99%) rename presets/nes/{musicdemo.asm => musicdemo.dasm} (99%) rename presets/nes/{nesdefs.asm => nesdefs.dasm} (100%) rename presets/nes/{nesppu.asm => nesppu.dasm} (100%) rename presets/nes/{road.asm => road.dasm} (99%) rename presets/nes/{scrollrt.asm => scrollrt.dasm} (98%) rename presets/nes/{xyscroll.asm => xyscroll.dasm} (98%) diff --git a/presets/nes/climber.c b/presets/nes/climber.c index 1c99ca9f..57977add 100644 --- a/presets/nes/climber.c +++ b/presets/nes/climber.c @@ -36,7 +36,7 @@ typedef enum { SND_START, SND_HIT, SND_COIN, SND_JUMP } SFXIndex; #define COLS 30 // floor width in tiles #define ROWS 60 // total nametable height in tiles -#define MAX_FLOORS 4 // total # of floors in a stage +#define MAX_FLOORS 24 // total # of floors in a stage #define GAPSIZE 4 // gap size in tiles #define BOTTOM_FLOOR_Y 2 // offset for bottommost floor diff --git a/presets/nes/ex0.asm b/presets/nes/ex0.dasm similarity index 95% rename from presets/nes/ex0.asm rename to presets/nes/ex0.dasm index e1743970..5629f595 100644 --- a/presets/nes/ex0.asm +++ b/presets/nes/ex0.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; VARIABLES @@ -35,7 +35,7 @@ Start: ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/ex1.asm b/presets/nes/ex1.dasm similarity index 97% rename from presets/nes/ex1.asm rename to presets/nes/ex1.dasm index 7595af16..962d1a1b 100644 --- a/presets/nes/ex1.asm +++ b/presets/nes/ex1.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; VARIABLES @@ -69,7 +69,7 @@ SetPalette: subroutine ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/ex2.asm b/presets/nes/ex2.dasm similarity index 98% rename from presets/nes/ex2.asm rename to presets/nes/ex2.dasm index 9eebdd31..d5bc7a64 100644 --- a/presets/nes/ex2.asm +++ b/presets/nes/ex2.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; VARIABLES @@ -70,7 +70,7 @@ SetPalette: subroutine ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/ex3.asm b/presets/nes/ex3.dasm similarity index 98% rename from presets/nes/ex3.asm rename to presets/nes/ex3.dasm index ef0b274d..6291f305 100644 --- a/presets/nes/ex3.asm +++ b/presets/nes/ex3.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; VARIABLES @@ -80,7 +80,7 @@ MoveSprites: subroutine inx ; X = X + 1 bne .loop ; loop until X wraps rts ; return to caller - + ; set palette colors SetPalette: subroutine PPU_SETADDR $3f00 @@ -96,7 +96,7 @@ SetPalette: subroutine ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/ex4.asm b/presets/nes/ex4.dasm similarity index 98% rename from presets/nes/ex4.asm rename to presets/nes/ex4.dasm index a30a4b07..9afb9f0f 100644 --- a/presets/nes/ex4.asm +++ b/presets/nes/ex4.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; VARIABLES @@ -64,7 +64,7 @@ SetPalette: subroutine ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/famitone2.asm b/presets/nes/famitone2.dasm similarity index 100% rename from presets/nes/famitone2.asm rename to presets/nes/famitone2.dasm diff --git a/presets/nes/flicker.c b/presets/nes/flicker.c index a3fa1dc5..92818f98 100644 --- a/presets/nes/flicker.c +++ b/presets/nes/flicker.c @@ -61,8 +61,7 @@ sbyte actor_dy[NUM_ACTORS]; // main program void main() { - char i; - char oam_id; + byte i; // setup graphics setup_graphics(); @@ -76,21 +75,24 @@ void main() { // loop forever while (1) { // start with OAMid/sprite 0 - oam_id = 0; + oam_off = 0; // draw and move all actors // (note we don't reset i each loop iteration) - while (oam_id < 256-4*4) { - // wrap around actor array - if (i >= NUM_ACTORS) + while (oam_off < 256-4*4) { + // advance and wrap around actor array + if (++i >= NUM_ACTORS) i -= NUM_ACTORS; - oam_id = oam_meta_spr(actor_x[i], actor_y[i], oam_id, metasprite); - actor_x[i] += actor_dx[i]; - actor_y[i] += actor_dy[i]; - ++i; + // draw and move actor + oam_meta_spr_pal( + actor_x[i] += actor_dx[i], // add x+dx and pass param + actor_y[i] += actor_dy[i], // add y+dy and pass param + i&3, // palette color + metasprite); // metasprites } // hide rest of sprites - oam_hide_rest(oam_id); - // wait for next frame - ppu_wait_frame(); + oam_hide_rest(oam_off); + // wait for next NMI + // we don't want to skip frames b/c it makes flicker worse + ppu_wait_nmi(); } } diff --git a/presets/nes/helloworld.asm b/presets/nes/helloworld.dasm similarity index 99% rename from presets/nes/helloworld.asm rename to presets/nes/helloworld.dasm index 64c9e5df..2100e623 100644 --- a/presets/nes/helloworld.asm +++ b/presets/nes/helloworld.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; ZERO-PAGE VARIABLES @@ -113,7 +113,7 @@ ASCII2Tile: ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/musicdemo.asm b/presets/nes/musicdemo.dasm similarity index 99% rename from presets/nes/musicdemo.asm rename to presets/nes/musicdemo.dasm index 81ebd0df..04ac0d7e 100644 --- a/presets/nes/musicdemo.asm +++ b/presets/nes/musicdemo.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; VARIABLES @@ -78,7 +78,7 @@ ShowTimeEnd: ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" include "famitone2.asm" diff --git a/presets/nes/nesdefs.asm b/presets/nes/nesdefs.dasm similarity index 100% rename from presets/nes/nesdefs.asm rename to presets/nes/nesdefs.dasm diff --git a/presets/nes/nesppu.asm b/presets/nes/nesppu.dasm similarity index 100% rename from presets/nes/nesppu.asm rename to presets/nes/nesppu.dasm diff --git a/presets/nes/rletitle.c b/presets/nes/rletitle.c index f87ad48a..e10787aa 100644 --- a/presets/nes/rletitle.c +++ b/presets/nes/rletitle.c @@ -16,7 +16,7 @@ extern const byte climbr_title_rle[]; void fade_in() { byte vb; for (vb=0; vb<=4; vb++) { - // set virtual bright vaule + // set virtual bright value pal_bright(vb); // wait for 4/60 sec ppu_wait_frame(); diff --git a/presets/nes/road.asm b/presets/nes/road.dasm similarity index 99% rename from presets/nes/road.asm rename to presets/nes/road.dasm index 1050fad8..5fa9258c 100644 --- a/presets/nes/road.asm +++ b/presets/nes/road.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; ZERO-PAGE VARIABLES @@ -291,7 +291,7 @@ SetSprite0: subroutine ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/scrollrt.asm b/presets/nes/scrollrt.dasm similarity index 98% rename from presets/nes/scrollrt.asm rename to presets/nes/scrollrt.dasm index c517e1d8..e3924d82 100644 --- a/presets/nes/scrollrt.asm +++ b/presets/nes/scrollrt.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; ZERO-PAGE VARIABLES @@ -81,7 +81,7 @@ SetSprite0: subroutine ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/skeleton.dasm b/presets/nes/skeleton.dasm index 86531e79..21ceb18d 100644 --- a/presets/nes/skeleton.dasm +++ b/presets/nes/skeleton.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; VARIABLES @@ -33,7 +33,7 @@ Start: subroutine ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/presets/nes/xyscroll.asm b/presets/nes/xyscroll.dasm similarity index 98% rename from presets/nes/xyscroll.asm rename to presets/nes/xyscroll.dasm index 1bbcdd48..98cf035d 100644 --- a/presets/nes/xyscroll.asm +++ b/presets/nes/xyscroll.dasm @@ -1,5 +1,5 @@ - include "nesdefs.asm" + include "nesdefs.dasm" ;;;;; ZERO-PAGE VARIABLES @@ -79,7 +79,7 @@ SetSprite0: subroutine ;;;;; COMMON SUBROUTINES - include "nesppu.asm" + include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS diff --git a/src/platform/nes.ts b/src/platform/nes.ts index 7dbbef18..ecca5f58 100644 --- a/src/platform/nes.ts +++ b/src/platform/nes.ts @@ -29,15 +29,15 @@ const JSNES_PRESETS = [ {id:'fami.c', name:'Famitone Demo'}, {id:'bankswitch.c', name:'Bank Switching'}, {id:'irq.c', name:'IRQ Scanline Counter'}, - {id:'ex0.asm', name:'Initialization (ASM)'}, - {id:'ex1.asm', name:'Hello World (ASM)'}, - {id:'ex2.asm', name:'Scrolling Demo (ASM)'}, - {id:'ex3.asm', name:'Sprite Demo (ASM)'}, - {id:'ex4.asm', name:'Controller Demo (ASM)'}, - {id:'musicdemo.asm', name:'Famitone Demo (ASM)'}, - {id:'xyscroll.asm', name:'XY Split Scrolling (ASM)'}, - {id:'scrollrt.asm', name:'Line-by-line Scrolling (ASM)'}, - {id:'road.asm', name:'3-D Road Demo (ASM)'}, + {id:'ex0.dasm', name:'Initialization (ASM)'}, + {id:'ex1.dasm', name:'Hello World (ASM)'}, + {id:'ex2.dasm', name:'Scrolling Demo (ASM)'}, + {id:'ex3.dasm', name:'Sprite Demo (ASM)'}, + {id:'ex4.dasm', name:'Controller Demo (ASM)'}, + {id:'musicdemo.dasm', name:'Famitone Demo (ASM)'}, + {id:'xyscroll.dasm', name:'XY Split Scrolling (ASM)'}, + {id:'scrollrt.dasm', name:'Line-by-line Scrolling (ASM)'}, + {id:'road.dasm', name:'3-D Road Demo (ASM)'}, {id:'chase/game.c', name:'Shiru\'s Chase Game'}, ];