Tamagotchi hacking

Gast #2978431
Lesenswert?

Natalie Silvanovich zeigt wie ein Thamagotchi zu hacken ist:
http://hackaday.com/2012/12/31/tamagotchi-hacking-in-depth/

Die interessanteste Frage bleibt aber offen: Wie kann man das Masken-ROM 
des MCs dumpen?
Vielleicht könnte man mit Mikroelektroden direkt auf den Chip gehen?
Gast #2978695
Lesenswert?

>320 oder 640 kByte sind allerdings einiges.

Das mit den 640 kByte für einen 6502 kann ich nicht so recht glauben. Ob 
sie sich da mal nicht verzählt hat ...

>Vielleicht ein Mikroskop,wenns echtes MaskenROM und kein EPROM ist.

Laut ihrer Aussage soll es ja eines sein. Das Mikroskop bräuchte wohl 
eine recht gute Auflösung. Kann man den Code wirklich sehen?
Gast #2979185
Lesenswert?

Dennis Heynlein schrieb:
> Vielleicht ein Mikroskop,wenns echtes MaskenROM und kein EPROM ist.
> 320 oder 640 kByte sind allerdings einiges.

Kommt auch wieder stark auf den Prozess an, in dem gefertigt wurde 
(Strukturgröße). Und auf welcher Metallebene codiert wurde, z.T. liegen 
höhere Metallebenen drüber, sogar als Sichtschutz gedacht.
Wenn die Bits in einer Via-Ebene codiert sind, hilft sowieso nur noch 
planparallel bis zur gewünschten Ebene abtragen.

Und wenn man per Mikroskop auslesen kann, heisst das noch lange nicht, 
dass logisch zusammengehörige Bits auch physikalisch nebeneinander 
liegen...

Da lässt sich beliebig viel Zeit vergraben - daher auch der Preis für 
professionelles Reverse Engineering
Gast #2979239
Lesenswert?

undef schrieb:
> Leute die sowas machen auch meist wesentlich mehr auf'm Kasten als jene
> die sich fragen wieso man sowas überhaupt macht. ;-P

Mir ist klar, dass das eine sehr kluge Frau sein muss.
Allerdings würdest du dich auch wundern, wenn Ronaldinho auf einmal bei 
dir auf dem Fussballplatz rumkicken würde.
Gast #2979247
Lesenswert?

Electronics'nStuff schrieb:
> Warum verwendet ein Mensch so viel Intelligenz und Zeit auf so einen
> Abfall?

Muss denn alles immer einen Sinn haben? Kann man manche Sachen nicht 
einfach mal so zum Spaß machen? Ich finde den Beitrag sehr interessant 
und bemerke des öfteren, dass im Video der gesamte Saal zu lachen 
beginnt. Also ist es eher mit etwas Humor zu nehmen. In etwa so wie 
diese Live-Hacking Auftritte von diversen (zum Teil sehr klugen) 
Informatikern.
Gast #2979295
Lesenswert?

>Willst Du wirklich, daß deren Entwickler vor Scham in den Boden
>versinken müssen?

Ich weiß nicht. Die Tamagochis wurden sicherlich mehrere Millionen Mal 
verkauft. Bei dem Erfolg finde ich den Programmierstiel zweitrangig. Es 
muss immerhin so gut gemacht sein, dass sich die Teenies längere Zeit 
damit befassen.
Natalie erwähnt in ihrem Video, dass es sich bei dem Programm um eine 
riesige Switch-Case Anweisung handelt.
Vielleicht könnte man das Ganze als eine Art große Statemachine 
betrachten, deren Zustände im externen EEPROM liegen.
(Firma: xyz) #2980117
Lesenswert?

Peter Dannegger schrieb:
> Willst Du wirklich, daß deren Entwickler vor Scham in den Boden
> versinken müssen?

Ich gehe davon aus, dass Natalie S. den Code, sollte sie ihn jemals 
hacken, nicht veröffentlicht. Andernfalls dürfte sie Ärger bekommen 
(Copyright), was sie sicher nicht will. Sicher achtet man schon auf ihr 
Tun.

Auch ich schaue mir als Programmierer immer wieder gern an, wie man so 
etwas realisiert hat.

Ich bin selbst am Code aus einem MB8843 interessiert, der in einem alten 
Spielzeug MZ-40K von Sharp steckt. No chance, ausser, man zahlt für das 
teure RE-Verfahren. Doch so viel ist die Neugierde dann auch nicht wert.
#2980313
Lesenswert?

Karl-Heinz M. schrieb:
> Auch ich schaue mir als Programmierer immer wieder gern an, wie man so
> etwas realisiert hat.

Ehe ich mir ein Disassembly anschaue, muß das Programm schon wirklich 
was sehr interessantes leisten.
Ein Tamagotchi kann doch jeder Anfänger ruckzuck in Bascom zusammen 
schustern.

