SHARE
TWEET

PS1 VAB Extractor

Nicknine Oct 20th, 2019 (edited) 96 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # PS1 sample banks (VAB/VH+VB)
  2. # Script for QuickBMS: https://aluigi.altervista.org/quickbms.htm
  3. # You may not always want to use the sample rates table, some games are hardcoded to play all sounds with same sample rate.
  4.  
  5. goto 0x12
  6. get PROGRAMS short
  7. get TONES short
  8. get WAVES short
  9. get BNAME basename
  10.  
  11. get EXT extension
  12.  
  13. math PROGRAMS_OFF = 0x20
  14. math TONES_OFF = 0x820
  15. xmath WAVES_OFF "TONES_OFF + PROGRAMS * 0x200"
  16. if EXT == "vh" || EXT == "vb"
  17.     open FDDE "VH" 0
  18.     open FDDE "VB" 1
  19.     math DATA_OFF = 0x00
  20. else
  21.     open FDDE "VAB" 1
  22.     xmath DATA_OFF "WAVES_OFF + 0x200"
  23. endif
  24. log MEMORY_FILE9 0 0
  25.  
  26. callfunction INIT_PITCH_TABLE 1
  27.  
  28. goto PROGRAMS_OFF
  29. for i = 0 < PROGRAMS
  30.     xmath OFFSET "PROGRAMS_OFF + i * 0x10"
  31.     goto OFFSET
  32.     get TONES byte
  33.    
  34.     for j = 0 < TONES
  35.         xmath OFFSET "TONES_OFF + i * 0x200 + j * 0x20"
  36.         goto OFFSET
  37.         goto 0x04 0 SEEK_CUR
  38.         get CENTER byte
  39.         get SHIFT byte
  40.         goto 0x10 0 SEEK_CUR
  41.         get WAVE short
  42.         math WAVE - 1
  43.        
  44.         goto WAVES_OFF
  45.         math OFFSET = DATA_OFF
  46.         get ZERO short
  47.         for k = 0 < WAVE
  48.             get SIZE short
  49.             math SIZE << 3
  50.             math OFFSET + SIZE
  51.         next k
  52.        
  53.         get SIZE short
  54.         math SIZE << 3
  55.         string NAME p "%s_%d_%d.vgmstream" BNAME i j
  56.         log NAME OFFSET SIZE 1
  57.        
  58.         callfunction NOTE_TO_FREQ 1 CENTER SHIFT
  59.         string ENTRY p "%s:%d" NAME FREQ
  60.         put ENTRY line MEMORY_FILE9
  61.     next j
  62. next i
  63.  
  64. get SIZE asize MEMORY_FILE9
  65. append
  66. log "!table.txt" 0 SIZE MEMORY_FILE9
  67. append
  68.  
  69. # Based on SsPitchFromNote from PS1 SDK.
  70. startfunction NOTE_TO_FREQ
  71.     set CENTER NOTE_TO_FREQ_ARG1
  72.     set SHIFT NOTE_TO_FREQ_ARG2
  73.    
  74.     math SHIFT >> 3
  75.    
  76.     xmath CALC "60 - (CENTER - 60)"
  77.     xmath IDX "16 * (CALC % 12) + SHIFT"
  78.     getarray PITCH 0 IDX
  79.     xmath TYPE "CALC / 12 - 5"
  80.    
  81.     if TYPE > 0
  82.         math PITCH << TYPE
  83.     elif TYPE < 0
  84.         math TYPE * -1
  85.         math PITCH >> TYPE
  86.     endif
  87.    
  88.     xmath FREQ "(PITCH * 44100) / 4096"
  89. endfunction
  90.  
  91. startfunction INIT_PITCH_TABLE
  92.     putarray 0 0   4096
  93.     putarray 0 1   4110
  94.     putarray 0 2   4125
  95.     putarray 0 3   4140
  96.     putarray 0 4   4155
  97.     putarray 0 5   4170
  98.     putarray 0 6   4185
  99.     putarray 0 7   4200
  100.     putarray 0 8   4216
  101.     putarray 0 9   4231
  102.     putarray 0 10  4246
  103.     putarray 0 11  4261
  104.     putarray 0 12  4277
  105.     putarray 0 13  4292
  106.     putarray 0 14  4308
  107.     putarray 0 15  4323
  108.     putarray 0 16  4339
  109.     putarray 0 17  4355
  110.     putarray 0 18  4371
  111.     putarray 0 19  4386
  112.     putarray 0 20  4402
  113.     putarray 0 21  4418
  114.     putarray 0 22  4434
  115.     putarray 0 23  4450
  116.     putarray 0 24  4466
  117.     putarray 0 25  4482
  118.     putarray 0 26  4499
  119.     putarray 0 27  4515
  120.     putarray 0 28  4531
  121.     putarray 0 29  4548
  122.     putarray 0 30  4564
  123.     putarray 0 31  4581
  124.     putarray 0 32  4597
  125.     putarray 0 33  4614
  126.     putarray 0 34  4630
  127.     putarray 0 35  4647
  128.     putarray 0 36  4664
  129.     putarray 0 37  4681
  130.     putarray 0 38  4698
  131.     putarray 0 39  4715
  132.     putarray 0 40  4732
  133.     putarray 0 41  4749
  134.     putarray 0 42  4766
  135.     putarray 0 43  4783
  136.     putarray 0 44  4801
  137.     putarray 0 45  4818
  138.     putarray 0 46  4835
  139.     putarray 0 47  4853
  140.     putarray 0 48  4870
  141.     putarray 0 49  4888
  142.     putarray 0 50  4906
  143.     putarray 0 51  4924
  144.     putarray 0 52  4941
  145.     putarray 0 53  4959
  146.     putarray 0 54  4977
  147.     putarray 0 55  4995
  148.     putarray 0 56  5013
  149.     putarray 0 57  5031
  150.     putarray 0 58  5050
  151.     putarray 0 59  5068
  152.     putarray 0 60  5086
  153.     putarray 0 61  5105
  154.     putarray 0 62  5123
  155.     putarray 0 63  5142
  156.     putarray 0 64  5160
  157.     putarray 0 65  5179
  158.     putarray 0 66  5198
  159.     putarray 0 67  5216
  160.     putarray 0 68  5235
  161.     putarray 0 69  5254
  162.     putarray 0 70  5273
  163.     putarray 0 71  5292
  164.     putarray 0 72  5311
  165.     putarray 0 73  5331
  166.     putarray 0 74  5350
  167.     putarray 0 75  5369
  168.     putarray 0 76  5389
  169.     putarray 0 77  5408
  170.     putarray 0 78  5428
  171.     putarray 0 79  5447
  172.     putarray 0 80  5467
  173.     putarray 0 81  5487
  174.     putarray 0 82  5507
  175.     putarray 0 83  5527
  176.     putarray 0 84  5547
  177.     putarray 0 85  5567
  178.     putarray 0 86  5587
  179.     putarray 0 87  5607
  180.     putarray 0 88  5627
  181.     putarray 0 89  5648
  182.     putarray 0 90  5668
  183.     putarray 0 91  5688
  184.     putarray 0 92  5709
  185.     putarray 0 93  5730
  186.     putarray 0 94  5750
  187.     putarray 0 95  5771
  188.     putarray 0 96  5792
  189.     putarray 0 97  5813
  190.     putarray 0 98  5834
  191.     putarray 0 99  5855
  192.     putarray 0 100 5876
  193.     putarray 0 101 5898
  194.     putarray 0 102 5919
  195.     putarray 0 103 5940
  196.     putarray 0 104 5962
  197.     putarray 0 105 5983
  198.     putarray 0 106 6005
  199.     putarray 0 107 6027
  200.     putarray 0 108 6049
  201.     putarray 0 109 6070
  202.     putarray 0 110 6092
  203.     putarray 0 111 6114
  204.     putarray 0 112 6137
  205.     putarray 0 113 6159
  206.     putarray 0 114 6181
  207.     putarray 0 115 6203
  208.     putarray 0 116 6226
  209.     putarray 0 117 6248
  210.     putarray 0 118 6271
  211.     putarray 0 119 6294
  212.     putarray 0 120 6316
  213.     putarray 0 121 6339
  214.     putarray 0 122 6362
  215.     putarray 0 123 6385
  216.     putarray 0 124 6408
  217.     putarray 0 125 6431
  218.     putarray 0 126 6455
  219.     putarray 0 127 6478
  220.     putarray 0 128 6501
  221.     putarray 0 129 6525
  222.     putarray 0 130 6549
  223.     putarray 0 131 6572
  224.     putarray 0 132 6596
  225.     putarray 0 133 6620
  226.     putarray 0 134 6644
  227.     putarray 0 135 6668
  228.     putarray 0 136 6692
  229.     putarray 0 137 6716
  230.     putarray 0 138 6741
  231.     putarray 0 139 6765
  232.     putarray 0 140 6789
  233.     putarray 0 141 6814
  234.     putarray 0 142 6839
  235.     putarray 0 143 6863
  236.     putarray 0 144 6888
  237.     putarray 0 145 6913
  238.     putarray 0 146 6938
  239.     putarray 0 147 6963
  240.     putarray 0 148 6988
  241.     putarray 0 149 7014
  242.     putarray 0 150 7039
  243.     putarray 0 151 7064
  244.     putarray 0 152 7090
  245.     putarray 0 153 7116
  246.     putarray 0 154 7141
  247.     putarray 0 155 7167
  248.     putarray 0 156 7193
  249.     putarray 0 157 7219
  250.     putarray 0 158 7245
  251.     putarray 0 159 7271
  252.     putarray 0 160 7298
  253.     putarray 0 161 7324
  254.     putarray 0 162 7351
  255.     putarray 0 163 7377
  256.     putarray 0 164 7404
  257.     putarray 0 165 7431
  258.     putarray 0 166 7458
  259.     putarray 0 167 7485
  260.     putarray 0 168 7512
  261.     putarray 0 169 7539
  262.     putarray 0 170 7566
  263.     putarray 0 171 7593
  264.     putarray 0 172 7621
  265.     putarray 0 173 7648
  266.     putarray 0 174 7676
  267.     putarray 0 175 7704
  268.     putarray 0 176 7732
  269.     putarray 0 177 7760
  270.     putarray 0 178 7788
  271.     putarray 0 179 7816
  272.     putarray 0 180 7844
  273.     putarray 0 181 7873
  274.     putarray 0 182 7901
  275.     putarray 0 183 7930
  276.     putarray 0 184 7958
  277.     putarray 0 185 7987
  278.     putarray 0 186 8016
  279.     putarray 0 187 8045
  280.     putarray 0 188 8074
  281.     putarray 0 189 8103
  282.     putarray 0 190 8133
  283.     putarray 0 191 8162
  284.     putarray 0 192 8192
  285. endfunction
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top