Wziąłem plik binarny wyrzucony przez splitter, przepuściłem go przez dekompilator Z80 wynik przemieliłem własnym skryptem, który generuje etykiety i przetwarza kod do formatu zgodnego z pasmo.
Jakiego dekompilatora używasz? Czy byłbyś skłonny podzielić się swoim skryptem celem wzbogacenia własnej wiedzy?
Piwo przy najbliższym spotkaniu gwarantowane 
Do disassemblacji używam z80dis - to jest disassembler w perlu ściągnięty z CPANa. Nie pamiętam jak dokładnie nazywał się pakiet - wydaje mi się, że PSCUST/CPU-Z80-Disassembler.
Skrypt (zzipowany) jest w załączniku - to kawałek basha, który bierze jako parametr plik wejściowy zrzucony z z80dis'a i plik wyjściowy. Na wylocie dostajesz plik nadający się do dalszej obróbki - ma wyczyszczone dane binarne z początku linii (przeniesione na koniec do komentarza i dodatkowo jako "db", dodane etykiety wszędzie tam, gdzie automatem da się je wyjąć, część etykiet jest odpowiednio poprzesuwana o jeden czy dwa bajty jeśli rozkaz trafia w środek innego rozkazu itp. Zasadniczo plik po przeczyszczeniu powinien się dać zassemblować przy użyciu pasmo i dać w wyniku identyczny z oryginałem plik binarny. Oczywiście nie zawsze to działa, ale parę razy narzędzie okazało się przydatne

Zainteresowala mnie ostatnio możliwość wyciągania muzyczek i grafik z gier (http://www.worldofspectrum.org/infoseekid.cgi?id=0019052).
Co do muzyczek, to rozumiem, że procedura jest następująca:
1) zaczynamy od debuggera i szukamy LD BC, 65533 lub 49149 a za nimi OUT (C),a (z reguły od 49152 jak pisał Tygrys)
Mniej więcej, choć OUTa na port można zrobić na kilka różnych sposobów. Mój program przerabiający odwołania z ZXS128 na Unipolbrita w końcowej fazie miał ponad kilobajt kodu i w większości były to kawałki wyszukujące konkretne sposoby odwołań do portów. Ale zasadniczo tak - najpierw szukasz, gdzie program pisze do AYgreka i cofasz się szukając początku procedury.
2) zgrywamy obszar pamięci od znalezionego adresu do zalóżmy końca - 65535
Można tak a można się pokusić o znalezienie poprawnego końca - większość muzyczek po kompilacji jest stosunkowo krótka.
3) traktujemy zrzucony obraz pamięci programem AYMakeR, który stworzy nam plik .ay
Oooo... To nie jest takie proste

AYMakeR wymaga stworzenia pliku INI w którym musisz mieć podane parametry jakich wymaga muzyczka - adres stosu, adres inicjalizacji, adres prodcedury grającej pojedynczą ramkę, adresy portów AYgreka itp.
Po podaniu tych danych AYMaker zrobi ci z INI i binarnego kawałka plik .AY.
4) traktujemy plik .ay programem AYSplitR, który nam wskaże w pliku ini odpowiednie adresy (początku muzyczki, init'a i player'a)
Nieee... Albo inaczej - owszem, o ile używasz cudzego pliku i chcesz go użyć w swoim kodzie albo zrobić z nim jakieś inne ciekawe rzeczy. Jak masz samodzielnie zrobiony plik AYMakeRem to nie jest ci potrzebne splitowanie, bo wszystkie potrzebne dane już masz
5) zbieramy w ten sposób kolejne pliki z muzyczkami, łączymy je ze sobą do jednego pliku i następnie wywołujemy podstawiając najpierw adres bloku muzyki do playera.
Yyyy... A tego to nie rozumiem... Co dokładnie chcesz uzyskać? Bo plik .ay zawiera fizyczny nie relokowany kawałek kodu i danych a player na fizycznej maszynie po prostu wciąga go do pamięci i odpala zgodnie z podanymi parametrami.
Jeśli gdzieś się pomyliłem, to mnie poprawcie.
Interesuje mnie też jak to się robiło kiedyś - na 'gołym' Spectrum - bez wspomagaczy w postaci emulatorów i PC 
Tak samo

Tyle, że bez extra narzędzi trwało to ciut (ale na prawdę tylko ciut) dłużej.
Co do grafiki to jakie są sposoby na wyciąganie grafiki z gier? Spectrum Graphics Editor (pod warunkiem, że nie jest skompresowana lub w dziwnym/własnym formacie)? http://retrospec.sgn.net/game/sge
Nie znam programu. W większości starszych gier grafika była zapisana bez żadnych kombinacji i kompresji. Do jej wyciągania używało się jakiejś przeglądarki do pamięci z regulacją adresu, szerokości offsetów itp. Myśmy używali EMona, który miał wbudowaną przeglądarkę, ale było mnóstwo innych programów robiących takie rzeczy.
A po namierzeniu właściwego kawałka pamięci i tak zwykle będziesz musiał pobawić się kodem, żeby na przykład namierzyć gdzie są trzymane (albo w jaki sposób są generowane) atrybuty dla bitmapy itp.
Może któryś z forumowiczów pokusiłby się o napisanie artykułu na powyższe tematy?
Na mnie nie licz

Mam za dużo rozgrzebanych projektów, żeby kombinować z kolejnym - zwłaszcza takim, który mnie nie specjalnie interesuje
