 der nächste talk auf den freue ich mich bereits und ich weiß warum ihr alle hier seid dann mich freut das auch denn ich besitze einen gameboy und ich bin sehr stolz darauf ich habe ihn bei mir daheim und manchmal benutze ich ihn heute benutze ich natürlich einen emulator und es gibt ich habe natürlich nur roms von den kassetten die mir tatsächlich gehören so muss das laufen mein lieblingsspiel auf dem gameboy ist das erste um das deutlich zu machen ist megaman 2 mario land und mystic quest und wer damit nicht dieselbe meinung hat ihr kennt mich nicht jetzt kommt der ultimative gameboy talk ich freu mich wirklich sehr als speaker haben wir marco style und er hatte schon am 25.03 einen guten talk den ultimativen commodore 64 talk und jetzt hat er den ultimativen gameboy talk ich freue mich sehr täglich abt er an betriebssystem technologie und nacht hektar alte systeme und früher hat er spielkonsol und gehabt eine große runde von applaus an mike hallo zusammen ich bin michael steil das ist der ultimative gameboy talk die idee des talks ist es so viel wie möglich über all die möglichen hardware details die ich in 60 minuten reinpressen kann alles über den gameboy 60 minuten habe ich 200 slides 800 800 baustile vielleicht ist die informations sich die höhe als sonst also gehen wir los der gameboy talk ist im kontext eine ganze reihe von talks die ich schon vor acht Jahren bekommen der commodore 64 talk und andere leute haben über den atari 2006 gesprochen den galaxia und den eiliga 500 jetzt ist es meine runde wieder mal ich habe den gamer ausgesucht warum ist der gameboy so interessant sie haben ganz ganz viele systeme verkauft gameboy gameboy color und 800 modelle überhaupt der gameboy advances kompatibel bis auf den gameboy micro dann insgesamt wurden 200 millionen systeme verkauft es gab ungefähr 16 offizielle spiele und sie wurden von 1989 bis 2003 verkauft wenn ihr die kompatiblen zählt dann wurden die acht mit kompatiblen wurden bis 2009 verkauft das ist 20 jahre das ziemlich beantworten schauen wir an den wettbewerb direkt nach dem gameboy gab es den links den gamegear und den turbo express die hatten alle eins gemeinsam sie hatten einen fabbitscherm ein sehr guten color screen fabbitscherm aber sie hatten ihre batterie hatten nicht so lange gehalten der gameboy hat 15 stunden gehalten aber der kompromiss war der bildschirm sah so aus und man konnte manche sachen schwer kennen sobald scrolling im spiel war das trifft nicht auf alle modelle zu es gibt wirklich sehr viele der originale war wurde am laxen hergestellt das ist der so genannte dmg 01 dass sie ist dort matrix game das war der erste coden im 1996 war das der gameboy pocket hatte einen besseren bildschirm der war kleiner der mgb 1 der wurde nur in japan verkauft und der gameboy caller der hatte doppelt so viel leistung dann gab es den gameboy advance das war eine komplett andere architektur das war eine armen cpu aber sie waren 100 prozent rückwärts kompatibel zu gameboy color der gameboy advance sp davon gab es zwei modelle ihr möchtet den mgs 101 der hatte einen backlight kein frontlight und nintendo war immer vor ihrer zeit sie haben nicht nur man hatte einen adapter gebraucht um seine kopfhörer einzustecken wir waren also vor allen anderen technologie voraus wenn ihr gameboy spiele spielen wollt auf einem normalen fernseh spielen wird es gibt zwei optionen ihr benutzt entweder ein super nintendo oder steckt ein super gameboy ein es gab nur einen den gab es wirklich nur in japan und den sogenannten gameboy player für den nintendo gamecube und die hatten komplette gameboy hardware mittendrin und man hat das nur sozusagen die gibt die pixel einfach auf den pitch um aus was ist ein gameboy hat einen 2.5 inch screen einen mono speaker man kann stehe über die kopfhörer kriegen er hat einen connector dass er zwei gameboys verbinden kann lautstärke und kontrast hinten geht das spiel rein und dort kommen die batterien rein und so ist ein spiel aus die meisten spiele sind nur romchips mehr gibt es dazu nichts zu sagen spezifikationen was sind die spezifikationen des gameboys vergleichen wir den gameboy mit anderen system dcpu ist eine 1 megahertz 8 b cpu manche sagen hey das ist eine vier megahertz cpu aber das waren spätere modelle es gab 8 kilobyte für spiele das war damals genug es hatte vor am 8 kilobyte sehr wenig auflösung 160 mal 144 die war sehr schlecht aber auf einem bildschirm der größe merken wir das nicht wirklich es hat vier unterschiedliche farben oder verabtöne das sind vier grautöne und das hat zehn sprites pro linie pro reihe wenn ihr das vergleicht mit den anderen system dann ist klar dass der gameboy sehr fortschrittlicher war als andere system in seiner zeit aber es liegt natürlich nicht auf der ebene eines super nintendo es ist wie so ein standard nintendo system aber das witzige ist weil diese ganzen anderen personen in der gameboy kam circa 1980 raus und er war und kompatibel auf der bus 2009 gebaut das ist eigentlich das interessante daran ist ein 8-bit system aber es ist das letzte 8-bit system was hier gestellt wurde und allgemein verwendet wurde schauen wir mal rein das bord auf dem rechten ist nicht so spannend wenn ihr es vorne anschaut so sieht das aus dass das lcd drauf der lautsprecher die knöpfe und das bord auf der rückseite ist viel interessanter hier könnt ihr drei chips sehen das ist der originale gameboy zwei ramm chips einer ist für die cpu der andere ist für die für video und ein großer chip das nennt sich der dmg cpu das ist der soc das ist im on a chip also was ihr normalerweise hier ganz viele chips erwarten würdet hier tatsächlich gibt es nur einen einzigen chip das ist eben der gameboy chip vergleichen wir das mal mit anderen bords der super gameboy hat einen sehr ähnlichen chips das ist zu 99 prozent identisch der gameboy pocket ist ein bisschen optimiert hat nur einen ramm chip der gameboy light ist nicht anders das ist nur ein anderes model hat aber ein backlight dann gibt es den super gameboy 2 der ist auf dem pocket und so sieht der gameboy kalle aus sie haben all nur all diesen großen chip der fast alles macht aber was ist denn das das ist was spezielles ihr erkennt das eventuell nicht anhand der das ist ein der so genannte gb boy das sind companies die den gameboy geklont haben aber das ist der perfekte klon da wurde der das original nachgebaut der original so c es ist ein kinesischer gameboy den kann man heute noch kaufen der kostet ungefähr 30 bis 35 dollar auf ebay schade die meisten spiele funktionieren nicht weil der falsch getaktet ist erst vier prozent zu schnell gehen wir zurück zum bord der dmg cpu die uns am meisten interessiert die macht alles auf dem system was ist denn darunter in also zum einen ein cpu kernen interab kontrollert zähler speicher bootrom und die ganzen peripherie also der iop processor destroy pad und für das kabel um mit den anderen gemüssen zu reden und der videokontroller und ton sprechen über die cpu historisch gesehen war der gameboy von 1989 zwischen der wurde zwischen der nrs verkauft 1983 der super nns 1990 und die nrs kam mit einem 6502 die super nrs kam mit einem 6518 16 das 16 bit version des ncpu der gameboy kommt mit einem sharp lr 35 und so was ist das eigentlich dieser kernen das ist komplett anders es ist ähnlich wie ein intel 80 80 und im zailog 2018 aber es ist nichts von beiden beide diese archituren sind interessant weil der 80 80 war wurde in dem altür verwendet das ist der erste computer wo viel gelb software geschrieben hat und jeder andere computer jedes andere alle andere heim computer also eine sehr erfolgreich an sich zu tun wenn ihr euch das vorstellt das ist das feature set des 80 80 und das ist das feature set das 80 80 ist also 100 prozent rückwärts kompatibel und das ist die sharp cpu die gameboy cpu es gibt die kanache 2 ist die gleiche wie vom intel 80 80 die kernfunktion des register set die befehle das ist das gleiche aber es gibt ein paar features die nicht supportet sind es hat aber paar features vom z80 aber nicht die meisten davon nur ein teil und dann haben sie noch ein paar features dazu gemacht gehen wir die mal durch schauen wir uns die kannte architektur an das 80 80 das hat diese register es gibt einen akkumulator der macht die ganze arithmetik das gibt die flecks die flacken das hat nur zwei nützliche flacken die null und die carry flag im gameboy modul und die anderen sind nicht wichtig und dann gibt es noch die erstlichen buchstaben das sind acht betreggister aber das interessante ist die aber die können kombiniert werden b kann b und c und de können kombiniert werden ihr habt also 16 register die ihr verwenden könnt als pointer zum beispiel es gibt vier 16 betreggister die können paar sachen und sieben acht betreggister und einen sonderen fall das ist das memory location das ist der hr register den kann man statt jeden anderen register verwenden in jedem befehl das ist sehr nett das sind die befehle es gibt schreiben und lesen load in store man kann direkt und indirekt schreiben es gibt den steck ist 16 bitt man kann nur 16 bitt register verwenden dass die arithmetik und die logifond nur der akkumulator kann die meisten sachen bis auf incrementives und dekrematives das funktioniert auch mit den 16 betreggen rotate ratieren kontrol flow kontrollweg kondition und indirekt und noch paar optionale funktionen zusätzliche funktion was ist das interrupt modell meistens wird ihr einen interrupt vector damals erwarten aber das ist weder noch keins von beiden statt dass man über ein vector springt springt es an eine fixe position am beginn des rams und für die unterschiedlichen und sachen in oram im interrupt springt er an spezifische position dann gibt es ein paar software interrupts und man kann mit den springen mit besonderen instruktionen und rst 0 ist das besonderes das ist das reset wenn ihr eine 8080 einschaltet dann beginnt er an dieser stelle wollen wir über die support 8080 features sprechen das sind die flex das 8080 hat zwei extra flex das ist die sign flag und die parity flag die braucht man nicht so wirklich die werden nicht unterstützt und es gibt zusätzlich sie haben sich da entschieden die nicht einzubauen port i o zum beispiel haben sie weggelassen ihr kennt das vom 8080 vom 8086 das hat den port space aber es wird auch hier nicht support weil das weil er stattdessen memory map da verwendet bei z80 hatte viele rotierfunktionen und bittschiff bitt testing settings und resetting befehle die werden alle unterstützt und der relative spring der ist ein bisschen mehr optimiert als der normale sprung und return vom interrupt das ist nur alles nur stütz wird alles andere ist das interessante was nicht unterstützt wird der ist das secondary register set weitere features und auto increment loop instructions also schleifen aber es hat ein paar features die das ersetzen also nur im gameboy processor es gibt eine post increment und decrement das heißt wenn ihr mem schweicher zugreifen wollt wo er hl hin zeigt könnt ihr da hoch und runter gehen es gibt auch das konzept einer null seite einer zero page das ist ein bisschen das ist nicht die seite null das ist die oberste seite im ramm das ist ein konzept was man vom 562 übernommen wird das ist optimierte befehle die für speicher zugriff sind ganz oben im schweicher man braucht ff 3 weit um vorm ff 4 zu laden aber man kann das akudieren und dann hat man nur drei zügel und ihr müsst natürlich da irgendwas nützliches hin tun wo es was ihr dringend braucht es gibt ein few einen paar stack instructions stack befehle ihr könnt die nibbles austauschen ihr könnt es gibt ein befehl für strom sparen so sieht die opcode tabelle aus nur damit ihr so eine idee habt was die farben bedeuten das ist ordinal es gibt wenige befehle die nicht verwendet werden und ein paar davon stützen einfach ein interessantes design das ist was besonderes das ist cb das ist ein prefix das hat noch mal 256 weitere obcodes das ist für rotate und shift die man sich vorm c80 geholt hat und die weiteren befehle zum swappen für weitere befehle nur ein beispiel das lädt von einer fixen adresse braucht 3 bytes 16 uhr zu clock zügel bei 4 mega hat aber dem internet ist unklar soll das jetzt 4 mega hat sein oder 1 mega hat sein weil all diese zeiten kann man durch vier teilen aber das liegt daran dieses ganze system die ganze cpu hängt am speicher sie kann nur so schnell rechnen wie der speicher die daten liefert wir könnt jetzt selbst sagen dass es eine cpu die hat 1 mega hat und sie braucht immer vier clock zügel rechen zügel entählert anderen systemen die ebenfalls eine 1 mega hat in der theorie ja das ist eine vier mega hat das ramm läuft hat 1 mega hat die ppu die zeichen das zeichen geht macht 4 mega hat und das faura macht 2 mega hat es ist ein bisschen kompliziert aber meist die meiste zeit läuft alles das meiste ist wirklich 1 mega hat es nun wenn wir aber exakt sind das ist nicht genau 1 mega hat das ist ein so ganzes nippie hat sie haben es aus irgendeinem grunden nicht base ten verwendet sie haben base 2 verwendet das ist schön wenn ich nun über zyklien rede maschinen zyklien das ist immer 1 mega hat so bezeichne ich das jetzt dass der 16 bitt cpu eine 8 bitt cpu sorry die ein 16 bitt adress raum hat wegen der 16 bitt pointer sie hat 64 kilobytes das ist alles was er sehen kann 32 kilobytes ist der romm das kommt direkt von der cartridge das wird einfach rübergezogen es gibt das bootrom videorammen externes ramm das kommt auch von der karte kommen optional das interne ramm und ein bisschen freiraum der kümmert sich mannere sachen wenn wir uns ganz genau in gucken ganz oben gibt es es gibt eine seite oa einbremn das ist sonder ramm für video das vom videorammen getrennt wird besprechen später darüber und die letzte seite ist die null seite hat den i o bereich die ganzen registra für peripherie sound und video und 120 bitt für cpu um so dass das heißt dass dass die spiele nur 32 kilobytes haben können also manche brauchen das nur tetris zum beispiel hat nur auch nur ein schiff relativ einfach heizzustellen andere spiele können praktisch auch bis zu 2 megabyte hochgetheoretisch gibt es keine damit das geht indem es eine zweite memory bank gibt auf der cartridge die banks austauschen können das ist sehr verbreitet praktisch gesehen kann die sehr unterschiedlich sein aber es funktioniert meistens so die niedrigste bank ist immer die bank 0 auf der romm und darauf können sie dann mehrere banks rauf mapen das wird kontrolliert in dem values in die romm location rein gedingst gepasst werden der externe ramm das trifft das auf zu wenn man für speicher speicherspiele mehr platz braucht dann kann da mehr ramm drauf gemappt werden wie man sieht was ist das mit diesem bootraum die cpu läuft auf luxe orts null in memory da kommt dieser dieser nintendo sound her der bootraum ist in den gameboy reingebaut das hat ein bisschen gebraucht um das rauszukriegen hat wirklich viel getan das war ich nicht was tut das ist der ganze bootraum ramm sound ist das logo kommt da die code dann scrollt das logo das spiel das design und dann vergleicht es interessanterweise das logo und das spiel hat dieses diese computer drin und wenn das sich nicht übereinstimmt dann putet das spiel nicht nintendo konnte also kontrollieren welche spiele für die plattform released werden weil die des weil diese dieses logo eigentlich nur eine copyright sondern auch ein trademark relation wäre wenn nicht die permissions haste und spiel dafür zu machen die gesucht wird auch dieser herr geshaked und dann wird darum wieder ausgetaucht ausgeschaltet oder geht es drin weiter dieses logo wird direkt von der cartridge gezeigt wenn du ein gameboy ohne zeigt zeigt es das das heißt aber nicht dass ein spiel oder eine application jedes logo da reintun könnte das würde dann einfach nicht buden es gibt kein clean-up code das system wird nicht gemacht deshalb wird dann auch irgendwie was zweiteres drauf getan demaus spiele auch gerne mit so nintendo aufspielen dann machen wir halt was damit das ist sehr witzig der bootraum läuft bis zur letzten instruktion die den bootraum ausschaltet und an diesem punkt auch jetzt wenn wir sich nur die erste seine sieht es da game data drin da geht es hier weiter es läuft einfach weiter bis zur nächsten instruktion des spiels und es springt einfach in dass nämlich ein header der spezifiziert ist um da zu sein das ist dann das das logo die checksumme drin das war wichtig für die Entwickler für die game aus relativ egal und danach kommt dann mehr eigentlicher spiel spiel dann wo ich noch nicht drauf geguckt habe ist iron h-rahmen ganz oben im system die die zero page die man ganz effizient zugreifen kann hier oben ist extra ramen und ein bisschen reingegestreut hier drin sind verschiedene devices das sind die ganzen controller im system zum beispiel pixel processor time processor und so weiter aber jetzt ist input das ist ganz einfach das sind die inputs die der spiel gameboy hat das sind acht vier buttons mit acht richtungen können es mit sechs gpaos machen zwei säulen vier rein und aus den genau man kann das nach rauslesen welcher kopf gedruckt wurde also sechs und nicht acht das war alles für die knäpfung einfach sie werden datentransfer kann die dinger mit dem gelenkabel zusammen tun das war einfach nur ein kabel mit daten in eine richtung und eine kabel mit daten in andere richtungen und einen dritten für die uhr also um das zu synchronisieren das sind also die bits das kontrollieren das sind immer acht kilo herz und was reinkommt kann wirklich viel sein fast ein halbes mega herz und so weil das los geht los geht werden die da durchgegangen die bytes und der timer wie das ist das thema ist ein timer es gibt nur einen timer die ma regisse der modellierte regisse da kommt die start der start wird rein und dann kann man einen von drei vier verschiedenen geschwindigkeiten nehmen das kalkuliert dann hoch bis es über flow hat und dann wird das module neu gestartet also den werden interupt gesteuert der interat controller unterstützt für fünf verschiedene interups pia pixel processing wir haben den timer schon gesehen wenn der interuptet wenn byte kommt und lcd start wenn ein button gedruckt wird flack register wo du siehst welcher interrupt noch ausgeführt werden muss und das springt und die verschiedene unterwärts muss nicht rausfinden welcher interrupt es war weil die zu verschiedenen location springt der sound controller zahn controller hat die im allermeisten register weil er vier stimmen drin sind in die alle unterschiedlich sind so kann man vielleicht besser angucken vier stimmen jemals fünf register und die haben alle verschiedene bedeutung aber die bedeutung sind relativ grob das sind vier stimmen die sind nicht ungleich ganz die gleiche das sind zwei sehr ähnliche und eine die die welle und eine die gräu scheißen und die bits hier sind auch ähnlich aber es ist auch nicht dieselben kolf an welch was die bits in diesen regisse dann behaupte bedeuten die leute die die sachen die es häufig gibt alles was trigger pet hat macht die stimme an wir können es auch wieder ausschalten aber aber das ist ein länger bitt und ein längere gister das kannst du also noch eine fünfe sekunde ausschalten die ist der wav register das ist der einfachste idee ist dass du jede soundwelle spielen kannst es hat 16 bytes register das sind 32 entries jede wellen form rein auf die du lust hast die 32 slots hier sind also paar beispiele ein sawtooth eine ganz einfache wellen form können ein sein haben zinos oder irgendwas ist also relativ flexibel frequenz die die höhe reguliert also wie schnell diese welle ist zwei bits mehr wo du dann laut stärker einstellen kannst in verschiedenen stufen diesen beiden polz register die sind relativ ähnlich die bits sind alle die gleichen und verhalten sich auch gleich du kannst eine wellen form hier nicht spezifizieren ist ein bisschen fix ist man polz also immer hoch und tief in verschiedenen ratios verhältnissen diese beiden bits zeigen wie die ratio so sein sollen 12 von 5 5 der rest ist low 25 prozent 50 und 75 sollte genauso klingen wie 25 nur umgekehrt mit jedem von diesem regis dann machen und ist die lasche kann auch hoch oder runter gehen dass es runter geht ist relativ ähnlich verbreitet bei emulatoren nur die erste polz vor es hat auch dieses frequenz sweep kannst du hoch oder runter das ist meistens vor sound effects da gibt es noch ein paar effekte und eine vierte stimme die nur noise kann das macht einfach ein paar pseudo random nummern zahlen ob du es zu 15 oder sieben bit modus gestellt hast macht es eine oder zwei verschiedenen waveforms das 15 bit dann das ist sieben das sind also die ganzen register verschiedene stimmen und drei mit generell für generelle sachen benutzt wird und die kathletes können ihre eigenen audiokontrolle haben die analog signal rein raus und was man da rein tun aber das hat kein spiel gemacht und es gibt ein register die uns sagt ob die stimmen links oder rechts sein soll oder beiden oder nirgends das der power bit wenn du das ausschaltest dann schwarz und bisschen energie gameboy wurde nicht einfach nur für spieler benutzt leute machen immer noch musik dafür in zum beispiel in die sound die ich zeige euch mal ein kleines freies spiel so funktioniert der sound lass uns über den pixel processor reden das ist das ding die grafik macht hat zwölf register das ist nicht viel aber schauen wir es genau an die spezifikationen wir haben schon vorgesprochen 160 mal 144 pixel das ist nicht viel vier stufen von grau das sind vier schlechte stufen von grün die späteren mit der wand besser das ist 8 und 80 8 mal 8 so genannte teils 8 videorein was sind 8 mal 8 pixel schücke alles ist irgendwie quadratisch auch bei anderen spielen wir können da ein muster drüber legen es gibt sich immer wiederholende muster auch bei super mario ent das ist ganz offensichtlich es hat nicht so viele von diesen teils aber selbst bei so was wie donkig kungenland sobald wir das muster drüber legen da gibt es irgendwelche wiederholung aber sie haben das sehr gut versteckt und manche spiele die spiele mit dem konzept in tarikern es füllt den spiel mit diesen teils ein teil ist 8 mal 8 pixel es hat vier farben wie alle anderen sahn auch diese farben sind dekodiert 0 0 1 1 0 und 1 1 schauen wir uns an wie die entkodierung gemacht wird schaut euch die erste linie an das sind eine binär nummer 0 2 ff jede linie pixel braucht ihr 2 bytes und insgesamt brauchen wir 16 bytes um eins dieser teils zu beschreiben die reinfolge der farben macht den Sinn weil er diese palette selber erstellen kann es gibt einen 2 bis zu 2 mit mehr ping für diese hintergrund teils für die hintergrund quadrate die grundlegenden farben sind 0 0 ist schwarz und 1 1 ist 0 0 ist weiß als 1 ist schwarz ich kann jede palette verwenden und ich kann die auch erneut verwenden da bin ich frei es gibt 256 vorgefälligte teils kennt ihr das das ist tetris wenn ihr diese dancing piep diese tensor nicht seht dann habt ihr tetris nie zu ende gespielt das ist zelda das ist super mario und das benutzt nur 128 quadrate erkennt das jemand machen wir da mal ein puzzle schauen was man was es ist das ist ein tennis spiel all star tennis das ist 20 quadrate mal 18 quadrate das ist nicht alles tatsächlich im videorahmen gibt es 32 mal 32 teils das ist der komplette background was ihr auf dem bildschirm seht dass es wie so ein wie so ein fens damit die mehrere dreien schaut das gibt 256 mal 256 pixel so funktioniert scrolling man bewegt also das fenster über diese ganze fläche man kann das sehen es gibt einen emulator der zeigt euch wie das funktioniert das ist also wie eine kamera die auf der der dieseln sicht bereichen bereicht was ist mit spielen die immer scrollen wie super mario wir haben so viele zusätzliche rein und wir können das fenster dorthin bewegen was passiert wenn wir am ende sind nun wir falten einfach einmal um wenn wir diese zeilen schnell genug schreiben bevor das fenster sie erwischt dann haben wir eine unendliche welt im emulator sieht man das hervorragend in dem außerhalbbereich des viewports des fensters erzeugte den neuen rein das funktioniert auch in zwei reihen das sieht ziemlich cool aus es macht den neuen rein einfach dort wo man sich bewegt das ist die einzelne ebe die wir es bis jetzt angeschaut haben das ist der hintergrund am ende des hintergrunds gibt es einen weiteren eine weitere ebene dass das fenster das kann irgendwo beginnen oder es kann das komplettes verdecken und es malt vom oben oder mal unten nach unten es gibt keine transparent man tut das nach unten oder man tut es nach rechts es ist einfach nur ein overlay und wird vom scroll nicht beeinflusst und das wird für die punktzahlen verwendet die man am unten anstellen das ist sehr einfach schön zu machen für spiele ihr könnt es auch rechts hin tun das sind gameboy color spiele aber das funktioniert auf dem normalen gameboy genauso und es gibt noch eine Ebene über dem fenster das sind die sogenannten sprites die passen nicht in das 8 x 8 raster rein man kann sie überall hin tun wir haben hier drei sprites nintendo nennt sie objekts oder obdj ich nenne sie einfach sprites weil alle leute sprites nennen schauen wir es diesen kumba an jeder sprites hat ein paar attribute es gibt den sogenannten oa m objekt attribute map das ist ein oa m entry eintracht das sind die werte das eine ist die position x wenn wir ihn ganz links hin tun dann würde man erwarten dass er die horizontale position 0 hat es aber 8 wenn wir sind 4 ist es zur hälfte weg und bei 0 ist es nicht mehr 60 weil es 8 man muss ja eine Möglichkeit haben dass er rein scrollt das geht oben gilt für oben genauso die erste position ist 16 da sieht man ihn vollständig und sprites können 16 16 pixel hoch sein tun wir es wieder in den ursprung hin schauen wir uns das näher an wie sie soll denn aussehen es ist ein 8 x 8 eine 8 x 8 karte es hat sogar auch eine gewisse transparent und das ist die gleiche encodierung ist funktioniert das genauso wie die teils und 256 teils sind ein byte und das ist teil hex 19 90 es gibt das flip x mit man braucht keine zwei gumbas wenn er sich bewegt dann wie flippen wir ihn einfach und wenn man ihn auf den kopf fährt also tot und wenn man ihn umdreht und noch mal flippt dann hat nur einen toten gumbar der nach rechts bewegt positionen werden richtig das letztes ist die palette eine pixel kombination eine einbitt kombination ist sichtbar durchsichtig man hat also nur drei farben frei man wollten nicht drei farben vorschreiben ihr könnt auswählen welche drei der vier möglichen farben habt und die sprites können auf unterschiedliche paletten haben weil es zwei paletten gibt benutze also palette eins oder palette zwei und so kann man auch die farbe des sprites verändern ein weiterer bitt ist priorität wo geht er hin im bereich zum vordergrund wenn einst dann ist es vor allen weißen pixel dann ist er vor weiß aber hinter anderen farben das geht um pixel die wert null haben im hintergrund wenn man eine andere farben wäre der gumbar ganz vorne wenn wir die piratet auf null sein dann ist er vor allem anderen bis auf die durchsichtigen pixel sprites priorität da gibt es dass es fixt der gumbars vor dem raffer vor dem quadrat bei seine position niedriges als die des quadrats der sprites mit einer höheren nummer gewinnt immer weil er einer rame hauptspeicher ist und wird dann vor den anderen gezeigte niedrige nummer haben und wenn wir das ändern dann geht sozusagen der das weiße quadrat vor damit kann man flacker effekte machen ihr könnt 40 sprites auf dem screen maximal gleichzeitig haben aber es gibt andere beschreiben es gibt nur zehn sprites pro linie wenn ihr einen und das zählt aber pro pixel linie das heißt er würde tatsächlich sachen abschneiden wenn es an die überschneidung gibt es ist der elfte sichtbare sprites in der reinfolge die der programmierer entscheidet das ist der vorstelle ua m entreh er pusst fast hervorragend vier bytes das ist einer in memory fe 00 dort sind diese einträge es gibt 40 von ihnen für die 40 sprites und das nennt sich das oa am rahm das ist ein sonder rahm an diesem ort im speicher dass es nicht teilt als video speichers was ich noch dazu sagen sollte selbst der kleine mario ist zu groß für acht weit das sind dann eben vier sprites zusammen und genauso arbeitet das spiel es gibt sprites die 16 pixel hoch sind aber das komplette spiel müsste sich dann um 16 pixel großes sprites haben es gibt drei eblen es gibt noch etwas was ihr komplett einschalten könnt ihr könnt das display ausschalten kann weil es eine farbe ist das ist ein bisschen heller als weiß nicht sehr nützlich weil das geht aber nur ganz aus dass es nicht nützlich wenn man das anschaltet bekommt man weit weiß wenn es leicht raus sein soll es ist eins da wird die farbe ersetzt dann kann man ein fenster machen es gibt hier keine durchsichtigkeit und sie sprites kann man drüberlegen und den sprites ist nicht so wichtig ob es gibt da kein clipping weil sie zwischen hintergrund pixeln und vordergrund pixeln nicht unterschalten wie funktioniert das mit der speicherkarte vier kilobytes sprites vier kilobytes hintergrund einen kilobytes hintergrund karte 232 und ein kilobytes für das fenster das ist nicht so effizient aber das war einfach wir haben nur 8 kilobytes videoramme dann wenn wir das verteilen sind wir schon haben wir schon kein speicher mehr und sowieso was machen wir dem background tiles dann müssen sie halt sich überschneiden es gibt unterschiedliche konfigurationen drei bits wir können drei bits komplett überlappen lassen und wir können die anderen auch verschieben wir können sie am selben ort haben was bedeutet das eine konfiguration der background rounds hintergrund und die sprites haben dasselbe format zwei wird pro pixel aber sie könnten den gleichen das gleiche quadrat belegen man könnte sie auch so verteilen die ersten werden die sprites werden also wer gemischt und der hintergrund werden alles einzig oder man kann das einen bereich verwenden die beides werden super marion und macht das eben so die ersten zwei drittel sind für sprites und die letzte ist für den hintergrund der nächste schritt ist vertikale vertikale zeitberechnung vertikales timing wie in den sogenannten cot wie ein alten cat system das die ein system ist sehr langsam sie malen von oben nach unten von links nach rechts das gilt für einen gamer auch genauso malte das 60 mal eben der seconde zeile pro zeile von links nach rechts das haben sie deswegen gemacht nicht weil sie das altes wieder verwenden wollen sondern sie haben das von null auf entwickelt aber ein sd muss eben 60 mal pro sekunde neu geschrieben werden wenn ihr bestimmte effekte haben wollt die anders machen könnt hier habt ihr unterschiedliche bereiche des bildschirms verhalten sich unterschiedlich schauen wir uns das calling mal an insbesondere die stadt im hintergrund das beste natürlich wenn er sich selbst bewegt wir möchten aber nur einen teil bewegen und er macht das mit den extra registern wenn ihr acht mit programmierung gesehen dann kennt ihr das alle schon ihr könnt sehen welche line welche reihe jetzt gerade geschrieben wird oder in einem moment geschrieben wird und ihr müsst nicht warten ihr könnt ein interab setzen der wird dich dann aufhecken sobald eine bestimmte zahle erreicht wird setzen wir das scroll x register auf null und beginn wir an linie 8 er schreibt das alles mit einem offset von null jetzt hat unseren program macht seinen interab setzen auf 23 und der nächste bildschirms weiter setzen und wir vergleichen ist und dann schreibt er weiter mit einem gewissen offsets dann benutzen wir einen anderen wert dann wird er hier weiter malen es gibt dann noch einen drick das sprechen wir später über das jetzt wird auf null weil das der sport gar nichts gold und wir machen das gleiche auf dem nächsten bildschirm dieses beispiel man muss nicht nur das extra register verwenden der mario ist ein fenster der oben rechts das fenster wird von rechts nach links geschrieben würden ihr könnt es nicht nur zur hälfte schreiben aber es gibt einen trick ihr beginnt an linie null schreibt das fenster an und triggert wieder bei line 40 und schaltet dann ab wenn linie 40 geschrieben wird welches fenster es gibt dieses fenster nicht also nicht weiter geschrieben ihr könnt das in ganz vielen spielen sehen manche von den tricks funktionieren andere brauchen das screen splitting wenn ihr nicht nur auf linien triggert sondern wenn ihr was witziges auf lena linie tut ihr seht links was da passiert und recht seht ihr die den speicher im video ran wenn ihr das verändert in jeder linie des scx das ist die kurve die wird als transformations wert verwendet für jeden wert für jeden speicher das programm muss das in jeder linie machen das muss es jedes mal einen anderen scx wert schreiben in den register das muss man in jeder linie machen das war mit meinem bild nicht gezeigt der rennspiel effekt ist genau dasselbe das kann man im video ran sehen dass eine strasse geht gerade aus aber es wird geändert zur laufzeit während das bild geschrieben wird das ist diequelle das ist das bild was wir sehen wenn wir die sprites ignorieren dass die kurve die ist benutzt um die grafik zu verändern und das sind die aufsetzt des scx wenn ihr scx immer wieder aktualisiert dann könnt ihr das so verändern dass wir eine straße aussieht es gibt eine linie mittel die hat allen muster und auch außerhalb der der straße gibt es sozusagen etwas zu sehen und deswegen da ändert man einfach die palette dieses rally spiel benutzt auch höhen und tiefen man benutzt also nicht nur den horizontalen skoll register sondern auch den vertikalen skoll register dann könnt ihr die linien verdoppeln und kleben lassen mit guter matthik kommt ihr dahin und wenn ihr beides gleichzeitig updated in mitten in aller linie dann bekommt ihr diesen effekt der 2. minzela wir müssen aber noch ein bisschen tiefer gehen uns aus und alle timing was passiert während einer linie gezeichnet wird dass der pixel transfer modus der computer nimmt irgendwie 34 zirkel und hat 144 leins könnt vielleicht euch vorstellen dass am end der ersten linie erst mal der erste pixel am nächsten lein gezeichnet wird das passiert aber nicht in der extra am such am anfang die 20 kloks hat und eine hablank bereich und sonst addet die pipa es gibt wie blind modus dann macht die pipi und nichts zwischen willschirm jetzt rechnen wir mal ein bisschen in eine linie hat 14 kloks 154 leinsen so viele kloks pro bildschirm und das dadurch teilt die geste refresh nine auf von ungefähr 60 hertz dass die modus in den pipi sein kann das kann sie wissen ihr könnt interrupts da reinschreiben warum wüsste sie das wissen gucken wir es in diesen modus ab ist was ist in diesem 20 zirkel am search muss man entscheiden welche sprites sichtbar sind das sind halt 40 sprites im system und das muss die alle filtern die sprites finden die sichtbar sind und in einen zehn sprites array rein tun und die logik dafür ist dass die exposition nicht null sein kann dann werden sie nicht unsichtbar und die leinen die wir schon zeichnen muss zwischen der ersten und der letzten line des sprites sein da gibt es also ein visibus sprite array ansichtbar sprites array im original gameboy war lustiger bug wenn du irgendwas rechnest in der 16 bit rechnung mit nummern zwischen fe 00 und fe ff ist in der darauf zugreift dann wird der ramm zerstört im modus also warum sollte man sich dafür interessieren was noch los ist mit dem ramm verbunden pipi u ist mit dem videoram verbunden und ramm pipi u ist verbindet mit dem ramm auch verbunden das ist auch zum videoram schreiben aber so macht man es nicht braucht dafür zu schnellen videoram z640 macht das so war für gameboy geht durch die pipi u das ist ein großes switch wo die pipi u sagt kannst du drauf zugreifen wenn es schreibt passiert nichts wenn es lehnt es kriegt es ff das ist echt nicht die pipi u muss dafür so ein pipi u im richtigen modus ist damit das zugreifen kann wenn beim t pixel transfer kann es auf das videoram nicht zugreifen aber wegen rm search und h blank und wie blank könnt ihr das machen ne u rm ramm zu erfoltern könnt ihr das in rm oder pixel transfer weil da die pixel geschrieben werden da wird das breit auch die pipi u in diesen zeiten muss also sehr vorsichtig sein wenn dieser bildschirm geschrieben wird das ist also alles bad area also da sollte man nichts drin machen wenn jetzt z.B. neu sollen in den hintergrund rein schieben wollte und wie soll das über wie blank machen weil es da die meiste zeit gibt und die ganze game ai und spiel logic logik logik kann darüber gemacht werden mit einer ausnahme die könnte neuen sprite position dann nicht reinschreiben weil da rm passiert die spiele updaten die sprites also meistens in shadow rm also copy davon und kopieren das dann in den echten rm sie kopieren also im block von da einer von diesen quellen eine von diesen location das ist jetzt nicht passend fast in größtes verhältnis muss es nicht selbst machen gibt es eine dmf hat funktion beschreibt einfach ein block den ihr kopieren wollt in diese location das braucht 160 klops wenn es das tut läuft die cpu weiter kann aber die ganzen quellen adressen nicht zugreifen muss also warten aber weil der code irgendwo herkommen muss könnte es nur gegen in arch hram rein tun was auch ganz lustig ist wissen also pixel pipeline das mal richtig tief reingehen das ist cutting edge und da waren ein paar sachen die wir vorher nicht wussten also nicht in der öffentlichkeit pixel 5 4 ist das zentral konzept dessen wie der gameboy seine bilder malt wir haben also ein paar pixel auf dem lcd das sind schon fünf pixel drauf zum lcd geschickt und die pixel 5 sagt das sind ein paar pixel mit jedem schritt in jedem vier mega herzschritt wird ein pixel rausgeschmissen und schickt es zum lcd macht das mal wieder vielleicht dass das der grüne knopf gerade rot wurde pixel 5 muss nämlich mehr als 8 pixel haben um es raus zu zu schmeißen warum das sehen wir gleich kriegen wir dann neues data rein das macht der fetcher der nimmt in der grundteils ist ließt also die teilen nummer aus dem der background ein zeige und im nächsten zeitel ließe es den ersten teil und die zweiten teil vom teil ram jede leite linie des 16 bits hat daraus baut das 8 neue pixel es fängt wieder neu an die zur nächsten ort und kann wieder die nächsten 8 pixel oben in die fife rein und kann das immer wieder raus drücken was nicht tut ist dass das pixel rauswurscht und wenn es fertig ist neu holt es geht natürlich nichts macht alles gleichzeitig also lassen wir durchgehen fife läuft auch nicht so schnell also zwei schübe und der fetcher kann einen schritt also push push da war den ersten bite schub schub aber der zweiten teil data dann diese punkt kann es keine daten in die fife tun weil die fife noch nicht leer ist es muss noch mal 40 cycles gewartet werden dann wartet es kurz und dann tut es neue daten rein wenn die memory die speichert zugriff muster anguckt dann seht ihr das also noch mal der fife schiebt pixel 9 pixel pro cycle und pausiert wenn es nicht mehr als 8 pixel hat fetch schiebt 8 3 pixel je was rein und ja scrolling ist sehr einfach zum beispiel mit drei pixel zurück auch dann dann werden einfach die nächsten letzten drei pixel weggeschmissen und am ende wird es sehr spannend wenn man so 160 haben wollen könnten fife schon die nächsten pixel drin sein die wir nicht schreiben können der fife fetcht gerade die nächsten teil die wir gar nicht haben wollen und dann hat es einfach zu macht viel gemacht stoppt dann hat es nicht bleibt darum braucht eine linie 34 34 43 clocks und nicht 44 45 hier sind wir bei dieser fenster position fife ist irgendwo in der mittel dann kliert ist das alles dann wird die fife gestoppt aber diese pixel nicht mehr haben wollen die das schon aufgereizt sind fett geht also zum app und wird neu gestartet macht teil fett städter fett städter fett und holt die sachen aus den fenster mit pixel fife wo wechselt das aus und dann werden da fenster pixel gezeichnet und das sagen wir mal an perspektive 26 ist ein spryte fife wo es wird drin und fets irgendwo in der mittel und dann kann es nicht mehr pixel rausschieben wir verändern also den fett zum spryte fett und laden dann neu wir kriegen also die spryte information und anscheinend zu tun tun wir es über die 8 pixel die wir am anfangen haben und mischen das da rein und das sagt warum fife 8 pixel haben muss weil so die spryts reingemischt werden das ist sehr stark und getrass vor anderen systemen einfach nur pixel die ganze zeit rausgepusht werden bis das fenster anfängt und dann wird das fenster geklärt für schieben keine mehr raus für eine ganze weile bis fife wo die fenster daten hat und dann macht es weiter also 4 43 clocks oder mehr je nach bildschirm kann auch mehr sein das auf dem lcd das könnte da machen könnt auch aufhören beim crt setzten könnte das nicht von c64 zum beispiel muss eine linie immer 40 clocks haben weil jeder pixel der zu spiel kommt so nach rechts wie sichtbar verschoben wird ist also nicht ganz genau dass wir 40 clocks haben es mehr so 343 plus die h blank area ist einfach nur dass das übrig ist und praktisch ist mehr wie es aussieht je nachdem was das freist dann was für ein beschämung habt ich falls ich nicht ganz ehrlich darüber es werden keine bilder keine farben gestorben sort information die originale information der mit kombination zum beispiel das hier neuen hintergrund pixel das ist beim fetch genauso das macht auch keine farben es macht mit kombination plus die information welche spade palette oder welche kelle es war und das schreiben wir auf den hintergrund spade 1 1 0 0 das ist also durchsichtig das gewinnt der hintergrund und hier gewinnt die spade weil es auf den background schreibt und das stimmt für die meisten wir können sehen das ist ein spade der palette 1 er ist wieder durchsichtig das heißt der hintergrund gewinnt machen wir das mit einem anderen spade der an der gleichen ort ist im ersten fall ist das ein spade mit der palette 0 schreibt vor dem hintergrund er gewinnt ein neuer spade wird nicht dort hingeschrieben da gibt es ja schon einen spade also gewinnt der alte und so werden spades die schon rechts waren die spades nicht überschreiben und spades mit hoheren zahlen überschreiben nicht spade mit niedrigen nummern wenn wir die palette anwenden das wird nur ganz am ende gemacht wenn das pixel verschoben wird wir ändern die palette in eine farbe und es geht auf den sd gucken nach konvertieren sd nachgucken konvertieren schwarz und genauso macht das der gameboy color auch beginnen wir mit dem super gameboy bis schon bestehende spiele konnten noch eingefärbt werden und hat die drei farben können jetzt rgb farben werden alles andere bleibt exakt gleich sobald man das macht so wird das rausschieben guckt danach rgb farbe gibt einen pinken pixel 11 s 1 schwarze pixel auf dem picture noch ein batch mehr 0 1 von s 1 das ist ein spade aus püle 1 geht auf das ist der ende des technischen parts des technischen teils wir haben noch fünf Minuten entwickeln reden über entwickeln wenn ihr gameboy spiele entwickeln wollt es gibt eine ganze Reihe von tools das rednecks gameboy entwickelungssystem ist ein kommando zahlen die telle diese net sind für mac files und eurem lieblings editor wenn ihr die backen wollt gibt es den bgb emulator debugger der ist für windows funktioniert aber in wein ebenfalls auf os 10 unter linux hat ein debugger single stepping breakpoints und es hat diese schöne schöne anzeige des rahmes dass ihr wisst was im videorahmen passiert das auch sehr toll um demus zu machen wenn ihr auch das echter hardware laufen lasst dann gibt es den everdrive gb da könnt ihr ne st kade reintun weil wir noch vier minuten haben dann meine Lieblingspräferie ist die gameboy kamera aber nicht von einem technischen perspektive nur wie cool das ist dass die gameboy kamera die kommt hinten rein macht nette bilder kann auf dem gameboy druck ausgedruckt werden auf thermalpapier wenn ihr das papier irgendwo herbekommt und immer richtig tolle bilder machen genau wie die hier lass uns rein zu das sind echt nette bilder jedes bild wird auf dem ccd das hat vier kilopixel und eine bitttiefe von zwei wenn ihr wieder auf eine reise geht nimmt den gameboy die gameboy kamera vergesst ihr braucht noch ein pc mit einer parallel kamera und das linkkabel das gibt es aber nicht mehr auf ebay vielen dank an die leute die die buggen bei die buggen geholfen haben die haben wir geholfen mit der präsentation auch diese leute haben wir bei anderen sachen geholfen also in dieser serie der ultimativen talks das war der fünfte talk was kommt als nächstes es muss nächstes jahr auch ein talk geben ich schlage vor für 34 c3 schlage ich vor dominik wagner spricht über den ultimativen akon akimidis und janas hat nur soll über den ultimativen super nintendo talk geben es ist eure war ihr könnt diese talks machen oder euch ein schwung eiswasser über den kopf schütten vielen dank für eure aufmerksamkeit bis nächstes jahr