From 424a526b74f22ed091e7768606761bd3e198d910 Mon Sep 17 00:00:00 2001 From: Grind Date: Mon, 27 Mar 2017 14:52:11 -0400 Subject: [PATCH] Santa, Fire Whirr, always async fade in credits --- README.md | 9 +-------- doc/DIFFERENCES.md | 4 ++-- doc/VRAM.md | 14 +++++++++++--- src/ai/balcony.c | 1 + src/ai/maze.c | 2 ++ src/vdp_ext.c | 2 -- 6 files changed, 17 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 9b9db995..3a8e08f8 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,7 @@ To activate Stage Select: 🡩 🡫🡨 🡪 A + Start. Like Sonic. ## FAQ #### Why? -Not sure myself but it's fun in a way. - -#### Something is wrong. What DO? -Open an issue if one doesn't already exist, unless - -- It's because of a hardware limitation, but if you have a realistic suggestion to improve it go ahead. -- It has to do with the following parts which are not ready for testing: Undead Core, Credits, Hell -- It's a bug that exists in the original Cave Story. [Example](https://www.youtube.com/watch?v=HFzS0bpc5kA) +To learn MD dev mostly. #### Will you release this on cartridge? No. Nicalis would sue me. diff --git a/doc/DIFFERENCES.md b/doc/DIFFERENCES.md index e1356c3f..26eed274 100644 --- a/doc/DIFFERENCES.md +++ b/doc/DIFFERENCES.md @@ -5,7 +5,7 @@ This file is where I list off the differences in this port and why. - The resolution is 320x224 on NTSC, so there will be an extra bit of scrolling. - I got a bit creative with the sprinkler effect to avoid lag. There are less particles and they alternate visibility. - The message box disappears on fade out, but text is still visible. The way that works is actually that the color white in the main palette is kept white, as a result you can see the white of the HUD during fades too. - - Where Courier New was used in the original game I am using the default 8x8 SGDK font. The font may change but it will likely still be 8x8. + - The font is 8x8 where the original was more like 6x8. - CSMD uses a simple palette fade instead of the original effect which is very difficult to emulate on the hardware. - The water "foreground" is in back of the foreground map tiles. I believe this is technically possible to fix but would add too much complication to the stage/background logic (swapping the planes they use for 2 maps only). - The original game uses many off-shade colors that don't exist in a 9-bit colormap. @@ -25,4 +25,4 @@ This file is where I list off the differences in this port and why. - EggX and EggX2 are the same PXM with the tileset split into 2. - TSC are converted to a custom [bytecode](../tools/tscomp/tscomp.c). - The game is using the Aeon Genesis English translation. I have no plans on supporting other languages, but might if I get bored one day. - - One line of text has been edited for length (Silver Locket description). + - Some bits of text (mainly item descriptions and credits text) have been edited to reduce length diff --git a/doc/VRAM.md b/doc/VRAM.md index 59acd619..63f406e5 100644 --- a/doc/VRAM.md +++ b/doc/VRAM.md @@ -46,10 +46,13 @@ The window uses this area to display the "Yes/No" prompt, cursor, or the item pi It could potentially collide with the above I'm just hoping that doesn't happen for now. #### TILE_FONTINDEX -This is the 32-127 ASCII font included with SGDK. In game a blue background version is used. +Glyphs to represent the ASCII range 32-127. In game a blue background version is used. The blue version also replaces the equal sign with a filled circle. -#### Address 0xB000 - PLAN_W (64x32) +#### Address 0xB000 - PLAN_WINDOW (64x32) + +#### Bottom 2 rows of PLAN_WINDOW (TILE_SLASHINDEX) +Since this never gets displayed on the screen I put the Blade Lv3 slash here (8 tiles) #### Address 0xC000 - PLAN_B (64x32) @@ -67,6 +70,11 @@ Space for 64 tiles between PLAN_A and the sprite list/hscroll table. - 16 tiles to display float text (numbers like '-127') for up to 4 objects at once - 28 tiles for smoke animation - 9 tiles for the blue window border/skin -- 7 tiles for the AIR display (during hell, replaced by timer) +- 8 tiles for either the AIR display or the counter in Hell +- 1 tile for question mark (TODO) +- 2 tiles for Whimsical Star (TODO) #### Address 0xF800 - HSCROLL and sprite list + +#### Address 0xFE80 (TILE_NEMINDEX) +Similarly to the Blade slashes, the vertical sprite tiles for Nemesis bullets go here (12 tiles) diff --git a/src/ai/balcony.c b/src/ai/balcony.c index 3ad2f68c..302b3eea 100644 --- a/src/ai/balcony.c +++ b/src/ai/balcony.c @@ -438,6 +438,7 @@ void ai_mimiga_caged(Entity *e) { e->state = 1; e->x -= (1 << CSF); e->y -= (2 << CSF); + if(e->type == OBJ_SANTA_CAGED) e->y -= 4 << CSF; } case 1: { diff --git a/src/ai/maze.c b/src/ai/maze.c index a7561bf7..d97c81d0 100644 --- a/src/ai/maze.c +++ b/src/ai/maze.c @@ -816,6 +816,8 @@ void ai_firewhirr(Entity *e) { } break; } + e->x += e->x_speed; + e->y += e->y_speed; } void ai_firewhirr_shot(Entity *e) { diff --git a/src/vdp_ext.c b/src/vdp_ext.c index 169ab83a..ded6a0db 100644 --- a/src/vdp_ext.c +++ b/src/vdp_ext.c @@ -63,10 +63,8 @@ uint16_t* VDP_getCachedPalette() { } void VDP_flashWhite() { - VDP_setPaletteColors(0, PAL_FullWhite, 64); VDP_fadeTo(0, 63, VDP_getCachedPalette(), 10, TRUE); - } // Number draw functions