RomRaider Logo

RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

It is currently Tue Dec 23, 2025 11:06 am

All times are UTC - 5 hours [ DST ]




Post new topic Reply to topic  [ 341 posts ]  Go to page 1, 2, 3, 4, 5 ... 23  Next
Author Message
 Post subject: Deceleration Fueling / Overrun RPM cutoff threshold tables
PostPosted: Thu May 10, 2012 9:18 am 
Offline
Moderator

Joined: Thu May 20, 2010 4:01 am
Posts: 3117
Location: Johannesburg, South Africa
Thanks to insistance by Andy (ElvenPointSevenFive), I am now certain that I've found the deceleration fueling RPM threshold fueling table for my Rom (and the 2010 USDM STI).

I actually found these some time back, but never got back to actually test driving these until Andy asked for them, which prompted me to scratch around the rom some more.

This 2D table determines (on an ECT x axis) at what RPM the injectors switch back on from coasting (i.e. full lean, and injector pulse width at zero). This would be useful to those with much larger injectors than stock that have a problem with stalling out as the vehicle comes to stop / idle.

I'll put up the routine and table as soon as I have a chance, but for now, here's the Ecuflash xml code. I'm pretty sure that I've got the the other related overrun fueling parameters of interest (delta throttle, overrun injector enrichment), but still need to dig through the code some more.

AZ1G202G

Code:
   <scaling name="OverRun Fueling " units="units" toexpr="x*0.1953125" frexpr="x/0.1953125" format="%.0f" min="0" max="255" inc="1" storagetype="uint16" endian="big"/>

   <table name="Overrun Fueling RPM Threshold" address="ca8d4" type="2D" level="1" scaling="OverRun Fueling ">
      <table name="X" address="c7ff4" type="X Axis" elements="16" scaling="DegreesF"/>
   </table>


AZ1G202I

Code:
   <scaling name="OverRun Fueling " units="units" toexpr="x*0.1953125" frexpr="x/0.1953125" format="%.0f" min="0" max="255" inc="1" storagetype="uint16" endian="big"/>

   <table name="Overrun Fueling" address="cba78" type="2D" level="1" scaling="Overun Fueling">
      <table name="Coolant Temp" address="c9110" type="X Axis" elements="16" scaling="DegreesF"/>
   </table>


Some guidance on finding these values in your rom

I still have to put up a run through the logic, but for those curious, the easiest way to find these is to go the the location of the Throttle Tip In Enrich Activation value in the rom, and usually above it you will see 2 values - for a number of the later roms I've looked at now, it is set to -17 for RPM Delta and 1400 for the injector enrichment (divided by 1000 gives ms).

e.g. AZ1G202G:

Code:
ROM:000C7EAC Overrun_Enrich_RPM_Delta_Activation:.float -17.0 ; DATA XREF: sub_33B6C+2Eo
ROM:000C7EAC                                         ; ROM:off_33DB0o
ROM:000C7EB0 Overrun_initial_enrichment?:.float 1400.0 ; DATA XREF: sub_33B6C+42o
ROM:000C7EB0                                         ; ROM:off_33DB8o
ROM:000C7EB4 ThrothTipInEnrichActivationThrottle:.float 1.0
ROM:000C7EB4                                         ; DATA XREF: Fun_TipinEnrichment+A4o
ROM:000C7EB4                                         ; ROM:off_33DFCo
ROM:000C7EB8 ThrothTipInEnrichActivation:.float 280.0 ; DATA XREF: Fun_TipinEnrichment+138o
ROM:000C7EB8                                         ; ROM:off_33E1Co
ROM:000C7EBC TipInEncrichCompensDectActivation:.float 1.0
ROM:000C7EBC                                         ; DATA XREF: Fun_TipinEnrichment+10Co
ROM:000C7EBC 


If you scroll down from that location, you will notice a sequence of 3 RPM values - normally starting with 1800 and ending with 4500 - those are the counters.

