KB1013VK1_2 Debugger

Počítače stolní, notebooky, tablety, tiskárny, scanery a vše, co nějak souvisí s PC

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

KB1013VK1_2 Debugger

#1 Příspěvek od MilanSK »

(ENGLISH VERSION BELOW)

Zdravím priaznivcov ruských hier Электроника (Elektronika), japonských hier Game & Watch od spoločnosti Nintendo a niektorých hier značky Tronica.

Naprogramoval som si pre zábavu malú aplikáciu - SHARP SM-5A / KB1013VK1-2 Debugger pre Windows. Ide o debugger strojového kódu mikrokontroléra SHARP SM-5A, ktorý bol použitý v japonských hrách, resp. mikrokontroléra КБ1013ВК1-2, ktorý bol použitý v ruských hrách.
Ponúkam vám ju na testovacie a študijné účely.

Aktuálna verzia bude vždy na stiahnutie tu:
SHARP SM-5A / KB1013VK1-2 Debugger

Debugger bol testovaný na všetkých 20 dostupných originálnych firmwarov (ROM-iek).
Z dôvodu ochrany autorských práv nie sú firmwary súčasťou debuggera. Je potrebné ich stiahnuť z internetu. Debugger podporuje automatické stiahnutie väčšiny podporovaných ROM-iek z bežne dostupného miesta.

Debugger ponúka základné ladiace techniky, ktoré programátori dobre poznajú.
Čo všetko debugger dokáže, zistíte z hlavného menu alebo pravým klikom na rôzne ovládacie prvky v programe. Veľa z ovládacích prvkov vie zobraziť malú nápovedu (tzv. tooltip), keď nad ne prejdete myšou.

Účelom debuggera nie je ponúknuť používateľovi úplný herný komfort. Na to slúžia plnohodnotné emulátory od iných autorov, dostupné pre Windows, Android aj iOS.
Preto debugger napr. nevydáva zvuky, grafika je iba v hrubých náčrtoch, atď.

Mám v pláne debugger ďalej rozširovať a implementovať ďalšie nástroje užitočné pri ladení.

Ak bude pre niekoho z vás debugger nápomocný alebo sa bude chcieť na niečo spýtať, môžeme to prediskutovať tu na fóre.
Budem vďačný za akýkoľvek konštruktívny príspevok.

Zdraví vás
Milan

------------------------------------------------------

Hi folks,

I've developed a tiny application - SHARP SM-5A / KB1013VK1-2 Debugger for Windows. It's a debugger for machine code of SHARP SM-5A microcontroller which was used in vintage Nintendo games of the Game & Watch series (and also some Tronica games), as well as КБ1013ВК1-2 microcontroller which was used in Russian handheld games (mostly clones of Nintendo games).
You can use the debugger for testing and study purposes.

Latest version will always be available for download here:
SHARP SM-5A / KB1013VK1-2 Debugger

The debugger was tested on all available original firmwares (ROMs).
As firmwares may be a subject of copyright, they are not embedded in the debugger and they must be downloaded from the internet. The debugger supports automatic download of some ROMs from public websites.

The debugger offers basic debugging techniques which are well-known to programmers.
You can discover debugger's capabilities in the main menu, or by right-click on various controls in the application. Many visual elements display a small tooltip on mouse hover.

The aim of the debugger is not to offer full-featured playing comfort. There is a lot of emulators (and simulators) available for Windows, Android and iOS.
That's why my debugger does not generate sound effects, does not display polished LCD graphics etc.

My plan is to extend the debugger with other debugging features in the future.

Any comments or ideas are welcome.

Regards,
Milan
Přílohy
Hlavné okno debuggera / Debugger screenshot
Hlavné okno debuggera / Debugger screenshot
Naposledy upravil(a) MilanSK dne 05 dub 2022, 10:54, celkem upraveno 12 x.

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#2 Příspěvek od rnbw »

Ten procesor je vraj kopia Sharp SM5A.

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#3 Příspěvek od MilanSK »

Ano, to je pravda.

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#4 Příspěvek od MilanSK »

Verzia 1.0.2:
- pridané automatické sťahovanie príslušnej ROM-ky z internetu pre štyri hry: IM02, IM03, IM04 a IM09

------------------------------------------------------

