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 09.07.2003, 18:16   #1
 
Registriert seit: 05.06.2003
Alter: 34

Anaconda hat die Renommee-Anzeige deaktiviert

Anaconda eine Nachricht über ICQ schicken
Standard LCD Control

Ich habe eine Frage zu dieser Speicheradresse:

000h R/W DISPCNT LCD Control

diese enthält ja die Einstellungen für das LCD Display, aber wieso ist die nicht bis 000Fh? Es müssen ja 16 bit da rein, aber so passen ja nur 2 rein, oder irre ich mich da?

die darauffolgende Speicheradresse ist:

002h R/W - Undocumented - Green Swap
Anaconda ist offline   Mit Zitat antworten
Sponsored Links
Alt 09.07.2003, 19:08   #2
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト
Spielt gerade: FF7 Remake

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

Standard

das h am ende bedeutet das die zahlen davor hexzahlen sind -_-
__________________
Ney ney ney. So viel Sand und keine Förmchen

Code:
Hey DU! Join uns im PG Discord! https://discord.gg/SVqutfFpTc
Tharo ist offline   Mit Zitat antworten
Alt 09.07.2003, 19:21   #3
 
Registriert seit: 05.06.2003
Alter: 34

Anaconda hat die Renommee-Anzeige deaktiviert

Anaconda eine Nachricht über ICQ schicken
Standard

schon klar, aber trotzdem sinds nur 2 bit

Hmm, wäre es möglich das statt 2 bit wie ich meine 32 bit darin platz haben??
Anaconda ist offline   Mit Zitat antworten
Alt 09.07.2003, 19:55   #4
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Das 000 und 002 steht für die Adresse des Registers (Relativ zu Basis $4000000).
Und die Adresse 002 ist also 2 BYTE höher als 000, also passen in die 000 2Byte rein (16Bit).
Wie DA schon gesagt hat steht das h für hex manche schreiben auch $002 oder
0x002.
goldmomo ist offline   Mit Zitat antworten
Alt 09.07.2003, 19:57   #5
 
Registriert seit: 05.06.2003
Alter: 34

Anaconda hat die Renommee-Anzeige deaktiviert

Anaconda eine Nachricht über ICQ schicken
Standard

also sind die register immer in BYTES angegeben?

darf ich mal raten warum das diese 2 Bytes unterschied haben, weil die CPU einen 16bit BUS hat und darum immer 16 bit ansprechen kann?
Anaconda ist offline   Mit Zitat antworten
Alt 09.07.2003, 20:10   #6
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Also, Adressen werden normalerweise immer Byteweise gezählt.
Viele Register des GBAs sind 16Bit breit, es gibt aber auch 32Bit breite.
Der IO-Ram hat einen 32Bit-Bus, also daran liegts wohl eher nicht.
goldmomo ist offline   Mit Zitat antworten
Alt 09.07.2003, 20:24   #7
 
Registriert seit: 05.06.2003
Alter: 34

Anaconda hat die Renommee-Anzeige deaktiviert

Anaconda eine Nachricht über ICQ schicken
Standard

ich muss jetz doch noch etwas fragen:

010h wären das dann 128bit?
Anaconda ist offline   Mit Zitat antworten
Alt 09.07.2003, 20:33   #8
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

ja, denn 10h Byte = 16Byte = 128Bit
goldmomo ist offline   Mit Zitat antworten
Alt 10.07.2003, 11:50   #9
 
Registriert seit: 05.06.2003
Alter: 34

Anaconda hat die Renommee-Anzeige deaktiviert

Anaconda eine Nachricht über ICQ schicken
Standard

Eine weitere (für euch profis sicher lächerliche) frage:

Warum weiss das programm das es sich bei der Adresse von z.b MODE_1 0x0 um eine Adresse in 0x4000000 handelt??

Code:
/****************************************\
/ screenmode.h \
/ by Dovoto \
\****************************************/

#ifndef SCREENMODE_H
#define SCREENMODE_H

///// REG_DISPCNT defines

#define MODE_0 0x0
#define MODE_1 0x1
#define MODE_2 0x2
#define MODE_3 0x3
#define MODE_4 0x4
#define MODE_5 0x5

#define BACKBUFFER 0x10
#define H_BLANK_OAM 0x20

#define OBJ_MAP_2D 0x0
#define OBJ_MAP_1D 0x40

#define FORCE_BLANK 0x80

