follow ft86club on our blog, twitter or facebook.
FT86CLUB
Ft86Club
Delicious Tuning
Register Garage Members List Calendar Search Today's Posts Mark Forums Read

Go Back   Toyota GR86, 86, FR-S and Subaru BRZ Forum & Owners Community - FT86CLUB > Technical Topics > Software Tuning

Software Tuning Discuss all software tuning topics.


User Tag List

Reply
 
Thread Tools Search this Thread
Old 02-16-2019, 07:19 AM   #43
steve99
Banned
 
Join Date: Dec 2013
Drives: FT86
Location: Australia
Posts: 7,998
Thanks: 1,035
Thanked 4,987 Times in 2,981 Posts
Mentioned: 598 Post(s)
Tagged: 2 Thread(s)
Quote:
Originally Posted by 1quickchic View Post
@Yobiwan ,well here is a question, is it possible for me to make the changes to my ecu?a way to either import the settings or to write them into the rom, I also can use tactrix if its a better solution



Anything is possible but reverse engineering andwriting ecu code is not an easy task.


Wjile ztan has done the bulk of ghe work on the manual A01G rom which is what i believe @Yobiwan is using but simply calid changed to load into his oft, a calid change to a compatable rom is easy.


Unfortunatly from memory you were auto rom and manual and auto not compatable.


So you would need to port across ztans speed density subroutines over to the auto equlivant rom an A01I as this will be similar structure to A01G.


You would​ need to identify the same areas of the auto rom to patch in the speed density code. Then test to do this ztan used IDA a reverse engineering tool and then HEW to test code. Even then ztan bricked at least one ecu.

Last edited by steve99; 02-17-2019 at 01:19 AM.
steve99 is offline   Reply With Quote
The Following User Says Thank You to steve99 For This Useful Post:
Yobiwan (02-16-2019)
Old 02-28-2019, 12:15 AM   #44
solidsnake11
Senior Member
 
Join Date: Nov 2018
Drives: brz
Location: nc
Posts: 318
Thanks: 431
Thanked 739 Times in 443 Posts
Mentioned: 24 Post(s)
Tagged: 0 Thread(s)
Could you upload the def for the SD hybrid. I tried to patch my def but it has no rpm or kpa values.

Last edited by solidsnake11; 02-28-2019 at 06:36 AM.
solidsnake11 is offline   Reply With Quote
Old 02-28-2019, 01:45 AM   #45
Yobiwan
Senior Member
 
Yobiwan's Avatar
 
Join Date: Jan 2012
Drives: Toyota 86 Turbo, Lexus NX300H
Location: S.Korea
Posts: 135
Thanks: 263
Thanked 166 Times in 73 Posts
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quote:
Originally Posted by solidsnake11 View Post
Could you upload the def for the SD hybrid. I tried to patch the my def but it has no rpm or kpa values.
try this one.
Attached Files
File Type: zip RR ZA1JA01G.zip (40.3 KB, 203 views)
__________________
2012 Toyota 86 6MT / 11:1 CR block by Outfront / SBD500x Turbo 17PSI@93gas /Avo 2.5 overpipe+Avo 2.5 catted frontpipe /MAP 3" CBE/ Tein Mono sport / STI brembo Front /OS技研 LSD/SSR GTX01 18x9.5
Yobiwan is offline   Reply With Quote
Old 02-28-2019, 11:17 PM   #46
solidsnake11
Senior Member
 
Join Date: Nov 2018
Drives: brz
Location: nc
Posts: 318
Thanks: 431
Thanked 739 Times in 443 Posts
Mentioned: 24 Post(s)
Tagged: 0 Thread(s)
Thank you
solidsnake11 is offline   Reply With Quote
Old 03-05-2019, 03:16 PM   #47
solidsnake11
Senior Member
 
Join Date: Nov 2018
Drives: brz
Location: nc
Posts: 318
Thanks: 431
Thanked 739 Times in 443 Posts
Mentioned: 24 Post(s)
Tagged: 0 Thread(s)
Is it possible to flash A01G to a C series. If not, does anybody have the hybrid speed density files for the C series ecu.
solidsnake11 is offline   Reply With Quote
Old 03-05-2019, 03:46 PM   #48
Kodename47
Senior Member
 