Version 1.0.2:
- added automatic download of ROM for 4 games: IM02, IM03, IM04 a IM09

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#5 Příspěvek od MilanSK »

Verzia 1.0.3:
- pridané reálne časovanie a jeho násobky (požiadavka od Artura z Lotyšska)
- pridané tlačidlo na nastavenie aktuálneho času
- opravené drobné chyby

------------------------------------------------------

Version 1.0.3:
- added real-time timer (requested by Artur from Latvia)
- added button to set the current time
- fixed minor bugs

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#6 Příspěvek od MilanSK »

Verzia 1.0.4:
- pridaný výber zápisu ROM adries: pôvodný formát vs. MAME formát (požiadavka Artura z Lotyšska)
- pridaný výber názvov inštrukcií: pôvodné vs. MAME inštrukcie (požiadavka Artura z Lotyšska)
- pridané zvýrazňovanie tých hodnôt registrov, ktoré boli zmenené naposledy vykonanou inštrukciou (požiadavka Artura z Lotyšska)
- nastavovanie rýchlosti emulátora pomocou posuvného ovládača (namiesto položiek v hlavnom menu) (požiadavka Artura z Lotyšska)
- checkboxy vstupných signálov procesora boli nahradené tlačidlami (tip: ak je počas kliknutia tlačidla zároveň stlačený kláves Ctrl, tak tlačidlo zostane stlačené) (požiadavka Artura z Lotyšska)
- vylepšená emulácia časovača
- pridaná legenda označenia nožičiek procesora
- opravy drobných chýb a pár menších vylepšení

------------------------------------------------------

Version 1.0.4:
- added option to switch between native and MAME address notation (requested by Artur from Latvia)
- added option to switch between native and MAME instruction mnemonics (requested by Artur from Latvia)
- highlighting recently changed register values (requested by Artur from Latvia)
- setting emulation speed via track bar instead of main menu (requested by Artur from Latvia)
- input checkboxes were replaced with buttons (hint: hold Ctrl while clicking the button to lock it in pressed state) (requested by Artur from Latvia)
- improved timer emulation
- added CPU pins legend
- minor bug fixes and improvements

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#7 Příspěvek od MilanSK »

Verzia 1.0.5:
- pridaný výber sekvenčného alebo LFSR adresovania (požiadavka Artura z Lotyšska)

------------------------------------------------------

Version 1.0.5:
- added option to switch between sequential and LFSR addressing (requested by Artur from Latvia)

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#8 Příspěvek od MilanSK »

Verzia 1.0.6:
- pridaná možnosť editovania inštrukcií (požiadavka Artura Rona)
- pridaná možnosť pomenovania ľubovoľnej ROM adresy (napr. názvom podprocedúry) a vlastného komentára ľubovoľnej ROM adresy
- pridaná dynamická legenda obsahujúca podrobný popis činnosti aktuálne vybranej inštrukcie (požiadavka Artura Rona)
- pridaná jazyková mutácia - ruština (požiadavka Artura Rona)
- pridaná možnosť meniť veľkosť pravého panela v hlavnom okne, čomu sa prispôsobuje veľkosť displeja

------------------------------------------------------

Version 1.0.6:
- added the ability to edit ROM instructions (requested by Artur Ron)
- added the ability to label and comment any ROM address
- added dynamic opcode legend; displays description of the currently selected instruction (requested by Artur Ron)
- added translation to Russian language (requested by Artur Ron)
- added the ability to resize the right panel of the main window (the size of the LCD image changes accordingly)

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#9 Příspěvek od MilanSK »

Verzia 1.0.7:
- NOVÉ! pridané interaktívne zobrazenie prepojení medzi čipom a displejom
- prepracovaná časť LCD ovládača (má za následok mierne zrýchlenie vykresľovania)
- pridané tlačidlo na obnovenie pôvodnej veľkosti okna zobrazujúceho čip s pomenovanými nožičkami

------------------------------------------------------

Version 1.0.7:
- NEW! added interactive demonstration of MCU and LCD interconnection
- re-worked some parts of LCD driver (this has positive impact on drawing performance of LCD image)
- added button to resize the MCU pins window to its original size
Přílohy
Okno interaktívneho zobrazenia prepojení medzi čipom a displejom
<br />
<br />Prechádzajte myšou buď ponad kontakty displeja alebo ponad kontakty čipu a zistíte, ako sú navzájom prepojené.
<br />Ctrl+klik uzamkne aktuálne prepojenie, jednoduchý klik tento zámok uvoľní a
Okno interaktívneho zobrazenia prepojení medzi čipom a displejom