#define BG0_ENABLE 0x100
#define BG1_ENABLE 0x200 
#define BG2_ENABLE 0x400
#define BG3_ENABLE 0x800
#define OBJ_ENABLE 0x1000 
#define WIN1_ENABLE 0x2000 
#define WIN2_ENABLE 0x4000
#define WINOBJ_ENABLE 0x8000

//this define is not really necessary as it is defined in gba.h (in fact it will probably give you an error)
//#define REG_DISPCNT * (u16*)0x4000000 //define that address as a pointer and dereference it

///////SetMode Macro

#define SetMode(mode) REG_DISPCNT = (mode) 
#endif
und noch eine:

Wenn ich ja dann die SetMode funktion aufrufe dann kann ich ja mehrere parameter so übergeben: (MODE_1 | BG0_ENABLE) werden dann die beiden hexzahlen (0x0, 0x100) zusammengezählt oder was??

und noch ne letzte:

ich könnte statt:

#define MODE_0 0x0

auch:

#define MODE_0 0h

schrieben, oder?
Anaconda ist offline   Mit Zitat antworten
Alt 10.07.2003, 12:12   #10
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Also die defines mit den 0x2 0x8 ,... schreibst du doch immer mit der Basis.

z.B.:

volatile unsigned short int *basis = REG_DISPCNT;

basis[REG_DISPCONT]=0x1234;


---------

Der | bedeutet oder in C, d.h. die Zahlen werden verodert

Bitweise läuft oder so:

(a | b = c)

ab c
00 0
01 1
10 1
11 1

Beispiel:

0x100 | 0x280 | 0x2 = 0x382

Du darfst es nicht mit einer Addition verwechslen, obwohl es in vielen Fällen ähnlich ist.

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

Zu den 0h geschreibe,

in C schreibt man immer 0x, das 0h war beim C64 Assembler so, das $0 kommt von den 68k Maschinen. Ich mag das $

Ich würde auch vorsichtig sein in C eine 0 vor eine Zahl zu schreiben!!!
Denn 023 = 19, da eine führende 0 in C bedeutet, dass es sich um eine Oktalzahl handelt!
goldmomo ist offline   Mit Zitat antworten
Alt 10.07.2003, 12:44   #11
 
Registriert seit: 05.06.2003
Alter: 34

Anaconda hat die Renommee-Anzeige deaktiviert

Anaconda eine Nachricht über ICQ schicken
Standard

aber wo wird diese basis in screenmode.h definiert?
möglicherweise in dem Makro ganz am ende?

sozusagen erhält REG_DISPCNT den (hex-) wert den die parameter ergeben die man beim aufrufen von Setmode übergibt. liege ich richtig??

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

also wenn ich beim verodern nun

0x100 | 0x900 | 0x550 hätte dann wäre das 0xF50 ?
Anaconda ist offline   Mit Zitat antworten
Alt 10.07.2003, 12:53   #12
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Also Basis + Offset = Adresse

0x400000 + 0x4 = 0x4000004

Die sind in dem H.file als Macros definiert.

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


0x100 | 0x900 | 0x550 ist nicht 0xf50

Binär geshen ist es so (die Bits werden verodert)

0001 0000 0000 = 0x100
1001 0000 0000 = 0x900
0101 0101 0000 = 0x550
------------------
1101 0101 0000 = 0xd50
goldmomo ist offline   Mit Zitat antworten
Alt 11.07.2003, 13:17   #13
 
Registriert seit: 05.06.2003
Alter: 34

Anaconda hat die Renommee-Anzeige deaktiviert

Anaconda eine Nachricht über ICQ schicken
Standard

Danke, das mit dem verodern habe ich jetzt glaub begriffen, werde aber sicher noch ein paar andere fragen hierzuhaben...
Anaconda ist offline   Mit Zitat antworten
Antwort

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

Lesezeichen


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
Remote Control for PSP Galabriel Multimedia (PSP) 49 17.01.2010 15:40
Parental Control Alexandra-Bijou Sonstiges 20 02.06.2007 07:53
PS2 Remote Control Digger Homebrew (PSP) 0 17.12.2006 11:35
Control Enemy Glitch in FE:SS Kaito-KID Fire Emblem (GBA) 10 04.11.2005 15:36
Ground Control II Pjotr. PC/Mac 2 12.08.2004 13:37


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:24 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2021, 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