Code:
ROM:000C7EE4 Variable_flt_C7EE4:.float 1800.0        ; DATA XREF: sub_340EC+60o
ROM:000C7EE4                                         ; sub_340EC:off_34300o
ROM:000C7EE8 Variable_flt_C7EE8:.float 200.0         ; DATA XREF: sub_340EC+1AEo
ROM:000C7EE8                                         ; sub_340EC:off_3433Co
ROM:000C7EEC Variable_flt_C7EEC:.float 500.0         ; DATA XREF: sub_340EC+1C0o
ROM:000C7EEC                                         ; sub_340EC:off_34340o
ROM:000C7EF0 Variable_flt_C7EF0:.float 200.0         ; DATA XREF: sub_340EC+1CEo
ROM:000C7EF0                                         ; sub_340EC:off_34344o
ROM:000C7EF4 Variable_flt_C7EF4:.float 500.0         ; DATA XREF: sub_340EC+264o
ROM:000C7EF4                                         ; sub_344C4:off_34588o
ROM:000C7EF8 Variable_flt_C7EF8:.float 100.0         ; DATA XREF: sub_340EC+276o
ROM:000C7EF8                                         ; sub_344C4:off_3458Co
ROM:000C7EFC Variable_flt_C7EFC:.float 500.0         ; DATA XREF: sub_340EC+282o
ROM:000C7EFC                                         ; sub_344C4:off_34590o
ROM:000C7F00 Over_Fueling_RPM_Range_1:.float 1800.0  ; DATA XREF: sub_344C4:loc_3452Eo
ROM:000C7F00                                         ; sub_344C4:off_345E8o
ROM:000C7F04 Over_Fueling_RPM_Range_2:.float 3200.0  ; DATA XREF: sub_344C4:loc_3453Ao
ROM:000C7F04                                         ; sub_344C4:off_345ECo
ROM:000C7F08 Over_Fueling_RPM_Range_3:.float 4500.0  ; DATA XREF: sub_344C4:loc_34546o


Above the counters a couple of values - in my rom 500 and 200 (see above) - follow the Xref from one of these back to the data offset location, you will see that there is a 2D table - this is the overrun fueling resume table.

Code:
ROM:00034330 off_34330:      .data.l Table_Overun_Fueling_RPM_Resume
ROM:00034330                                         ; DATA XREF: sub_340EC+15Cr
ROM:00034334 off_34334:      .data.l Fun_GetMapValue2D_8B_16B_Float
ROM:00034334                                         ; DATA XREF: sub_340EC+15Er
ROM:00034338 off_34338:      .data.l Variable_word_C7750 ; DATA XREF: sub_340EC+196r
ROM:0003433C off_3433C:      .data.l Variable_flt_C7EE8 ; DATA XREF: sub_340EC+1AEr
ROM:00034340 off_34340:      .data.l Variable_flt_C7EEC ; DATA XREF: sub_340EC+1C0r
ROM:00034344 off_34344:      .data.l Variable_flt_C7EF0 ; DATA XREF: sub_340EC+1CEr


To verify, the multiplier for the tables should be 0.1953125 and the offset 0.

Code:
ROM:00088DC8 Table_Overun_Fueling_RPM_Resume:.data.w h'10 ; DATA XREF: sub_340EC+15Co
ROM:00088DC8                                         ; sub_340EC:off_34330o
ROM:00088DC8                                         ; 16 Lignes
ROM:00088DC8                                         ; 16 Byts
ROM:00088DCA                 .data.w h'800
ROM:00088DCC                 .data.l Table_CoolantTemperature_YAxis
ROM:00088DD0                 .data.l Overun_Fueling_RPM_Resume
ROM:00088DD4                 .float 0.1953125        ; Engine speed
ROM:00088DD8                 .float 0.0

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Last edited by td-d on Sun Jun 03, 2012 12:49 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Sun Jun 03, 2012 12:40 pm 
Offline
Moderator

Joined: Thu May 20, 2010 4:01 am
Posts: 3117
Location: Johannesburg, South Africa
Ok - I've found the other three parameters associated with overrun fueling.

For AZ1G202G:

Code:
   <table name="Overrun_Enrich_RPM_Delta_Activation" address="C7EAC" type="1D" level="1" scaling="rawecuvalue"/>

   <table name="Overrun_initial_enrichment" address="C7EB0" type="1D" level="1" scaling="ms"/>


and the overrun RPM threshold for the counters that determine when the injectors are cut:

Code:
   <table name="Overrun_Fueling_Cut_Counter_RPM_Threshold" address="C7F00" type="2D" level="1" scaling="RPM">
      <table name="RPM" type="Static X Axis" elements="3">
         <data>Low</data>
         <data>Med</data>
         <data>High</data>
      </table>
   </table>


for AZ1g202I, the addresses are:

Code:
   <table name="Overrun_Enrich_RPM_Delta_Activation" address="C8FFC" type="1D" level="1" scaling="rawecuvalue"/>

   <table name="Overrun_initial_enrichment" address="C9000" type="1D" level="1" scaling="ms"/>


and the overrun RPM threshold for the counters that determine when the injectors are cut:

