Skip to content

Commit

Permalink
v2.18.1 (#15)
Browse files Browse the repository at this point in the history
* v2.18.1

* [設定] に [シーク時間] メニューを追加。
* シーク時間が秒単位の場合は、秒表示に変更。
* v2.18.0 で、一部の曲において冒頭の音が鳴らない不具合を修正。
* 一部処理を最適化。
* SPCPLAY.EXE v2.18.0 の言語設定が適用されない不具合を修正。

* v2.18.1

* ラベル調整

* v2.18.1

* README 更新
  • Loading branch information
dgrfactory authored Jan 29, 2020
1 parent 000d89c commit c5ee885
Show file tree
Hide file tree
Showing 8 changed files with 112 additions and 77 deletions.
42 changes: 23 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,50 @@
## 概要

SNES SPC700 Player と改良版 SNESAPU.DLL 一式のソースコードです。
アプリの詳細については、[デグレファクトリーのサイト](https://dgrfactory.jp/spcplay/index.html)をご覧ください。
アプリの詳細については、[デグレファクトリーのサイト (日本語)](https://dgrfactory.jp/spcplay/index.html) をご覧ください。

## spcplay.exe
## Overview

**SNES SPC700 Player:**
スーパーファミコンの音楽ファイル (SPC) をパソコン上で再生するための SPC 専用プレイヤーです。
Win32API を直接使用しているので、軽量・軽快に動作します。
Source codes of SNES SPC700 Player and improved SNESAPU.DLL.
If you want to see details of this software, please visit [release page (in English)](https://github.com/dgrfactory/spcplay/releases).

コンパイルに必要なソフト: dcc32 (Delphi6 UP2 RTL3 で動作確認済)
## How to build

### spcplay.exe

Frontend for using SNESAPU.DLL.
Required software: dcc32 (Delphi6 UP2 RTL3)

```
rc.exe /l 0x411 /fo spcplay.res /d "NDEBUG" spcplay.rc
dcc32.exe spcplay.dpr
```

## snesapu.dll

**改良版SNESAPU.DLL:**
再現性と音質に定評がある Alpha-II Productions 製の SNESAPU.DLL v2.0 をベースに、最新版 v3.0 の一部機能や独自拡張機能を取り込んでいます。
### snesapu.dll

コンパイルに必要なソフト: VC++ (VC++6 SP6 で動作確認済), nasm (Netwide Assembler)
SNES SPC700 emulator. (forks from [Alpha-II Productions](https://www.alpha-ii.com/))
Required softwares: VC++ (VC++6 SP6), nasm (Netwide Assembler)

```
nasm.exe -D WIN32 -D STDCALL -O2 -w-macro-params -f win32 -o .\Release\SPC700.obj SPC700.asm
nasm.exe -D WIN32 -D STDCALL -O2 -w-macro-params -f win32 -o .\Release\DSP.obj DSP.asm
nasm.exe -D WIN32 -D STDCALL -O2 -w-macro-params -f win32 -o .\Release\APU.obj APU.asm
rc.exe /l 0x411 /fo Release\version.res /d "NDEBUG" version.rc
rc.exe /l 0x411 /fo .\Release\version.res /d "NDEBUG" version.rc
cl.exe @option\snesapu-cl.txt
link.exe @option\snesapu-link.txt
```

※他プレイヤー用をビルドする場合は、thirdparty ディレクトリの中身を本体にコピーして、snesapu-link.txt の代わりに snesapu-3rd-link.txt を使用。

## spccmd.exe
for 3rd-party players:
```
copy /y thirdparty\* .
: (nasm, rc, cl)
link.exe @option\snesapu-3rd-link.txt
```

**SNES SPC700 Player 外部コマンド拡張ツール:**
SNES SPC700 Player をコマンドラインで操作するアプリです。
コマンドによる再生・停止操作、SPC700 や DSP のデバッグ、G.I.M.I.C 等の転送プログラムのシミュレーション等が行えます。
### spccmd.exe

コンパイルに必要なソフト: dcc32 (Delphi6 UP2 RTL3 で動作確認済)
Software that operates spcplay.exe on the command line.
Required software: dcc32 (Delphi6 UP2 RTL3)

```
rc.exe /l 0x411 /fo spccmd.res /d "NDEBUG" spccmd.rc
Expand Down
6 changes: 3 additions & 3 deletions snesapu.dll/APU.asm
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
;59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
;
; Copyright (C) 2003-2006 Alpha-II Productions
; Copyright (C) 2003-2019 degrade-factory
; Copyright (C) 2003-2020 degrade-factory
;===================================================================================================

CPU 386
Expand Down Expand Up @@ -48,9 +48,9 @@ SECTION .data ALIGN=32
; ----- degrade-factory code [2019/07/15] -----
apuOpt DD (CPU_CYC << 24) | (DEBUG << 16) | (DSPINTEG << 17) | (VMETERM << 8) | (VMETERV << 9) | (1 << 10) | (STEREO << 11) \
| (HALFC << 1) | (CNTBK << 2) | (SPEED << 3) | (IPLW << 4) | (DSPBK << 5) | (INTBK << 6)
apuDllVer DD 21800h ;SNESAPU.DLL Current Version
apuDllVer DD 21861h ;SNESAPU.DLL Current Version
apuCmpVer DD 11000h ;SNESAPU.DLL Backwards Compatible Version
apuVerStr DD "2.18.0 (build 6694)" ;SNESAPU.DLL Current Version (32byte String)
apuVerStr DD "2.18.1 (build 6862)" ;SNESAPU.DLL Current Version (32byte String)
DD 8
; ----- degrade-factory code [END] -----

Expand Down
34 changes: 23 additions & 11 deletions snesapu.dll/DSP.asm
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
;59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
;
; Copyright (C) 1999-2006 Alpha-II Productions
; Copyright (C) 2003-2019 degrade-factory
; Copyright (C) 2003-2020 degrade-factory
;===================================================================================================

CPU 386
Expand Down Expand Up @@ -892,9 +892,6 @@ USES ECX,EBX,EDI
Mov [volMainR],EAX
Mov [volEchoL],EAX
Mov [volEchoR],EAX
; ----- degrade-factory code [2009/03/08] -----
Call ResetVol
; ----- degrade-factory code [END] -----

;Erase noise settings --------------------
Mov [nRate],EAX
Expand All @@ -917,9 +914,10 @@ USES ECX,EBX,EDI
Mov [echoFBCT],EAX
Mov [4+echoFBCT],EAX

; ----- degrade-factory code [2009/03/08] -----
; ----- degrade-factory code [2020/01/05] -----
Call ResetVol
Call ResetEcho
Call ResetLow
Call ResetLow ;EAX is 0, after call ResetLow
; ----- degrade-factory code [END] -----

Mov EDI,firTaps ;Reset filter coefficients
Expand Down Expand Up @@ -1498,8 +1496,9 @@ USES ALL
Sub CL,10h
JNC short .NextTap

; ----- degrade-factory code [2009/03/08] -----
; ----- degrade-factory code [2020/01/05] -----
Call ResetVol
Call ResetKON
; ----- degrade-factory code [END] -----

ENDP
Expand Down Expand Up @@ -1685,6 +1684,10 @@ USES ECX,EDX,EBX
Mov AL,[dsp+evolR]
Call InitReg

; ----- degrade-factory code [2020/01/05] -----
;Call ResetVol ;Don't call ResetVol to smooth fade-out
; ----- degrade-factory code [END] -----

ENDP


Expand Down Expand Up @@ -2042,7 +2045,7 @@ USES ESI
JZ ChgGain ; No, It's in gain mode

ChgAtt:
; ----- degrade-factory code [2012/06/09] -----
; ----- degrade-factory code [2019/08/20] -----
Cmp dword [EBX+eVal],D_MAX ;Did envelope reach destination value?
JGE short .ChgDec ; Yes, change decay mode

Expand All @@ -2051,7 +2054,7 @@ ChgAtt:

Mov AL,byte [ESI+adsr]
And AL,0Fh
ShL AL,1 ;Adjust AL to index rateTab
Add AL,AL ;Adjust AL to index rateTab
Inc AL
Cmp AL,1Fh ;Is there an attack?
JE short .NoAtt ; Yes
Expand Down Expand Up @@ -2701,6 +2704,15 @@ RKOn:
; ----- degrade-factory code [END] -----
Ret

; ----- degrade-factory code [2020/01/05] -----
ResetKON:
%if INTBK && DSPINTEG
XOr CH,CH ;Set CH = 0 for use with CatchKOn
CatchKOn
%endif
Ret
; ----- degrade-factory code [END] -----

;============================================
;Voice volume

Expand Down Expand Up @@ -3195,9 +3207,9 @@ ENDP
Mov EAX,[nRate]
Add [nAcc],EAX
JNC short %%NoNInc
; ----- degrade-factory code [2016/04/17] -----
; ----- degrade-factory code [2019/08/20] -----
Mov EAX,[nSeed]
ShL EAX,1
Add EAX,EAX
JNS short %%NoiseOK
XOr EAX,40001h

Expand Down
10 changes: 5 additions & 5 deletions snesapu.dll/version.rc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
1 VERSIONINFO
FILEVERSION 2,18,0,6694
PRODUCTVERSION 2,18,0,0
FILEVERSION 2,18,1,6862
PRODUCTVERSION 2,18,1,0
FILEFLAGSMASK 0x3fL
FILEFLAGS 0x8L
FILEOS 0x10004L
Expand All @@ -12,11 +12,11 @@ BEGIN
BLOCK "041103A4"
BEGIN
VALUE "FileDescription", "SNES SPC700 Emulator\0"
VALUE "FileVersion", "2.18.0 (build 6694)\0"
VALUE "LegalCopyright", "Copyright (C) 1999-2008 Alpha-II Productions; (C) 2003-2019 degrade-factory.\0"
VALUE "FileVersion", "2.18.1 (build 6862)\0"
VALUE "LegalCopyright", "Copyright (C) 1999-2008 Alpha-II Productions; (C) 2003-2020 degrade-factory.\0"
VALUE "LegalTrademarks", "SNES is a registered trademark of Nintendo.\0"
VALUE "ProductName", "SNESAPU\0"
VALUE "ProductVersion", "2.18.0\0"
VALUE "ProductVersion", "2.18.1\0"
VALUE "URL", "http://dgrfactory.jp/\0"
END
END
Expand Down
2 changes: 1 addition & 1 deletion spccmd.exe/spccmd.dpr
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
// ※ GNU 一般公衆利用許諾契約書バージョン 2 のドキュメントは、付属の LICENSE にあります。
//
//
// Copyright (C) 2003-2019 degrade-factory. All rights reserved.
// Copyright (C) 2003-2020 degrade-factory. All rights reserved.
//
// =================================================================================================
program spccmd;
Expand Down
2 changes: 1 addition & 1 deletion spccmd.exe/spccmd.rc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ BEGIN
BEGIN
VALUE "FileDescription", "SNES SPC700 Player external command tool\0"
VALUE "FileVersion", "1.5.1 (build 4212)\0"
VALUE "LegalCopyright", "Copyright (C) 2008-2019 degrade-factory.\0"
VALUE "LegalCopyright", "Copyright (C) 2008-2020 degrade-factory.\0"
VALUE "LegalTrademarks", "SNES is a registered trademark of Nintendo.\0"
VALUE "ProductVersion", "1.5.1\0"
VALUE "URL", "http://dgrfactory.jp/\0"
Expand Down
Loading

0 comments on commit c5ee885

Please sign in to comment.