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 13.02.2006, 15:06   #1
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Daumen hoch Development

Da ich mal wieder etwas Zeit hatte und ich auch mal wieder NES gezockt habe (da mussten die nextgen-Konsolen traurig in der ecke liegen). Ist mur doch gleich die Idee gekommen, etwas fuer die Kiste zu programmieren.

Die technischen Daten sind wirklich beeindruckend, 2kByte RAM und 2kByte VRAM, dann einen 6502-Klone mit 1,7MHz. An Emulatoren gibt es ne menge an Auswahl (z.B. NO$NES mit sehr guten Debugfeaturen).
Einen Assembler hab ich auch gefunden und auch schon was Assemblieren koennen, muss mich nurnoch in die Technik etwas einarbeiten, sieht aber nicht so schlimm aus.

Also, hat hier jemand bock mal was fuers nes mitzumachen?
Tharo, bauste eine Flashkarte (gibt so ein Sicherheitsfeature was man im NES abschalten kann (Loeten)) (siehe http://home.freeuk.net/markk/Consoles/NES_Lockout.txt)?

Edit: Achso, gibt sogar ein Basic-Intepreter dafuer.
goldmomo ist offline   Mit Zitat antworten
Sponsored Links
Alt 14.02.2006, 10:29   #2
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard RE: NES Development

So, habe noch einige interessante Sachen gefunden.
Jedes Modul hat einen Memorykontroller dabei, diese unterscheiden sich allerdings je nach Spiel.
Sie bieten sogar die Moeglichkeit extra RAM/Sound/GFX-Funktionen/... dem System anzubieten. Es werden dann Splitscreens, mehr GFX/CPU-RAM, extra Sound (auch FM) und z.B. HBlank-IRQ unterstuezt.
Eine Liste der Chips gibts hier:

http://en.wikipedia.org/wiki/Multi-Memory_Controller

Eine Anleitung fuer den interessantesten Chip (MMC5) gibts hier:

http://nesdev.parodius.com/mmc5-e.txt

Der NES Schaltplan ist hier:

http://nesdev.parodius.com/Ntd_8bit.jpg

Eine SRAM-Karte gibt es auch, sieht aber etwas Wild aus, muss mal nach besseren suchen.
goldmomo ist offline   Mit Zitat antworten
Alt 14.02.2006, 13:44   #3
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

Ein bekannter Techniker von mir "Memblers" stellt selbst NES dev boards her. Sie sind ziemlich beliebt in kleinen Kreisen. Aber sie sind NICHT dazu geeignet ROM'z Abzuspielen also wirklich ausschließlich zum selber Programmieren da.
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 14.02.2006, 13:49   #4
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Achso, deshalb kam mir der Name so bekannt vor, habe da irgendwas in den NES-Dev Sachen gelesen. Der war doch immer im IRC, werde mich dort mal wieder blicken lassen, eine Dev-Karte waere schon toll, ROMs sind mir eh egal (bei den ganzen verschiedenen Extra GFX../../SRam/EEprom Cartridge-Varianten auch eher unmoeglich).
goldmomo ist offline   Mit Zitat antworten
Alt 14.02.2006, 19:16   #5
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

So ist es, es hat bissher noch niemand eine zu 100% funktionierende Karte bauen können die auch wirklich mit allen Spielen klar kam.

Er ist zZ nicht mehr soo oft im IRC aber wenn ich ihn sehe werd ich ihn nochmal nach preisen usw fragen. Kein problem ^^
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 20.02.2006, 18:22   #6
Jim männlich
 
Benutzerbild von Jim
 
Registriert seit: 14.08.2005

Jim hat die Renommee-Anzeige deaktiviert

Standard

Ich hab mich jetzt auch mal mit dem NES auseinandergesetzt. Allerdings hab ich bis jetzt nur 1 Assembler mit passendem Code zum laufen bekommen, den NESASM. Da ich mir aber unsicher bin ob es sich lohnt sich da weiter einzuarbeiten, da sich der Code der Assembler ziemlich unterscheidet, wollte ich fragen welchen Assembler du denn benutzt goldmomo?
Jim ist offline   Mit Zitat antworten
Alt 20.02.2006, 18:42   #7
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Habe p65 genommen, der ist ganz nett und da er ein Perlscript ist, läuft er eigentlich überall. Habe ihn jetzt erstmal unter cygwin laufen lassen.
Ich würde es SEHR TOLL finden wenn jemand mitmacht, denn ich kenn mich mit dem nes auch kaum aus und immer nur für sich alein Programmieren ist auch langweilig.
goldmomo ist offline   Mit Zitat antworten
Alt 20.02.2006, 22:40   #8
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

Ich bin leider immernoch beim wonderswan und bis ich dort nicht sprites usw usw alles mal programmiert habe werd ich wohl auch erstmal kein neues system anfangen (wie man sicher verstehen kann)
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 21.02.2006, 21:26   #9
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

So hier mein erstes Programm, gibt nur einen Text auf dem Bildschirm aus. Einfach den Sourcecode mit p65 assemblieren und es geht .
Das Font und die Palette habe ich aus irgend einem Beispielfile geklaut.

Code:
	.ascii "NES"	
	.byte $1a 		

	.byte $01	; Number of PRG-ROM blocks
	.byte $01	; Number of CHR-ROM blocks


	.byte $00, $00					; ROM control bytes: Horizontal mirroring, no SRAM or trainer, Mapper #0
	.byte $00,$00,$00,$00,$00,$00,$00,$00		; Filler
	
	;----------------------------------------
	
	.segment zp
	.org $0000
	.space dx 1
	.space a 1
	.space scroll 1
	
	;----------------- PRG ------------------
	
	.text
	.org $C000
reset:	
	sei	;irqs an
	cld	;clear dezimal mode ??
	
	;**** 2 vbl wait
	
*	lda $2002	;ppu status (bit 7 = vbl)
	bpl -
*	lda $2002
	bpl -
	
	cli	;irqs aus
	
	;**** palette kopieren
	
	lda	#<palette	;<<8
	ldx	#>palette	;>>8
	sta	$20
	stx	$21
	jsr	loadPalette
	
	;**** setze bg
	
	lda	#<text	;<<8
	ldx	#>text	;>>8
	sta	$20
	stx	$21
	
	lda	#0
	ldx	#68	; 2 zeile + 4 zeichen 
	
	jsr	printText
	
	;**** gfx an
	
	lda #$00	;VRAM = 0
        sta $2000
        lda #$0e	;no clipping, bg on
        sta $2001
	
	;**** ende
	
end:   jmp end

vblank:	rti
irq:	rti

;********************************************************
;*
;* loadPalette
;*
;* $20 $21 = adr. von Palette
;*

loadPalette:
	
	lda	#$3f	;$3f00 is Palette memory
	ldy	#$00
	
	sta	$2006	;Adresse in Port
	sty	$2006	; = $3f00
	
*	lda	($20),y	;a = (*$20+y)
	iny
	sta	$2007	;in port
	cpy	#32	
	bne	-	
	
	rts

;********************************************************
;*
;* printText
;*
;* $20 $21 = adr. von Text
;*
;* a = pos x (h8)
;* x = pos y (l8)
;*

printText:

        clc		;clear carry
        adc #$24	;+$24
        
        sta $2006
        stx $2006	;adr $2400
        
        ldy #0
*       lda ($20),y
	beq +
	iny
        sta $2007
        jmp -
*	rts

;**** data

text:	.ascii "HELLO FROM GOLDMOMO"
	.byte	0

palette:
	.byte $0E,$00,$0E,$19,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$21
	.byte $0E,$20,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

	.advance $FFFA
	.word vblank, reset, irq
	
	;----------------- CHR -------------------
	
	.org $0000
	
	
	.advance $0200	;skip 32
	
	.byte $00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 32
	.byte $18,$18,$18,$18,$00,$00,$18,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 33
	.byte $66,$66,$66,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 34
	.byte $66,$66,$FF,$66,$FF,$66,$66,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 35
	.byte $18,$3E,$60,$3C,$06,$7C,$18,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 36
	.byte $62,$66,$0C,$18,$30,$66,$46,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 37
	.byte $3C,$66,$3C,$38,$67,$66,$3F,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 38
	.byte $06,$0C,$18,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 39
	.byte $0C,$18,$30,$30,$30,$18,$0C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 40
	.byte $30,$18,$0C,$0C,$0C,$18,$30,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 41
	.byte $00,$66,$3C,$FF,$3C,$66,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 42
	.byte $00,$18,$18,$7E,$18,$18,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 43
	.byte $00,$00,$00,$00,$00,$18,$18,$30,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 44
	.byte $00,$00,$00,$7E,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 45
	.byte $00,$00,$00,$00,$00,$18,$18,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 46
	.byte $00,$03,$06,$0C,$18,$30,$60,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 47
	.byte $3C,$66,$6E,$76,$66,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 48
	.byte $18,$18,$38,$18,$18,$18,$7E,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 49
	.byte $3C,$66,$06,$0C,$30,$60,$7E,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 50
	.byte $3C,$66,$06,$1C,$06,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 51
	.byte $06,$0E,$1E,$66,$7F,$06,$06,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 52
	.byte $7E,$60,$7C,$06,$06,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 53
	.byte $3C,$66,$60,$7C,$66,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 54
	.byte $7E,$66,$0C,$18,$18,$18,$18,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 55
	.byte $3C,$66,$66,$3C,$66,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 56
	.byte $3C,$66,$66,$3E,$06,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 57
	.byte $00,$00,$18,$00,$00,$18,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 58
	.byte $00,$00,$18,$00,$00,$18,$18,$30,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 59
	.byte $0E,$18,$30,$60,$30,$18,$0E,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 60
	.byte $00,$00,$7E,$00,$7E,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 61
	.byte $70,$18,$0C,$06,$0C,$18,$70,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 62
	.byte $3C,$66,$06,$0C,$18,$00,$18,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 63
	.byte $3C,$66,$6E,$6E,$60,$62,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 64
	.byte $18,$3C,$66,$7E,$66,$66,$66,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 65
	.byte $7C,$66,$66,$7C,$66,$66,$7C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 66
	.byte $3C,$66,$60,$60,$60,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 67
	.byte $78,$6C,$66,$66,$66,$6C,$78,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 68
	.byte $7E,$60,$60,$78,$60,$60,$7E,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 69
	.byte $7E,$60,$60,$78,$60,$60,$60,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 70
	.byte $3C,$66,$60,$6E,$66,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 71
	.byte $66,$66,$66,$7E,$66,$66,$66,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 72
	.byte $3C,$18,$18,$18,$18,$18,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 73
	.byte $1E,$0C,$0C,$0C,$0C,$6C,$38,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 74
	.byte $66,$6C,$78,$70,$78,$6C,$66,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 75
	.byte $60,$60,$60,$60,$60,$60,$7E,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 76
	.byte $63,$77,$7F,$6B,$63,$63,$63,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 77
	.byte $66,$76,$7E,$7E,$6E,$66,$66,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 78
	.byte $3C,$66,$66,$66,$66,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 79
	.byte $7C,$66,$66,$7C,$60,$60,$60,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 80
	.byte $3C,$66,$66,$66,$66,$3C,$0E,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 81
	.byte $7C,$66,$66,$7C,$78,$6C,$66,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 82
	.byte $3C,$66,$60,$3C,$06,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 83
	.byte $7E,$18,$18,$18,$18,$18,$18,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 84
	.byte $66,$66,$66,$66,$66,$66,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 85
	.byte $66,$66,$66,$66,$66,$3C,$18,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 86
	.byte $63,$63,$63,$6B,$7F,$77,$63,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 87
	.byte $66,$66,$3C,$18,$3C,$66,$66,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 88
	.byte $66,$66,$66,$3C,$18,$18,$18,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 89
	.byte $7E,$06,$0C,$18,$30,$60,$7E,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 90
	.byte $3C,$30,$30,$30,$30,$30,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 91
	.byte $0C,$12,$30,$7C,$30,$62,$FC,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 92
	.byte $3C,$0C,$0C,$0C,$0C,$0C,$3C,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 93
	.byte $00,$18,$3C,$7E,$18,$18,$18,$18,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 94
	.byte $00,$10,$30,$7F,$7F,$30,$10,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Character 95

	.advance $2000
In dem zip file ist alles drin (auch p65), einfach unter linux oder windows mit cygwin mit make maken
Miniaturansicht angehängter Grafiken
Development-capture.png  
Angehängte Dateien
Dateityp: zip test1.zip (11,5 KB, 71x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 22.02.2006, 21:00   #10
Jim männlich
 
Benutzerbild von Jim
 
Registriert seit: 14.08.2005

Jim hat die Renommee-Anzeige deaktiviert

Standard

Hier mein erster Versuch. Es war der Versuch ein möglichst kleines Programm zu schreiben (gerade das nötigste). Mit dem iNES Header bekommt man allerdings keine kleinere Datei als 16KB hin. Jeder Emulator (den ich bisher getestet habe) spuckt dann nämlich die Fehlermeldung aus, das die Datei zu klein sei.

Das Programm selber hat nur den Header und eine Loop Schleife die den Wert $FF in den X Register schreibt.

Code:
; iNES header

; iNES identifier
.ascii "NES"
.byte $1a 

; Number of PRG-ROM blocks
.byte $01

; Number of CHR-ROM blocks
.byte $00

; ROM control bytes: Horizontal mirroring, no SRAM
; or trainer, Mapper #0
.byte $00, $00

; Filler
.byte $00,$00,$00,$00,$00,$00,$00,$00

.text
.org $C000

loop:
     ldx #$FF
     jmp loop

.advance $FFFE
.word loop
Jim ist offline   Mit Zitat antworten
Alt 22.02.2006, 22:02   #11
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Das mit den Mappern und (V)ROM - Groessen ist wirklich komisch. Einige Mapper haben doch einen Funken Wahnsinn in sich
goldmomo ist offline   Mit Zitat antworten
Alt 23.02.2006, 20:53   #12
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

Also, ich hab hier ein verarsche - Bild gefunden und hab mir gedacht "hey goldmomo und dieser unbekannte typ im forum machen grad nes - machste doch mit und baust mal ein spiel zu dem Bild" und tja, nun mach ich wohl doch nes ^^

Also es sieht so aus, dass ich noch keine echte Spielidee dazu habe. Vor allem ist es ja auch so, dass ich es nicht übertreiben will es soll ja schließlich kein Mamutprojekt werden.

Wer also eine Idee zu dem Bild hat kann sie hier gerne verkünden. Und - Achja - natürlich wie man dem Bild ansehen kann, mach ich das mal wieder einzigt und allein zur belustigung. Ich fänd es urkomisch wenn zu so einem mist auchnoch ein kurzes spiel geschrieben werden würde ^^
Miniaturansicht angehängter Grafiken
Development-1140715688372.gif  
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 24.02.2006, 09:08   #13
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

So hier mal einige Infos zum NES, damit man sieht was moeglich ist (bzw. was nicht).
Tharo kannst dir ja mal ueberlegen was man machen keonnte, aber wirklich was sehr simples.

GFX:

Aufloesung 256x240.
Zwei Tilemaps sind verfuegbar, immer nur eine Auswaehlbar fuer BG und Sprite.

Background:

Jede Tilemap hat 8x8 Tiles (also 256), jedes Tile ist 8x8 Pixel gross und hat 4 Farben.
Im Bereich von 2x2 Tiles koennen auch andere Paletten benutzt werden (max 4 Paletten mit je 4 Farbe (1 Trp.))
(mit MMC5 auch pro Teil).

Palette:

Es stehen 64 Farbwerte zur verfuegung, allerdings sind nur 56 benutzbar, da einige schwarz sind.
Die Farben sind vorgegeben.

Sprites:

Es sind max. 64 Sprites moeglich (jedes max 4 Colors (1 Trp.)), groesse ist 8x8 oder 8x16 (fuer alle). Die Tiledaten keonnen sich mit den
BG Daten geteilt werden. Es gibt pro Sprite einen h/v flip und einen vor/hinter BG Einstellung.
Es stehen pro Sprite 4 Paletten zur Verfuegung. In einer Zeile sind max. 8 darstellbar (ansonsten Spritegeflacker, ist typisch fuer viele NES Spiele).

Sound:

Scheinen 5 Generatoren zu sein und einen 4Bit DAC, ich habs mal ueberflogen, sieht nicht viel anders aus wie beim GBA/GB (mal vom FM-Port beim GBA abgesehen).

CPU + (CPU Ram):

Ram: 2KByte \o/
Die cpu ist ein 6502 Clone ("relative" schnell (1.77Mhz)). Von der Programmierung her spartanisch, aber benutzbar. Hier sollte man vielleicht
nicht zu komplexe Dinge programmieren.
goldmomo ist offline   Mit Zitat antworten
Alt 24.02.2006, 09:53   #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

Hmm man könnte einen parodius like shooter machen wo man einen kleinen Kaktus fliegt udn gegen FFX-2 SuperDeformed Figuren zu kampfe fliegt ^^
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 24.02.2006, 18:10   #15
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

So, hier mal ein Sprite in Action.

Code:
	.ascii "NES"	
	.byte $1a 		

	.byte $01	; Number of PRG-ROM blocks
	.byte $01	; Number of CHR-ROM blocks


	.byte $00, $00					; ROM control bytes: Horizontal mirroring, no SRAM or trainer, Mapper #0
	.byte $00,$00,$00,$00,$00,$00,$00,$00		; Filler
	
	;----------------------------------------
	
	.segment zp
	.org $0		; zero page
	
	.org $0200	; gp-mem

	.space spx 1
	.space spy 1
	
	.space spax 1
	.space spay 1
		
	;----------------- PRG ------------------
	
	.text
	.org $C000
reset:	
	sei	;irqs an
	cld	;clear dezimal mode ??
	
	;**** 2 vbl wait
	
*	lda $2002	;ppu status (bit 7 = vbl)
	bpl -
*	lda $2002
	bpl -
	
	cli	;irqs aus
	
	;**** palette kopieren
	
	lda	#<palette	;<<8
	ldx	#>palette	;>>8
	sta	$20
	stx	$21
	jsr	loadPalette
	
	;**** set
	
	lda	#3
	sta	spax
	lda	#2
	sta	spay
	
	lda	#120
	sta	spx
	lda	#$0
	sta	spy
	
	;**** gfx an
	
	lda #$80	;VRAM = 0 SPRAM = 0, VBLANK an
        sta $2000
        lda #$16	;no clipping, sprites an
        sta $2001	
		
	;**** ende
	
end:   jmp end

;********************************************************
;*
;* vblank
;*
;* 
;*

vblank:	
	pha

	;**** move sprite 
	
	;**** x
	
	lda	spx
	clc
	adc	spax
	sta	spx
	
	;**** limit x
	
	lda	spx
	cmp	#0
	beq	negAX
	cmp	#256-8
	bcc	noAX	;kleiner
	
negAX:	
	lda	#0
	sec
	sbc	spax
	sta	spax
noAX:	
		
	;**** y	
		
	lda	spy
	clc
	adc	spay
	sta	spy
	
	;**** limit y
	
	lda	spy
	cmp	#0
	beq	negAY
	cmp	#240-8
	bcc	noAY	;kleiner
	
negAY:	
	lda	#0
	sec
	sbc	spay
	sta	spay
noAY:		
	
	;**** draw/set sprite
		
  	lda	#0
  	sta	$2003	;2003h - SPR-RAM Address Register (W)
  	
  	lda	spy	;
  	sta	$2004	;2004h - SPR-RAM Data Register (RW)
  	
  	lda	#$01	; Tile 1
  	sta	$2004
  	
  	lda	#$00	; no flip ...
  	sta	$2004
  	
  	lda	spx	; X
  	sta	$2004
  	
  	;****

  	pla  	
	rti
	
irq:	rti

;********************************************************
;*
;* loadPalette
;*
;* $20 $21 = adr. von Palette
;*

loadPalette:
	
	lda	#$3f	;$3f00 is Palette memory
	ldy	#$00
	
	sta	$2006	;Adresse in Port
	sty	$2006	; = $3f00
	
*	lda	($20),y	;a = (*$20+y)
	iny
	sta	$2007	;in port
	cpy	#32	
	bne	-	
	
	rts

;**** data

palette:
	.byte $0E,$00,$0E,$19,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$21
	.byte $0E,$20,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

	.advance $FFFA
	.word vblank, reset, irq
	
	;----------------- CHR -------------------
	
	.org $0000
	
	.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ; BG	
	.byte 	$00,$42,$24,$18,$18,$24,$42,$0,$81,$0,$24,$0,$0,$24,$00,$81   ; Sprite

	.advance $2000
Angehängte Dateien
Dateityp: zip test2.zip (9,8 KB, 65x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 28.02.2006, 15:04   #16
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Habe jetzt mal den Mapper MMC3 dazu benutzt um einen HBlank zu erzeugen. Scheint mit den meisten Emulatoren zu gehen, obs auf dem Original läuft?

Das Demo ändert nur die Blankwiederholung, deshalb sieht es aus wie ein V-Zoom (kein korrekter).
Miniaturansicht angehängter Grafiken
Development-capture.png  
Angehängte Dateien
Dateityp: zip testHBlank.zip (10,6 KB, 63x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 28.02.2006, 15:31   #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

Memblers hat seine neuen NES boards fertig

http://memblers.home.comcast.net/Pic205.jpg
http://memblers.home.comcast.net/Pic204a.jpg
__________________
Ney ney ney. So viel Sand und keine Förmchen
Tharo ist offline   Mit Zitat antworten
Alt 11.03.2006, 17:18   #18
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Habe mal einen pic2nes converter geschrieben, funktioniert soweit.

Als export ist raw, asm (p65) und c (wozu auch immer) wählbar (damit Tharo nichtmehr meckert).
Als import sollten png/bmp/jpg gehen (qt4).

Download auf meiner hp ( www.goldmomo.de ), is etwas groß wegen den qt-dlls, sourcecode liegt bei (gpl), sollte auch unter linux compilierbar sein (mit qt4).
goldmomo ist offline   Mit Zitat antworten
Alt 14.03.2006, 18:11   #19
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Hab einen Fehler im p65 Ophis gefunden, er konnte mit -6510 Option nichtmehr assemblieren (habs mal gefixed).

Die 6510 Option ist eigentlich dafür da die illegalen 6502 Opcodes zu benutzen. Im no$nes text steht drin, dass der 2a03 des NES diese auch unterstützt. Leider bleibt no$nes bei einem illegalen Opcode stehen und macht nichtmehr weiter?? Der FCE UXD Emulator kann es, bei vielen anderen gehts nicht. Ich habe dann versucht rauszufinden op diese illegalen opcodes vielleicht doch nicht im 2a03 sind, aber nichts gefunden, wie denn jetzt
Angehängte Dateien
Dateityp: zip p65Ophis.zip (45,8 KB, 63x aufgerufen)
goldmomo ist offline   Mit Zitat antworten
Alt 15.03.2006, 15:53   #20
 
Registriert seit: 16.12.2003
Alter: 38

return 0 hat die Renommee-Anzeige deaktiviert

Standard

nes aka famicom... kewl

goldmomo, auch wenn ich jetzt nichts versanden hab, vielleicht findest du hier was : http://nesdev.parodius.com/

allgm.
http://nightmare.org/textfiles/programming/
6502guid.txt
tricks65.txt

werd mich am we auch mla ranwagen ^^
return 0 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
Interview mit SN Systems (Development Tools) Iceman Development Abteilung 5 09.02.2005 19:45
Sucht GBC Development kit GBC User Development Abteilung 9 06.05.2003 14:35
GBA Development Kit Tharo Development Abteilung 7 29.10.2002 09:15
Development Sektion Darkside Development Abteilung 6 15.05.2002 21:45


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