TFEmu - Der Topfield-Emulator für TAPs

TAPs für die SRP- und CRP-Serie
Benutzeravatar
FilmFan
Besenstifter

<div title=Anheizersympathisant>Besenstifter</div>
Beiträge: 2267
Registriert: Fr 9. Dez 2005, 14:24

TFEmu - Der Topfield-Emulator für TAPs

#1

Beitrag von FilmFan » Sa 12. Sep 2015, 21:24

Mit dem Programm TFEmu bzw. dessen Bibliothek kann man TAPs, die im Quelltext vorliegen, auf dem PC unter Linux ausführen.

Dazu müssen die TAPs nur für den PC neu compiliert werden. Das geht ganz einfach mit einem beiliegenden Makefile (in "FsTAP.tar.gz"). Änderungen am Quelltext selbst sind nicht notwendig.

Der Emulator liegt im Quelltext vor und kann wahlweise als eigenständiges Programm, sowie als statische oder dynamische Bibliothek verwendet werden.

Beim Aufruf des Programmes können TAPs als Argumente angegeben werden. Das Argument "0" unterdrückt das weitere Laden von TAPs. Ansonsten werden zusätzlich alle TAPs im Verzeichnis "$TFDISK_EMU/ProgramFiles/AutoStart" geladen.

Für die Textausgabefunktionen müssen die Topfield-Fonts als Dateien "osd-base-0.fnt", "osd-base-1.fnt" und "osd-base-2.fnt" im Verzeichnis "$TFDISK_EMU" liegen. Diese Dateien können mit meinem TAP "FontExport" erstellt werden.

Für die Ausgabe von Topfield-spezifisch komprimierten Bildern müssen die Quelltexte des Programmes "AR002" in das Verzeichnis "$AR002_DIR" installiert werden. Dieses Programm ist frei im Internet zu finden.

Eine im Verzeichnis "$TFDISK_EMU" liegende Datei "video.jpg" wird optional als Fernsehbild verwendet.



Quelltexte: Download

Weitere Infos folgen später.
Zuletzt geändert von FilmFan am So 13. Sep 2015, 02:35, insgesamt 1-mal geändert.
Grund: Rechtschreibfehler behoben
Das Kennwort für die Einstellungen bei den SRP/CRP-Modellen lautet 2010.
Topfield SRP-2401CI+ mit HD+ (HD01/HD02)
Topfield SRP-2410M mit AlphaCrypt Light
Topfield CRP-2401CI+ mit AlphaCrypt Light 1.16 (K09) und 1.18 (D01 und D02)
AutoStart: IQTuner, PowerRestore, RemoteSwitch, RescueRecs, TMSRemote, TMSTimer
Topfield TF5200PVRc (R.I.P.)

Benutzeravatar
Twilight
Zauberküchencheflehrling mit extra Butter
Zauberküchencheflehrling mit extra Butter
Beiträge: 64951
Registriert: Fr 9. Dez 2005, 09:17
Receivertyp: 1 x SRP 2100(TMS) TFIR und .1 x SRP 2410 M
Wohnort: Wien Umgebung

AW: TFEmu - Der Topfield-Emulator für TAPs

#2

Beitrag von Twilight » Sa 12. Sep 2015, 22:55

nettes bild :D und ne menge arbeit :up:

twilight

Benutzeravatar
FilmFan
Besenstifter

<div title=Anheizersympathisant>Besenstifter</div>
Beiträge: 2267
Registriert: Fr 9. Dez 2005, 14:24

AW: TFEmu - Der Topfield-Emulator für TAPs

#3

Beitrag von FilmFan » So 13. Sep 2015, 00:52

Meine Installation läuft in einer VM mit Linux Mint 17.1 "Rebecca" - Xfce (32-bit).

Installationsanleitung:

Code: Alles auswählen

# VMware-Tools installieren oder aktualisieren
# http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1022525
# http://wiki.ubuntuusers.de/VMware/Tools
# Im VMware Player den Menüpunkt "Player -> Manage | Install VMware Tools..." aufrufen
# sudo mkdir "/media/topfield/VMware Tools"
# sudo mount "/dev/sr0" "/media/topfield/VMware Tools"
find "/media/topfield/VMware Tools" -maxdepth 0 -type f -name 'VMwareTools-*.*.*-*.tar.gz' -execdir tar -xzvf '{}' -C "/tmp" \; -quit
sudo "/tmp/vmware-tools-distrib/vmware-install.pl" -d
sudo reboot

# Entwicklungsumgebung für C/C++ installieren (optional)
sudo apt-get update
sudo apt-get install build-essential
# Bibliothek ncurses für C/C++ installieren (optional)
sudo apt-get install ncurses-dev
# Bibliothek GTK+ 2.x für C/C++ installieren (optional)
sudo apt-get install libgtk2.0-dev
sudo apt-get install devhelp libgtk2.0-doc

# Entwicklungsumgebung für TAPs installieren
sudo mkdir "/opt/crosstool"
sudo tar -xzvof "/mnt/hgfs/Linux/crosstool_linux.tar.gz" -C "/opt/crosstool"
#sudo tar -xzvf "/mnt/hgfs/Linux/crosstool_linux.tar.gz" -C "/opt/crosstool"
#sudo chown -hR root:root "/opt/crosstool/"

