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 25.08.2005, 08:18   #1
 
Registriert seit: 25.08.2005

coredesign hat die Renommee-Anzeige deaktiviert

Daumen hoch Programmierung

hallo liebe community,

ich suche informationen zur programmierung von wonderswan software.
ich habe lange gesucht, leider scheint es unmöglich zu sein wonder witch noch irgendwo zu kaufen. wenn das jemand besitzt und bereit ist zu verkaufen wäre ich sehr interessiert.

falls mir jemand ein paar tipps geben kann wie ich am besten den einstieg schaffe in die wonderswan programmierung, insbesondere auch wie ich dann die software in meinen wonderswan bekomme ohne wonder witch, wäre ich ebenfalls sehr dankbar.

ich habe erfahrung in asm und c programmierung unter 8 bit und 32 bit. die materie ist mir also nicht ganz fremd. so wie ich das mitbekommen habe basiert der wonderswan ja auch auf x86 architektur. nur ist es leider extrem schwer dazu genauere informationen zu bekommen, wenn man der japanischen sprache nicht mächtig ist.

viele grüsse,
coredesign
coredesign ist offline   Mit Zitat antworten
Sponsored Links
Alt 25.08.2005, 08:54   #2
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard RE: programmierung

hi,

Also die wichtigsten Specs/Register/IO-Beschreibung fuer den WS(C) gibts unter

http://cygne.emuunlim.com/files/wstech21.txt (am besten gleich sichern)

Der WS(C) hat ein V30 Cpu, das ist ein 8086 kompatibler Chip, die Opcodes gibts im Internet z.B. unter

http://ivs.cs.uni-magdeburg.de/~zbrog/asm/opcodes.html (gibt genug 80x86 Docs)

Also sollte es ein x86 Assembler (nasm) oder auch ein Compiler machen. Musst halt nur die Adressen anpassen bzw. den ROM-Header. Ich denk aber ersmtal mit dem Assembler etwas auf den Screen zu zuaubern waere das Beste.

Zwecks Flashkarten/Flashern musst du mal Tharo fragen (wenn er mal wieder Internet hat), die basteln da schon einige Zeit an WS(C) Karten rum.

Waere aber eine Tolle Sache wenn man mal etwas auf den Bildschirm des Emulators zu sehen bekommen koennte. Gibt einige Leute die auch Lust darauf haetten, sag hier einfach wie weit du gekommen bist.
goldmomo ist offline   Mit Zitat antworten
Alt 25.08.2005, 22:20   #4
 
Registriert seit: 25.08.2005

coredesign hat die Renommee-Anzeige deaktiviert

Standard

massig material, cool.
klar werd ich ergebnisse posten, muss mich aber erstmal einarbeiten.

vielen dank für die infos!!
coredesign ist offline   Mit Zitat antworten
Alt 27.08.2005, 14:51   #5
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Habe mal etwas rumprobiert, wollte einen Text auf den Bildschirm ausgeben. Leider habe ich ein Problem mit dem Tileformat, habe keine Ahnung welches System das ist. Dachte es wäre (habe auf 16Color Tiles gestellt) einfach Bitweise (4 Bit ein Pixel). Die Tilegrafik ist irgwendwi verschoben. Habe aber auch keine Informationen gefunden warum das so ist, bzw. keinen Konverter für bmp2wsc.
Ansonsten ist die Programmierung recht einfach, x86 Assembler ist sogar ertragbar

Hier mal der Code (übersetzen mit: nasm -f bin -o Demo.wsc Main.s):

Code:
Segment0:	times 65536-$+Segment0 db 0
Segment1:	times 65536-$+Segment1 db 0
Segment2:	times 65536-$+Segment2 db 0
Segment3:	times 65536-$+Segment3 db 0
Segment4:	times 65536-$+Segment4 db 0
Segment5:	times 65536-$+Segment5 db 0
Segment6:	times 65536-$+Segment6 db 0
Segment7:	times 65536-$+Segment7 db 0
Segment8:	times 65536-$+Segment8 db 0
Segment9:	times 65536-$+Segment9 db 0
SegmentA:	times 65536-$+SegmentA db 0
SegmentB:	times 65536-$+SegmentB db 0
SegmentC:	times 65536-$+SegmentC db 0
SegmentD:	times 65536-$+SegmentD db 0
SegmentE:	times 65536-$+SegmentE db 0