Code:
   <table name="Overrun_Fueling_Cut_Counter_RPM_Threshold" address="C9050" type="2D" level="1" scaling="RPM">
      <table name="RPM" type="Static X Axis" elements="3">
         <data>Low</data>
         <data>Med</data>
         <data>High</data>
      </table>
   </table>

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Tue Jul 17, 2012 3:20 pm 
Offline
Newbie

Joined: Sat Feb 13, 2010 3:33 pm
Posts: 31
Location: Germany
Hi,
It is possible that the overrun fuel cut with my bov has to do? Because if I'm opened it. And then cruise or fully kick the gas like an WOT and then its idling speed should reach back, he simply goes out.

Marcel

_________________
2005 USDM Legacy GT TwinScroll 6MT DCCD
1999 BMW 323ti


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Tue Jul 17, 2012 4:34 pm 
Offline
Moderator

Joined: Thu May 20, 2010 4:01 am
Posts: 3117
Location: Johannesburg, South Africa
Are you running larger injectors? If you are, it might make sense to have the injectors switch back on earlier.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Wed Jul 18, 2012 3:47 am 
Offline
Newbie

Joined: Sat Feb 13, 2010 3:33 pm
Posts: 31
Location: Germany
Hi,
no my fuel system is stock.

Marcel

_________________
2005 USDM Legacy GT TwinScroll 6MT DCCD
1999 BMW 323ti


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Wed Jul 18, 2012 4:50 am 
Offline
Moderator

Joined: Thu May 20, 2010 4:01 am
Posts: 3117
Location: Johannesburg, South Africa
I don't think this would be the right approach to take then.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Wed Jul 18, 2012 1:39 pm 
Offline
Newbie

Joined: Sat Feb 13, 2010 3:33 pm
Posts: 31
Location: Germany
ok. what is in your opinion the better way to solve this problem?

_________________
2005 USDM Legacy GT TwinScroll 6MT DCCD
1999 BMW 323ti


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Wed Jul 18, 2012 2:01 pm 
Offline
Moderator

Joined: Thu May 20, 2010 4:01 am
Posts: 3117
Location: Johannesburg, South Africa
Someone with more mechanical experience will surely chime in - what I can tell you is that tuning BOVs on MAF fueling is a real pain in the ass. On SD, no problem.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Wed Jul 18, 2012 2:15 pm 
Offline
Senior Member

Joined: Mon Jan 19, 2009 2:31 pm
Posts: 1615
Location: Moscow, Russia
I really stop tuning till BOV deleted and a stock bypass restored.


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Wed Jul 18, 2012 2:41 pm 
Offline
Newbie

Joined: Sat Feb 13, 2010 3:33 pm
Posts: 31
Location: Germany
thx for answear. hard to hear that i must change to sd. I'm really in worry with it.

_________________
2005 USDM Legacy GT TwinScroll 6MT DCCD
1999 BMW 323ti


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Wed Jul 18, 2012 2:44 pm 
Offline
Moderator

Joined: Thu May 20, 2010 4:01 am
Posts: 3117
Location: Johannesburg, South Africa
Sasha_A80 wrote:
I really stop tuning till BOV deleted and a stock bypass restored.


Yup, in a nutshell. It's more headache than it's worth.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Wed Jul 18, 2012 4:21 pm 
Offline
Experienced
User avatar

Joined: Thu Jul 23, 2009 1:46 pm
Posts: 863
td-d wrote:
Someone with more mechanical experience will surely chime in - what I can tell you is that tuning BOVs on MAF fueling is a real pain in the ass. On SD, no problem.


This.

BOV + MAF = FAIL

_________________
Please do not send me support questions via PM, use the forum instead!


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Sun Jul 22, 2012 7:55 am 
Offline
Senior Member

Joined: Mon Jan 19, 2009 2:31 pm
Posts: 1615
Location: Moscow, Russia
Too many entries found for MT ROM A8DH100F:
(8 here and 7 ones for 512KB ROMs )

It looks like those are NeutralPositionSwitch\ClutchSwitch\Gear dependent.

Probably the last six are just IdleSpeed vs Coolant with AirCon On\Off and AT\MT config ??

ROM:000858F0 decel_fuel_restore_rpm_vs_coolant_858F0:.data.b 0, h'10, 8, 0
ROM:000858F0 ; DATA XREF: decel_rpm_vs_coolant_sub_32F78:off_331ECo
ROM:000858F4 .data.l coolant_flt_C7A0C
ROM:000858F8 .data.l decel_rpm_word_C8B48
ROM:000858FC .float 1.953125e-1
ROM:00085900 .float 0.0


