VOGONS


Reply 240 of 590, by Fagear

User metadata
Rank Member
Rank
Member
keropi wrote:

ah, now I get it. it's a shame.... I thought that sid files where something like midi files.

Don't get disappointed yet. I've been told that there is C64 emulator (including emulation of SID and graphics) that works on 386 processor.
That been said... If we remove from such programm heavy parts for drawing graphics and emulating SID and just stream commands for SID into replica - we must not get heavier on CPU. I think it must be less CPU-hungry because we do not need to draw anything and simulate SID (we have real hardware for it!). So it is THEORETICALLY possible to play *.SID with the replica on 386 CPU.
But we have to find some open source for such emulator that we can reuse. We didn't find such efficient solution yet.

bristlehog wrote:

What is HVSID by the way?

I think it is HVSC. I've already downloaded it.

New BIG soundcard: FMonster.
Covox Sound Master replica
Innovation SSI-2001 replica & DuoSID.
My audio/video collection.

Reply 241 of 590, by shock__

User metadata
Rank Oldbie
Rank
Oldbie

I used to frequent #c-64 on ircnet ... maybe they know where to point me for obtaining source codes for the hardsid programs/drivers (which could then be adapted).

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 242 of 590, by amigo-mexicano

User metadata
Rank Newbie
Rank
Newbie
Scali wrote:

Yes, I suppose the cards are not that expensive anyway, so you could just buy two cards, one with 6581 and one with 8580, and swap the cards, not the chips 😀

This is exactly what I did. 😎

amigo-mexicano
Retro computer-and-console nerd from Mexico City!
www.videogamedose.com

Reply 243 of 590, by bristlehog

User metadata
Rank Oldbie
Rank
Oldbie
Fagear wrote:

And I tested some HardSID-compatible software and of course it doesn't recognize the replica and doesn't play.

It won't play, because HardSID only uses 2 ports to operate (vs. 29 ports of SSI-2001) and uses them differently.

HardSID write operation:

_outp(port, value);
_outp(port + 1, register);

SSI-2001 write operation:

_outp(port + register, value);

I'm not very sure, but perhaps with port trapping it would be possible to make HardSID compatible with SSI-2001 to some extent.

Hardware comparisons and game system requirements: https://technical.city

Reply 244 of 590, by shock__

User metadata
Rank Oldbie
Rank
Oldbie

If all else fails, wouldn't it be an option to create "sid dumps" (being just basic timing info and sid data) from .sid files, so you'd just have to send data to the ports on the card, rather than emulating a whole c64 enviroment at the same time.