SegmentF:
Start:
	cli

	xor	ax, ax
	mov	bx, ax
	mov	cx, ax
	mov	dx, ax
	mov	es, ax
	mov	ds, ax
	mov	bp, ax
	mov	ss, ax
	mov	sp, 0x8000

	xor	ax,ax			
	out	0x00,ax		;all off

	;**** kopiere Teile
	
	mov	ax, 0xf000	;segment 0xf
	mov	ds, ax
	mov	si, font	;source	ds:si
	
	xor	ax, ax
	mov	es, ax			
	mov	di, 0x4000	;destination es:di	(0x4000	ist 16 color tile platz)
	
	mov	cx, 256*128/2

	cld			;nach oben (df = 0)
	rep	movsw		;kopiere word-weise
	
	;**** kopiere Palette
	
	mov	ax, 0xf000	;segment 0xf
	mov	ds, ax
	mov	si, pal	;source	ds:si
	
	xor	ax, ax
	mov	es, ax			
	mov	di, 0xfe00	;destination es:di (palette)
	
	mov	cx, 16*2/2

	cld			;nach oben (df = 0)
	rep	movsw		;kopiere word-weise
	
	;****
	
	xor	ax, ax		;clear scroll
	out	0x10, ax
	out	0x12, ax
		
	mov	al,0x1		;bg layer an
	out	0x0,al

	xor	al, al		;
	out	0x15, al

	in	al, 0x14	;lcd an
	or	al, 0x01
	out	0x14, al

	mov	al,0xc0		;1100 0000 = 16	color unpack
	out	0x60,al
	
	mov	ax,0		;map auf 0
	out	0x07,al
	
	;**** setze
	
	xor	ax,ax
	mov	es, ax		;0 segment
	mov	di,64*8+4*2
	
	mov	ax,0xf000	;segment 0xf
	mov	ds,ax		;
	mov	si,text
	
	xor	ax,ax
nextChar	
	mov	al,[ds:si]
	cmp	al,0
	jz	textLoopEnd
	
	sub	al,32
	mov	[es:di],ax
	
	inc	di
	inc	di
	inc	si
	jmp	nextChar
	
textLoopEnd:
	
	
end	jmp	end	

	align 4
			
pal	dw	0x0400,0x0000,0x0900,0xf000
	dw	0x0000,0x0000,0x0000,0x0000
	dw	0x0000,0x0000,0x0000,0x0000
	dw	0x0000,0x0000,0x0000,0x0000


text	db	"Hello from Goldmomo",0

	align 4
font	incbin	"bg256x256.gfx"

times 65520-$+SegmentF db	0
	db	0xEA	; jmpf
	dw	Start	; Start
	dw	0xF000	; In bank 0xF000
	db	0x00

Header:
	db	0xCD	; Developer ID
	db	0x01	; Wonderswan color(?)
	db	0x01	; Cart number
	db	0x00	; ?
	db	0x03	; Cart Size (8 Mb)
	db	0x00	; SRAM size (0 k)
	db	0x04	; Horizontal game
	db	0x00	; ?
	dw	0x0000	; Checksum (?)