Prechádzajte myšou buď ponad kontakty displeja alebo ponad kontakty čipu a zistíte, ako sú navzájom prepojené.
Ctrl+klik uzamkne aktuálne prepojenie, jednoduchý klik tento zámok uvoľní a

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#10 Příspěvek od MilanSK »

Verzia 2.0.0:
- debugger bol rozšírený a zovšeobecnený na SHARP SM-5A Debugger (keďže KB1013VK1-2 je klonom pôvodného SHARP SM-5A)
- aktuálne podporované hry:
  • - Nintendo Game&Watch AC-01 "Ball"
    - Nintendo Game&Watch FL-02 "Flagman"
    - Nintendo Game&Watch MT-03 "Vermin"
    - Nintendo Game&Watch RC-04 "Fire"
    - Nintendo Game&Watch IP-05 "Judge"
    - Nintendo Game&Watch MH-06 "Manhole"
    - Nintendo Game&Watch CN-07 "Helmet"
    - Nintendo Game&Watch LN-08 "Lion"
    - Nintendo Game&Watch PR-21 "Parachute"
    - Nintendo Game&Watch OC-22 "Octopus"
    - Nintendo Game&Watch PP-23 "Popeye"
    - Nintendo Game&Watch FP-24 "Chef"
    - Nintendo Game&Watch MC-25 "Mickey Mouse"
    - Nintendo Game&Watch FR-27 "Fire"
    - Электроника ИМ-02 "Ну, погоди!"
    - Электроника ИМ-03 "Тайны океана"
    - Электроника ИМ-04 "Весёлый повар"
    - Электроника ИМ-09 "Космический мост"
    - Электроника ИМ-13 "Разведчики космоса"
    - Электроника ИМ-23 "Автослалом"
    - Tronica GK-10 "Goal Keeper"
    - Tronica SM-11 "Space Mission"
    - Tronica SG-21 "Spider"
- keď je ROM prvýkrát úspešne načítaná, debugger si zapamätá cestu k zdrojovému súboru a pri ďalšom vybratí je táto ROM už automaticky načítaná z uloženého súboru
- pridaná možnosť otvoriť používateľskú ROM kompatibilnú so SHARP SM-5A; v takom prípade sa použije generický LCD obrazec (segmenty sú zobrazené ako štvorce)
- ovládanie vstupov bolo rozdelené do dvoch záložiek:
Raw input (surové, neinterpretované vstupy) - záložka obsahuje tlačidlá pokrývajúce všetky kombinácie vstupných signálov, ktoré hra rozoznáva
Game controls (ovládacie prvky hry) - záložka obsahuje tlačidlá ovládania vybratej hry (tie sú interne namapované na tlačidlá v záložke Raw input)
- modifikované pamäťové bunky RAM sú zvýraznené každá samostatne (predtým sa zvýraznil celý riadok pamäti obsahujúci modifikovanú bunku)
- každá pamäťová bunka je editovateľná samostatne
- pridané body prerušenia (breakpoints) pre čítanie obsahu pamäťovej bunky a pre zmenu obsahu pamäťovej bunky
- pridaná možnosť aktualizácie stavu debuggera počas plného behu emulácie
- pridaná možnosť voľby názvov inštrukcií podľa typu procesora aktuálne debugovanej hry
- pridaná možnosť voľby medzi predvolenými klávesovými skratkami a klávesovými skratkami v štýle MAME
- automatická kontrola novej verzie debuggera
- opravy drobných chýb a iné menšie vylepšenia

------------------------------------------------------

