Debug mode

Debug Mode

Need confirmation from devvvs for a few ones:

what is the meaning of the colors on the inlets?
green seems to an inlet that requests data. (see below)
red seems to be an in/outlet thats spreadcount changes (seems verified with many tests)
blue seems to be an in/outlet that gets calculated.
~~#cccccc:white~~ seems to be ???

A node with pins all gray has the "Autoevaluate" option turned off, and is "Inactive"

  • Autoevaluate option turned off means that if there is no other node asking for it's own results, it won't evaluate.
  • Autoevaluate option turned on means the node executes every frame.

The is two pin types for value in vvvv:

  • Value In : We can request if the PinHaschanged, which will do a spread comparison with the last frame (slice per slice). So if your spread size is 50000 you do 50000 equal operations. This can be nice for some pins which always have a low spreadcount, and generate a large spread. When a "PinIsChanged event" is set to true, the inlet turns to green.

  • Value Fast In: Doesn't look like for spread change, so only gets data. Useful if you want to process the data regardless.

in what units the values are expressed ?

Values are expressed in thousands of ticks.

A tick is the lowest unit of time on a processor, so it depends on processor architecture.

On probably most of pc modern processors, 1 tick = 1/10000 milliseconds.

Which means if your value is 130, your node takes 13ms to process.

(Note: to calculate that, created a plugin with a hi perf timer, and outputted the plugin processing time in an outlet, which seemed to verify this).

Debugging spreads

A link can have any of 4 styles:

 dotted: when carrying ø  normal: when carrying 1 slice  thin: when carrying a slicecount less than half of the patchs maximum spreadcount  thick: when carrying a slicecount greater then half of the patchs maximum spreadcount  fat: when carrying the patchs maximum spreadcount 

We hope this to be specifically usefull when teaching beginners about spreads or hunting for large spreads or ø.

Скачать новые патчи, Вы так же можете из данной темы на форуме:

  • Скачайте файл
  • Распакуйте архив
  • Скопируйте файл Assembly-UnityScript.dll в корневую папку игры с заменой, по пути: Car Mechanic Simulator 2018cms2018_DataManaged (Не забывайте про Backup заменяемого файла)
  • На всякий случай в архиве присутствует Backup заменяемого файла от версии v1.2.9, в любом случае, перед обновлением новыми патчами, необходимо вернуть оригинальный файл. Если Вы будете обновлять игру новыми патчами с изменённым Assembly-UnityScript.dll, Вы получите фатальную ошибку, решение которой заключается в полной переустановке игры.

Запустите игру и нажимайте соответствующие клавиши непосредственно в гараже (цифры не Num, а ниже F-клавиш):

  • F1 — Add $1000 — Добавить 1000$.
  • F2 — Add 1000 Exp — Добавить 1000 опыта. (Заметьте, что при вводе кода на открытие всего, у Вас нельзя открыть навык «Везунчик«, Вам нужно прокачать свой уровень до 55, чтобы была возможность его активировать).
  • F3 — Get all items — Получить все предметы. (Неизвестно в каком варианте он работает и при каких обстоятельствах, помогут только Ваши эксперименты).

  • F4 — Examine all cars — Исследование всех автомобилей находящихся в гараже. (Неизвестно, на что проходит исследование в двух типах данных функций, как с функцией 5).
  • F5 — Repair all cars — Полностью починить все автомобили находящиеся в гараже.
  • F6 — Finish current job — Завершить текущий заказ.
  • F7 — Fly-camera (On/Off) — «Режим призрака» Noclip.
  • N — Get item — Получить товар (Данная функция полностью не исследована, возможно получение бесплатных товаров в магазине)
  • 5 — Examine all cars — Исследование всех автомобилей находящихся в гараже. (см. пункт F4)
  • 6, 8, 9 — Spawn random car — Спавн автомобилей под забивку всего гаража, будьте осторожны нажимая клавишу много раз, возможно, что предыдущий автомобиль войдёт в новый заспавненный.
  • 7, 0 — Auction car — Возможность целевой смены автомобиля с запчастями или их отсутствием, новым цветом, ржавчиной и тд и тп.

Данный чит-мод, так же автоматически убирает размытие в движении и эффект свечения блум, NoIntro fix.

Debug status in IN_START service menu

First step is to check / modify the Debug status option in IN_START service menu.

Debug mode password

  • Note the debug mode password: MODELNAMEelqjrm
    • MODELNAME has to be replaced with you specific tv model name. It is equals to that showed in customer care menu (Main menu -> red button (customer care) -> product/service Info): for example 42PJ650-ZA, 50PK950-ZA, 32LD420-ZA, etc.
    • elqjrm — constant ‘secret’ sequence

For example the debug mode password for an european LG 50PK950-ZA tv is ’50PK950-ZAelqjrm’.

The procedure to enter that debug mode password varies for different firmware versions. So you have to probe for the right one. The variable <DEBUG_MODE_PASSWORD> has to be replaced with the debug mode password explained above.

Procedure 1

  • Type ‘d<Space><DEBUG_MODE_PASSWORD><Enter>’.

After that you have to enable debug messages by pressing F9 first (until you get ‘enabled debug messages’ message) and after that enter debug menu shell by hitting F10.

Attention: You should press and hold the keys until you get some visual feedback from tv.

Hint: if yours terminal does not support function escape key codes then paste that codes (just the the bold parts): ^[[20~ (as F9) and ^[[21~ (as F10)

Procedure 2

  • Type ‘<DEBUG_MODE_PASSWORD><Enter>d<Enter>d’

Procedure 3

  • Type ‘d<Space><DEBUG_MODE_PASSWORD><Enter>debug<Enter>d’

Procedure 4

  • Hit F9, then F10 in compatibile serial terminal (like Putty for example)
  • c — Enter #Ch Up/Down menu
  • d — Enter #Debug menu
  • u — Enter #UI Keyboard Test Mode menu
  • x — Exit from Debug mode, back to the Product mode

Ch Up/Down menu

=================== [ Ch Up/Down ] ===================  ']' : Ch.Up, '' Ch.Down [ESC] : Mode Exit ====================================================== 

UI Keyboard Test Mode menu

=================== [ UI Keyboard Test Mode ] ===================  '0' ~ '9' : Number Key, '-' : Dash  ',' : Vol.Down, '.' : Vol.Up, '>' : Ch.Up, '<' Ch.Down  '[' : Up, '/' : Down, ';' : Left, ''' : Right  'M' : Main Menu, 'H' : Home Menu, 'X' : Exit, 'I' : Brief Info.  'B' : flashBack, 'A' : SAP(audio), 'U' : Mute, 'P' : Pip  'R' : Ratio, 'V' : Ext.Input, 'C' : Caption, 'F' : favorite  'D' : DW TS, 'E' : HDMI_CEC 'G' : Guide, 's' : INSTOP  'K' : In start, 'L' : Adjust  [ESC] : UI Keyboard Mode Exit ================================================================= 

debugMain menu

 help,? Print this help message  ============================================================  * show Show Various status  ver Show VERsion data  sh Excute OS shell  md Memory dump  mm Modify memory  mf Memory fill  mmap Map kernel physical memory to user vitrual memory  dsm Disassemble memory  regs Dump current exception registers  i2cd Dump I2C Device  i2cm Modify I2C Device  nvmd Dump NVRAM Device  nvmm Modify NVRAM Device  nvmclr Clear(Reset) NVRAM  num Print number in hex/dec/bin  uptime Print system up time  pdm XX_PRINTF() off/on control  call Call a function  reset Reset system  mtd Show current MTD. map info.  cfg Show current CFG. set value  * orgm Enter Org style debug menu  ------ debugMain ----------------------------------------  * sys System debug  * test Test basic functions  * info Sample hard link menu  > gcmt Set memory check threshold ---> gcmt@debugSystem  > gcmo Set memory check option ---> gcmo@debugSystem  > tcmo Set memory check option(per task) ---> tcmo@debugSystem  * soc SOC Menu  ============================================================  exit Exit from debugMain menu
1:debugMain $

WARNING! Be very carefull writing commands as you can’t use delete or backspace to correct mistakes. And some commands can brick TV.

Debug menu

 help,? Print this help message  ============================================================  * show Show Various status  ver Show VERsion data  sh Excute OS shell  md Memory dump  mm Modify memory  mf Memory fill  mmap Map kernel physical memory to user vitrual memory  dsm Disassemble memory  regs Dump current exception registers  i2cd Dump I2C Device  i2cm Modify I2C Device  nvmd Dump NVRAM Device  nvmm Modify NVRAM Device  nvmclr Clear(Reset) NVRAM  num Print number in hex/dec/bin  uptime Print system up time  pdm XX_PRINTF() off/on control  call Call a function  reset Reset system  mtd Show current MTD. map info.  cfg Show current CFG. set value  * orgm Enter Org style debug menu  ------ ORG MAIN ----------------------------------------  1 Print Mask Menu  2 S/W Version Info  3 Select Country Group  10 SDEC Menu  11 VDEC Menu  12 VIDEO Menu  13 ADEC Menu  14 GFXOSD Menu  15 Pictue Quality Driver Menu  16 Pictue Quality MW Menu  23 Front End Menu  24 AUDIO DDI Menu  25 AUDIO API Menu  26 EMP Menu  30 GPIO Menu  31 I2C Menu  32 NVM Menu  50 Micom Menu  51 SUMDSVC Menu  52 FRC  53 Fan Menu  55 HDMISW  56 Local Dimming  60 SSU Menu  80 SI Menu  81 CM Menu  82 CI Menu  90 MRE Menu  91 UTIL Menu  92 PWM Menu  a4 EME Menu  a5 MLM Menu  af MFS Menu  b0 SWU Menu  b2 Autotest Menu  e0 UI Menu  e3 Subtitle Menu  e4 Teletext Menu  e5 OAE Menu  f0 MHEG Menu  f1 EDID Menu  f3 Bluetooth Menu  f6 Hotel Mode Menu  f7 LcdModule Menu  df OSD Multi-Language  d1 BSI  d2 Show Config. Data  d3 LED Menu  d4 Init Tool Option from CFG file to Eeprom  z1 REG control Menu  ============================================================  exit Exit from ORG MAIN menu


 --------------------------------------------------------------------------------------------  Package Version DateOfCompilation builder@computer:/directory  UserApp V0.1.53.64 May 21 2009, 20:29:26 ainaying@swfarm-l2:/home/work/ainaying/Server_PQ/src/apps/prj/atsc_saturn5  ------- SVN r14006  -------------------------------------------------------------------------------------------- 


Drops you into Busybox as root. If you aren’t linux literate go get a PC linux distro and learn somewhere safe. Hint: If the ‘sh’ command is disabled/not present see #Busybox_shell_access.


mtd00: 00020000-00004000 bbminfo mtd01: 00040000-00004000 boot mtd02: 00020000-00004000 mtdinfo mtd03: 00180000-00004000 rootfs mtd04: 00020000-00004000 model mtd05: 00500000-00004000 emanual mtd06: 00400000-00004000 ezcal mtd07: 00280000-00004000 kernel mtd08: 00900000-00004000 lgapp mtd09: 00380000-00004000 lgres mtd10: 00900000-00004000 lgfont mtd11: 00280000-00004000 kernel mtd12: 00900000-00004000 lgapp mtd13: 00380000-00004000 lgres mtd14: 00900000-00004000 lgfont mtd15: 00020000-00004000 recdb mtd16: 00040000-00004000 system mtd17: 00260000-00004000 user mtd18: 00200000-00004000 reserved 

Busybox shell access

On the latest firmware versions ‘sh’ command in debug menu is disabled. Let’s try to access it:

Attempt #1

Choose your platform and type in debug shell:

Saturn 6

call debug_os_shell+0xac 

Saturn 7

call debug_os_shell+0xb0 


call debug_os_shell+0x90 

Attempt #2 (by sirius)

You may try

call _exit 

to get shell access. If this is successfull sadly the RELEASE executable is stopped and therefore picture on tv freezes. But you should get shell prompt then. As RELEASE is stopped you can’t examine the running system in this case. You might want to mount an usb stick after exiting RELEASE with

mount /dev/sda1 /mnt/usb1/Drive1 -t vfat -o codepage=437,iocharset=utf8 

Attempt #3 (by QueZt)

If you want to try things without killing RELEASE, you can try an alternative procedure to get into Busybox shell with intact RELEASE.

ATTENTION: This procedure was tested on some TVs, but it’s experimental. If you get segfaults, don’t repeat the process and search for a safe memory area for your TV.

Get into debug menu as usual. After F10 (debug menu command prompt) do a memory modification:

mm l 0x2b14f000 1  

mm command = modify memory, 1st param = mode (l for 32 bit edit), 2nd param = mem address to edit. I choose 0x2b14f000 becaue it’s an empty area I tried and it seems to be safe in my 32LD650 with 03.20.12 FW. If this address doesn’t work for you (you get segfaults), dump memory and search for a safe addr. 3rd param = count.

When done, type this:


It’s the string «sh» we are storing into that 32 bit address, little endian (so it’s in reverse order)

Now we’ll call the system function and use the address we modified as the parameter to be passed:

call system 0x2b14f000 

Voila! If everything went well, you’ll get the shell prompt

So if everything works this way simple copy and paste the following to your serial terminal:

mm l 0x2b14f000 1 0x00006873 call system 0x2b14f000 

Attempt #4

To get into Busybox shell from debug shell on Saturn 6, you can try to use simple procedure:

Get into debug shell as usual. After F9 and F10 (debug menu command prompt) do:

mm 0x400000 

and after that type: 0

RELEASE should segfault and you should get lgsw# shell prompt.

Note: Above procedure will not work on Saturn 7 and Broadcoms, because segfault instead of running the shell, leads to the showing yellow screen on the TV.

В этой статье речь пойдет о Режиме Отладки (Debug Mode). Он используется для проверки работоспособности игр, вычисления в них ошибок да и просто для того чтобы подробнее узнать, как работают некоторые функции. Подробные примеры применения режима отладки смотрите в конце статьи (пункт "Примеры применения режима отладки.").

Режим отладки запускается при нажатии в открытом проекте при нажатии кнопки Debug mode.
Проделав эту операцию, мы вдобавок к игре получим такое окошко:
Сейчас я подробнее опишу функцию каждой кнопки этого окна…
Если мы нажмем на выпадающее меню Run, вверху окна, откроется следующее меню:
Debug mode
Run – продолжить выполнение игры, если оно было приостановлено (см. дальше).
Pause  — приостановить выполнение игры.
Step — пропустить шаг. В этом случае события пропущенного шага не выполняются. Также как и Run, может быть выполнено только при приостановке игры.
Restart – перезапустить игру.
Stop – прекращает выполнение игры и возвращает в проект.
Во время игры у Вас может возникнуть желание проверить, какое значение записано в какой-либо переменной. Для этого существует выпадающее меню Watch:
Debug mode
Add – добавить переменную/выражение для просмотра.
Change – изменить переменную/выражение, которое уже просматривается. Для этой операции необходимо выбрать один любой пункт в таблице просмотров (см. ниже).
Delete – удалить выбранный пункт из таблицы.
Clear – очистить таблицу.
Load – загрузить ранее сохраненную таблицу.
Save – сохранить таблицу просмотра для дальнейшего использования.
Для просмотра в таблицу можно заносить глобальные или локальные переменные, так же можно заносить функции, в этом случае будет указано значение, возвращенного функцией. И наконец в таблицу можно заносить выражения, тогда будет указано: выражение верно (1)
 или оно не верно (0).
Таблица просмотра:
Ну и наконец меню Tools:
Debug mode
Execute Code – открывает окно для ввода кода, который будет затем выполнен. Обратите внимание, что код нужно писать в строчку, обязательно разделяя команды знаком «;» (кроме случаев, где его ставить запрещается). По сути дела это то же самое что и скрипт, только в строчку. Сюда можно добавлять проверки, циклы и т. д.
Set Speed – изменяет скорость комнаты.
Show Global Variables – открывает список всех глобальных переменных и их значений, сначала идут значения, встроенные в игру, а только затем пользовательские:
Show Local Variables – просмотр локальных переменных. Сначала открывает окно, в котором Вам требуется ввести название объекта, чьи локальные переменные вы хотите посмотреть, после чего открывает их список. Как и в предыдущей функции, в окне сначала идут значения, встроенные в игру, а только затем пользовательские:
Show Instance – открывает окно-список всех экземпляров объекта в текущей комнате, отображая о них следующую информацию: идентификатор экземпляра, название объекта и спрайт экземпляра.
Debug mode
Show Messages — показывает сообщения, отправленные с помощью функции show_debug_message.

Примеры применения режима отладки.

Так же еще хочу добавить по поводу встроенной переменной debug_mode. Эта переменная содержит запущена ли игра в отладочном режиме (1) или нет (0). Не может быть изменена. Зато, к примеру, очень удобно сделать проверку в начале игры и в случае если игра запущена в тестовом режиме дать много денег для покупки и тестировании вооружения:

Всё! А кто читал-тот молодец.
Автор: Данила (Я)

Features of Debug ModeDebug mode» class=»alignleft» />Edit

When Debug Mode is activated, three buttons will appear on the lower-right area of Urotsuki’s room, and a counter for the number of days will appear on the right side of the screen. The first button from the top increments the number of days by 1, the second by 10, and the third by 100. By setting the number of days to a value greater than 365, a dummy Game Over event will be triggered, thereby returning the player to the title screen. Pressing F9 in Debug Mode will open a menu that allows one to edit the game’s variables and switches. Also, various areas will have speech bubbles and other elements that contain author commentary when interacted with.

Debug Mode provides an effect called ★Debug★, which contains the following options:

  • Modify speed (Cancelling will set the speed to default)
    • >>>>> Godspeed
    • >>>> Fast
    • >>>
    • > Slow
  • Toggle effects
    • Get all effects
    • Remove all effects
    • Disable debug mode
  • Change map location or amount of money held
    • Enter Debug Room
    • Enter the Nexus
    • Enter area based on Map ID
    • Change money value (set to 900000 to cancel)
  • View system information

Accessing the Wallpaper List here will show an additional menu, with options as follows:

  • Proceed to the Wallpaper List
  • View succeeding wallpaper(s)
  • Unlock all wallpapers
    • Mark all thumbnails as viewed
    • Mark all thumbnails as new
  • Lock all wallpapers

By going through the door, regardless of having the Key, Urotsuki will enter the Debug Room.

You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.