ROM:00085924 decel_fuel_restore_rpm_vs_coolant_85924:.data.b 0, h'10, 8, 0
ROM:00085924 ; DATA XREF: sub_35176:off_351C0o
ROM:00085928 .data.l coolant_flt_C7A0C
ROM:0008592C .data.l decel_rpm_word_C8BC2
ROM:00085930 .float 1.953125e-1
ROM:00085934 .float 0.0

ROM:000866B4 _1_1_decel_fuel_restore_rpm_vs_coolant_866B4:.data.b 0, h'10, 8, 0
ROM:000866B4 ; DATA XREF: idle_fuel_cut_sub_423F8:off_426A8o
ROM:000866B4 ; ROM:off_43F30o
ROM:000866B8 .data.l coolant_flt_CC154
ROM:000866BC .data.l decel_fuel_restore_rpm_word_CC530
ROM:000866C0 .float 1.953125e-1
ROM:000866C4 .float 0.0

ROM:000866C8 _0_1_decel_fuel_restore_rpm_vs_coolant_866C8:.data.b 0, h'10, 8, 0
ROM:000866C8 ; DATA XREF: idle_fuel_cut_sub_423F8:off_426ACo
ROM:000866C8 ; ROM:off_43F34o
ROM:000866CC .data.l coolant_flt_CC154
ROM:000866D0 .data.l decel_fuel_restore_word_CC550
ROM:000866D4 .float 1.953125e-1
ROM:000866D8 .float 0.0

ROM:000866DC _1_2_decel_fuel_restore_rpm_vs_coolant_866DC:.data.b 0, h'10, 8, 0
ROM:000866DC ; DATA XREF: idle_fuel_cut_sub_423F8:off_426B0o
ROM:000866E0 .data.l coolant_flt_CC154
ROM:000866E4 .data.l decel_fuel_restore_rpm_word_CC570
ROM:000866E8 .float 1.953125e-1
ROM:000866EC .float 0.0

ROM:000866F0 _0_2_decel_fuel_restore_rpm_vs_coolant_866F0:.data.b 0, h'10, 8, 0
ROM:000866F0 ; DATA XREF: idle_fuel_cut_sub_423F8:off_426B4o
ROM:000866F4 .data.l coolant_flt_CC154
ROM:000866F8 .data.l decel_fuel_restore_rpm_word_CC590
ROM:000866FC .float 1.953125e-1
ROM:00086700 .float 0.0

ROM:00086704 _1_4_decel_fuel_restore_rpm_vs_coolant_86704:.data.b 0, h'10, 8, 0
ROM:00086704 ; DATA XREF: idle_fuel_cut_sub_423F8:off_426B8o
ROM:00086708 .data.l coolant_flt_CC154
ROM:0008670C .data.l decel_fuel_restore_rpm_word_CC5B0
ROM:00086710 .float 1.953125e-1
ROM:00086714 .float 0.0

ROM:00086718 _0_4_decel_fuel_restore_rpm_vs_coolant_86718:.data.b 0, h'10, 8, 0
ROM:00086718 ; DATA XREF: ROM:off_428C8o
ROM:0008671C .data.l coolant_flt_CC154
ROM:00086720 .data.l decel_fuel_restore_rpm_word_CC5D0
ROM:00086724 .float 1.953125e-1
ROM:00086728 .float 0.0


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Sun Jul 22, 2012 10:38 am 
Offline
Moderator

Joined: Thu May 20, 2010 4:01 am
Posts: 3117
Location: Johannesburg, South Africa
For A8DH100F, table location is:

Code:
00858F0 word_858F0:     .data.w h'10            ; DATA XREF: sub_32F78:loc_33120o
ROM:000858F0                                         ; sub_32F78:off_331ECo
ROM:000858F2                 .data.w h'800
ROM:000858F4                 .data.l flt_C7A0C
ROM:000858F8                 .data.l h'C8B48
ROM:000858FC                 .float 0.1953125
ROM:00085900                 .float 0.0


Look for the RPM delta and initial enrichment sequence:

Code:
00C781C flt_C781C:      .float -17.0            ; DATA XREF: sub_32ACA+46o
ROM:000C781C                                         ; ROM:off_32D08o
ROM:000C7820 flt_C7820:      .float 1400.0           ; DATA XREF: sub_32ACA+66o
ROM:000C7820                                         ; ROM:off_32D14o


Below it (but above the RPM rev limit), you'll find a couple of references values Xref's which usually has a -50 in it:

Code:
ROM:000C7830 flt_C7830:      .float 200.0            ; DATA XREF: sub_32F78:loc_330CCo
ROM:000C7830                                         ; sub_32F78:off_331D4o
ROM:000C7834 flt_C7834:      .float 15.0             ; DATA XREF: sub_32F78:loc_330D2o
ROM:000C7834                                         ; sub_32F78:off_331D8o
ROM:000C7838 flt_C7838:      .float 600.0            ; DATA XREF: sub_32F78+164o
ROM:000C7838                                         ; sub_32F78:off_331DCo
ROM:000C783C flt_C783C:      .float -50.0            ; DATA XREF: sub_32F78:loc_330E2o
ROM:000C783C                                         ; sub_32F78:off_331E0o
ROM:000C7840 flt_C7840:      .float 1000.0           ; DATA XREF: sub_32F78+192o
ROM:000C7840                                         ; sub_32F78:off_331E4o
ROM:000C7844 flt_C7844:      .float 0.0              ; DATA XREF: sub_32F78+1A2o
ROM:000C7844                                         ; sub_32F78:off_331E8


Follow these references back to the data location, and you'll find the table:

Code:
ROM:000331D0 dword_331D0:    .data.l h'FFFF          ; DATA XREF: sub_32F78+116r
ROM:000331D0                                         ; sub_32F78+1D8r
ROM:000331D4 off_331D4:      .data.l flt_C7830       ; DATA XREF: sub_32F78:loc_330CCr
ROM:000331D8 off_331D8:      .data.l flt_C7834       ; DATA XREF: sub_32F78:loc_330D2r
ROM:000331DC off_331DC:      .data.l flt_C7838       ; DATA XREF: sub_32F78+164r
ROM:000331E0 off_331E0:      .data.l flt_C783C       ; DATA XREF: sub_32F78:loc_330E2r
ROM:000331E4 off_331E4:      .data.l flt_C7840       ; DATA XREF: sub_32F78+192r
ROM:000331E8 off_331E8:      .data.l flt_C7844       ; DATA XREF: sub_32F78+1A2r
ROM:000331EC off_331EC:      .data.l Table_Overrun_Fuel_Resume_RPM
ROM:000331EC                                         ; DATA XREF: sub_32F78:loc_33120r
ROM:000331F0 off_331F0:      .data.l Fun_GetMapValue2D_8B_16B_Float
ROM:000331F0                                         ; DATA XREF: sub_32F78+1ACr
ROM:000331F4 off_331F4:      .data.l unk_FFFF7274    ; DATA XREF: sub_32F78+1B4r
ROM:000331F8 off_331F8:      .data.l unk_FFFF7278    ; DATA XREF: sub_32F78+1B8r
ROM:000331FC off_331FC:      .data.l unk_FFFF726C    ; DATA XREF: sub_32F78+1BAr
ROM:00033200 off_33200:      .data.l word_C72C6      ; DATA XREF: sub_32F78+1F2r


The counter RPM threshold values also sit just below these values:

Code:
ROM:000C7868 Overrun_Fueling_Cut_Counter_RPM_Threshold:.float 1700.0
ROM:000C7868                                         ; DATA XREF: sub_334B4:loc_334FAo
ROM:000C7868                                         ; sub_3361E:off_336ECo
ROM:000C786C flt_C786C:      .float 2500.0           ; DATA XREF: sub_334B4:loc_33508o
ROM:000C786C                                         ; sub_3361E:off_336F0o
ROM:000C7870 flt_C7870:      .float 3500.0           ; DATA XREF: sub_334B4:loc_33516o
ROM:000C7870                                         ; sub_3361E:off_336F4o
ROM:000C7874 Rev_Limit_Fuel_Cut:.float 6700.0        ; DATA XREF: ROM:000338A0o
ROM:000C7874                                         ; ROM:off_3391Co
ROM:000C7878 flt_C7878:      .float 6650.0           ; DATA XREF: ROM:loc_338B4o
ROM:000C7878                                         ; ROM:off_33920o

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Deceleration Fueling / Overrun RPM cutoff threshold tabl
PostPosted: Sun Jul 22, 2012 12:17 pm 
Offline
Senior Member

Joined: Mon Jan 19, 2009 2:31 pm
Posts: 1615
Location: Moscow, Russia
Thanks a lot.

But I still do not understand the meaning of the second table found.
It looks like another branch for fuel overrun threshold tables.

There was no this altenative table within 512KB ROMs I had observed.

The last six are definately IdleRPM tables.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 341 posts ]  Go to page 1, 2, 3, 4, 5 ... 23  Next

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subsilver by phpBBservice.nl