# Bibliotheken und Beispiele für TAPs installieren
sudo mkdir "/opt/tap"
sudo unzip "/mnt/hgfs/Linux/TAP_Examples_for_SRP-2100_TRF-2400.zip" -d "/opt/tap"
sudo find "/opt/tap" -type f -name 'build' -execdir chmod +x '{}' \;
sudo find "/opt/tap" -maxdepth 0 -type f -name 'Topfield*s customizing API v0.1 for TMS.pdf' -execdir mv '{}' 'Topfields customizing API v0.1 for TMS.pdf' \; -quit
#sudo for file in "/opt/tap/Topfield*s customizing API v0.1 for TMS.pdf"; do mv "$file" 'Topfields customizing API v0.1 for TMS.pdf'; break; done

# Vorlagen für eigene TAPs
sudo mkdir "/opt/fstap"
sudo tar -xzvof "/mnt/hgfs/Linux/FsTAP.tar.gz" -C "/opt/fstap"

# Verzeichnis für eigene TAPs
ln -s "/mnt/hgfs/Linux/tap/" "$HOME/tap"
#mkdir "$HOME/tap"
# Verzeichnis für eigene TAPs in "$HOME/tap" einrichten
make -C "/opt/fstap/user" .home
# Neues TAP "MyTap" in "$HOME/tap" einrichten (optional)
make -C "$HOME/tap" MyTap.new

# Pfade setzen
vi "$HOME/.profile"
=====

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes Topfield's crosstool bin if it exists
if [ -d "/opt/crosstool/bin" ] ; then
    PATH="$PATH:/opt/crosstool/bin"
fi

# set vars to Topfield's tap library if it exists
if [ -d "/opt/tap" ] ; then
    export TAP_LIB=/opt/tap
    export TAP_INCLUDE=/opt/tap/include
fi

# set var to FuturaSoft's tap directory if it exists
if [ -d "/opt/fstap" ] ; then
    export FSTAP_DIR=/opt/fstap
fi

# set var to AR002 directory if it exists
if [ -d "/opt/ar002" ] ; then
    export AR002_DIR=/opt/ar002
fi

# set var to Topfield's upload disk directory if it exists
if [ -d "$HOME/tap" ] ; then
    export TFDISK=$HOME/tap
fi

# set var to Topfield's emulated disk directory if it exists
if [ -d "$HOME/tap/emu" ] ; then
    export TFDISK_EMU=$HOME/tap/emu
fi
=====

# FireBirdLib installieren
sudo mkdir "/opt/tap/FireBirdLib"
sudo unzip "/mnt/hgfs/Linux/FireBirdLib.zip" -d "/opt/tap/FireBirdLib"
sudo ln -s "/opt/tap/FireBirdLib/libFireBird.a" "/opt/tap/"
sudo ln -s "/opt/tap/FireBirdLib/libFireBird.h" "/opt/tap/include/"
cp "/opt/tap/FireBirdLib/FirmwareTMS.dat" "$HOME/tap/ProgramFiles/"

# FireBirdLib erstellen (optional)
sudo mkdir "/tapapi"
sudo ln -s "/opt/tap/" "/tapapi/TMS"

sudo make -j 8 -C "/opt/tap/FireBirdLib"
Hier gibt es das Archiv "FsTAP.tar.gz": Download
Das Kennwort für die Einstellungen bei den SRP/CRP-Modellen lautet 2010.
Topfield SRP-2401CI+ mit HD+ (HD01/HD02)
Topfield SRP-2410M mit AlphaCrypt Light
Topfield CRP-2401CI+ mit AlphaCrypt Light 1.16 (K09) und 1.18 (D01 und D02)
AutoStart: IQTuner, PowerRestore, RemoteSwitch, RescueRecs, TMSRemote, TMSTimer
Topfield TF5200PVRc (R.I.P.)

Benutzeravatar
macfan
Ex-iTiNa-Promoter
Ex-iTiNa-Promoter
Beiträge: 24972
Registriert: Fr 9. Dez 2005, 10:16
Receivertyp: 2 x TF 2401 CI+, 2100, 5200 C, VU+ Ultimo 4K
Receiverfirmware: SRP-Serie: die neueste, 5k: Jan 07 PTU, VU+ VTi 15.0
Wohnort: Dortmund

AW: TFEmu - Der Topfield-Emulator für TAPs

#4

Beitrag von macfan » So 13. Sep 2015, 10:12

FilmFan hat geschrieben:Mit dem Programm TFEmu bzw. dessen Bibliothek kann man TAPs, die im Quelltext vorliegen, auf dem PC unter Linux ausführen.

Beeindruckend! :respekt: Du hast also die komplette TAP-Schnittstelle nachprogrammiert?
Eine im Verzeichnis "$TFDISK_EMU" liegende Datei "video.jpg" wird optional als Fernsehbild verwendet.
Den Fernsehempfang kannst du also nicht emulieren, Aufnahme und Wiedergabe (z. B. für Sprung-TAPs) schon?

