Development Work
Stuff that's experimental, in development, or just a bit silly.
— Patches —
There are a number of patches which are currently not included in the PatchPackV2.
Most patches should apply to most TF5000-series Toppys. If a patch is not described as specific to a particular range of firmwares and it does not apply to (or work on!) your firmware then you may be able to request support by posting a message in the appropriate thread. Note: this is especially true now with the advent of complex patches that have to be built for specific firmwares and cannot be applied generically.
-
No Autostart [Au] is an "emergency" patch which prevents the Toppy starting TAPs when it boots up. This might be useful for when you don't have a working Toppy remote or you find it hard to press 0 at the right time.
(Thread)
- Click Push [Cp] enables TAPs to see (and absorb) button presses flagged with KEY_Flag_Click and KEY_Flag_Push, which show whether a button was clicked or held down. Used by MyStuff V6+ (various extra actions from holding a button) and FFWD (enables proper use of the fast forward and rewind buttons on the remote).
(Thread)
- EIT Disable [Ed] disables the Toppy's EIT collection. It can be reenabled via TAPs, such EITtoggle.
- EPG Play [Ep] allows the EPG to be displayed when playing back a recording (or MP3 file). It's not clear why this restriction was imposed (apart from the lack of new EPG data while playing a recording), so it's not clear what this might break.
(Thread)
- EIT Run Stat [Er] elides a couple of the firmware's fiddlings with an event running_status, leaving this completely up to the broadcaster instead. This is one of the necessary fixes for reliable EIT data for the AccurateBM TAP.
(Thread)
- EPG Transparent [Et] began life as a joke on the teaser screenshots of the TF5810's new EPG, but it has recently found a real use as part of the EPGChChangeSub TAP (the patch should still be ignored, though).
(Thread)
- Except 64 [Ex] fixes an issue with the way the low-level main task stack is setup and alters the task switching so that all the main registers are saved as full 64-bit values. This enables TAPs to use 64-bit values properly (e.g. "double" floating-point values and the "%f" format specifier in TAP_SPrint()) and also to use 64-bit MIPS instructions (the Toppy runs in a mode that permits this).
(Thread)
- Flen Fix [Fl] fixes the firmware's internal Hdd_Flen() function which incorrectly reports the size of files uploaded to the Toppy if they are a multiple of 512 bytes (and as a side-effect it will fix Hdd_Fseek() when seeking relative to the end of a file). This problem is most likely to affect loading TAPs (which will probably crash immediately) and MP3 files (which probably won't play). TAPs will also see this problem with their file handling, but many use fixes to correct it. However, most of these fixes are "dumb" and don't take into account a corrected firmware so will mis-report the file size when this patch is applied — FireBirdLib has a cleverer fix so some TAPs may now work.
(Thread)
- FP ISR Fix [Fp] changes the main routine that accepts data from the Front Panel to (maybe) make it more reliable.
(Thread)
-
Debug FP Recv [Gf] and Debug FP Send [Gs] send the bytes received from and sent to the Front Panel to the serial port as hex strings (the sent bytes are distinguished by a "0x" prefix).
(Thread)
-
Half Scan [Hs] reduces the service scan search (on a DVB-T Toppy) from 104 to 57 possibilities.
(Thread)
-
Keyboard [Kb] adjusts the native keyboard used for renaming items to have the six pages of choices that are offered normally only when the Russian language is selected — the additions are mainly international, accented characters.
(Thread)
And KeyboardEnglish [Ke] gives a set of four pages covering the standard set of ASCII characters — the additions being punctuation characters.
(Thread)
-
No Play StartCh [Np] makes the Toppy not start playing a channel when playback of a recording stops (leaving the display blank) and
No Start Ch [Ns] stops the Toppy starting a channel when it boots. Both are quite fragile and susceptible to TAPs inadvertently provoking a channel to be displayed (usually when they close a display).
No Norm Start Ch [Nn] stops even this sort of activity from starting a channel, but there are still times when the Toppy (and TAPs) insist on a making a channel appear. (Note that normal channel browsing will still work.)
(Thread)
- No Idle Reenter [Nr] is a first attempt to tackle a very large problem with the TAP API.
(Thread)
- OK swap Recall [Ok] is a bespoke patch to help out a forumite who had a very dodgy OK button on their remote — it's pretty obvious what it does.
- Playback Buffer X4 [P4] is an experimental patch to try to help the Toppy cope with playing back a recording of a whole mux.
(Thread)
- Power Off Deselect [Pd] causes the Toppy to deselect its AV when you press the Standby button while it is still recording, which in some cases will allow your TV to turn off. If you choose the prompt's default option of "No" by pressing the "OK" button (or, more safely, by pressing "Exit") then the AV will be reselected.
(Thread)
- Present Following [Pf] fixes the EIT collection to work on a static allocation of internal paths so that it continues to work under playback (assuming the Play No CYR [Xp] is also applied). This is one of the necessary fixes for reliable EIT data for the AccurateBM TAP.
(Thread)
- Remote Map TF5810 [Rm] is (hopefully!) an interim patch for the TF5810 which modifies the mapping of remote buttons so that it is more compatible with TF5800 TAPs.
(Thread)
- Record NIT [Rn] adds the NIT section to a recording, for debugging purposes.
(Thread)
- Remote TF5810 [Rx] modifies the remote map and timer communications to enable TF5810 owners to use a TF5800 5.13.X firmware.
(Thread)
- Standby Fix [Sf] reinstates the "proper" standby mode on (specifically) the TF5810's 5.15.09+ firmware. The TF5810 will then wake up 5 minutes early for the next timer, to cope with some broadcasters who signal programmes starting early.
(Thread)
- Special Fixes [Sx] is a small collection of special bug fixes and optimisations for (specifically) the TF5810's 5.15.09+ firmware.
(Thread)
- Timer API [Ta] fixes a bug in the TAP Timer API which causes the result of TAP_Timer_Add() and TAP_Timer_Modify() to be garbage when there are two clashing timers. This patch may not be particularly interesting since TAPs may not (after all this time) be expecting the result to be correct any more, and those that now know about (and want to fix) the issue can use the FixTimerAPI code snippet.
(Thread)
- Rec Cancel TS [Tc] was a temporary patch offered while tracking down the bug that is properly fixed by the Rec PiP Fix [Rp] patch.
(Thread)
- TAP Quit [Tq] is (hopefully!) an interim patch for the TF5800's 5.14.X and the TF5810's 5.15.X firmwares to prevent (most) TAPs from running while in "soft" standby (and so prevent issues like a frozen Front Panel).
(Thread)
- TAP Timers [Tt] is (hopefully!) an interim patch for the TF5800's 5.14.X and the TF5810's 5.15.X firmwares to help isolate native Series Link and Accurate Recording timers (set via the native EPG) from TAP-set timers and cause more realistic clashing.
(Thread)
- USB All Files [Ua] enables Altair and other USB tools to also see the files that are marked as hidden (e.g. those used by timeshift).
(Thread)
- USB Serial [Us] changes the SerialNumber reported by the Toppy's USB system from "1000" to "1100", which may enable owners of two Toppys to access them both at the same time or in more convenient ways.
(Thread)
-
USB Super Turbo [Ux] is an attempt to bring turbo speeds to the non-turbo transfer mode, so that recordings and other activities can continue. USB Super Turbo B [Uy] ought to be less demanding on the system, but at the expense of the transfer speed. Note: both patches may require the various system performance boosting patches for effective operation.
(Thread)
- USB Read Callback [Uc] alters the TAP API so that a USB callback can re-enable itself within the callback (using the normal TAP_Usb_Read() or TAP_Usb_PacketRead() functions). This may help prevent lost packets (and lockups).
(Thread)
- Wakeup Early [We] is (hopefully!) an interim patch for the TF5800's 5.14.X and the TF5810's 5.15.X firmwares to make the Toppy wakeup 10 minutes early for timer, in order to not miss programmes that are signalled early.
(Thread)
— TAPs —
This collection of TAPs are in development or purely for monitoring or analysing specific problems.
- ClkTest is a test TAP that exhibits the problem fixed by the Clock Fix [Ck] patch.
(Thread)
- CutPath cuts the section marked by the first two bookmarks out of the currently playing file.
(Thread)
(Note: superior cutting tools now available as CutFile and CutAds.)
- EITDupCheck analyses the Toppy's internal EPG (EIT) data and counts the number of duplicate entries. It does this every hour and logs to the file EITDupCheck.log, as well as to the serial port. (This problem may be cured by the next TAP and patch...)
(Thread)
- EITStats presents statistics on the reception rate of the four types of EIT event across each multiplex (TSID = "Transport Stream ID").
(Thread)
- EPG2MEI is an EPG gatherer that can merge external EPG data and also provides a new TAP API for EPG updates and programme transitions.
(Thread)
- FastScan optimises the transponder/mux list used for scanning for services, based on your current list of found channels. FastScanGUI is a more friendly alternative, primarily for UK Freeview users.
(Thread)
- FontsHookTest2 shows a way to hook the TAP API to use justason's anti-aliased fonts.
(Thread)
Note that bellissimo has properly implemented this idea as the FontManager TAP.
(Thread)
- HiddenKeys shows how to manipulate the events that are passed to a TAP and ultimately back to the firmware, and illustrates how to invoke some of the TF5800's "missing" buttons.
(Thread)
- MergeMEI is test TAP to check the merge technique later used by EPG2MEI.
(Thread)
- QuickEPG_DE contains a couple of TAPs and some sample code that are intended to help show the benefit (and usage) of the Desc Ext [De] patch.
(Thread)
- SecCache_Logger logs details about each received EIT section. Warning: creates a very large .log file very quickly on most firmwares. This was written to help analyse the data for optimising SecCache for specific regions (as yet, this has only been done for the UK's Freeview).
(Thread)
- StartCBeebies is a basic TAP that starts the Toppy on LCN 71 when it boots at certain times of the day. This TAP has been superseded by the more flexible StartCh.
(Thread)
- TestRep is a test TAP that shows the need for Repeat Timer [Rt] patch.
(Thread)
- TimerCheckGUI checks for and repairs corrupt timers. The Timer Data [Td] patch should prevent future timer corruption.
(Thread)
- TunerRec contains three TAPs that log some potentially useful diagnostic data from the high-level Toppy and low-level EMMA2 hardware views of the active recordings. The AutoR version logs automatically every 20 minutes when recording, and Auto version does this as well as every hour when not recording.
— Code Snippets —
Short snippets of code that seemed to be useful to somebody at some point.
- DoSubtitles.c is intended to turn on/off subtitles on the TF5800/TF5810.
(Thread)
- DefaultTPs.c is the guts of the mechanism used by FastScanGUI and FastScan to speed up service searches.
(Thread)
- EIT.c gives signatures and sample code for extracting the main firmware EIT variables (table location, event size, number of events, and event name offset).
- FixTimerAPI.c should be used by TAPs to dynamically apply the Timer API [Ta] patch to make the results from TAP_Timer_Add() and TAP_Timer_Modify() correct and usable.
(Thread)
- GetBookmarks.c gives access to the bookmarks on the active playback/chaseplay/timeshift — bookmarks are in "block" units (188*512bytes = 94Kb).
(GetBookmarkCount.c is a simplified version that just accesses the count of bookmarks.)
- GetPinCode.c ought to be a way to get hold of the PIN code.
- IsPinShowing.c should decide whether the user is being prompted for PIN code.
-
p2rkey_tf5800.h and p2re.txt are useful if trying to understand the key mangling on the TF5800 and using the Rem Ext [Re] patch.
(Thread)
- RecordTSBuffer.c is intended to enable recording starting from a previous position in the timeshift buffer.
(Thread)
- SendFWKey.c ought to send a key event direct to the firmware (bypassing TAPs and the input buffer).
(Thread)
- SetPlaybackMode.c exposes the firmware's routine for setting the playback speeds (excluding pause).
(Thread)
- SoftStandby.c should help a TAP detect the "soft standby" mode of 5.14.X and 5.15.X.
(Thread)
- ToppyState.c should help decide if the Toppy is displaying a prompt (like the dreaded CYR) and so whether it's actually safe for a TAP to display its own OSD (the TAP_GetState() function appears to not be complete). (And it seems that the PIN code prompt is handled in a way that can't be detected by state — see above.)
- twinkle.c is intended to locate the TF5800's "twinkle" variable, which is used to signal the availability of OTA firmware upgrades to the user.
- WrapRadio provides a wrapper on the main TAP API functions using channels to make it look like radio channels are TV channels. Using this wrapper, a TAP would not require a special "radio" mode, and TAPs that only deal with TV channels could easily add radio support.
(Thread)