from Japan

Don't be shy, come introduce yourself with the rest of the community
PiyoTaro
Posts: 182
Joined: Thu Jun 01, 2017 11:13 am

from Japan

Postby PiyoTaro » Thu Jun 01, 2017 7:21 pm

Written in Japanese:
 私は「ZX Spectrum Next」を5月23日のPC Watchの記事で知り、翌日KickStarterのプロジェクトを見た時は既にPledgeボタンが消えていました。
 Googleで「ZXSpectrum」を検索すると、週刊アスキーの記事で“Elite Systemsがクラウドファンディングを募集している”という記事があり、「Spectrum Next」にたどり着けなかったのです。
 今は「ZEsarUX」でSpectrumの雰囲気を楽しんでいます。

 現在はMMLベースよりもTrackerで音楽を作るのかな?私は勿論MIDIをかじった事はあるけれど、チップチューンはアルペジオの音に敬遠して勉強してこなかったため、最初からの出発になりそうです。

**add Aug 7,2017 **
I was interested in old game software by participating in discussion of this forum, I bought Spectrum Plus in auction with cassette recorder and printer.
Moreover, recently I found ROLAND SoundCanvas 88PRO with a 37key-keyboard in a recycle shop and purchased it. On my Windows 10, unfortunately software installers such as Cakewalk did not work.

**add Jan 1 2019 
"Update count" increased by 1 due to overwriting by mistake
Last edited by PiyoTaro on Tue Dec 31, 2019 4:37 pm, edited 4 times in total.

sabreman
Posts: 6
Joined: Fri Jun 02, 2017 2:59 pm

Re: from Japan

Postby sabreman » Fri Jun 02, 2017 3:05 pm

こんにちは。そして、ようこそ。

クリスです。6年間日本に住んでいます。

日本の人々が古い英国のコンピュータに興味を持っているのはかなり驚きです。"ZX Next"は非常に良いサウンド機能を持っていることを理解しています。私はあなたの音楽を聞くのを楽しみにしています。

JoeZX
Posts: 574
Joined: Mon May 29, 2017 9:11 pm
Location: Slovakia

Re: from Japan

Postby JoeZX » Fri Jun 02, 2017 3:40 pm

piyotaro /google translator/: "I knew "ZX Spectrum Next" on PC Watch's article on May 23, and when I saw KickStarter's project the next day the Pledge button had disappeared. When searching for "ZXSpectrum" on Google, there was an article saying "Elite Systems is recruiting cloud funding" in Weekly ASCII article, and I could not get to "Spectrum Next". Now I'm enjoying the atmosphere of Spectrum with "ZEsarUX".

Is it now that I make music with tracker rather than MML base? Although I've bit caught MIDI, of course, Chiptune does not study arpeggio sounds and I have not studied, so it seems to be a departure from the beginning."


sabreman /google translator/: "Hello. And welcome. It is Chris. I have lived in Japan for 6 years. It is quite amazing that people in Japan are interested in older British computers. I understand that "ZX Next" has a very good sound function. I am looking forward to hearing your music."

JoeZX /engrish/: Speccy+AY+Japan theme - https://soundcloud.com/yerzmyey/yerzmye ... -moon-star
- yep .. its my favorite childhood anime /Ok .. adulthood, too, heh/.

PiyoTaro
Posts: 182
Joined: Thu Jun 01, 2017 11:13 am

latest firmware 2.00.26 came on my 2A board

Postby PiyoTaro » Mon Jan 28, 2019 6:51 pm

I installed the latest firmware "2.00.26" on my "ZX Spectrum Next 2A board".
Firmware downloaded Phobos Dokos 's "tbblue" repository in GitLab in Zip format and unpacked it into SDHC card.

Updating of the firmware took 1 minute 46 seconds. (Start up the system first, then press "F1 =reset button" while holding "U" on the PS2 keyboard, the updater screen will start.)
20190129_tbblue.png
20190129_tbblue.png (129.14 KiB) Viewed 3802 times
2019/1/30 : Additional
-I could not make it in time for the deadline of the Kickstarter and immediately purchased the "2A board" at this site's "Shop". It was preserved as "1.00.00" until the end of 2018 when an additional update was announced.
Because I have a board, I am going to participate in the discussion on "implementation".