Kodename47's Avatar
 
Join Date: Oct 2012
Drives: UK GT86
Location: UK
Posts: 3,040
Thanks: 185
Thanked 1,629 Times in 1,112 Posts
Mentioned: 155 Post(s)
Tagged: 1 Thread(s)
Quote:
Originally Posted by solidsnake11 View Post
Is it possible to flash A01G to a C series. If not, does anybody have the hybrid speed density files for the C series ecu.
Yes, G is MT and so is C.
Quote:
Originally Posted by Yobiwan View Post
Only rom that we can use SD on OFT platform is 6MT (2012-2017) by now.
__________________
.: Stealth 86 :.
Abbey Motorsport/K47 Tuned Sprintex 210 Supercharger

Kodename 47 DJ:
Soundcloud / Instagram / Facebook
Kodename47 is offline   Reply With Quote
Old 03-05-2019, 06:37 PM   #49
steve99
Banned
 
Join Date: Dec 2013
Drives: FT86
Location: Australia
Posts: 7,998
Thanks: 1,035
Thanked 4,987 Times in 2,981 Posts
Mentioned: 598 Post(s)
Tagged: 2 Thread(s)
Quote:
Originally Posted by solidsnake11 View Post
Is it possible to flash A01G to a C series. If not, does anybody have the hybrid speed density files for the C series ecu.



Yes you can flash the A01G rom to any 86\brz\frs manual car from 2012-2016 ie pre facelift.


It will not work with facelift 2017 plus cars car wont start
steve99 is offline   Reply With Quote
Old 03-11-2019, 07:04 AM   #50
solidsnake11
Senior Member
 
Join Date: Nov 2018
Drives: brz
Location: nc
Posts: 318
Thanks: 431
Thanked 739 Times in 443 Posts
Mentioned: 24 Post(s)
Tagged: 0 Thread(s)
I used ecuflash to flash A01G hybrid. Said yes to correct checksum in ecuflash then flashed. This also helped idle after a rev. Thank you guys for your time and help.
solidsnake11 is offline   Reply With Quote
The Following User Says Thank You to solidsnake11 For This Useful Post:
Yobiwan (03-11-2019)
Old 09-17-2020, 01:25 PM   #51
D-VO
Senior Member
 
Join Date: Sep 2012
Drives: Whiteout FR-S, Evo 8 RS
Location: Kissimmee FL.
Posts: 242
Thanks: 131
Thanked 42 Times in 32 Posts
Mentioned: 16 Post(s)
Tagged: 0 Thread(s)
Hey guys. I'm using the ZA1JB01C SD mod but the definitions are gone. I was able to find some screen caps of the work I was doing to recover the 'Speed Density MAF' (d15a0)and 'Speed density Blend' (d14a0)tables on ECUFlash, but I'm missing the address for 'Speed Density Mode' table. I'm also unsure of the scalar that's supposed to be used here. Can anyone help me out? @ztan ?

*Edit* NM I was lucky enough to find the address for Speed Density Mode in an old email. (d1482) The table is supposed to be a switch but the speed density mode scalar works fine.

https://ibb.co/4dZ7pyv
Attached Images
 
__________________

Last edited by D-VO; 09-17-2020 at 02:11 PM. Reason: Added image
D-VO is offline   Reply With Quote
Old 09-18-2020, 07:03 AM   #52
steve99
Banned
 
Join Date: Dec 2013
Drives: FT86
Location: Australia
Posts: 7,998
Thanks: 1,035
Thanked 4,987 Times in 2,981 Posts
Mentioned: 598 Post(s)
Tagged: 2 Thread(s)
Quote:
Originally Posted by D-VO View Post
Hey guys. I'm using the ZA1JB01C SD mod but the definitions are gone. I was able to find some screen caps of the work I was doing to recover the 'Speed Density MAF' (d15a0)and 'Speed density Blend' (d14a0)tables on ECUFlash, but I'm missing the address for 'Speed Density Mode' table. I'm also unsure of the scalar that's supposed to be used here. Can anyone help me out? @ztan ?

*Edit* NM I was lucky enough to find the address for Speed Density Mode in an old email. (d1482) The table is supposed to be a switch but the speed density mode scalar works fine.