Fremden Code schaue ich mir nur im Klartext als C/C++ Source an.


Peter
(Firma: xyz) #2980350
Lesenswert?

Peter Dannegger schrieb:
> Ehe ich mir ein Disassembly anschaue, muß das Programm schon wirklich
> was sehr interessantes leisten.

Der eine so - der andere so, klar. Für manch einen ist etwas 
interessant, was jemand anders überhaupt nicht interessiert.

Es geht mir nicht darum das Rad neu zu erfinden, sondern das erfundene 
Rad zu untersuchen, das macht den Reiz für mich aus. Das kann kein 
Anfänger. Der kann nur Tamagotchis programmieren, wie Du meinst...

Wollte ich etwas kopieren und würde mich das Original gar nicht 
interessieren, wär ich hier nicht da gewesen ;-) Warum warst Du hier? 
;-) Wegen der Info, dass Du als Anfänger Tamagotschis programmieren 
kannst? ;-)

Disassemblies zu untersuchen sind auch nichts für Anfänger, da geb ich 
Dir recht.
#2980699
Lesenswert?

Karl-Heinz M. schrieb:
> Der kann nur Tamagotchis programmieren, wie Du meinst...

Ich kenne die nur vom Hörensagen. Selber habe ich noch keins gesehen.
Der Programmablauf dürfte etwa folgender sein:

- Timer starten
- Timer läuft ab -> Anzeige: "Hunger"
- Taste "Füttern" drücken -> weiter
usw.

Das sollte wirklich auch ein Anfänger schaffen.

Der Trick an den Tamagotchis war nur der, die Idee dazu zu haben und 
einen Markt dafür zu schaffen.
Also nicht die Software war das primäre Problem. Daher habe ich weder 
Interesse an der SW, noch erwarte ich in der SW irgendeine Innovation.


Peter
#2980715
Lesenswert?

Peter Dannegger schrieb:
> Der Programmablauf dürfte etwa folgender sein:

Man merkt, dass du den Vortrag nicht angeguckt hast. Da steckt 
inzwischen mehr dahinter, die Dinger können mit IR kommunizieren (eine 
Motivation von Natalie war wohl, aus einem Tamagotchi eine TV-B-Gone zu 
machen), haben eine Schnittstelle für Aufsteckmodule und können 
"Nachkommen" produzieren.

...nicht wirklich genug um das Spielzeug für mich interessant zu machen 
- und mit dem Mask-ROM wirds direkt noch ein tacken uninteressanter - 
aber durchaus lustig.  :)

Und der Vortrag war toll, auch weil er eben nicht nur aus "seht her was 
ich tolles gemacht habe" bestand, sondern auch die Irrwege beschreibt.

Viele Grüße,
        Simon
(Firma: matzetronics) #2981975
Lesenswert?

Ich frage mich, wie ein 6502 Derivat mit angedockten LCD Kontroller 
immerhin 640k/320k ROM addressieren kann, bzw. ob sie sich da nicht doch 
vertan hat oder ein Typo drin hat. 32kB bzw. 64 kB würden ja vermutlich 
dicke reichen, zumal sie ja auch vermutet, das das Tamagotchi 'OS' aus 
einem einzigen langen switch-case Konstrukt besteht.
Ist schon nett, wozu man ein STM32F4 alles benutzen kann, hehehe. Der 
kleine VL hätte ja wohl nicht gereicht.
(Firma: xyz) #2982011
Lesenswert?

Matthias Sch. schrieb:
> Ich frage mich, wie ein 6502 Derivat mit angedockten LCD Kontroller
> immerhin 640k/320k ROM addressieren kann

Da gab es Möglichkeiten: Bank switching; 64k je Bank:

http://en.wikipedia.org/wiki/Bank_switching
http://www.6502.org/users/andre/adv65/index.html
http://mirrors.apple2.org.za/ground.icaen.uiowa.edu/MiscInfo/Programming/auxmem.minimanual

Ausserdem ist da wohl auch noch mehr als der Tama untergebracht, wenn 
ichs nicht falsch interpretiert hab:

http://www.kwartzlab.ca/2010/12/tamago-hacking-home-edition-ac/#more-444

Viell. hat sie sich aber einfach verkalkuliert oder es werden nur 32/64k 
genutzt?
Gast #2982853
Lesenswert?

Die CPU die gezeigt wurde hat 320Kbyte ROM und zwar werden zwei Banking 
eingeblendet. Hauptziel dieser CPU ist Sound, deshalb auch der große 
Speicher
wie auch LCD, auch für das ist der Speicher nicht schlecht.
Persönliche Seite #2983081
Lesenswert?

