MP3 player for MSX

Page 6/51
1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9 | 10 | 11

By Yobi

Master (149)

Yobi's picture

26-02-2007, 07:29

so that means you need a HD or Cf card in your msx in order to store mp3s ?

I guessed the msx would send a signal to the cart, and have an output of some kind..
or the msx'es one

Yes, you need a HD of CF for storing the MP3's.
Maybe Obsonet will give you MP3 radio, but i think it's speed is to slow for it.
But i am not sure.

By Algorythms

Champion (287)

Algorythms's picture

26-02-2007, 09:46

Oi! This is cool. Please include connectors for the internal sound of the MSX too.

By Manuel

Ascended (18133)

Manuel's picture

26-02-2007, 13:33

Wow, that's a LOT of I/O ports, Yobi! Couldn't it be multplexed a bit?

By Prodatron

Paragon (1797)

Prodatron's picture

26-02-2007, 14:50

Thanx for the documents. So the FIFO-Buffer has a size of 2KB (16384bits), which is ok IMHO. After transfering 32bytes you have to check the buffer status again, which slows down the data transfer rate only a little bit. Looks everything fine and easy-to-handle so far!
@Manuel: Are 8 ports really a problem? The user port area has a size of 64 ports.
@Dvik: Great, that you will support it!

By roadfighter

Champion (421)

roadfighter's picture

26-02-2007, 20:34

When the price is good i certenly will buy one. LOL!

By Manuel

Ascended (18133)

Manuel's picture

26-02-2007, 21:29

The more ports you use, the bigger the chance that it will conflict with other cartridges/hardware in the machine.

By Yobi

Master (149)

Yobi's picture

26-02-2007, 22:03

There are 2 more pics on www.umf.be/viewtopic.php?t=2850

By Prodatron

Paragon (1797)

Prodatron's picture

27-02-2007, 11:36

Ah, BTW, there is another fantastic operational area for the MP3 card: Movies with high quality music!
You have to load and send less bytes for the sound, but have still a higher quality, and there is more CPU time left for the video itself. NYYRIKKI dragons lair video is already very impressive, but the MP3 card could improve it a lot. Or think about special TurboR + GFX9000 + MP3 movies Tongue

By wolf_

Ambassador_ (9892)

wolf_'s picture

27-02-2007, 12:07

Prodatron: Dragon's Lair, tho impressive, has a few creative issues to keep in mind:
- it's moving at a fast pace, fast enough to hide the color-spill artifacts
- it's pretty 'zoomed-in' all the way, big objects etc. This too helps to mask the color-spill artifacts
- it's made by professionals in their field

To go with the latter argument: I wouldn't know someone in our scene capable of rendering a movie like that. So, while the idea might technically be possible, from a creative point I don't think we should ever expect a similar movie to pop up. I see more future in classic animations like we see in game intros (like Microcabin games), copying pieces o' screen according to a script. Not because movies are impossible, but because our current crop o' artists won't reach that level. We're already short on capable (or active) graphicians.

sc2/4 isn't the only way one can playback a movie at a decent framerate, I've seen g9k movies on msd's msxpod (^_^), but yet again: those are all random converted videos, I just don't see it happen that some unknown artist we've been overlooking all these years comes up with a really orginal video, which is also suitable for a game.. heck, how many high-end/spec games have been released in the past 4 years anyway?

It's the sad truth of today. There are two solutions: [1] find graphicians and/or animators, [2] make a tool that provides a GUI which is understandable for non-graphicians/animators which allows non-graphicians/animators to make gfx/animations. Kinda like Bob Ross providing a bridging method to non-painters in order to enable them to make paintings. The latter option would be a mammoth project on its own already..

From all of us here: happy painting and RNFF, my friend! Running Naked in a Field of Flowers

By DD

Expert (88)

DD's picture

27-02-2007, 12:29

Hi,

Maybe it is usefull for some of you to have some technical details:

For bass, treble, spatial stereo and pseudo stereo a TDA8425 is used together with a PCA9564D I2C controller (I/O &H24-&H26). A second TDA8425 can be used to combine the standard MSX audio output with the output of the MP3 player, so bass, treble, spatial and pseudo stereo can be selected independently.

Indeed it is a 'rotating FIFO', at this moment the size is 2048 bytes. An interrupt will be generated when the FIFO level is below 256 bytes. Some time ago i did a check with the interrupts, it was possible to edit in WBass and go to basic while a 192kbps MP3 is playing, but any access to HDD crashes the MSX. I don't know how to open more than one file on the MSX system (?), sorry, i am a hardware guy. I am not sure if a 320kbps MP3 in basic is possible. You can also poll bit 7 of I/O address &H23 (=need data). So after this bit is set or the interrupt is generated, you can send 2048-256 bytes (7* OTIR). It might be possible to increase the buffersize, because i implemented 'shadow memory' which should contain data of the VS1011 memory... But it seems not possible to read memory of the VS1011, i -thought- it would be possible to read register 6 from the VS1011, it isn't. This remaining part of AtMega RAM could be used for audio data as well, but checking the limits of the buffer will be more complex and the interrupt routine of the AtMega must be very short otherwise a R800 might be too fast and the AtMega will lose bytes.

While playing a 320kbps MP3 from a CF card (IDE interface), it is not possible to send 640 bytes to &H98 of the VDP. I think it is because of the delay of the VDP. The Z80 can execute longer divide loops instead, but not loops containing OUT (&H98).

For adding extra flash storage on the cartridge, i am affraid we will have to start over again. The concept of the player is ready and debugged... There are no I/O pins left on the AtMega, but maybe there is a possibility to add SD/MMC because it has a serial bus. I am working on a bootloader for the AtMega right now, it should be possible to update the main software later on.

About emulating, bit 4 of &H23(read) is a busy flag, when changing from audio to register (command) data, the AtMega sets this flag and keeps this bit high while sending the register buffer (max 256 bytes) to the VS1011. The MSX should poll this bit before writing to I/O &H23 again. For writing to the dataport, no waits are needed. The cart does not generate a hardware WAIT signal, using this status bit the programmer can be more efficient and let the MSX do other things in the mean time.

Writing to &H21 will reset the AtMega, the VS1011 and the I2C chip.
&H22(wr) = audio / register data
&H22(rd) = shadow memory of VS1011 registers (polled by AtMega so it is available for the MSX immediately)
&H23(wr) = Bit 3-0 = Register select
&H23(wr) = Bit 4 = *
&H23(wr) = Bit 5 = 1=Don't auto increment the register number, normally it is incremented after 2 data bytes
&H23(wr) = Bit 6 = 1=Data is register, will be stored in AtMega first
0=Data is audio data
&H23(wr) = Bit 7 = 1=Send stored register data to VS1011
&H23(rd) = Bit 3-0 = Register select, data read on &H22 is the content of this register
&H23(rd) = Bit 4 = Busy
&H23(rd) = Bit 5 = *
&H23(rd) = Bit 6 = *
&H23(rd) = Bit 7 = Need audio data (interrupt requested)

&H24 to &H27 are the PDA9564D directly, the exact meaning of these registers can be found in the PCA9564D datasheet as well.

If you want i can send a short example program, later on i will put all details on www.pa4den.nl to make it downloadable for everyone.

Grz, Dennis

Page 6/51
1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9 | 10 | 11