https://ibb.co/4dZ7pyv

didztan specificly mod your B01C rom or its it jst a cald altered A01G if so the A01G SD def should work
steve99 is offline   Reply With Quote
Old 09-18-2020, 10:12 PM   #53
D-VO
Senior Member
 
Join Date: Sep 2012
Drives: Whiteout FR-S, Evo 8 RS
Location: Kissimmee FL.
Posts: 242
Thanks: 131
Thanked 42 Times in 32 Posts
Mentioned: 16 Post(s)
Tagged: 0 Thread(s)
Quote:
Originally Posted by steve99 View Post
didztan specificly mod your B01C rom or its it jst a cald altered A01G if so the A01G SD def should work
I can't recall what exactly he did, but I can't get the A01G ROMs to start on mine; SD or non-SD so I gave up. *side note* A01C and B01C non-SD were fine but I couldn't get them to stop targeting 13.78 AFR on Idle and cruise even after zeroing out the AF3 tables. I ended up back with the B01C SD ZTAN made me. I'm guessing its running a rear O2 sim?

Anyway, the addresses for SD on the A01G don't work on B01C that was the first thing I tried, so maybe he didn't? I would love to look at the rest of the corrections made on Romraider since there are more tables defined there, but my B01C SD ROM won't open on it.
__________________
D-VO is offline   Reply With Quote
Old 06-28-2023, 05:39 AM   #54
callisto
Member
 
Join Date: Nov 2021
Drives: 2019 Subaru BRZ
Location: NA
Posts: 44
Thanks: 24
Thanked 32 Times in 17 Posts
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Ported ztan's speed density code to ZA1JK00G

Quote:
Originally Posted by ztan View Post
Hybrid speed density implementation. This has worked for me; use at your own risk. Each SD table will need to be scaled individually for your own unique intake/FI/engine/AVCS/exhaust profile. I'm happy to share my work, but am not a software engineer, pro tuner, or automotive engineer.

My implementation works on the A01G ROM (not the OFT ones, as the ROM hole is used in the OFT ROMs with FFS/LC). Addresses I use are specific to this ROM - don't apply to yours if you don't know what you are doing.
I ported this to K00G, but I don't have a 'lab' vehicle to test it on right now, so I can't guarantee this works yet. Still, here's my porting notes and a patched K00G, romraider, logcfg; as well as the relevant ghidra dumps, where it differs from the original code at thread start. I chose K00G for the widest compatibility with modern tuning, but I could be persuaded if it's essential to do some specific other version as well.

Notes:

Quote:
In K00G, the MAF table pointer is located at 0BEA40 which is in turn listed in a cluster of pointers at 010628. This last list is referenced in the subroutine at 02B37E.

The replacement code at 2B37E will patch a jump to the new code at 0xCA110:

d2 02 42 4b a0 11 f9 0c 00 00 00 0c a1 10 00 00 00 00

There is one additional 5V sensor that wasn't present in A01G. I've verified that the MAF sensor is unchanged as the 8th sensor. (I wonder what the new sensor is?)

The end of the codebase can be reliably located by searching for a string of odd float constants; they'll be followed by a few more floats (if Ghidra shows code there, it's probably a lie), and then FFFF begins.

7f 80 00 01 00 00 00 00 7f 80 00 00 3f 80 00 00 3f 00 00 00 3e 80 00 00 40 00 00 00 40 80 00 00 40 49 0f dc 40 c9 0f db 3f c9 0f db 3f 49 0f db 3f 31 72 18 80 00 00 00 ff 80 00 00

However - in certain K00G ROMs, Launch Control is installed at the first empty block at 0BF570, so that space isn't available. Everything from BF5CC..FADFF is clear, though, so I'll use 0CA110 since it's unlikely any other K00G mods use that. (So, offset +10F60 for anyone reading the original code comments.)

FFF8D930 and below are in use, so the four RAM pointers are relocated from FFF8D400-040C to FFF8E100-FFF8E10C.

In K00G, three memory addresses changed: RPM: FFF89750; MAP: FFF8803C; IAT: FFF88040.

SD Blend is at CA1C0, SD Mode is at CA1A2.

The SD to MAF table is offset by +10F60 to CA1E0 (table), CA200 (float[24]), CA260 (float[23]), and the data at CA2C0 (word[24*23]).

