Skip to content

Commit 0c744bf

Browse files
Corrected: Restored border color when displaying load bar; Changed function of SPACE key in SFX edit mode - deletes MOD/VAL value only; Added channel volume bars when playing a song
1 parent 0d4a02b commit 0c744bf

4 files changed

Lines changed: 58 additions & 18 deletions

File tree

SFXMM.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
{$DEFINE ROMOFF}
66

7-
uses SFX_API, sysutils, strings, gr2, ui, pmgraph,cio;
7+
uses SFX_API, sysutils, strings, gr2, ui, pmgraph, cio;
88
{$I-}
99
{$i types.inc}
1010

modules/sfx/sfx_edit.inc

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@ procedure SFXSectionEditLoop(var tab:byteArray; nibble:byte);
33
var i,v,cSFX:byte;
44
at:byte;
55

6-
procedure SFXputBlank();
6+
procedure SFXputNOP();
77
begin
8-
SFX_vol_dist[at]:=0;
98
SFX_modulate[at]:=0;
109
modified:=true;
1110
end;
1211

12+
procedure SFXputBlank();
13+
begin
14+
SFX_vol_dist[at]:=0;
15+
SFXputNOP();
16+
end;
17+
1318
procedure dblMove(ofsSrc,ofsDest:byte);
1419
var len:byte;
1520

@@ -89,16 +94,16 @@ begin
8994

9095
case key of
9196
key_RETURN: if SFXEntryEdit then break;
92-
key_SPACE: SFXputBlank();
97+
key_SPACE: SFXputNOP();
9398
key_CTRL_INSERT: begin // insert column in SFX
9499
// at:=cursorShift+cursorPos;
95100
dblMove(0,1);
96101
SFXputBlank();
97102
end;
98103
key_CTRL_DELETE: begin // delete column in SFX
99-
// at:=cursorShift+cursorPos;
100104
dblMove(1,0);
101105
at:=127; SFXputBlank();
106+
at:=cursorShift+cursorPos;
102107
end;
103108
key_CTRL_X: Cut2Clipboard(true,SFXLen);
104109
key_CTRL_C: Copy2Clipboard(true,SFXLen);

modules/song/song_play.inc

Lines changed: 46 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,46 @@
11
procedure SONG_Play(startPos:byte);
2-
var _SONGRow,oSONGOfs:byte;
2+
var _SONGRow,oSONGOfs,__chnOfs,i,v:byte;
3+
4+
procedure _putChar(ch:byte); register;
5+
begin
6+
screen[__scrOfs]:=ch; inc(__scrOfs,20);
7+
end;
8+
9+
procedure VolumeBar();
10+
var ch:byte;
11+
begin
12+
// volume bar
13+
ch:=$00;
14+
if (v>12) then ch:=$3e-v+13;
15+
_putChar(ch);
16+
if (v>8) then
17+
if (v>12) then ch:=$3b else ch:=$3e-v+9;
18+
_putChar(ch);
19+
if (v>4) then
20+
if (v>8) then ch:=$3b else ch:=$3e-v+5;
21+
_putChar(ch);
22+
if (v>4) then ch:=$3b else ch:=$3f-v;
23+
_putChar(ch);
24+
end;
25+
26+
procedure updateVolumeBars();
27+
begin
28+
__chnOfs:=0;
29+
for i:=0 to 3 do
30+
begin
31+
__scrOfs:=150+i*3;
32+
v:=channels[__chnOfs+_chnCtrl] and $0f;
33+
VolumeBar();
34+
inc(__chnOfs,$10);
35+
end;
36+
end;
337

438
begin
539
SFX_PlaySONG(startPos);
640
clearStatusBar();
741
reset_pianoVis(); keyClick:=false;
842
PLYtm:=timer; PLYstate:=2; oSongOfs:=255;
943
repeat
10-
updatePianoVis();
11-
PlayFlash();
12-
if oSONGOfs<>SONG_Ofs then
13-
begin
14-
oSONGOfs:=SONG_Ofs;
15-
_SONGRow:=SONG_Ofs shr 2;
16-
SONGShift:=(_SONGRow div 9)*9;
17-
updateSong(true);
18-
end;
19-
2044
if keyPressed then
2145
begin
2246
controlSelectionKeys(key_CTRL_LEFT,key_CTRL_RIGHT,SONGChn,0,3);
@@ -27,12 +51,23 @@ begin
2751

2852
if (timer-ScreenTm)>0 then
2953
begin
54+
updateVolumeBars();
55+
updatePianoVis();
56+
PlayFlash();
57+
if oSONGOfs<>SONG_Ofs then
58+
begin
59+
oSONGOfs:=SONG_Ofs;
60+
_SONGRow:=SONG_Ofs shr 2;
61+
SONGShift:=(_SONGRow div 9)*9;
62+
updateSong(true);
63+
end;
3064
updateSongStatus();
3165
ScreenTm:=timer;
3266
move(@screen,@video,240);
3367
end;
3468
until (SONG_Tick>$80) or checkEscape;
3569
SFX_Off(); keyClick:=true; key:=TKeys($ff);
3670
reset_pianoVis();
71+
updateSong(true);
3772
clearStatusBar();
3873
end;

sfx_engine/sfx_api.pas

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@ procedure SFX_tick(); Assembler; Interrupt;
7070
.endif
7171
.endif
7272

73-
lda #$06
73+
lda 709
7474
sta wsync
7575
sta $D01a
7676

7777
jsr INIT_SFXEngine.SFX_MAIN_TICK
7878

79-
lda #$00
79+
lda 712
8080
sta $D01a
8181

8282
.ifdef MAIN.@DEFINES.SFX_SWITCH_ROM

0 commit comments

Comments
 (0)