Author
| New MSX1 demo: Waves
|
spl msx professional Posts: 715 | Posted: July 01 2005, 01:26   |
I can't run it. MSX says "bad file mode"
Yours,
PD: It's possible to do a psg-sample-player without "internal sample"? I want to make my own samples  |
|
dvik msx master Posts: 1302 | Posted: July 01 2005, 02:26   |
The samples.bin is not an MSX file. its the sample data. You need to compile it with tniASM first  To make it clearer, I renamed the sample data file to sample.dat. I also included the compiled bin file "player.bin". I updated the package and replaced the old one:
http://www.bluemsx.com/demos/psg_sample_player.zip
Sorry for the confusion.
The sample player is really generic and does not embed any samples. If you look at the example.asm file you'll see how to load and play a sample using the sample player. Then its up to you to load the samples you want to play  . The sample data should be unsigned 8bit samples and I think the sample rate I'm using is about 8kHz. |
|
dvik msx master Posts: 1302 | Posted: July 01 2005, 02:36   |
It would be nice if someone could make a program that took a wave file as argument and played it. I'm not that good at doing disk stuff so I can't really do it myself.
|
|
NYYRIKKI msx master Posts: 1497 | Posted: July 01 2005, 07:25   |
Try something like:
LD C,#1A
LD DE,SAMPLE
CALL 5
LD C,#F
LD DE,#5C
CALL 5
LD C,#27
LD HL,(#6c)
CALL 5
LD C,#10
CALL 5
LD HL,SAMPLE
JP PLAYSAMPLE
SAMPLE:
|
|
dvik msx master Posts: 1302 | Posted: July 01 2005, 20:18   |
Thanks NYYRIKKI, I'll try it
|
|
Sonic_aka_T
 msx guru Posts: 2260 | Posted: July 02 2005, 00:08   |
@dvik: the DOS commandline parameters are stored at address $0080 iirc. I think there's a leading byte that indicates the length of the string, there may also be a leading space, though I'm not sure... You can then search for the > . < and LDIR the name into your FCB after some validation. Then just use BDOS calls to load the file.
|
|
BiFi msx guru Posts: 3142 | Posted: July 02 2005, 07:39   |
The command line parameters are indeed stored from $0080-$00ff, where $0080 contains the length of the parameter block and $0081-$00ff contains the actual string. The string starts with a space since it seperates the command from its parameters.
When using DOS2 it's recommended to read the PARAMETERS environment item instead and it's better scan for spaces with CPIR. HL will point to the next character. For option switches CPIR is useful to scan for the switch character (usually - or /) and set a flag or do something else when it finds an option switch. Parsing a pathname, filename or other string can be done with a few DOS2 specific BDOS calls.
Also, like NYYRIKKI wrote, the first two parameters are formatted in FCB-ready filenames from $005c and $006c and both are 12 bytes long. This includes the drive specification.
|
|
Yukio msx professional Posts: 764 | Posted: January 14 2006, 13:44   |
Maybe a 512 KB MEGARAM cartridge.
After all, there could be some uses for more memory on MSX1!
|
|
BodyHammeR msx addict Posts: 486 | Posted: January 23 2006, 21:23   |
Since I recently got my hands on a LPE-FLASH G cart I tried running waves (1.1 version) from it on my sony hb-75. It works, but not as it should. There are graphical glitches in the 'waves' logo and the animations at the top half of the screen (where the Kenny animation is played as well).
I have yet to try it with my MegaFlashROM (SCC 512k) cart and on my philips 8020 (running it on machines other than MSX1 is no fun  ), but since it should work ok, I'd like to know how exactly I transfer the rom onto my FLASH G cart and run it.
@BiFi, can you tell me how to set the jumpers during flashing and running it?
(I post here because I think the answer could prove to be useful to others as well  ) |
|
BiFi msx guru Posts: 3142 | Posted: January 23 2006, 21:34   |
the jumper settings for flashing it is always the same and is displayed when you get the usage of the flashloader:
16K - slot off (after boot slot on) - read/write - I/O
when running it... for waves it's:
8K - slot on - read - slot |
|
dvik msx master Posts: 1302 | Posted: January 23 2006, 22:01   |
There are indeed a couple of graphical glitches in Waves when running on MSX1. I'm planning to fix them and release a 1.2 version pretty soon and I think its a quite easy fix. I'll post a new version here when I'm done. It will still be released in ascii8 rom format since thats the easiest way of playing it on an MSX1.
|
|
ARTRAG msx master Posts: 1578 | Posted: January 23 2006, 22:43   |
@dvik
Maybe the release 1.2 could sound a quite different music...
|
|
dvik msx master Posts: 1302 | Posted: January 23 2006, 22:59   |
Yes, I'll try to switch the sample player to the Chrystal clear one. Its a bit more cpu intesnive but not much. I've been looking at the code of the demo and there are some room for optimization and I think its possible to squeze in the 8kHz crystal replayer into the demo.
|
|
ARTRAG msx master Posts: 1578 | Posted: January 23 2006, 23:42   |
You could have the main loop working at 2666Hz still having a
PSG transition rate of 8000Hz.
In this case you must set dt1=dt2=dt3=447
A part from the loss due to the antialiasing filter (that cuts
at 4kHz) the SNR will be the same of the 44,1KHz version.
|
|
BodyHammeR msx addict Posts: 486 | Posted: March 14 2006, 19:48   |
Well I have tried Waves v1.1 on both LPE-FLASH G (512k, latest version) and MegaFlashROM SCC (512k) on a Sony HB-75P and a Canon V-20. Sadly, the main part of the demo produces severe graphical glitches - The 'WAVES' waving logo is warped, and of the top part, bits are missing and/or placed in the wrong part of the screen.
It kind of worries me that this neat demo works fine using emulators (I only ran it using openMSX, but I think it will run fine on the other decent emulators too  ) and not on real hardware.
Ah well, at least there are still people out there unleashing brand new things for our beloved obsolete machine  |
|
|
|
|