goldmomo ist offline   Mit Zitat antworten
Alt 27.08.2005, 15:04   #6
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Hier die Datein (gfx raw File, und das original).
Angehängte Dateien
Dateityp: zip gfx.zip (21,9 KB, 77x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 29.08.2005, 08:23   #7
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

So habe jetzt mal wieder kurz etwas rumgespielt und auch dieses "16 col/tile 'layered' mode" verstanden (gibt keine Anleitung im Inet dazu).

Je ein Grafikteil mit 8x8 Bildpunkten ist Planar Interleaved aufgebaut (Aehnlich wie beim Amiga, wo man Interleaved Planar mit einen Rutsch mit dem Blitter kopieren konnte). Da es 16 Farben gibt, sind genau 4 Planes vorhanden. Komischerweise (vielleicht ist es auch ein Endianswap bei nasm), kommt erst Plane 1 dann 0 dann 3 und dann 2. Jedes Plane ist 8 Pixelbreit.

Also kommen von Plane 1 erst 8 Bit dann von Plane 0 ....:

Bits (mit Planenummer):

11111111000000003333333322222222 -> Zeile 1
11111111000000003333333322222222 -> Zeile 2
.
.
.

Beim normalen 4 Bit System (nicht reversed wie beim GBA) ist die Ausrichtung so:

32103210321032103210321032103210 -> Zeile 1
32103210321032103210321032103210 -> Zeile 2
.
.
.

Habe auch einen Konverter geschrieben, denn lade ich spaeter mal hoch. Das andere "packed" Format habe ich mir noch nicht angesehen, wenn ich Zeit habe, werd ichs mal machen.

Edit:
Hier gibts noch einige schoene Sachen an Code/Bildern, kann leider nur kein Japanisch

http://jekyll.hp.infoseek.co.jp/jp/ws/_index.htm
goldmomo ist offline   Mit Zitat antworten
Alt 30.08.2005, 10:07   #8
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

der erste der 80 euro spendet bekommt eine wonderswan flashcard umsonst ^^
__________________
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 30.08.2005, 10:13   #9
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Zitat:
Original von Tharo
der erste der 80 euro spendet bekommt eine wonderswan flashcard umsonst ^^
Hab schon Geld in eine PM-Flashkarte+Flasher gesteckt (Lupin wann bekomme ich sie)
Tharo, wie siehts aus? Schon einen Prototypen am laufen, es gibt auch eine "kommerzielle" Flashkarte fuer den WS, die nennt sich Wondermagic und ist natuerlich nirgends zu bekommen
goldmomo ist offline   Mit Zitat antworten
Alt 30.08.2005, 13:57   #10
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

Private finanzielle Probleme haben mich leider das Geld für den Prototypen gekostet. Obwohl, im prinzip von der Planung und Schaltung her alles bereit ist.

Daher halt der Spendenaufruf ^^
__________________
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 30.08.2005, 15:00   #11
 
Registriert seit: 25.08.2005

coredesign hat die Renommee-Anzeige deaktiviert

Standard

eine originale oder selbst gebaute? wieviel speicherplatz ist da drauf, nur die 64kb oder ist es ne vollwertige wsc flashcard? obwohl 80€ nicht gerade billig ist
coredesign ist offline   Mit Zitat antworten
Alt 30.08.2005, 15:28   #12
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Wie ist eigentlich die Adresslogik bei der Flahskarte, weil die ersten 64k fuer den internen Ram benutzt werden und die zweiten 64k fuer SRAM. Dann kann man auch noch ueber den Port $C0 die ROM-Baenke andere Sectionen (64K) zuweisen. Wird das alles aufegloesst, oder muss da noch eine extra Logik in die Flashkarte?

Edit: Unter Linux/cygwin gibts auch einen 8086 C-Compiler (K&R kein Ansi), der name ist bcc. Funktioniert ganz gut, aber die Optimierungen vom Code sind, naja ... Zum einfachen Asm-Code erzeugen reichts aber.
goldmomo ist offline   Mit Zitat antworten
Alt 01.09.2005, 16:12   #13
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

Um die Frage zu beantworten: Ja, da muss ein extra logic auf die Karte.

Sie wird nur 64K haben bis ich meinen FPGA beigebracht habe die bankswitches erfolgreich durchzuführen .. und natürlich ist es einiges an Arbeit für mich.

80€ 'donation' brauch es für das ganze equipment zum programmieren der chips (das ich noch nicht besitze)

Die finale karte wird voll bestückt mit 2 MB etwa so um die 25E das stück kosten .. und austauschbare flashchips haben .. man kann also für etwa 5E neue chips kaufen usw.

Und ja, sie ist selbstgebaut (logischerweise) aber ohne internet und technisches zeug kann ich im moment leider wirklich nciht weiter machen sonst wär sie schon seit 3 monaten fertig ...
__________________
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 16.09.2005, 18:58   #14
 
Registriert seit: 16.09.2005

masen hat die Renommee-Anzeige deaktiviert

Standard

hi,

wichitge frage hat jedoch nicht wirklich was mit der wonderswan programmierung zu tun . hab heute meinen wonderswan swancrystal bekommen. hab jedoch noch keine spiele um den richtig zu testen. wenn ich ihn jedoch ohne eingelegten spiel anschalte blinkt nur dieses statusleiste rechts kurz schwarz auf und dann passiert nix, das gerät scheint aus zu sein. deswegen wollte ich fragen ob das normal ist oder mein gerät defekt ist .

danke im voraus ^^
masen ist offline   Mit Zitat antworten
Alt 16.09.2005, 19:11   #15
 
Registriert seit: 11.09.2005

autobahn hat die Renommee-Anzeige deaktiviert

Standard

Zitat:
Original von masen
hi,

wichitge frage hat jedoch nicht wirklich was mit der wonderswan programmierung zu tun . hab heute meinen wonderswan swancrystal bekommen. hab jedoch noch keine spiele um den richtig zu testen. wenn ich ihn jedoch ohne eingelegten spiel anschalte blinkt nur dieses statusleiste rechts kurz schwarz auf und dann passiert nix, das gerät scheint aus zu sein. deswegen wollte ich fragen ob das normal ist oder mein gerät defekt ist .

danke im voraus ^^
Das ist völlig normal, keine Panik
autobahn ist offline   Mit Zitat antworten
Alt 16.09.2005, 19:16   #16
 
Registriert seit: 16.09.2005

masen hat die Renommee-Anzeige deaktiviert

Standard

hehe ^^ vielen dank . dacht nur das es ja hätte sein können das es sone art bios gibt oder zumindest ein Wonderswan logo erscheint . und da meine spiele wohl erst ankommn werden nachdem mein rückgabe recht erloschen ist wollte ich auf nummer sicher gehen ^^
masen ist offline   Mit Zitat antworten
Alt 30.09.2005, 16:35   #17
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

So, habe jetzt mal ein Konvertool geschrieben. Das aus einem Bild ein wscraw (nur der planar modus) und palette macht. Aufruf wie folgt (z.B.:

pic2wsc.exe meinBild.png pic.raw pic.pal

Hoffe es geht auch bei euch (und es geht keine QT dll ab). Quellecode liegt bei (da es unter GPL liegt (dank GNU-QT4 auch muss)).

Zwei Assemblerprogramme mit Textausgabe und Bildausgabe haengen auch dran.

Den 4 Color Modus habe ich noch nicht getestet bzw. den nicht planar modus noch nicht implementiert, hab auch diese Woche wohl keine Zeit mehr dafür (kann auch jemand von euch machen, ist einfach).

Wäre schön wenn jemand das tool mal ausprobiert und sagt obs geht.
Miniaturansicht angehängter Grafiken
Programmierung-capture.jpg   Programmierung-capture.png  
Angehängte Dateien
Dateityp: zip wsc.zip (168,0 KB, 122x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 01.10.2005, 14:13   #18
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Auch wenns keine interessiert , hier das "fertige" pic2wsc.
Kann beide 16 Farbenmodies (linear/planar), unterstützt nun auch den 4 Farbenmodus, habs getestet, funktionert :P

C++ Sourcen liegen bei (wie gesagt muss GPL sein).
Angehängte Dateien
Dateityp: zip pic2wsc.zip (96,5 KB, 67x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 03.10.2005, 15:34   #19
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

Ich hab absolut intresse ^^ ab diesem we hab ich wieder internet wir labern dann im irc
__________________
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 04.10.2005, 19:16   #20
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Hier mal ein HBlank Demo, da kann man schön sehen wie die Interrupts funktionieren.

@Tharo

Ja, wird Zeit das du wieder Inet hast, dann sieht man sich im IRC.
Miniaturansicht angehängter Grafiken
Programmierung-capture.jpg  
Angehängte Dateien
Dateityp: zip wsc_hblankDemo.zip (6,9 KB, 68x aufgerufen)
goldmomo 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
hilfe bei c programmierung-bin komplett neu jnk Development Abteilung 19 31.03.2006 08:49
N-Gage Programmierung? alan_ford Sonstiges (N-Gage) 1 08.09.2004 11:19
DMA Programmierung mad4media Development Abteilung 2 15.02.2003 15:43


Alle Zeitangaben in WEZ +2. Es ist jetzt 04: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