-I found an update work video on YouTube.
https://www.youtube.com/watch?v=Mt_tEEcmkZ4
by NML32
ZX Spectrum Next: Updating Firmware (TBBLUE V.1.03 – CORE 2.00.26, FIRMWARE 1.10C, NEXTZXOS 2.00B!)
Last edited by PiyoTaro on Wed Jan 30, 2019 7:18 am, edited 1 time in total.

User avatar
Timbucus
Posts: 287
Joined: Tue May 30, 2017 7:43 pm

Re: from Japan

Postby Timbucus » Tue Jan 29, 2019 9:18 pm

Great news glad it works. Did you get all the rest of the distribution as well so that you have the latest FW 1.10c and NextZXOS2.00B ?
I'm Infinite Imaginations when not in work... PAWS for thought.

PiyoTaro
Posts: 182
Joined: Thu Jun 01, 2017 11:13 am

Expansion of "Sound function" @Final round

Postby PiyoTaro » Tue Dec 31, 2019 4:39 pm

Happy new year.
One hour ago, Japan reached 2020!

There was no new device added as an extension of the Game sound function after ”zxnDMA".

I posted a thread on "NextPi" about the possibility of expanding sound functions. If you can prepare something like RAMDISK on the Pi side, transfer the application and execute it on the command line, you can use the VGM player or software MIDI synthesizer application.

Around November last year, I noticed that the control register for the "BOARD FEATURE CONTROL" item on the Wiki was updated and that "DAC B and C ports" were added. (Every time an update of "CSpect" is posted on the FB, new graphic mode or scroll register is added?)

Request for a sound player application using "Copper".
I have some basic questions about "Copper" because there is no way to know when the program has finished executing. However, I expect an application such as "SCC (wave memory sound generator)" using a DAC expanded to 3 ports.

Ped7g
Posts: 256
Joined: Mon Jul 16, 2018 7:11 pm

Re: from Japan

Postby Ped7g » Tue Dec 31, 2019 5:44 pm

The copper does never finish. The CPC register (Copper PC) wraps around from index 1023 to 0 and the copper keeps executing it until it is stopped through NextRegister $62 (the copper code memory is 2048B -> each instruction is two bytes -> 1024 instructions).