Gruß, Horst

Benutzeravatar
FilmFan
Besenstifter

<div title=Anheizersympathisant>Besenstifter</div>
Beiträge: 2267
Registriert: Fr 9. Dez 2005, 14:24

AW: TFEmu - Der Topfield-Emulator für TAPs

#5

Beitrag von FilmFan » So 13. Sep 2015, 15:35

macfan hat geschrieben:Du hast also die komplette TAP-Schnittstelle nachprogrammiert?

Nein, nicht alle Funktionen sind vollständig implementiert. Bisher sind weitgehend komplett:

Alle Systemfunktionen bis auf TAP_GetState.
Alle allgemeinen Funktionen bis auf TAP_PlayPCM und TAP_CaptureScreen.
Alle OSD-Funktionen.
Alle OSD-Text-Funktionen.
Alle Festplatten-Funktionen bis auf TAP_Hdd_PlayTs, TAP_Hdd_StopTs, TAP_Hdd_PlayMp3, TAP_Hdd_StopMp3, TAP_Hdd_StartRecord, usw.

Nicht alle Funktionen sind ausgiebig getestet und es wurde nicht immer überprüft, ob das Verhalten dem Originalverhalten entspricht. Nur die OSD-Text-Funktionen sind diesbezüglich ausführlich getestet (einschließlich Absturzverhalten :D ).

Da ich aber eine alte Firmware ohne UTF-8 verwende, fehlt mangels entsprechender Dokumentation und Testmöglichkeit dessen Unterstützung. Der Emulator sieht aber auch Unterstützung für verschiedene Firmware-Versionen vor (über die Receiverauswahl). Insofern könnte man beides parallel implementieren.

Die Window-, Timer-, VFD-, WAV- und Demux-Funktionen sind nicht implementiert.
Die Kanal- und EPG-Funktionen sind nur minimal implementiert.

Aber da der Quelltext vorliegt, steht es jedem frei, dem abzuhelfen. ;)
Den Fernsehempfang kannst du also nicht emulieren, Aufnahme und Wiedergabe (z. B. für Sprung-TAPs) schon?
Nein, ich werde weitere Funktionen wohl auch nur implementieren, wenn ich sie selbst in einem TAP verwende.


Jetzt müßte Firebird noch die Makefiles seiner Bibliothek anpassen, damit diese sich für den Emulator compilieren läßt. :u:
Das Kennwort für die Einstellungen bei den SRP/CRP-Modellen lautet 2010.
Topfield SRP-2401CI+ mit HD+ (HD01/HD02)
Topfield SRP-2410M mit AlphaCrypt Light
Topfield CRP-2401CI+ mit AlphaCrypt Light 1.16 (K09) und 1.18 (D01 und D02)
AutoStart: IQTuner, PowerRestore, RemoteSwitch, RescueRecs, TMSRemote, TMSTimer
Topfield TF5200PVRc (R.I.P.)

Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 29064
Registriert: Fr 9. Dez 2005, 09:59
Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k
Wohnort: Wien

AW: TFEmu - Der Topfield-Emulator für TAPs

#6

Beitrag von FireBird » So 13. Sep 2015, 15:48

Wobei die Frage ist, wie sinnvoll das ist, wenn sich ein Großteil der FBLib auf Funktionen und Datenstrukturen der Firmware bezieht.

Benutzeravatar
FilmFan
Besenstifter

<div title=Anheizersympathisant>Besenstifter</div>
Beiträge: 2267
Registriert: Fr 9. Dez 2005, 14:24

AW: TFEmu - Der Topfield-Emulator für TAPs

#7

Beitrag von FilmFan » So 13. Sep 2015, 16:16

Die müßte man dann halt entsprechend im Emulator nach implementieren.

Es ist halt auch ein Projekt mit Lern- und Dokumentationseffekt. So versteht man endlich, wie die Funktionen genau arbeiten (z. B. TAP_Osd_PutStringAf) und es ist durch den Quelltext quasi dokumentiert.

Man muß ja eben auch nicht alles auf einmal implementieren, sondern kann das nach Bedarf machen. Das Compilieren geht ja immer, nur das Laufzeitverhalten ist dann ggf. nicht wie erwartet. ;)

P. S.: Man sieht ja auch, daß Du Deine Bibliothek schon einmal für einen (Deinen) Emulator vorbereitet hattest.
Zuletzt geändert von FilmFan am So 13. Sep 2015, 16:19, insgesamt 2-mal geändert.
Das Kennwort für die Einstellungen bei den SRP/CRP-Modellen lautet 2010.
Topfield SRP-2401CI+ mit HD+ (HD01/HD02)
Topfield SRP-2410M mit AlphaCrypt Light
Topfield CRP-2401CI+ mit AlphaCrypt Light 1.16 (K09) und 1.18 (D01 und D02)
AutoStart: IQTuner, PowerRestore, RemoteSwitch, RescueRecs, TMSRemote, TMSTimer
Topfield TF5200PVRc (R.I.P.)

Antworten

Zurück zu „SRP/CRP TAP-Bereich“