PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum Handheld-Wiki

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de
portablegaming.de  

Zurück   portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung


Development Abteilung Ihr wollt für euren Lieblingshandheld Spiele oder Tools entwickeln?
Bitte die Präfixe benutzen!

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 31.05.2014, 11:00   #1
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Beitrag Tutorial, Bastel und Hack Projekt

So. Wir hatten lange drüber gesprochen und ich hatte angekündigt, dass ich nach einigen Jahren die wir nun Luft hatten mal wieder etwas pubishen würde.

Tiny Grass is Dreaming


Das ist die URL. Es soll sich dabei ausdrücklich _nicht_ nur um meine Seite handeln, vielmehr will ich jeden einladen der etwas cooles machen will und (hoffentlich) Lehrreich darüber schreiben will. Sprache des Blogs ist Deutsch.

Diskusionen zu den dort geschriebenen Artikeln sollen am besten hier in diesem Forum, diesem Thread stattfinden.
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Sponsored Links
Alt 01.06.2014, 21:44   #2
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

btw momo? Kennst du einen funktionierenden *2snes? Hab nun eine Weile nach image convertorn gesucht und gelinde gesagt nur shit gefunden. bzw. Programme die abstürzen ..
__________________
Ney ney ney. So viel Sand und keine Förmchen

Geändert von Tharo (01.06.2014 um 21:59 Uhr)
Tharo ist offline   Mit Zitat antworten
Alt 02.06.2014, 13:12   #3
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard AW: Tutorial, Bastel und Hack Projekt