In graphics apps you usually make it "stop" by having final instruction 0xFFFF = wait(line=511, H=63), or any other "wait" for non-existent scanline in current mode (the 0xFFFF is recommended "copper halt" way, although it unfortunately breaks the idea of adding signed scanline values, to avoid the weird numbering scheme (top-border being values like 310, and scanline 0 being first PAPER line), but none of that is important for copper sound player.

And you can configure the copper to auto-restart at [0,0] pixel position (the top left corner of PAPER area, not sprites/tilemap :( ) - again something more gfx related than sound.

About "sound player", well, the copper code will look like "wait(10), dac.a=x, dac.b=y, wait(33), dac.a=x, dac.b=y ..." (calculating waits to create desired frequency of sampling) so you can guess when certain part of buffer (like half) is done by reading the scanline registers, and re-program that half of buffer, then check for the other half (you can even set up interrupt to happen at particular scanline). So you just fill full 1024 instructions and start the copper, and then you just keep refreshing the instructions after you know they were played.

The tricky part is, that [almost] every video mode of Next has different number of scanlines and T, so you need to read NextRegisters to find out which video mode is user using (VGA0-6/HDMI, 50/60Hz, zx48/128/+2a/+3 (pentagon), and dynamically recalculate the values for wait commands to produce the correct sampling frequency, and to not emit wait for non-existing scanline by accident (like 50Hz modes have lot more scanlines than 60Hz modes)... the upload of 1/n-th of buffer upon the replay is completed is not that tricky.

Then again it's all actually quite straightforward math and instructions, it's just cumbersome to prepare tables for every mode, or to write formulas instead and calculate everything, plus the new cores have slightly different timing in certain modes, so the COPPER txt from Kev is not accurate for cores 3.0 (it was produced with cores 2.0). Kev himself was recently updating his copper sound player, and measuring the scanline ranges with core 3.0 again, but he didn't update the txt document yet, too busy with his projects so far.

Ped7g
Posts: 256
Joined: Mon Jul 16, 2018 7:11 pm

Re: from Japan

Postby Ped7g » Tue Dec 31, 2019 5:56 pm

About other topics... yes, NextPi has ramdisk available, and the demos with MOD/MP3 music files is using that technique, uploading file to Pi ramdisk, and then running and controlling mod-player through terminal (over serial line).

"Every time an update of "CSpect" is posted on the FB, new graphic mode or scroll register is added?"
- it's more about core versions, Allen did rewrite whole core2.0 from scratch, producing new core3.0, which has many new features and is lot more stable, so it allowed even 28MHz mode, etc... CSpect is actually slightly behind, still missing some of the new features - overall it's most up-to-date and complete emulator, and only small fraction of features has bugs/inaccuracies in the emulation, but because of the large amount of total features of next, even that small fraction is a list of bugs which would take probably one page of screen. (although I see most of the common users don't hit them, but I'm usually toying with things and pushing them to the limit and edge cases, so currently like 10% of my projects don't even run in CSpect at all, or crash the emulator :) ... but it is still excellent emulator overall, and valuable tool for developers)

(I also forked and patched the ZEsarUX to make it correct-enough to run those my less lucky projects, so it is now more accurate and correct in certain aspects than CSpect, but overall it is still quite worse, and even if I would add all missing features, it will never reach the performance of CSpect, so it's just secondary option, when CSpect fails)

EDIT: and usually the wiki is slightly behind the real HW (new core), I'm trying to update it, but it somehow eats lot of my time, so I rarely manage to update more than 3-4 articles per hour... lately I did start to commit the raw docs directly from Allen into the NextTest suite project:
https://github.com/MrKWatkins/ZXSpectru ... extreg.txt
https://github.com/MrKWatkins/ZXSpectru ... /ports.txt

I use these to update the wiki, these should be only slightly behind, probably only few days/week after the core is public, sometimes even few days ahead... (depends when Allen gives me the fresh one, and allows me to publish it :) )

Alcoholics Anonymous
Posts: 781
Joined: Mon May 29, 2017 7:00 pm

Re: Expansion of "Sound function" @Final round

Postby Alcoholics Anonymous » Tue Dec 31, 2019 6:07 pm

PiyoTaro wrote:
Tue Dec 31, 2019 4:39 pm
One hour ago, Japan reached 2020!
Happy New year!
I posted a thread on "NextPi" about the possibility of expanding sound functions. If you can prepare something like RAMDISK on the Pi side, transfer the application and execute it on the command line, you can use the VGM player or software MIDI synthesizer application.
Yes that is what is being done now. The NextPi linux distro for the pi has a number of music players on it. The next can transfer music files to the pi's ramdisk (we don't want to alter the sd card to avoid a number of issues) over the uart and then send a shell command to play the music. If the music player on the pi is interactive then the program on the next side can control the player as the music is played.
Around November last year, I noticed that the control register for the "BOARD FEATURE CONTROL" item on the Wiki was updated and that "DAC B and C ports" were added. (Every time an update of "CSpect" is posted on the FB, new graphic mode or scroll register is added?)
cspect usually makes a number of features public for the first time because the author is part of the dev team and the emulator is being used by developers testing new features.

There are four 8-bit dacs in the next and they are named A, B, C, D. A and B are on the left and C and D are on the right. These are output to via io ports or a couple of nextreg. The io ports are accessible to the cpu and dma and the nextreg are accessible to the cpu and copper.

The port assignments are as follows. These ports are chosen to support standard spectrum peripherals (there are many) like specdrum, covox, soundrive, etc. Some ports are made mono by writing to a left side and right side dac.

Code: Select all

	-- audio dac
	
	-- A  -   FB  DF  1F  F1  -  3F
	-- B  B3  -   -   0F  F3  0F -
	-- C  B3  -   -   4F  F9  4F -
	-- D  -   FB  DF  5F  FB  -  5F
The nextreg can write to a left, right or mono dac:

Code: Select all

0x2C (44) => DAC B Mirror (left)
(R)
  bits 7:0 = MSB of current I2S (pi) left side sample
             the LSB is latched and can be read from nextreg 0x2D later
(W)
  bits 7:0 = 8-bit sample written to left side DAC B (soft reset = 0x80)

0x2D (45) => DAC A+D Mirror (mono)
(R)
  bits 7:0 = LSB of last I2S (pi) sample read from nextreg 0x2C or nextreg 0x2E
(W)
  bits 7:0 = 8-bit sample written to DACs A and D (soft reset = 0x80)

0x2E (46) => DAC C Mirror (right)
(R)
  bits 7:0 = MSB of current I2S (pi) right side sample
             the LSB is latched and can be read from nextreg 0x2D later
(W)
  bits 7:0 = 8-bit sample written to right side DAC C (soft reset = 0x80)
The dma is single channel so can only be used to play mono samples. The copper can generate stereo through the nextreg.
Request for a sound player application using "Copper".
I have some basic questions about "Copper" because there is no way to know when the program has finished executing. However, I expect an application such as "SCC (wave memory sound generator)" using a DAC expanded to 3 ports.
Several people have mono copper players and one has a stereo copper player but none of it is open so I can't share any code. However, it shouldn't be too hard to do as all you're doing is sending one sample per scanline (that would be about 15kHz sample rate; you can do more if you want higher sample rate). The caveat is the display frame changes depending on spectrum timing model, vga and hdmi. So the copper program would be slightly different for different video frames. The copper only does wait and write (to nextreg) so a copper program that does audio waits for a specific scanline and then writes a sample. Each frame the cpu would be responsible for updating the samples that will be written in the coming frame.

The copper is synchronized to the display generation. You can wait to a specific scan line and horizontal postion (to 8 pixel granularity). It can execute a NOP to delay a quarter pixel (this is a nexreg write to register 0), a STOP (an impossible wait, eg for scanline 511), WAIT or WRITE. It just executes instructions in its list in order and will loop from the end to the beginning. Your program controls where it is with waits. The copper mode can also cause it to restart its program when the display returns to position 0,0.

The next is not finished yet; the goal is to finish for the second kickstarter. There are still a few features that may get in for audio, including improved dma, extended AY, and a second pass at the pi interface. I can't say what will make it in because there isn't much space left on the fpga.

The current feature set, as of today, is controlled by the ports and nextreg lists that Ped7g posted above.

User avatar
Black_Cat
Posts: 73
Joined: Fri Aug 25, 2017 2:11 pm
Location: Saint Petersburg, Russia Today
Contact:

Re: from Japan

Postby Black_Cat » Wed Jan 01, 2020 5:43 pm

In ZX Next, you don't need to use the SounDriveTM ports at #F1, #F3, #F9. These addresses are spurious side ports that were created when the lprint iiitm interface port #FB was added to SounDriveTM. This interface was previously widely used as Covox. Due to incomplete decryption, these spurious side ports could have different addresses, different from #F1, #F3, #F9. Usually these ports are not used for audio playback, and they are not available on modern commercially available Russian sound cards that use CPLD for decryption. You do not know the history of the ZX Spectrum in the USSR, and mechanically copy everything, including what has never been used, and you do not need. Modern Russian sound cards use the following most common port addresses in the USSR:
#FB - Lprint III TM mono Covox sound
#DD - mono ScorpionTM sound
#B3 - mono General SoundTM
#3F,#5F - stereo Profi+TM sound
#0F,#1F,#4F,#5F - stereo 4 channels SounDriveTM sound


Who is online

Users browsing this forum: No registered users and 4 guests