Shop OBEX P1 Docs P2 Docs Learn Events
How to dump Eskimonika :) — Parallax Forums

How to dump Eskimonika :)

pik33pik33 Posts: 2,398
edited 2012-05-12 22:48 in Propeller 1
Sid dumper can only dump about 90 seconds of this tune... :(

So I did this:..

Got a serial player/serial slave and modified it like this:
CON
  _CLKMODE = xtal1 + pll16x
  _XINFREQ = 5_000_000 
  _SD_DO = 0
  _SD_CLK = 1
  _SD_DI = 2
  _SD_CS = 3
  _SD_WP = -1 ' -1 ifnot installed.
  _SD_CD = -1 ' -1 ifnot installed.



OBJ
  sid    : "SIDcog"
  serial : "FullDuplexSerial"
  fat    : "SD3.01_FATEngine.spin"
  
VAR
  byte registers[25]
  long s
  byte k

PUB main | readyToUpdateRegisters, i, j

  sid.start( 10, 11 )
  serial.start( 31, 30, 0, 115200 )
  fat.FATEngineStart(_SD_DO, _SD_CLK, _SD_DI, _SD_CS, _SD_WP, _SD_CD, -1,-1, -1)
  fat.mountPartition(0)     ' mount the sd card
  fat.openFile(fat.newFile(string("e.dmp")), "W")

  repeat j from 0 to 95999
    readyToUpdateRegisters := false    
    repeat while not readyToUpdateRegisters
      repeat while serial.rx <> 13
      if serial.rx == "S" and serial.rx == "D" and serial.rx == "M" and serial.rx == "P"
        readyToUpdateRegisters := true

    repeat i from 0 to 24
      registers[i] := serial.rx
    sid.updateRegisters( @registers )
    fat.writeData(@registers, 25)

  fat.closefile
  fat.unmountPartition

  dira[16]:=1
  outa[16]:=1

  repeat



then used this "minimalistic player" from obex
'
' A minimalistic SID dump player.
' Plays a C64 tune dumped from a .sid file.
'
CON _clkmode = xtal1 + pll16x
    _xinfreq = 5_000_000
    
    SD_PINS  = 0
    playRate = 200'Hz
    rightPin = 10  
    leftPin  = 11
                       
VAR
  byte  buffer[25]

OBJ
  SID : "SIDcog"
  SD  : "fsrw" 
  
PUB Main 

  sd.mount(SD_PINS)                     ' Mount SD card
  sid.start(rightPin, leftPin)          ' Start the emulated SID in a cog
  sd.popen(string("e.dmp"), "r") ' Open tune

  'Main loop
  repeat
    waitcnt(cnt + (clkfreq/playRate))   ' Wait one VBL
    sd.pread(@buffer,25)                ' Read 25 bytes from SD card
    sid.updateRegisters(@buffer)        ' Write 25 byte to SIDcog 


to play this.

It plays, :) but it have some glitches in it. Edit: now it haven't :) Solution was simple: use faster SD card.

Comments

  • Ahle2Ahle2 Posts: 1,179
    edited 2012-05-02 11:30
    It would be easy to modify the dumper to handle tunes longer than 6 minutes.... or 6 / 4 = 1.5 minutes for 200 Hz tunes.
    I don't have the time right now though!
  • pik33pik33 Posts: 2,398
    edited 2012-05-06 23:52
    Solved. Used a faster SD card.

    So, for those who likes this tune, here is headerless raw Eskimonika 8 minutes dump. Because it is headerless, use this "minimalistic player" from OBEX (set playback rate to 200 Hz)

    If you want to do a serial sid dump for yourself, you can use code from first post of this topic. This "SD3.01_FATEngine.spin" is renamed (for use with KyeDOS) Kye's FAT16/32 driver from OBEX.


    Eskimonika.dmp.raw..zip
  • pik33pik33 Posts: 2,398
    edited 2012-05-12 07:37
    Here is long Eskimonika dump with header, playable by Propeller Chiptune Player.
  • tonyp12tonyp12 Posts: 1,951
    edited 2012-05-12 09:13
    here is the tune in mp3 if you wonder wthat this eskimonika is all about.
    http://c64sklastcompo.miina.com/eskimonika.mp3
  • Ahle2Ahle2 Posts: 1,179
    edited 2012-05-12 12:28
    I hope she didn't get hurt when you dumped her. ;)
  • potatoheadpotatohead Posts: 10,261
    edited 2012-05-12 14:33
    Good pick! That one is INSANE good! Such a great era too. People flogging old chips to get great tunes, with most of the world unaware...
  • pik33pik33 Posts: 2,398
    edited 2012-05-12 22:48
    Ahle2 wrote: »
    I hope she didn't get hurt when you dumped her. ;)

    At first try, she did get hurt badly. SD card I used first time was too slow to write data as fast it comes from serial player. So I thought about rewrite this code to add a circular buffer for RS232 data - or something similar. Then I tried another SD card which was fast enough. Now I can make a "serial dump" of SIDs for any time I want :)
Sign In or Register to comment.