Kenn da auch nichts, ich könnte mal meinen GFX--Convert erweitern ( https://www.dropbox.com/sh/8i5pzlncr...pment/binaries ) damit er auch snes export hat.
goldmomo ist offline   Mit Zitat antworten
Alt 02.06.2014, 14:26   #4
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

Nahja er muss nix tolles können: 8x8 Tiled bilder in 2,4 oder 8 Bit Farbpaletten als quellcode ausgeben. ASM oder C++.

NICHT die Welt denkt man sich. Gibts/gabs tausende. Irgendwie aber find ich nur tote links oder wie erwähnt Stuff der sofort verreckt
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 02.06.2014, 18:32   #5
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard AW: Tutorial, Bastel und Hack Projekt

Habe mein Tool mal kompiliert, es kann auch Tile-Modus 8x8 mit 4 und 8 Bit (16/256) Colors.
Kannst mal ausprobieren ...
Miniaturansicht angehängter Grafiken
Tutorial, Bastel und Hack Projekt-gfxconvert.png  
Angehängte Dateien
Dateityp: zip gfxConvert.zip (22,1 KB, 9x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 02.06.2014, 18:32   #6
 
Benutzerbild von LGND
 
Registriert seit: 07.02.2013
Ort: Kyōto
Alter: 57
Spielt gerade: den Helden

LGND hat die Renommee-Anzeige deaktiviert

LGND eine Nachricht über ICQ schicken LGND eine Nachricht über AIM schicken LGND eine Nachricht über Skype™ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

Was ist btw. aus deinem RPG-Projekt geworden?
LGND ist offline   Mit Zitat antworten
Alt 02.06.2014, 20:18   #7
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

Irgendwann an dem Punkt angekommen, wo ich Betriebsystem-Funktionen die JS fehlerhaft implementiert hat nachgebaut habe. Also Sheduling, Speicher Management und shit. Das neue Chrome von vor einer Woche hat nun extra Funktionen raus gebracht um diese Probleme zu fixen ... Aber was mich angeht hats mir einfach ECHt die Lust genommen. Dh steht im Moment das Modul-Projekt in Reihe 1.


Momo: Irgendwie stimmt der output nicht ..



ist nicht:
Zitat:
; bit width=8 length = 128
word $00 ;at 00000000
word $00 ;at 00000001
word $00 ;at 00000002
word $00 ;at 00000003
word $00 ;at 00000004
word $00 ;at 00000005
word $00 ;at 00000006
word $00 ;at 00000007
word $00 ;at 00000008
word $00 ;at 00000009
word $00 ;at 00000010
word $00 ;at 00000011
word $00 ;at 00000012
word $00 ;at 00000013
word $00 ;at 00000014
word $00 ;at 00000015
word $00 ;at 00000016
word $00 ;at 00000017
word $00 ;at 00000018
word $00 ;at 00000019
word $00 ;at 00000020
word $00 ;at 00000021
word $00 ;at 00000022
word $00 ;at 00000023
word $00 ;at 00000024
word $00 ;at 00000025
word $00 ;at 00000026
word $8F ;at 00000027
word $F7 ;at 00000028
word $00 ;at 00000029
word $00 ;at 00000030
word $00 ;at 00000031
word $00 ;at 00000032
word $00 ;at 00000033
word $00 ;at 00000034
word $70 ;at 00000035
word $07 ;at 00000036
word $00 ;at 00000037
word $00 ;at 00000038
word $00 ;at 00000039
word $00 ;at 00000040
word $00 ;at 00000041
word $00 ;at 00000042
word $70 ;at 00000043
word $07 ;at 00000044
word $00 ;at 00000045
word $00 ;at 00000046
word $00 ;at 00000047
word $00 ;at 00000048
word $00 ;at 00000049
word $00 ;at 00000050
word $70 ;at 00000051
word $07 ;at 00000052
word $00 ;at 00000053
word $00 ;at 00000054
word $00 ;at 00000055
word $00 ;at 00000056
word $00 ;at 00000057
word $00 ;at 00000058
word $70 ;at 00000059
word $07 ;at 00000060
word $00 ;at 00000061
word $00 ;at 00000062
word $00 ;at 00000063
word $00 ;at 00000064
word $00 ;at 00000065
word $00 ;at 00000066
word $70 ;at 00000067
word $07 ;at 00000068
word $00 ;at 00000069
word $00 ;at 00000070
word $00 ;at 00000071
word $00 ;at 00000072
word $00 ;at 00000073
word $00 ;at 00000074
word $70 ;at 00000075
word $07 ;at 00000076
word $00 ;at 00000077
word $00 ;at 00000078
word $00 ;at 00000079
word $00 ;at 00000080
word $00 ;at 00000081
word $00 ;at 00000082
word $70 ;at 00000083
word $07 ;at 00000084
word $00 ;at 00000085
word $00 ;at 00000086
word $00 ;at 00000087
word $00 ;at 00000088
word $00 ;at 00000089
word $00 ;at 00000090
word $70 ;at 00000091
word $07 ;at 00000092
word $00 ;at 00000093
word $00 ;at 00000094
word $00 ;at 00000095
word $00 ;at 00000096
word $00 ;at 00000097
word $00 ;at 00000098
word $8F ;at 00000099
word $F7 ;at 00000100
word $00 ;at 00000101
word $00 ;at 00000102
word $00 ;at 00000103
word $00 ;at 00000104
word $00 ;at 00000105
word $00 ;at 00000106
word $00 ;at 00000107
word $00 ;at 00000108
word $00 ;at 00000109
word $00 ;at 00000110
word $00 ;at 00000111
word $00 ;at 00000112
word $00 ;at 00000113
word $00 ;at 00000114
word $00 ;at 00000115
word $00 ;at 00000116
word $00 ;at 00000117
word $00 ;at 00000118
word $00 ;at 00000119
word $00 ;at 00000120
word $00 ;at 00000121
word $00 ;at 00000122
word $00 ;at 00000123
word $00 ;at 00000124
word $00 ;at 00000125
word $00 ;at 00000126
word $00 ;at 00000127
TOO many zero!
__________________
Ney ney ney. So viel Sand und keine Förmchen

Geändert von Tharo (02.06.2014 um 20:36 Uhr)
Tharo ist offline   Mit Zitat antworten
Alt 02.06.2014, 20:50   #8
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard AW: Tutorial, Bastel und Hack Projekt

Ich merks auch gerade, der TileExport ist kaputt .....
Hab da wohl zu viel an den Linearen Formaten rumgeschraubt (für mein FPGA Projekt), ich schaus mit mal an .. und hänge später ein update dran
goldmomo ist offline   Mit Zitat antworten
Alt 02.06.2014, 20:55   #9
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

sorry ._.
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 02.06.2014, 21:24   #10
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Blinzeln AW: Tutorial, Bastel und Hack Projekt

So die geht jetzt ... hoffe ich
Nich so einfach meinen alten Code zu verstehen ...
Angehängte Dateien
Dateityp: zip gfxConvert.zip (22,0 KB, 9x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 03.06.2014, 20:12   #11
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

Das ahm, macht schon nen besseren Eindruck. Aber, irgendwie wirkt es nun nicht als würde er eine Palette erstellen, kann das sein? ^^
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 03.06.2014, 20:50   #12
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard AW: Tutorial, Bastel und Hack Projekt

Habe keinen Multiplatten-Support (bei 16 Farben) drin (habe ich nie gebraucht). Da müssten, am Ende, auch drei Dateien rauskommen (GFX, 16x16Palette, TileIndex für Palette). Könnte man sicher einbauen, habe aber gerade keinen Bock :-)
goldmomo ist offline   Mit Zitat antworten
Alt 06.06.2014, 17:16   #13
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

Okay kurzes update.
Gut: Die Chips sind da. 10 Stück mit mindestens tausend mal so viel Masse an Verpackung wie Inhalt.
Schlecht: Hab am SNES code selber nichts weiter gemacht. Also immer noch keine funktionierenden Buchstaben Tiles = keine Print Funktion fürs Debugging
Gut: In der Uni gibt es immerhin EINEN, ich wiederhole EINEN fucking logic analysator.
Schlecht: Der ist privatbesitz von nem Prof und ob der mir erlaubt das Ding zu benutzen steht in den Sternen >.<
Schlecht: Mir fehlt noch ein passender Programmer. Wieder 30 Euro wech. Meh.



EDIT:
So. Hab endlich ein gfx Tool gefunden, die grafiken umgewandelt bekommen, die BG-Modes in den Griff bekommen und angefangen eine Print-Funktion zu implementieren. Dabei ist sicher etwas mehr als eine Stunde Zeit dafür drauf gegangen, dass der original Autor des Codes den ich zZ benutze aus IRGEND-EINER-DUMMHEIT raus für die Character Data eine Speichersektion genutzt hat in der System-Register liegen. Mit anderen Worten: Weirder Shit am laufenden Band. Man man man. Also ums kurz zu machen: Code Release + Tutorial gibts erstmal nicht. Nicht, ehe ich die im Moment extrem dumm designten DMA Routinen noch überarbeitet, und ein sauberes "println" implementiert habe.

Aber okay. Ein kleiner Fortschritt. Da geht sie hin, meine SNES Bastelzeit für diese Woche. Hoffentlich schickt Lupi bald mal das Modul los

Miniaturansicht angehängter Grafiken
Tutorial, Bastel und Hack Projekt-helloworld.png  
__________________
Ney ney ney. So viel Sand und keine Förmchen

Geändert von Tharo (06.06.2014 um 21:09 Uhr)
Tharo ist offline   Mit Zitat antworten
Alt 09.06.2014, 15:15   #14
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt



Post ist da.

Habe die Funktion inzwischen in eine "echte" Funktion aufgesplittet, da man ein macro mit labels natürlich nur einmal aufrufen kann .. und es ohnehin eine sauerei ist.

Problem: Ich bekomms nicht mit FAR dara hin. Also Strings aus ner andren Bank. Natürlich ist das nen no-go. Wenn also jemand ne idee hat wie ich print_far zum laufen bekomme: bin für alles offen.

Code:
.MACRO PRINT
    ldx.w #\1    ; set base adress (counter)
    jsr PrintCode
.ENDM

.MACRO PRINT_FAR
    LDA.l \1    ; set base adress (counter)
    TAX
    jsr PrintCode
.ENDM


PrintCode:
    php
    println_loop:
        LDA.l $00,x        ;get letter
      
        CMP #$00        ;is actual letter zero?
        BEQ println_exit
        
        CMP #13            ; is it "new line" ?
        BNE println_out
            SET_16_BIT_A
            
            TYA
            ADC #31
            TAY
            sty VMADDL
            
            SET_8_BIT_A
            INX
        BRA println_loop
        
        ;print letter
        println_out:
            SBC #32        ;TODO: use translation table
            sta VMDATAL
            INX
        BRA println_loop
    println_exit:
    plp
    rts
__________________
Ney ney ney. So viel Sand und keine Förmchen

Geändert von Tharo (09.06.2014 um 17:52 Uhr)
Tharo ist offline   Mit Zitat antworten
Alt 12.06.2014, 19:49   #15
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

Da es zZ an 200 euro für einen logic analyzer mangelt hab ich nun 4 sachen die ich machen könnte. Welche? kA. vllt habt ihr ja nen Rat

1. Einfacher Basic-Interpreter für SNES. Fügt dem Assembler eine Speicherverwaltung (variablen etc) hinzu. Ist sehr flat, also Ideal für schnellen Code
2. Erweiterten dissasembler zum entschlüsseln von spielen. Mit Funktionen, Speichertabellen, Macro erkennung, tables. Shit.
3. CiC Chip und custom card. Auch wenns an HW mangelt- irgendwie weiter frickeln
4. Ich wollte gern einen 100% Secret of Evemore - Mod machen. Wieso gerade das? Weil es eine recht gute Engine hat. Das Original-Spiel wird dabei verschwinden.
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 12.06.2014, 21:24   #16
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard AW: Tutorial, Bastel und Hack Projekt

Habt ihr keine Oszilloskope in der FH, eins mit 4 Kanälen sollte doch für den CIC langen. Wenn du in Bayern wohnst (bzw. in meiner Nähe), könnte ich dir meins evtl. leihen. Du kannst auch mal nach AVR Projekten schauen, da gibt’s einige Logikanalyser Basteleien, da bist mir ca. 50 Euro dabei, oder baust gleich selber. Musst ja keine Gigasamples verarbeiten bei dem CIC :-)

Schau mal hier:
http://www.mikrocontroller.net/topic/277482

Geändert von goldmomo (12.06.2014 um 21:27 Uhr)
goldmomo ist offline   Mit Zitat antworten
Alt 12.06.2014, 21:40   #17
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

wir haben so uralte analog obzys aus den 80ern. Mit grünem Mono Display und 2 Kanälen. Da kann ich ja auch gleich nen eigenes bauen aus ... kA. Allem? Aus nem Taschenrechner! Das ist wirklich arm >.<

Das 10 Euro Ding wäre indeed ausreichend, wenns denn funktioniert. Joah. Joah joah joah.

3-2-1 meins. Ich nehme mal an, dass du damit sagen wolltest ich solle doch das Modul weiter machen ^^
Bzw dann in 4 Wochen nachdem der (kein scheiß 3 EURO Versand) von singapur aus hier in deutschland angekommen ist.
__________________
Ney ney ney. So viel Sand und keine Förmchen

Geändert von Tharo (13.06.2014 um 08:44 Uhr)
Tharo ist offline   Mit Zitat antworten
Alt 13.06.2014, 13:45   #18
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard AW: Tutorial, Bastel und Hack Projekt

Der CIC ist auf jeden Fall eine Herausforderung, da werden schon einige Leute dran gescheitert sein.
goldmomo ist offline   Mit Zitat antworten
Alt 15.06.2014, 11:34   #19
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

So Mädels es ist Sonntag. Was gibt es neues?
Nun ich habe mich mal ein wenig in der Welt des Hackings und des disassemblings umgeschaut. Es gibt den schönen "Dispel" decompiler. Die meisten anderen disassembler die im Umlauf sind scheinen mehr oder minder darauf zu basieren und. Well. Der Quelltext ist recht simpel.

Ich werd also die Tage wohl mal damit rum spielen mit dem Ziel einen logic-parser zu implementieren der den code in sinnvolle Häppchen verteilt.

Auf der anderen Seite steht noch der Basic-Interpreter. Leider fehlt mir dafür zZ noch das knowhow über den SNES Speicher. Klingt komisch, aber ich hab WIRKLICH probleme mit dem Ram Management. Ich finde nix gescheites an dem ich erkennen kann welche Speicherbereiche nun wofür zur Verfügung stehen. Ergo weiß ich nicht welche Speicherbereiche ich nun für Speicher Variablen nutzen könnte >.<

Edit: https://bitbucket.org/tharo/grasm
DAS war deutlich einfacher als gedacht.

Zitat:
/* [00:0000] 48 */ pha
/* [00:0001] DA */ phx
/* [00:0002] 8B */ phb
/* [00:0003] 08 */ php
/* [00:0004] E220 */ sep #$20
/* [00:0006] 8E0243 */ stx $4302
/* [00:0009] 8D0443 */ sta $4304
/* [00:000C] 8C0543 */ sty $4305
/* [00:000F] 9C0043 */ stz $4300
/* [00:0012] A922 */ lda #$22
/* [00:0014] 8D0143 */ sta $4301
/* [00:0017] A901 */ lda #$01
/* [00:0019] 8D0B42 */ sta $420B
/* [00:001C] 28 */ plp
/* [00:001D] AB */ plb
/* [00:001E] FA */ plx
/* [00:001F] 68 */ pla
/* [00:0020] 60 */ rts
/* [00:0021] 40 */ rti
/* [00:0022] E230 */ sep #$30
/* [00:0024] A98F */ lda #$8F
/* [00:0026] 8D0021 */ sta $2100
/* [00:0029] 9C0121 */ stz $2101
/* [00:002C] 9C0221 */ stz $2102
/* [00:002F] 9C0321 */ stz $2103
/* [00:0032] 9C0521 */ stz $2105
/* [00:0035] 9C0621 */ stz $2106
/* [00:0038] 9C0721 */ stz $2107
/* [00:003B] 9C0821 */ stz $2108
/* [00:003E] 9C0921 */ stz $2109
/* [00:0041] 9C0A21 */ stz $210A
/* [00:0044] 9C0B21 */ stz $210B
/* [00:0047] 9C0C21 */ stz $210C
/* [00:004A] 9C0D21 */ stz $210D
/* [00:004D] 9C0D21 */ stz $210D
/* [00:0050] A9FF */ lda #$FF
/* [00:0052] 8D0E21 */ sta $210E
/* [00:0055] 8D1021 */ sta $2110
/* [00:0058] 8D1221 */ sta $2112
/* [00:005B] 8D1421 */ sta $2114
/* [00:005E] A907 */ lda #$07
/* [00:0060] 8D0E21 */ sta $210E
/* [00:0063] 8D1021 */ sta $2110
/* [00:0066] 8D1221 */ sta $2112
/* [00:0069] 8D1421 */ sta $2114
/* [00:006C] 9C0F21 */ stz $210F
/* [00:006F] 9C0F21 */ stz $210F
/* [00:0072] 9C1121 */ stz $2111
/* [00:0075] 9C1121 */ stz $2111
/* [00:0078] 9C1321 */ stz $2113
/* [00:007B] 9C1321 */ stz $2113
/* [00:007E] A980 */ lda #$80
/* [00:0080] 8D1521 */ sta $2115
/* [00:0083] 9C1621 */ stz $2116
/* [00:0086] 9C1721 */ stz $2117
/* [00:0089] 9C1A21 */ stz $211A
/* [00:008C] 9C1B21 */ stz $211B
/* [00:008F] A901 */ lda #$01
/* [00:0091] 8D1B21 */ sta $211B
/* [00:0094] 9C1C21 */ stz $211C
/* [00:0097] 9C1C21 */ stz $211C
/* [00:009A] 9C1D21 */ stz $211D
/* [00:009D] 9C1D21 */ stz $211D
/* [00:00A0] 9C1E21 */ stz $211E
/* [00:00A3] 8D1E21 */ sta $211E
/* [00:00A6] 9C1F21 */ stz $211F
/* [00:00A9] 9C1F21 */ stz $211F
/* [00:00AC] 9C2021 */ stz $2120
/* [00:00AF] 9C2021 */ stz $2120
/* [00:00B2] 9C2121 */ stz $2121
/* [00:00B5] 9C2321 */ stz $2123
/* [00:00B8] 9C2421 */ stz $2124
/* [00:00BB] 9C2521 */ stz $2125
/* [00:00BE] 9C2621 */ stz $2126
/* [00:00C1] 9C2721 */ stz $2127
/* [00:00C4] 9C2821 */ stz $2128
/* [00:00C7] 9C2921 */ stz $2129
/* [00:00CA] 9C2A21 */ stz $212A
/* [00:00CD] 9C2B21 */ stz $212B
/* [00:00D0] 8D2C21 */ sta $212C
/* [00:00D3] 9C2D21 */ stz $212D
/* [00:00D6] 9C2E21 */ stz $212E
/* [00:00D9] 9C2F21 */ stz $212F
/* [00:00DC] A930 */ lda #$30
/* [00:00DE] 8D3021 */ sta $2130
/* [00:00E1] 9C3121 */ stz $2131
/* [00:00E4] A9E0 */ lda #$E0
/* [00:00E6] 8D3221 */ sta $2132
/* [00:00E9] 9C3321 */ stz $2133
/* [00:00EC] 9C0042 */ stz $4200
/* [00:00EF] A9FF */ lda #$FF
/* [00:00F1] 8D0142 */ sta $4201
/* [00:00F4] 9C0242 */ stz $4202
/* [00:00F7] 9C0342 */ stz $4203
/* [00:00FA] 9C0442 */ stz $4204
/* [00:00FD] 9C0542 */ stz $4205
/* [00:0100] 9C0642 */ stz $4206
/* [00:0103] 9C0742 */ stz $4207
/* [00:0106] 9C0842 */ stz $4208
/* [00:0109] 9C0942 */ stz $4209
/* [00:010C] 9C0A42 */ stz $420A
/* [00:010F] 9C0B42 */ stz $420B
/* [00:0112] 9C0C42 */ stz $420C
/* [00:0115] 9C0D42 */ stz $420D
/* [00:0118] 58 */ cli
/* [00:0119] 60 */ rts
/* [00:011A] 78 */ sei
/* [00:011B] 18 */ clc
/* [00:011C] FB */ xce
/* [00:011D] C218 */ rep #$18
/* [00:011F] A2FF1F */ ldx #$1FFF
/* [00:0122] 9A */ txs
/* [00:0123] 202280 */ jsr $8022
/* [00:0126] E220 */ sep #$20
/* [00:0128] A900 */ lda #$00
/* [00:012A] 8D2121 */ sta $2121
/* [00:012D] A901 */ lda #$01
/* [00:012F] A22080 */ ldx #$8020
/* [00:0132] A02000 */ ldy #$0020
/* [00:0135] 200080 */ jsr $8000
/* [00:0138] A980 */ lda #$80
/* [00:013A] 8D1521 */ sta $2115
/* [00:013D] A20004 */ ldx #$0400
/* [00:0140] 8E1621 */ stx $2116
/* [00:0143] A901 */ lda #$01
/* [00:0145] 8D1821 */ sta $2118
/* [00:0148] 204E81 */ jsr $814E
/* [00:014B] 4C4B81 */ jmp $814B
/* [00:014E] 08 */ php
/* [00:014F] A900 */ lda #$00
/* [00:0151] 8D0521 */ sta $2105
/* [00:0154] A904 */ lda #$04
/* [00:0156] 8D0721 */ sta $2107
/* [00:0159] 9C0B21 */ stz $210B
/* [00:015C] A901 */ lda #$01
/* [00:015E] 8D2C21 */ sta $212C
/* [00:0161] A9FF */ lda #$FF
/* [00:0163] 8D0E21 */ sta $210E
/* [00:0166] 8D0E21 */ sta $210E
/* [00:0169] A90F */ lda #$0F
/* [00:016B] 8D0021 */ sta $2100
/* [00:016E] 28 */ plp
/* [00:016F] 60 */ rts
/* [00:0170] 48 */ pha
/* [00:0171] DA */ phx
/* [00:0172] 5A */ phy
/* [00:0173] 8B */ phb
/* [00:0174] 08 */ php
/* [00:0175] E220 */ sep #$20
/* [00:0177] 8E0243 */ stx $4302
/* [00:017A] 8D0443 */ sta $4304
/* [00:017D] 8C0543 */ sty $4305
/* [00:0180] A901 */ lda #$01
/* [00:0182] 8D0043 */ sta $4300
/* [00:0185] A918 */ lda #$18
/* [00:0187] 8D0143 */ sta $4301
/* [00:018A] A901 */ lda #$01
/* [00:018C] 8D0B42 */ sta $420B
/* [00:018F] 28 */ plp
/* [00:0190] AB */ plb
/* [00:0191] 7A */ ply
/* [00:0192] FA */ plx
/* [00:0193] 68 */ pla
/* [00:0194] 60 */ rts
/* [00:0195] 40 */ rti
/* [00:0196] 0000 */ brk $00
Zero optcode. Exit.
__________________
Ney ney ney. So viel Sand und keine Förmchen

Geändert von Tharo (15.06.2014 um 18:57 Uhr)
Tharo ist offline   Mit Zitat antworten
Alt 18.06.2014, 12:29   #20
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Tharo eine Nachricht über ICQ schicken
Standard AW: Tutorial, Bastel und Hack Projekt

Zeit für ein Statusupdate, hm? Ja natüüüürlich ist es Zeit dafür

Der "grasm" getaufte snes disassembler wächst langsam vor sich hin. Hier ein aktueller std output im "logic" modus.

Code:
Luigi: 
/* [00:8104]	218 */	phx 
/* [00:8105]	8 */	php 
/* [00:8106]	194 */	rep #$30
/* [00:8108]	226 */	sep #$20
/* [00:810A]	156 */	stz $2121
/* [00:810D]	162 */	ldx #$0100
/* [00:8110]	156 */	stz $2122
/* [00:8113]	156 */	stz $2122
/* [00:8116]	202 */	dex 
/* [00:8117]	208 */	bne $0110
/* [00:8119]	40 */	plp 
/* [00:811A]	250 */	plx 
/* [00:811B]	96 */	rts 

BabyLuma: 
/* [00:827D]	8 */	php 
/* [00:827E]	191 */	lda $000000,X
/* [00:8282]	201 */	cmp #$00
/* [00:8284]	240 */	beq $02A1
/* [00:8286]	201 */	cmp #$0D
/* [00:8288]	208 */	bne $0299
/* [00:828A]	194 */	rep #$20
/* [00:828C]	152 */	tya 
/* [00:828D]	105 */	adc #$001F
/* [00:8290]	168 */	tay 
/* [00:8291]	140 */	sty $2116
/* [00:8294]	226 */	sep #$20
/* [00:8296]	232 */	inx 
/* [00:8297]	128 */	bra $027E
/* [00:8299]	233 */	sbc #$20
/* [00:829B]	141 */	sta $2118
/* [00:829E]	232 */	inx 
/* [00:829F]	128 */	bra $027E
/* [00:82A1]	40 */	plp 
/* [00:82A2]	96 */	rts 

Toad: 
/* [00:82A3]	72 */	pha 
/* [00:82A4]	218 */	phx 
/* [00:82A5]	90 */	phy 
/* [00:82A6]	139 */	phb 
/* [00:82A7]	8 */	php 
/* [00:82A8]	226 */	sep #$20
/* [00:82AA]	142 */	stx $4302
/* [00:82AD]	141 */	sta $4304
/* [00:82B0]	140 */	sty $4305
/* [00:82B3]	169 */	lda #$01
/* [00:82B5]	141 */	sta $4300
/* [00:82B8]	169 */	lda #$18
/* [00:82BA]	141 */	sta $4301
/* [00:82BD]	169 */	lda #$01
/* [00:82BF]	141 */	sta $420B
/* [00:82C2]	40 */	plp 
/* [00:82C3]	171 */	plb 
/* [00:82C4]	122 */	ply 
/* [00:82C5]	250 */	plx 
/* [00:82C6]	104 */	pla 
/* [00:82C7]	96 */	rts 

Mario: 
/* [00:80D0]	72 */	pha 
/* [00:80D1]	218 */	phx 
/* [00:80D2]	8 */	php 
/* [00:80D3]	194 */	rep #$30
/* [00:80D5]	226 */	sep #$20
/* [00:80D7]	169 */	lda #$80
/* [00:80D9]	141 */	sta $2115
/* [00:80DC]	162 */	ldx #$1809
/* [00:80DF]	142 */	stx $4300
/* [00:80E2]	162 */	ldx #$0000
/* [00:80E5]	142 */	stx $2116
/* [00:80E8]	134 */	stx $00
/* [00:80EA]	142 */	stx $4302
/* [00:80ED]	169 */	lda #$00
/* [00:80EF]	141 */	sta $4304
/* [00:80F2]	162 */	ldx #$FFFF
/* [00:80F5]	142 */	stx $4305
/* [00:80F8]	169 */	lda #$01
/* [00:80FA]	141 */	sta $420B
/* [00:80FD]	156 */	stz $2119
/* [00:8100]	40 */	plp 
/* [00:8101]	250 */	plx 
/* [00:8102]	104 */	pla 
/* [00:8103]	96 */	rts 

Yoshi: 
/* [00:82C8]	72 */	pha 
/* [00:82C9]	218 */	phx 
/* [00:82CA]	139 */	phb 
/* [00:82CB]	8 */	php 
/* [00:82CC]	226 */	sep #$20
/* [00:82CE]	142 */	stx $4302
/* [00:82D1]	141 */	sta $4304
/* [00:82D4]	140 */	sty $4305
/* [00:82D7]	156 */	stz $4300
/* [00:82DA]	169 */	lda #$22
/* [00:82DC]	141 */	sta $4301
/* [00:82DF]	169 */	lda #$01
/* [00:82E1]	141 */	sta $420B
/* [00:82E4]	40 */	plp 
/* [00:82E5]	171 */	plb 
/* [00:82E6]	250 */	plx 
/* [00:82E7]	104 */	pla 
/* [00:82E8]	96 */	rts 

Peach: 
/* [00:8000]	75 */	phk 
/* [00:8001]	171 */	plb 
/* [00:8002]	169 */	lda #$5B00
/* [00:8005]	174 */	ldx $1FFD
/* [00:8008]	142 */	stx $4372
/* [00:800B]	174 */	ldx $1FFF
/* [00:800E]	142 */	stx $4374
/* [00:8011]	226 */	sep #$20
/* [00:8013]	194 */	rep #$10
/* [00:8015]	169 */	lda #$8F
/* [00:8017]	141 */	sta $2100
/* [00:801A]	162 */	ldx #$2101
/* [00:801D]	116 */	stz $00,X
/* [00:801F]	232 */	inx 
/* [00:8020]	224 */	cpx #$210D
/* [00:8023]	208 */	bne $001D
/* [00:8025]	116 */	stz $00,X
/* [00:8027]	116 */	stz $00,X
/* [00:8029]	232 */	inx 
/* [00:802A]	224 */	cpx #$2115
/* [00:802D]	208 */	bne $0025
/* [00:802F]	169 */	lda #$80
/* [00:8031]	141 */	sta $2115
/* [00:8034]	156 */	stz $2116
/* [00:8037]	156 */	stz $2117
/* [00:803A]	156 */	stz $211A
/* [00:803D]	162 */	ldx #$211B
/* [00:8040]	116 */	stz $00,X
/* [00:8042]	116 */	stz $00,X
/* [00:8044]	232 */	inx 
/* [00:8045]	224 */	cpx #$2121
/* [00:8048]	208 */	bne $0040
/* [00:804A]	162 */	ldx #$2123
/* [00:804D]	116 */	stz $00,X
/* [00:804F]	232 */	inx 
/* [00:8050]	224 */	cpx #$2134
/* [00:8053]	208 */	bne $004D
/* [00:8055]	156 */	stz $213E
/* [00:8058]	156 */	stz $4200
/* [00:805B]	169 */	lda #$FF
/* [00:805D]	141 */	sta $4201
/* [00:8060]	156 */	stz $420B
/* [00:8063]	156 */	stz $420C
/* [00:8066]	156 */	stz $420D
/* [00:8069]	173 */	lda $4210
/* [00:806C]	32 */	jsr $80D0	;->Mario, 
/* [00:806F]	32 */	jsr $8104	;->Luigi, 
/* [00:8072]	156 */	stz $2102
/* [00:8075]	156 */	stz $2103
/* [00:8078]	162 */	ldx #$0080
/* [00:807B]	169 */	lda #$F0
/* [00:807D]	141 */	sta $2104
/* [00:8080]	141 */	sta $2104
/* [00:8083]	156 */	stz $2104
/* [00:8086]	156 */	stz $2104
/* [00:8089]	202 */	dex 
/* [00:808A]	208 */	bne $007D
/* [00:808C]	162 */	ldx #$0020
/* [00:808F]	156 */	stz $2104
/* [00:8092]	202 */	dex 
/* [00:8093]	208 */	bne $008F
/* [00:8095]	156 */	stz $2181
/* [00:8098]	156 */	stz $2182
/* [00:809B]	156 */	stz $2183
/* [00:809E]	162 */	ldx #$8008
/* [00:80A1]	142 */	stx $4300
/* [00:80A4]	162 */	ldx #$80CF
/* [00:80A7]	142 */	stx $4302
/* [00:80AA]	169 */	lda #$00
/* [00:80AC]	141 */	sta $4304
/* [00:80AF]	162 */	ldx #$0000
/* [00:80B2]	142 */	stx $4305
/* [00:80B5]	169 */	lda #$01
/* [00:80B7]	141 */	sta $420B
/* [00:80BA]	169 */	lda #$01
/* [00:80BC]	141 */	sta $420B
/* [00:80BF]	75 */	phk 
/* [00:80C0]	171 */	plb 
/* [00:80C1]	88 */	cli 
/* [00:80C2]	174 */	ldx $4372
/* [00:80C5]	142 */	stx $1FFD
/* [00:80C8]	173 */	lda $4374
/* [00:80CB]	141 */	sta $1FFF
/* [00:80CE]	107 */	rtl
Das ganze Baby funktioniert intern in den folgenden Schritten:
1.) Disassemble
Der vom dispel übernommene Teil: Der ganze Code wird disassembliert und in eine innere Logik-Struktur übertragen. Weil zumindest in meinen selbst zum Test geschaffenen ROM's extrem viele 0en enthalten waren wurde der Code auf das überspringen von zero-blocks ge-tweaked.