Version 2.0.0:
- the project has been re-worked from KB1013VK1-2 Debugger to the one of wider scope: SHARP SM-5A Debugger
- currently supported games: (see the list above)
- once a ROM file has been loaded successfully, the debugger saves its path, so next time it loads the ROM automatically
- added the ability to load a custom SHARP SM-5A compatible ROM; a generic LCD image (segments drawn as squares) is used in such a case
- input controls were split into two tabs:
Raw input - contains buttons to handle any combination of input recognized by the selected game
Game controls - contains buttons native to the selected game (these buttons are internally mapped to corresponding Raw input buttons)
- modified RAM fields are now being highlighted separately (instead of previously highlighting the whole RAM bank)
- each RAM field is now editable separately
- added read-memory and changed-memory breakpoints
- added the ability to refresh the debugger during unattended run
- added an option to use instruction mnemonics according to selected MCU
- added an option to choose between default and MAME-like keyboard shortcuts
- automatic checking for new version
- many minor improvements and bug fixes

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#11 Příspěvek od MilanSK »

Verzia 2.1.0:
- pridaná opravená verzia hry IP-05 "Judge" (purple, IP-15)
- pridaná pôvodná verzia hry CN-07 "Helmet" obsahujúca chybu
- pridaná hra Tronica SK-10 "Super Goal Keeper"
- pridané otváranie hry z príkazového riadku; hra je špecifikovaná jej typovým označením, napr. AC01 (Ball), MH06 (Manhole), IM02 (Nu Pogodi!) atď.
- pridané otváranie ROM súboru z príkazového riadku; takto otvorený ROM súbor je vždy považovaný za custom a použije sa všeobecný LCD obrázok s čiernymi štvorcami ako segmentmi
- pridaná možnosť pootočiť, resp. preklopiť skicu mikrokontroléra v okne zobrazujúcom prepojenie medzi mikrokontrolérom a displejom
- pridaná informácia o duplicitných LCD COM pinoch a upozornenie na neoverené skupiny segmentov pre LCD COM piny
- pridané zobrazenie najvyšších štyroch bitov Timera
- pridaná indikácia tých O registrov, ktoré kodujú číslice
- pridaná informácia o testovacích režimoch / skrytých funkciách pre každú podporovanú hru
- pridaný záznam zvukových efektov generovaných hrou a ich export do wav súboru
- pridané informačné okno s rôznymi užitočnými externými linkami

------------------------------------------------------

Version 2.1.0:
- added bug-fixed version of IP-05 "Judge" (purple, IP-15)
- added very first version of CN-07 "Helmet" which contained a bug
- added new game: Tronica SK-10 "Super Goal Keeper"
- added possibility to load the debugger with game specified in command-line; for example: AC01 (Ball), MH06 (Manhole), IM02 (Nu Pogodi!) etc.
- added possibility to load the debugger with ROM file specified in command-line; such ROM file is then handled as a custom ROM with generic LCD image containing black squares
- added possibility to rotate/flip the MCU outline in the "Interconnection of MCU and LCD" dialog
- added notification about redundant/doubled LCD COM pins, as well as about yet non-confirmed groups of segments driven by particular LCD COM pins
- added displaying of highest 4 bits of Timer
- added indication of those O registers which are encoding digits
- added information about available test modes / hidden features for every supported game
- added recording of sounds generated by the game; they can be exported to a wav file
- added informational window containing various useful external links
[/b]

Uživatelský avatar
MilanSK
Příspěvky: 16
Registrován: 29 říj 2020, 01:00
Bydliště: Bratislava, Slovensko

#12 Příspěvek od MilanSK »

Verzia 2.2.0:
- NOVÉ: debug sessions - zapamätanie stavu rozpracovaného debuggovania, vrátane stavu MCU, breakpointov a ďalších parametrov
- opravená chyba časovania niektorých inštrukcií
- opravená chyba v zaznamenávaní zvuku
- pridaný nový formát zaznamenávania zvuku
- pridané upozornenie, ak je RAM adresa mimo povolený rozsah
- pridané zobrazovanie popisku adresy (Label) v skokových inštrukciách (napr. TRS ZeroMemory() @ <addr>; pôvodne iba TRS <addr>)

------------------------------------------------------

Version 2.2.0:
- NEW: debug sessions - saving the state of current debugging, incl. complete MCU state, breakpoints and other parameters
- fixed bug in timing of some instructions
- fixed bug in sound recording
- added new format of sound recording
- added notification about out-of-range RAM address
- added displaying of Address Label in jump instructions (i.e. TRS ZeroMemory() @ <addr>; before it was TRS <addr>)

Odpovědět

Zpět na „Výpočetní technika“