New code and table start at CA110, ends at CA70F, and uses FFF8E100..E10C.
romraider:

Code:
<table name="Speed Density MAF" storageaddress="CA2C0" sizex="24" sizey="23">
      <table type="X Axis" storageaddress="CA200" />
      <table type="Y Axis" storageaddress="CA260" />
</table>
<table name="Speed Density Blend" storageaddress="CA1C0" />
<table name="Speed Density Mode" storageaddress="CA1A2" />
logcfg:

Code:
paramname = MAF_Sensor
paramid = 0xFFF8E100
isfloat = 1

paramname = MAF_SD_Raw
paramid = 0xFFF8E104
isfloat = 1

paramname = MAF_SD
paramid = 0xFFF8E108
isfloat = 1

paramname = MAF_Final
paramid = 0xFFF8E10C
isfloat = 1
Disassembly dump of the relevant sections:
Code:
XREF[1]:     0002b372 (j)   
        0002b37e d2  02           mov.l      @(->SD_patch_point ,pc),r2                       = 000ca110
        0002b380 42  4b           jsr/n      @R2=>SD_patch_point                              undefined SD_patch_point()
        0002b382 a0  11           bra        LAB_0002b3a8
        0002b384 f9  0c           _fmov      fr0 ,fr9
        0002b386 00  00           align      align(2)
                             PTR_SD_patch_point_0002b388                     XREF[1]:     0002b37e (R)   
        0002b388 00  0c  a1  10    addr       SD_patch_point
        0002b38c 00  00  00  00    align      align(4)


                             PTR_ENGINE_SD_MAF_sensor_000ca1a4               XREF[3]:     SD_patch_point:000ca128 (R) , 
                                                                                          SD_patch_point:000ca15a (R) , 
                                                                                          SD_patch_point:000ca198 (R)   
        000ca1a4 ff  f8  e1  00    addr       ENGINE_SD_MAF_sensor                             = ??
                             PTR_ENGINE_SD_table_000ca1a8                    XREF[1]:     SD_patch_point:000ca13c (R)   
        000ca1a8 ff  f8  e1  04    addr       ENGINE_SD_table                                  = ??
                             PTR_ENGINE_SD_final_000ca1ac                    XREF[1]:     SD_patch_point:000ca156 (R)   
        000ca1ac ff  f8  e1  08    addr       ENGINE_SD_final                                  = ??
                             PTR_ENGINE_SD_blend_000ca1b0                    XREF[1]:     SD_patch_point:000ca18c (R)   
        000ca1b0 ff  f8  e1  0c    addr       ENGINE_SD_blend                                  = ??
                             PTR_ENGINE_rpm_000ca1b4                         XREF[1]:     SD_patch_point:000ca12c (R)   
        000ca1b4 ff  f8  97  50    addr       ENGINE_rpm                                       = ??
                             PTR_ENGINE_map_000ca1b8                         XREF[1]:     SD_patch_point:000ca130 (R)   
        000ca1b8 ff  f8  80  3c    addr       ENGINE_map                                       = ??
                             PTR_ENGINE_iat_000ca1bc                         XREF[1]:     SD_patch_point:000ca140 (R)   
        000ca1bc ff  f8  80  40    addr       ENGINE_iat                                       = ??



                             PTR_SD_MAF_table_000ca1d0                       XREF[1]:     SD_patch_point:000ca138 (R)   
        000ca1d0 00  0c  a1  e0    addr       SD_MAF_table



                             SD_MAF_table                                    XREF[2]:     SD_patch_point:000ca138 (*) , 
                                                                                          000ca1d0 (*)   
        000ca1e0 00  18  00       3dmtable
                 17  00  0c 
                 a2  00  00 
           000ca1e0 00              db        0h                      xtype                             XREF[2]:     SD_patch_point:000ca138 (*) , 
                                                                                                                     000ca1d0 (*)   
           000ca1e1 18              db        24                      xsize
           000ca1e2 00              db        0h                      ytype
           000ca1e3 17              db        23                      ysize
           000ca1e4 00  0c  a2  00    float *   FLOAT_ARRAY_000ca200    xaxis
           000ca1e8 00  0c  a2  60    float *   FLOAT_ARRAY_000ca260    yaxis
           000ca1ec 00  0c  a2  c0    addr      WORD_ARRAY_000ca2c0     data
           000ca1f0 08  00  00  00    float     3.8518599E-34           xscale
           000ca1f4 3c  00  00  00    float     0.0078125               datascale
           000ca1f8 00  00  00  00    float     0.0                     dataoffset
        000ca1fc 00  00  00  00    align      align(4)