2.) Virtual-Walk
Diese Stelle fehlt noch. Ein mini-emulator soll im 2. Schritt über den Code laufen und Memory-Mapping und Window Instruktionen auswerten. Ziel ist es ungefähr bestimmen zu können WO im SNES sich später code befindet.

Gegenwärtig hab ich das noch nicht implementiert.

3.) Labeling
Alle jump und sub-call Methoden werden gescannt und Labels verteilt. Diese haben zunächst Mario-Namen (die ersten 20 Stück) danach die Namen von Pokemons (770 Stück)

4.) Code-Sektions
Das ist im Grunde eine Funktion mit der ich (zZ basierend auf den Labels) Subourinen erkennen will. Ich klappere alle Einsprünge ab und suche nach dem "return".

5.) Logic
Wäre der nächste Schritt. Dabei gehts darum die ganzen register-Adressen in lesbare Namen (basierend auf einem assembler header file) auszutauschen. Da dem Code dadurch mehr oder weniger auch ein Stückweit der "Inhalt" abzulesen ist könnte man die Code-Sektions umbenennen oder in verschiedene Export-Files auslagern.

6.) Ressouce Detection
Weiß man dann wo z.B. CPU oder DMA copy stattfindet könnte man abermals mit einem Mini-Emulator ermitteln von wo bis wo denn verschiedene Ressourcen gespeichert sind.