Certainly not very elegant, but that way no one would get excluded because of a slow cpu ... the SIDStick (which is basically a pocket sized SID player takes that approach if I'm not mistaken).
http://gadgetgangster.com/find-a-project/56?projectnum=236

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 245 of 590, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
bristlehog wrote:
Great Hierophant wrote:

so we use this card as a playback device for HVSID.

What is HVSID by the way?

I meant to write the HVSC, the High Voltage SID Collection, a huge collection (over 46,000) of SID tunes from games and composers.

Fortunately, a SID player does not need to emulate a whole C64. It does not need to emulate the video output of the VIC-II, a 1541 disk drive or the input features of the CIA. But it has to have cycle accurate 6502 instruction support and proper timing from the CIA and the VIC-II.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 246 of 590, by Scali

User metadata
Rank l33t
Rank
l33t
shock__ wrote:

If all else fails, wouldn't it be an option to create "sid dumps" (being just basic timing info and sid data) from .sid files, so you'd just have to send data to the ports on the card, rather than emulating a whole c64 enviroment at the same time.

That's one way, but I think it would be difficult to support things like looping (you'd dump the data as the song is playing, but you don't know anything about the song position).
One way I'm thinking of is to take the 6502-code from the SID and recompile it for x86. Shouldn't be that difficult. In its most simple form you would just disassemble the code, and replace every instruction with a C-function that performs the operation. Then you compile the C-code and let the compiler inline the function calls etc, so it will become reasonably efficient code (even a 386 is WAY faster than a 6502, so the code doesn't have to be that tight).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 247 of 590, by Scali

User metadata
Rank l33t
Rank
l33t
Great Hierophant wrote:

so it utilizes 6502 based instructions and relies on either the VIC or the CIA for timing.

Normally a SID just contains an entry point that needs to be called at a given interval. The actual timing is not done by the code in the SID file, but by the program using the SID music.

This is what it looks like in my code (using KickAss):

.var music = LoadSid("Nightshift.sid")

// Init music
lda #music.startSong-1
jsr music.init

..

// At a fixed position on every frame, eg using a raster interrupt at a given scanline
jsr music.play

.pc=music.location "Music"
.fill music.size, music.getData(i)

So my guess is that SID replayers would simply set up a static timer at 50 or 60 Hz and call the code at that interval. I don't think any CIA or VIC emulation is required at all for basic SIDs. Sample playback tricks will probably be an exception to that rule though. But even then, you'd probably just have to emulate the most basic timing stuff... CIA timer and raster interrupt.

Last edited by Scali on 2015-02-10, 08:23. Edited 1 time in total.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 248 of 590, by Stojke

User metadata
Rank l33t
Rank
l33t

I did a little thinking, couldnt have capacitance choosing for either chip be done with a simple dipswitch, or jumper?
I tihnk that would be more modular than fixing the card to one chip.

Note | LLSID | "Big boobs are important!"

Reply 249 of 590, by shock__

User metadata
Rank Oldbie
Rank
Oldbie
Stojke wrote:

I did a little thinking, couldnt have capacitance choosing for either chip be done with a simple dipswitch, or jumper?
I tihnk that would be more modular than fixing the card to one chip.

Like I said ... just add sockets, that way switching caps is as easy as switching jumpers ... except that you'd have to keep the right caps around.
Switching the supply voltage for the SID should also be hardwired in my opinion ... eliminates using an 8580 with 12 volts by "accident". Certainly could have been done with a jumper, but actually soldering on the card puts you in a more thoughtful mindset (usually including the schematic and/or manual) than just putting on a jumper or not.

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 250 of 590, by bristlehog

User metadata
Rank Oldbie
Rank
Oldbie

Someone called nop from Belarus joined the SID player development. He's been of great help, and here's the video of Acidjazzed Evening over my P4-3066.

Hardware comparisons and game system requirements: https://technical.city

Reply 251 of 590, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
Scali wrote:
shock__ wrote:

One way I'm thinking of is to take the 6502-code from the SID and recompile it for x86. Shouldn't be that difficult. In its most simple form you would just disassemble the code, and replace every instruction with a C-function that performs the operation. Then you compile the C-code and let the compiler inline the function calls etc, so it will become reasonably efficient code (even a 386 is WAY faster than a 6502, so the code doesn't have to be that tight).

So my guess is that SID replayers would simply set up a static timer at 50 or 60 Hz and call the code at that interval. I don't think any CIA or VIC emulation is required at all for basic SIDs. Sample playback tricks will probably be an exception to that rule though. But even then, you'd probably just have to emulate the most basic timing stuff... CIA timer and raster interrupt.

I would think the PC's PIT would take care of most basic CIA timing duties. However, if a SID tune relied on 6502 cycle exact code, then converting that code to 8086 machine instructions would prove very problematic. Digital sampling with the SID, like the stuff from Impossible Mission "Another visitor, stay awhile, stay FOREVER!" may not work in that way.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 252 of 590, by Scali

User metadata
Rank l33t
Rank
l33t
Great Hierophant wrote:

I would think the PC's PIT would take care of most basic CIA timing duties. However, if a SID tune relied on 6502 cycle exact code, then converting that code to 8086 machine instructions would prove very problematic. Digital sampling with the SID, like the stuff from Impossible Mission "Another visitor, stay awhile, stay FOREVER!" may not work in that way.

Yup, basic timing for CIA or raster interrupts could be handled by the PIT I suppose.
I don't think many SID tunes would rely on cycle-exact code. If only because it prevents the CPU from doing other stuff, so it won't be very efficient. So it would only be used for standalone tunes, not for games/demos generally (much like most multispeed SIDs).
I think sample playback is usually done with CIA or raster interrupts ("play one sample every X scanlines"), so I would think you'd be okay with PIT-timing.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 253 of 590, by Fagear

User metadata
Rank Member
Rank
Member
bristlehog wrote:

Someone called nop from Belarus joined the SID player development. He's been of great help, and here's the video of Acidjazzed Evening over my P4-3066.

Good news! 😎

Great Hierophant wrote:

SID tune relied on 6502 cycle exact code, then converting that code to 8086 machine instructions would prove very problematic. Digital sampling with the SID, like the stuff from Impossible Mission "Another visitor, stay awhile, stay FOREVER!" may not work in that way.

Well... I think if someone can capture direct commands to the SID, sampled by time, than anything else would not be necessary. Just stream of data going into SID's ports,

By the way, an hour ago I've sent another 5 boards to 4 Vogons users. 😀

New BIG soundcard: FMonster.
Covox Sound Master replica
Innovation SSI-2001 replica & DuoSID.
My audio/video collection.

Reply 254 of 590, by shock__

User metadata
Rank Oldbie
Rank
Oldbie

Candytime? Candytime! (warning: 500kb jpeg)
http://i.imgur.com/DIBja0I.jpg
Shipping off to Fagear in the next days.

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 256 of 590, by amigo-mexicano

User metadata
Rank Newbie
Rank
Newbie
shock__ wrote:

Candytime? Candytime! (warning: 500kb jpeg)
http://i.imgur.com/DIBja0I.jpg
Shipping off to Fagear in the next days.

Are these from SLY Electronics?

amigo-mexicano
Retro computer-and-console nerd from Mexico City!
www.videogamedose.com

Reply 257 of 590, by shock__

User metadata
Rank Oldbie
Rank
Oldbie

Yup, they're from SLY. I even picked up some more (11 in total - 8 going to Fagear) - all working perfectly (after I figured out the original sockets in my C64 are the worst, cheap crap ever) - they still have a considerable amount left. So there shouldn't be a shortpass anytime soon.

The datecode 5092 also makes me assume it's one of the last batches ever made - since commodore declared bankruptcy in early 1994.

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 258 of 590, by amigo-mexicano

User metadata
Rank Newbie
Rank
Newbie
shock__ wrote:

Yup, they're from SLY. I even picked up some more (11 in total - 8 going to Fagear) - all working perfectly (after I figured out the original sockets in my C64 are the worst, cheap crap ever) - they still have a considerable amount left. So there shouldn't be a shortpass anytime soon.

The datecode 5092 also makes me assume it's one of the last batches ever made - since commodore declared bankruptcy in early 1994.

Cool!

I tried to buy from them, but they don't ship outside Germany. I'm sending you a PM, maybe you can help me! 😀

Thanks in advance...

amigo-mexicano
Retro computer-and-console nerd from Mexico City!
www.videogamedose.com

Reply 259 of 590, by keropi

User metadata
Rank l33t++
Rank
l33t++

I decided to make the post instead of a PM to Fagear 😀

I got the package today, EVERYTHING was excellent: packing, components, price, everything. Thanks for doing this Fagear!!!

WP_20150212_003_zps764bab55.jpg

the bagged components on top are some sockets and filtering caps that I got in order to make some tests. I'll start building the card tomorrow and update, I hope my 8580 SID from another source is not DOA 😁

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website