Attached Files
File Type: zip ZA1JK00G Speed Density.zip (502.5 KB, 39 views)

Last edited by callisto; 06-28-2023 at 05:52 AM.
callisto is offline   Reply With Quote
The Following 2 Users Say Thank You to callisto For This Useful Post:
Compelica (06-29-2023), tomm.brz (06-29-2023)
Old 06-29-2023, 06:20 AM   #55
AussieBRZ
Senior Member
 
AussieBRZ's Avatar
 
Join Date: Aug 2022
Drives: WRB BRZ
Location: Australia
Posts: 112
Thanks: 14
Thanked 51 Times in 36 Posts
Mentioned: 9 Post(s)
Tagged: 0 Thread(s)
Quote:
Originally Posted by callisto View Post
I ported this to K00G, but I don't have a 'lab' vehicle to test it on right now, so I can't guarantee this works yet. Still, here's my porting notes and a patched K00G, romraider, logcfg; as well as the relevant ghidra dumps, where it differs from the original code at thread start. I chose K00G for the widest compatibility with modern tuning, but I could be persuaded if it's essential to do some specific other version as well.

Notes:

romraider:

Code:
<table name="Speed Density MAF" storageaddress="CA2C0" sizex="24" sizey="23">
      <table type="X Axis" storageaddress="CA200" />
      <table type="Y Axis" storageaddress="CA260" />
</table>
<table name="Speed Density Blend" storageaddress="CA1C0" />
<table name="Speed Density Mode" storageaddress="CA1A2" />
logcfg:

Code:
paramname = MAF_Sensor
paramid = 0xFFF8E100
isfloat = 1

paramname = MAF_SD_Raw
paramid = 0xFFF8E104
isfloat = 1

paramname = MAF_SD
paramid = 0xFFF8E108
isfloat = 1

paramname = MAF_Final
paramid = 0xFFF8E10C
isfloat = 1
Disassembly dump of the relevant sections:
Code:
XREF[1]:     0002b372 (j)   
        0002b37e d2  02           mov.l      @(->SD_patch_point ,pc),r2                       = 000ca110
        0002b380 42  4b           jsr/n      @R2=>SD_patch_point                              undefined SD_patch_point()
        0002b382 a0  11           bra        LAB_0002b3a8
        0002b384 f9  0c           _fmov      fr0 ,fr9
        0002b386 00  00           align      align(2)
                             PTR_SD_patch_point_0002b388                     XREF[1]:     0002b37e (R)   
        0002b388 00  0c  a1  10    addr       SD_patch_point
        0002b38c 00  00  00  00    align      align(4)


                             PTR_ENGINE_SD_MAF_sensor_000ca1a4               XREF[3]:     SD_patch_point:000ca128 (R) , 
                                                                                          SD_patch_point:000ca15a (R) , 
                                                                                          SD_patch_point:000ca198 (R)   
        000ca1a4 ff  f8  e1  00    addr       ENGINE_SD_MAF_sensor                             = ??
                             PTR_ENGINE_SD_table_000ca1a8                    XREF[1]:     SD_patch_point:000ca13c (R)   
        000ca1a8 ff  f8  e1  04    addr       ENGINE_SD_table                                  = ??
                             PTR_ENGINE_SD_final_000ca1ac                    XREF[1]:     SD_patch_point:000ca156 (R)   
        000ca1ac ff  f8  e1  08    addr       ENGINE_SD_final                                  = ??
                             PTR_ENGINE_SD_blend_000ca1b0                    XREF[1]:     SD_patch_point:000ca18c (R)   
        000ca1b0 ff  f8  e1  0c    addr       ENGINE_SD_blend                                  = ??
                             PTR_ENGINE_rpm_000ca1b4                         XREF[1]:     SD_patch_point:000ca12c (R)   
        000ca1b4 ff  f8  97  50    addr       ENGINE_rpm                                       = ??
                             PTR_ENGINE_map_000ca1b8                         XREF[1]:     SD_patch_point:000ca130 (R)   
        000ca1b8 ff  f8  80  3c    addr       ENGINE_map                                       = ??
                             PTR_ENGINE_iat_000ca1bc                         XREF[1]:     SD_patch_point:000ca140 (R)   
        000ca1bc ff  f8  80  40    addr       ENGINE_iat                                       = ??



                             PTR_SD_MAF_table_000ca1d0                       XREF[1]:     SD_patch_point:000ca138 (R)   
        000ca1d0 00  0c  a1  e0    addr       SD_MAF_table



                             SD_MAF_table                                    XREF[2]:     SD_patch_point:000ca138 (*) , 
                                                                                          000ca1d0 (*)   
        000ca1e0 00  18  00       3dmtable
                 17  00  0c 
                 a2  00  00 
           000ca1e0 00              db        0h                      xtype                             XREF[2]:     SD_patch_point:000ca138 (*) , 
                                                                                                                     000ca1d0 (*)   
           000ca1e1 18              db        24                      xsize
           000ca1e2 00              db        0h                      ytype
           000ca1e3 17              db        23                      ysize
           000ca1e4 00  0c  a2  00    float *   FLOAT_ARRAY_000ca200    xaxis
           000ca1e8 00  0c  a2  60    float *   FLOAT_ARRAY_000ca260    yaxis
           000ca1ec 00  0c  a2  c0    addr      WORD_ARRAY_000ca2c0     data
           000ca1f0 08  00  00  00    float     3.8518599E-34           xscale
           000ca1f4 3c  00  00  00    float     0.0078125               datascale
           000ca1f8 00  00  00  00    float     0.0                     dataoffset
         000ca1fc 00  00  00  00    align      align(4)