Natürlich gibt es tausende nerviger Dinge (die ich mir vorstellen könnte) die bei sowas schief gehen. Aber hey. Der Anfang steht, mal schauen wie man dann beim ersten Test mit einem ECHTEN SNES Spiel klar kommt. Dafür mangelt es vor allem am korrekten erkennen des Headers. Dieser hat eine Vector Tabelle mit einem Entry-Jump in den Code (Reset Vector) - leider passt dieser überhaupt nicht so recht zu der Adresse im Code. Hm!
__________________
Ney ney ney. So viel Sand und keine Förmchen

Geändert von Tharo (18.06.2014 um 18:05 Uhr)
Tharo ist offline   Mit Zitat antworten
Antwort

  portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung

Lesezeichen

Stichworte
gba, snes, tutorial


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hp-Hack Schyggi Mülleimer 2 20.01.2010 18:56
Hack-the-net Pc :) Playa_4life Allgemeines Spieleforum 0 02.11.2007 21:27
.hack//fragment Balmung Playstation 2 1 18.10.2005 14:56
Wie bastel ich mir schnell & einfach ein DVD-Menü? Diverphil PC/Mac 6 10.05.2005 15:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:53 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
Template-Modifikationen durch TMS
PortableGaming.de © bk 2000 - 2010

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231