From 93f3ff3500d9487014226d8bf9c2067e252ad640 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 15 Mar 2025 04:09:59 -0500 Subject: [PATCH] change default TIunA export params so it works by just replacing song.asm --- src/engine/export/tiuna.cpp | 4 ++-- src/gui/exportOptions.cpp | 4 ++-- src/gui/tutorial.cpp | 24 ++++++++++++++++-------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/engine/export/tiuna.cpp b/src/engine/export/tiuna.cpp index 1b4cb32df..104c38193 100644 --- a/src/engine/export/tiuna.cpp +++ b/src/engine/export/tiuna.cpp @@ -187,8 +187,8 @@ void DivExportTiuna::run() { std::map allCmds[2]; // config - String baseLabel=conf.getString("baseLabel","song"); - int firstBankSize=conf.getInt("firstBankSize",3072); + String baseLabel=conf.getString("baseLabel","twin"); + int firstBankSize=conf.getInt("firstBankSize",1024); int otherBankSize=conf.getInt("otherBankSize",4096-48); int tiaIdx=conf.getInt("sysToExport",-1); diff --git a/src/gui/exportOptions.cpp b/src/gui/exportOptions.cpp index cc4233964..0e17a112e 100644 --- a/src/gui/exportOptions.cpp +++ b/src/gui/exportOptions.cpp @@ -280,8 +280,8 @@ void FurnaceGUI::drawExportROM(bool onWindow) { switch (romTarget) { case DIV_ROM_TIUNA: { - String asmBaseLabel=romConfig.getString("baseLabel","song"); - int firstBankSize=romConfig.getInt("firstBankSize",3072); + String asmBaseLabel=romConfig.getString("baseLabel","twin"); + int firstBankSize=romConfig.getInt("firstBankSize",1024); int otherBankSize=romConfig.getInt("otherBankSize",4096-48); int sysToExport=romConfig.getInt("sysToExport",-1); diff --git a/src/gui/tutorial.cpp b/src/gui/tutorial.cpp index e80d32844..0a58f1387 100644 --- a/src/gui/tutorial.cpp +++ b/src/gui/tutorial.cpp @@ -213,6 +213,7 @@ struct FurnaceCVEnemy1: FurnaceCVObject { unsigned char animFrame; short nextTime, shootTime; unsigned char shootCooldown; + short orientCount; void collision(FurnaceCVObject* other); @@ -227,7 +228,8 @@ struct FurnaceCVEnemy1: FurnaceCVObject { animFrame(0), nextTime(64+(rand()%600)), shootTime(8), - shootCooldown(0) { + shootCooldown(0), + orientCount(0) { type=CV_ENEMY; spriteDef[0]=0x200; spriteDef[1]=0x201; @@ -1553,7 +1555,7 @@ void FurnaceCV::render(unsigned char joyIn) { // S mod stat if (speedTicks>0) { speedTicks--; - if ((speedTicks<120 && speedTicks&2) || speedTicks&16) { + if ((speedTicks<120 && speedTicks&2) || (speedTicks>=120 && speedTicks&16)) { tile1[24][36]=0x41e; tile1[24][37]=0x41f; tile1[25][36]=0x43e; @@ -2322,7 +2324,14 @@ void FurnaceCVEnemy1::collision(FurnaceCVObject* other) { } } else if (other->type==CV_ENEMY || other->type==CV_MINE) { // reorient - orient=(orient+2)&3; + orientCount+=2; + if (orientCount>6) { + // stuck... + stopped=true; + cv->stopSoundEffect(SE_TANKMOVE); + } else { + orient=(orient+2)&3; + } } } @@ -2345,6 +2354,8 @@ void FurnaceCVEnemy1::tick() { animFrame+=0x15; } + if (--orientCount<=0) orientCount=0; + if (--nextTime==0) { nextTime=64+(rand()%600); @@ -2402,11 +2413,8 @@ void FurnaceCVEnemy1::tick() { } if (HITS_BORDER) { - if (x<0) orient=0; - if (x>=cv->stageWidthPx-16) orient=2; - if (y<0) orient=3; - if (y>=cv->stageHeightPx-16) orient=1; - cv->soundEffect(SE_TANKMOVE); + orient=(orient+2)&3; + CONFINE_TO_BORDER; }