Karl-Heinz M. schrieb:
> Chris schrieb:
>> und zwar werden zwei Banking
>> eingeblendet
>
> Und was ist mit dem Rest (320 - (2 x 64))? Oder hab ich das
> mißverstanden?
>
> Die 6502 hat nur 16 Adressleitungen für 64k.

Bankswitching ....

z.B.

wie beim Gameboy.
http://gbdev.gg8.se/wiki/articles/Memory_Bank_Controllers

Der ROM wird in mehrere Bänke aufgeteilt die stückweise in den 
Adressbereich der CPU eingeblendet werden durch eine zusätzliche 
Adresslogik, die zum Beispiel durch I/O-Register oder spezielle Adressen 
gesteuert wird, zwischen CPU und ROM.

Die Lösung Gameboy ist allerdings eine Pre-Design-Variante und es gibt 
elegantere Lösungen.
Gast #2983243
Lesenswert?

>Die CPU die gezeigt wurde hat 320Kbyte ROM und zwar werden zwei Banking
>eingeblendet. Hauptziel dieser CPU ist Sound

Wobei der im Film zu hörende Sound des Tamagotchi sich nicht unbedingt 
nach hunderten von KByte anhört. Für mich hört sich das nach 
ein-stimmigen Piepsen mit einfachem Tongenerator an. Als nicht wie ein 
WAV-File, welches viel Speicher rechtfertigen würde.
Persönliche Seite #2983332
Lesenswert?

chris schrieb:
>>Die CPU die gezeigt wurde hat 320Kbyte ROM und zwar werden zwei Banking
>>eingeblendet. Hauptziel dieser CPU ist Sound
>
> Wobei der im Film zu hörende Sound des Tamagotchi sich nicht unbedingt
> nach hunderten von KByte anhört. Für mich hört sich das nach
> ein-stimmigen Piepsen mit einfachem Tongenerator an. Als nicht wie ein
> WAV-File, welches viel Speicher rechtfertigen würde.

Also wenn es da um das verprassen von Speicher geht und vielleicht nicht 
wirklich Leistung relevant ist, hätte ich da noch einen Tipp :)

Fängt mit J an und mit AWA auf.
Gast #2983376
Lesenswert?

Matthias Sch. schrieb:
> Ich frage mich, wie ein 6502 Derivat mit angedockten LCD Kontroller
> immerhin 640k/320k ROM addressieren kann, bzw. ob sie sich da nicht doch
> vertan hat oder ein Typo drin hat. 32kB bzw. 64 kB würden ja vermutlich
> dicke reichen, zumal sie ja auch vermutet, das das Tamagotchi 'OS' aus
> einem einzigen langen switch-case Konstrukt besteht.

 Also mein Apple][ hatte 256kB dynamisches RAM, +16kROM + diverser 
statischer Speicher auf den Karten die alle gezielt ansprechbar waren, 
mit dem original einfachen 6502. z.B. lief da ne 192KB Ramdisk drin. 
Natürlich nicht linear ansprechbar gehen ja nur 64KB. Wenn es bezahlbare 
größere Chip damals gegeben hätte, hätte er wohl auch mehr gehabt. Da 
der Apple][ ein sehr gutes Hardwaremanagement hatte, hätte man da noch 
sehr viel einbauen können und das alle voll kompatible zu der 
vorhandenen Software.
(Firma: xyz) #2983501
Lesenswert?

Dennis Heynlein schrieb:
> Karl-Heinz M. schrieb:
>> Chris schrieb:
>>> und zwar werden zwei Banking
>>> eingeblendet
>>
>> Und was ist mit dem Rest (320 - (2 x 64))? Oder hab ich das
>> mißverstanden?
>>
>> Die 6502 hat nur 16 Adressleitungen für 64k.
>
> Bankswitching ....
>
> z.B.
>
> wie beim Gameboy.
> http://gbdev.gg8.se/wiki/articles/Memory_Bank_Controllers
>
> Der ROM wird in mehrere Bänke aufgeteilt die stückweise in den
> Adressbereich der CPU eingeblendet werden

Genau das hatte ich ja mittels Links statt eigener Worte erklärt.

Chris spricht aber von 2 Banks, also 128k. Wir  reden aber von noch 
mehr, nämlich 320 oder gar 640. 2 Banks zu 64 langen da nicht. Da bleibt 
bei den von Chris genannte 2 Banks noch etliches übrig. Was damit ist, 
hat er unbeantwortet gelassen. Viell. aber steh ich auch auf dem 
Schlauch.
Gast #2983523
Lesenswert?

Hier das Memory Mapping. SPU = Sound Processing Unit, max 8 Channels
mit 57Khz und polyphonen Kanälen zusätzlich, muss aber nicht benutzt 
werden.
Für mich passt der LCD Controller nicht ganz zu den Tamagotchi´s und ich
würde eher zu einer Weltrend CPU tendieren, wobei theoretisch auch der
genannte Prozessor eingesetzt werden könnte.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren