ты сделай чтоб не наиграть - а конвертануть.
На этот случай есть недавно приведённая уже во вполне-таки играбельный вид Motocross Go!, где звуковым чипом служит сэмплер
Namco C352.
За что отвечают первые 2 и последние 6 байт каждой мелодийки, а также машинные слова, предваряющие адреса каждого сэмпла, пока не ясно, но в остальном структура чётко видна на цитатах из кода ниже. Обратите внимание, что после 1-го сэмпла порядок следования начального, конечного и зацикливающего адресов у всех последующих становится строго обратный.
BGM1:
008B6C: 0323 illegal
008B6E: 8800 ; samples bank (bytes are swapped)
008B70: 2A00 mov.b @h'ffff00, r2l
008B72: EC02 ; 1st sample start address
008B74: EB01 ; 1st sample end address
008B76: 8900 ; 1st sample loop address
008B78: 2A80 mov.b @h'ffff80, r2l
008B7A: EC01 ; 2nd sample loop address
008B7C: EB00 ; 2nd sample end address
008B7E: 8A00 ; 2nd sample start address
008B80: 2A80 mov.b @h'ffff80, r2l
008B82: EC00 ; 3rd sample loop address
008B84: EBFF ; 3rd sample end address
008B86: 8A00 ; 3rd sample start address
008B88: 2A80 mov.b @h'ffff80, r2l
008B8A: ECFF ; 4th sample loop address
008B8C: EBFE ; 4th sample end address
008B8E: 8B00 ; 4th sample start address
008B90: 2A80 mov.b @h'ffff80, r2l
008B92: ECFE and.b #h'fe, r4l
008B94: EBFD and.b #h'fd, r3l
008B96: 8C00 ; 5th sample start address
008B98: 2A80 mov.b @h'ffff80, r2l
008B9A: ECFD and.b #h'fd, r4l
008B9C: EBFC and.b #h'fc, r3l
008B9E: 8D00 ; 6th sample start address
008BA0: 2A80 mov.b @h'ffff80, r2l
008BA2: ECFC and.b #h'fc, r4l
008BA4: EBFB and.b #h'fb, r3l
008BA6: 8E00 ; 7th sample start address
008BA8: 2A80 mov.b @h'ffff80, r2l
008BAA: ECFB and.b #h'fb, r4l
008BAC: EBFA and.b #h'fa, r3l
008BAE: 8F00 ; 8th sample start address
008BB0: 2A80 mov.b @h'ffff80, r2l
008BB2: ECFA and.b #h'fa, r4l
008BB4: EBF9 and.b #h'f9, r3l
008BB6: 9000 ; 9th sample start address
008BB8: 2A80 mov.b @h'ffff80, r2l
008BBA: ECF9 and.b #h'f9, r4l
008BBC: EBF8 and.b #h'f8, r3l
008BBE: 9100 ; 10th sample start address
008BC0: 2A80 mov.b @h'ffff80, r2l
008BC2: ECF8 and.b #h'f8, r4l
008BC4: EBF7 and.b #h'f7, r3l
008BC6: 9200 ; 11th sample start address
008BC8: 2A80 mov.b @h'ffff80, r2l
008BCA: ECF7 and.b #h'f7, r4l
008BCC: EBF6 and.b #h'f6, r3l
008BCE: 9300 ; 12th sample start address
008BD0: 2A80 mov.b @h'ffff80, r2l
008BD2: ECF6 and.b #h'f6, r4l
008BD4: EBF5 and.b #h'f5, r3l
008BD6: 9400 ; 13th sample start address
008BD8: 2A80 mov.b @h'ffff80, r2l
008BDA: ECF5 and.b #h'f5, r4l
008BDC: EBF4 and.b #h'f4, r3l
008BDE: 9500 ; 14th sample start address
008BE0: 2A80 mov.b @h'ffff80, r2l
008BE2: ECF4 and.b #h'f4, r4l
008BE4: EBF3 and.b #h'f3, r3l
008BE6: 9600 ; 15th sample start address
008BE8: 2A80 mov.b @h'ffff80, r2l
008BEA: ECF3 and.b #h'f3, r4l
008BEC: EBF2 and.b #h'f2, r3l
008BEE: 9700 ; 16th sample start address
008BF0: 2A80 mov.b @h'ffff80, r2l
008BF2: ECF2 and.b #h'f2, r4l
008BF4: EBF1 and.b #h'f1, r3l
008BF6: 9800 ; 17th sample start address
008BF8: 2A80 mov.b @h'ffff80, r2l
008BFA: ECF1 and.b #h'f1, r4l
008BFC: EBF0 and.b #h'f0, r3l
008BFE: 9900 ; 18th sample start address
008C00: 2A80 mov.b @h'ffff80, r2l
008C02: ECF0 and.b #h'f0, r4l
008C04: EBEF and.b #h'ef, r3l
008C06: 9A00 ; 19th sample start address
008C08: 2A80 mov.b @h'ffff80, r2l
008C0A: ECEF and.b #h'ef, r4l
008C0C: EBEE and.b #h'ee, r3l
008C0E: 9B00 ; 20th sample start address
008C10: 2A80 mov.b @h'ffff80, r2l
008C12: ECEE and.b #h'ee, r4l
008C14: EBED and.b #h'ed, r3l
008C16: 9C00 ; 21st sample start address
008C18: 2A80 mov.b @h'ffff80, r2l
008C1A: ECED and.b #h'ed, r4l
008C1C: EBEC and.b #h'ec, r3l
008C1E: 9D00 ; 22nd sample start address
008C20: 2A80 mov.b @h'ffff80, r2l
008C22: ECEC and.b #h'ec, r4l
008C24: EBEB and.b #h'eb, r3l
008C26: 9E00 ; 23rd sample start address
008C28: 2A80 mov.b @h'ffff80, r2l
008C2A: ECEB and.b #h'eb, r4l
008C2C: EBEA and.b #h'ea, r3l
008C2E: 9F00 ; 24th sample start address
008C30: 2A80 mov.b @h'ffff80, r2l
008C32: ECEA and.b #h'ea, r4l
008C34: EBE9 and.b #h'e9, r3l
008C36: A000 ; 25th sample start address
008C38: 2A80 mov.b @h'ffff80, r2l
008C3A: ECE9 and.b #h'e9, r4l
008C3C: EBE8 and.b #h'e8, r3l
008C3E: A100 ; 26th sample start address
008C40: 2A80 mov.b @h'ffff80, r2l
008C42: ECE8 and.b #h'e8, r4l
008C44: EBE7 and.b #h'e7, r3l
008C46: A200 ; 27th sample start address
008C48: 2A80 mov.b @h'ffff80, r2l
008C4A: ECE7 and.b #h'e7, r4l
008C4C: EBE6 and.b #h'e6, r3l
008C4E: A300 ; 28th sample start address
008C50: 2A80 mov.b @h'ffff80, r2l
008C52: ECE6 and.b #h'e6, r4l
008C54: EBE5 and.b #h'e5, r3l
008C56: A400 ; 29th sample start address
008C58: 2A80 mov.b @h'ffff80, r2l
008C5A: ECE5 and.b #h'e5, r4l
008C5C: EBE4 and.b #h'e4, r3l
008C5E: A500 ; 30th sample start address
008C60: 2A80 mov.b @h'ffff80, r2l
008C62: ECE4 and.b #h'e4, r4l
008C64: EBE3 and.b #h'e3, r3l
008C66: A600 ; 31st sample start address
008C68: 2A80 mov.b @h'ffff80, r2l
008C6A: ECE3 and.b #h'e3, r4l
008C6C: EBE2 and.b #h'e2, r3l
008C6E: A700 ; 32nd sample start address
008C70: 2A80 mov.b @h'ffff80, r2l
008C72: ECE2 and.b #h'e2, r4l
008C74: EBE1 and.b #h'e1, r3l
008C76: A800 ; 33rd sample start address
008C78: 2A80 mov.b @h'ffff80, r2l
008C7A: ECE1 and.b #h'e1, r4l
008C7C: EBE0 and.b #h'e0, r3l
008C7E: A900 ; 34th sample start address
008C80: 2A80 mov.b @h'ffff80, r2l
008C82: ECE0 and.b #h'e0, r4l
008C84: EBDF and.b #h'df, r3l
008C86: AA00 ; 35th sample start address
008C88: 2A80 mov.b @h'ffff80, r2l
008C8A: ECDF ; 36th sample loop address
008C8C: EBDE ; 36th sample end address
008C8E: AB00 ; 36th sample start address
008C90: 0880 add.b r0l, r0h
008C92: ECDE and.b #h'de, r4l
008C94: 0DE9 mov.w e6, e1
BGM2:
008C96: 0323 illegal
008C98: AB00 ; samples bank
008C9A: 2A00 mov.b @h'ffff00, r2l
008C9C: 1CE9 ; 1st sample start address
008C9E: 1BE8 ; 1st sample end address
008CA0: AC00 ; 1st sample loop address
008CA2: 2A80 mov.b @h'ffff80, r2l
008CA4: 1CE8 ; 2nd sample loop address
008CA6: 1BE7 ; 2nd sample end address
008CA8: AD00 ; 2nd sample start address
008CAA: 2A80 mov.b @h'ffff80, r2l
008CAC: 1CE7 cmp.b r6l, r7h
008CAE: 1BE6 illegal
008CB0: AE00 cmp.b #h'00, r6l
008CB2: 2A80 mov.b @h'ffff80, r2l
008CB4: 1CE6 cmp.b r6l, r6h
008CB6: 1BE5 illegal
008CB8: AF00 cmp.b #h'00, r7l
008CBA: 2A80 mov.b @h'ffff80, r2l
008CBC: 1CE5 cmp.b r6l, r5h
008CBE: 1BE4 illegal
008CC0: B000 subx.b #h'00, r0h
008CC2: 2A80 mov.b @h'ffff80, r2l
008CC4: 1CE4 cmp.b r6l, r4h
008CC6: 1BE3 illegal
008CC8: B100 subx.b #h'00, r1h
008CCA: 2A80 mov.b @h'ffff80, r2l
008CCC: 1CE3 cmp.b r6l, r3h
008CCE: 1BE2 illegal
008CD0: B200 subx.b #h'00, r2h
008CD2: 2A80 mov.b @h'ffff80, r2l
008CD4: 1CE2 cmp.b r6l, r2h
008CD6: 1BE1 illegal
008CD8: B300 subx.b #h'00, r3h
008CDA: 2A80 mov.b @h'ffff80, r2l
008CDC: 1CE1 cmp.b r6l, r1h
008CDE: 1BE0 illegal
008CE0: B400 subx.b #h'00, r4h
008CE2: 2A80 mov.b @h'ffff80, r2l
008CE4: 1CE0 cmp.b r6l, r0h
008CE6: 1BDF dec.w #2, e7
008CE8: B500 subx.b #h'00, r5h
008CEA: 2A80 mov.b @h'ffff80, r2l
008CEC: 1CDF cmp.b r5l, r7l
008CEE: 1BDE dec.w #2, e6
008CF0: B600 subx.b #h'00, r6h
008CF2: 2A80 mov.b @h'ffff80, r2l
008CF4: 1CDE cmp.b r5l, r6l
008CF6: 1BDD dec.w #2, e5
008CF8: B700 subx.b #h'00, r7h
008CFA: 2A80 mov.b @h'ffff80, r2l
008CFC: 1CDD cmp.b r5l, r5l
008CFE: 1BDC dec.w #2, e4
008D00: B800 subx.b #h'00, r0l
008D02: 2A80 mov.b @h'ffff80, r2l
008D04: 1CDC cmp.b r5l, r4l
008D06: 1BDB dec.w #2, e3
008D08: B900 subx.b #h'00, r1l
008D0A: 2A80 mov.b @h'ffff80, r2l
008D0C: 1CDB cmp.b r5l, r3l
008D0E: 1BDA dec.w #2, e2
008D10: BA00 subx.b #h'00, r2l
008D12: 2A80 mov.b @h'ffff80, r2l
008D14: 1CDA cmp.b r5l, r2l
008D16: 1BD9 dec.w #2, e1
008D18: BB00 subx.b #h'00, r3l
008D1A: 2A80 mov.b @h'ffff80, r2l
008D1C: 1CD9 cmp.b r5l, r1l
008D1E: 1BD8 dec.w #2, e0
008D20: BC00 subx.b #h'00, r4l
008D22: 2A80 mov.b @h'ffff80, r2l
008D24: 1CD8 cmp.b r5l, r0l
008D26: 1BD7 dec.w #2, r7
008D28: BD00 subx.b #h'00, r5l
008D2A: 2A80 mov.b @h'ffff80, r2l
008D2C: 1CD7 cmp.b r5l, r7h
008D2E: 1BD6 dec.w #2, r6
008D30: BE00 subx.b #h'00, r6l
008D32: 2A80 mov.b @h'ffff80, r2l
008D34: 1CD6 cmp.b r5l, r6h
008D36: 1BD5 dec.w #2, r5
008D38: BF00 subx.b #h'00, r7l
008D3A: 2A80 mov.b @h'ffff80, r2l
008D3C: 1CD5 cmp.b r5l, r5h
008D3E: 1BD4 dec.w #2, r4
008D40: C000 or.b #h'00, r0h
008D42: 2A80 mov.b @h'ffff80, r2l
008D44: 1CD4 cmp.b r5l, r4h
008D46: 1BD3 dec.w #2, r3
008D48: C100 or.b #h'00, r1h
008D4A: 2A80 mov.b @h'ffff80, r2l
008D4C: 1CD3 cmp.b r5l, r3h
008D4E: 1BD2 dec.w #2, r2
008D50: C200 or.b #h'00, r2h
008D52: 2A80 mov.b @h'ffff80, r2l
008D54: 1CD2 cmp.b r5l, r2h
008D56: 1BD1 dec.w #2, r1
008D58: C300 or.b #h'00, r3h
008D5A: 2A80 mov.b @h'ffff80, r2l
008D5C: 1CD1 cmp.b r5l, r1h
008D5E: 1BD0 dec.w #2, r0
008D60: C400 or.b #h'00, r4h
008D62: 2A80 mov.b @h'ffff80, r2l
008D64: 1CD0 cmp.b r5l, r0h
008D66: 1BCF illegal
008D68: C500 or.b #h'00, r5h
008D6A: 2A80 mov.b @h'ffff80, r2l
008D6C: 1CCF cmp.b r4l, r7l
008D6E: 1BCE illegal
008D70: C600 or.b #h'00, r6h
008D72: 2A80 mov.b @h'ffff80, r2l
008D74: 1CCE cmp.b r4l, r6l
008D76: 1BCD illegal
008D78: C700 or.b #h'00, r7h
008D7A: 2A80 mov.b @h'ffff80, r2l
008D7C: 1CCD cmp.b r4l, r5l
008D7E: 1BCC illegal
008D80: C800 or.b #h'00, r0l
008D82: 2A80 mov.b @h'ffff80, r2l
008D84: 1CCC cmp.b r4l, r4l
008D86: 1BCB illegal
008D88: C900 or.b #h'00, r1l
008D8A: 2A80 mov.b @h'ffff80, r2l
008D8C: 1CCB cmp.b r4l, r3l
008D8E: 1BCA illegal
008D90: CA00 or.b #h'00, r2l
008D92: 2A80 mov.b @h'ffff80, r2l
008D94: 1CCA cmp.b r4l, r2l
008D96: 1BC9 illegal
008D98: CB00 or.b #h'00, r3l
008D9A: 0880 add.b r0l, r0h
008D9C: 1CC9 cmp.b r4l, r1l
008D9E: 8F29 add.b #h'29, r7l
Вот как раз ориентируясь на эти адреса, и узнаёшь, какие участки выцарапывать из ромов для C352, и, если знаешь как, то конвертировать в понятные современным операционкам форматы.