Thanks
I have a bench flash setup and can test flash this to my bench ECU


Would you have the K00G definition for romraider with the added tables for the SD ?


I can probably work out the logcfg.txt but I'm not sure on the definition mods for K00G SD


Note the K00G rom will work in any manual 2017-2021 car any country


The only other SD rom needed would be K01I as it world do all auto cars 2017-2021


Only other addition needed would be an overboost cut I think ztan inmplemented that in his A01G code


Regard
Steve



Thanks steve

Last edited by AussieBRZ; 06-29-2023 at 06:48 AM.
AussieBRZ is offline   Reply With Quote
The Following User Says Thank You to AussieBRZ For This Useful Post:
tomm.brz (06-29-2023)
Old 06-29-2023, 08:18 AM   #56
makinen
Senior Member
 
makinen's Avatar
 
Join Date: Jan 2013
Drives: Toyota 86
Location: South Korea
Posts: 267
Thanks: 126
Thanked 198 Times in 115 Posts
Mentioned: 5 Post(s)
Tagged: 0 Thread(s)
Quote:
Originally Posted by AussieBRZ View Post
Only other addition needed would be an overboost cut I think ztan inmplemented that in his A01G code
I made overboost cut for A01E and K01E. Not hard for K00G if needed. I guess @callisto can do either.
__________________
/* Custom underbody panels and diffuser
Custom electric water pump and PWM controller
HKS GT EL header, 17MY intake manifold */
makinen is offline   Reply With Quote
The Following User Says Thank You to makinen For This Useful Post:
tomm.brz (06-29-2023)
 
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Open Source Electric Supercharger neutron256 Forced Induction 913 08-22-2021 05:16 PM
MAF (Mass Air Flow) versus Speed Density, Discussion & Debate for ALL DeliciousTuning Software Tuning 40 04-11-2015 12:56 AM
Screencast: MAF and Speed Density jamesm Software Tuning 6 02-08-2014 03:19 PM
Is Speed Density tuning required for under 400HP street driven cars vgi Software Tuning 35 12-03-2013 06:29 PM
Speed Density Possible? mrk1 Engine, Exhaust, Transmission 3 05-01-2013 01:21 AM


All times are GMT -4. The time now is 05:11 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
User Alert System provided by Advanced User Tagging v3.3.0 (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Garage vBulletin Plugins by Drive Thru Online, Inc.