|
| Hardcore Retrogaming | |
|
+25bzayid sven_minoda Fétide wazoo zeydou Versatil Kain2097 Darsch gil de binche Terry kindred bouc_emissaire patataboy egb TS_JBG chris1515 Rendering Mikozer Taxchim fdroopy Doc 42 ynos93 Kaiser_Gun manulelutin upsilandre 29 participants | |
Auteur | Message |
---|
upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Sam 30 Nov 2013 - 18:36 | |
| Cette fois j'ai bouclé definitivement mon premier jeu Atari2600 que j'ai renomé Tank2600 pour cette version 1.1 Comme j'avais dis precedement j'ai ajouté des maps pour remplir tout l'espace ROM que j'avais liberé mais malheureusement pas possible d'en mettre 13 pour une raison d'indexation limité a 8bit dans mon moteur d'affichage (et pas possible d'ajouter des instructions dans ce moteur, le CPU est deja a 100% d'occupation) donc j'ai du me contenter de 10 Maps (ce qui est deja tres bien de toute facon). Du coup il me restait encore 129 octets donc gros dileme car pour avoir le gout du travail achevé fallait que je trouve des trucs a ajouter. Je peux pas laisser autant d'espace inutilisé donc je me suis remis un petit peu au boulot. J'ai hesité entre ajouter des bruitages ou un ecran titre, j'ai choisie l'ecran titre. Donc j'ai ajouté un petit ecran titre avec le nom du jeu (Tank 2600) et un petit effet de couleur bien kitch mais je voyais bien que ca m'avait demandé pas mal d'instructions et datas donc je commencais a douter. Et la oh miracle apres avoir testé que ca fonctionne bien je verifie combien ca prend de place et ca tombait pile poile a 2 octets pret. Ca depassait de 2 octets que j'ai pas eu trop de mal a recuperer ailleurs (2 octets c'est grossomodo juste une instruction a enlever quelque part) Et voila j'ai une ROM 2ko full a 100% et un jeu relativement complet maintenant. Je peux passer a autre chose avec le sentiment du travail accomplie. Voila donc la version final v1.1 http://www.petit-fichier.fr/2013/11/30/tank2600/Les 10 Arènes du jeu et le code source - Spoiler:
- Citation :
processor 6502 include vcs2600.h org $F000
VTankP0 = $80 VTankP1 = $81 RotP0 = $82 RotP1 = $83 WaitRotP0 = $84 WaitRotP1 = $85 CurPF0 = $86 CurPF1 = $87 CurPF2 = $88 VBoost = $89 JaugeP0 = $8A JaugeP1 = $8B CurSpriteP0 = $8C CurSpriteP1 = $94 WaitDepP0 = $9C WaitDepP1 = $9D OldVTankP0 = $9E OldVTankP1 = $9F STHMP0 = $A0 STHMP1 = $A1 VMissP0 = $A2 VMissP1 = $A3 ScoreP0 = $A4 ScoreP1 = $A5 AudioFire = $A6 WaitFireP0 = $A7 WaitFireP1 = $A8 PFScoreP0 = $A9 PFScoreP1 = $AE Digit1P0 = $B3 Digit2P0 = $B4 Digit1P1 = $B5 Digit2P1 = $B6 DigiTemp = $B7 CurVBoost = $B8 WaitBoost = $B9 HighFreq = $BA BoostP0 = $BB BoostP1 = $BC StrikeP0 = $BD StrikeP1 = $BE
PFSelect = $F0 TitleScreen = $F1
;***********************intitalisation**************************
Start LDA #0 STA PFSelect STA TitleScreen
Reset CLD LDX #$EF TXS LDA #0
EraseRAM STA 0,X DEX BNE EraseRAM
STA WSYNC LDX #4 InitHP0 DEX BNE InitHP0 STA RESP0 LDA #32 STA HMP0
STA WSYNC LDX #13 InitHP1 DEX BNE InitHP1 STA RESP1 LDA #255 STA HMP1
STA COLUBK STA CurVBoost
HoldSelect LDA SWCHB AND #%00000010 BEQ HoldSelect
LDA #1 STA VDELP0
LDA #4 STA RotP0
LDA #12 STA RotP1
LDA #10 STA WaitBoost
LDA #242 STA COLUPF
LDA #44 STA VTankP0 STA VTankP1 STA OldVTankP0 STA OldVTankP1
LDA #2 STA WaitRotP0 STA WaitRotP1 STA WaitDepP0 STA WaitDepP1 STA WaitFireP0 STA WaitFireP1 STA RESMP0 STA RESMP1 STA AUDC0
;*******************************Vsync****************************
Frame LDA #2 STA VSYNC STA WSYNC STA WSYNC STA WSYNC LDA #0 STA VSYNC LDX #39 STX TIM64T
;******************************Ecran Titre***************************
LDA TitleScreen BNE InGame
STA COLUBK STA CTRLPF LDY #17 LDA #150 STA TIM64T
TitleBlanking LDA INTIM BNE TitleBlanking STA VBLANK StartTitle STA WSYNC STA COLUPF TYA LSR TAX LDA TitlePF0Gauche,X STA PF0 LDA TitlePF1Gauche,X STA PF1 LDA TitlePF2Gauche,X STA PF2 LDA TitlePF0Droite,X STA PF0 LDA TitlePF1Droite,X STA PF1 LDA TitlePF2Droite,X STA PF2 TYA ADC HighFreq DEY BPL StartTitle
DEC HighFreq BNE TitleON
INC TitleScreen JMP Reset
TitleON LDX #137 JMP TitleOverscan
InGame
;********************************Audio*******************************
;*****Audio Engine*****
LDA #8 STA AUDV0 STA AUDC1 LDX #16 LDA SWCHA AND #16 BNE Audio1
LDA BoostP0 BNE Audio2
LDX #8
Audio1 LDA SWCHA AND #1 BNE AudioF0
LDA BoostP1 BNE Audio2
LDX #8 JMP AudioF0
Audio2 LDX #6
AudioF0 STX AUDF0
;*****Audio Fire*****
LDX AudioFire BEQ NoAudioFire
DEX STX AudioFire
NoAudioFire STX AUDV1
;******************************Collisions*******************************
LDX #1
;*****Player-player/playfield*****
StartCollision LDA StrikeP0,X BNE NoCXP0BL
LDA CXPPMM BMI GoCXP0P1
LDA CXP0FB,X BPL NoCXP0PF
GoCXP0P1 LDA OldVTankP0,X STA VTankP0,X LDA STHMP0,X LSR LSR LSR LSR TAY DEY TYA EOR #255 ASL ASL ASL ASL STA HMP0,X LDA #0 STA STHMP0,X
;*****Missile-Playfield*****
NoCXP0PF LDA CXM0FB,X BPL NoCXM0PF
LDA #2 STA RESMP0,X LDA #0 STA VMissP0,X LDA #4 STA AUDF1 LDA #8 STA AudioFire
;*****Missile-Player*****
NoCXM0PF LDA CXM0P,X BPL NoCXM0P1
LDA #2 STA RESMP0,X LDA #0 STA VMissP0,X TXA EOR #%00000001 TAY LDA #0 STA BoostP0,Y LDA ScoreP0,X SED CLC ADC #1 STA ScoreP0,X CLD TXA EOR #%00000001 TAY LDA #20 STA StrikeP0,Y LDA #8 STA AUDF1 LDA #16 STA AudioFire
NoCXM0P1
;*****Boost-Player0*****
LDA CXP0FB,X AND #%01000000 BEQ NoCXP0BL
LDA #0 STA HighFreq LDA #15 STA WaitBoost LDA #255 STA CurVBoost LDA #3 STA BoostP0,X
NoCXP0BL
;*****Collision Player2*****
DEX BMI EndCollision
JMP StartCollision
EndCollision
;*********************input Select Playfield******************
LDA SWCHB AND #%00000010 BNE NoPFSwitch
LDA PFSelect CLC ADC #24 CMP #240 BNE GoSwitch
LDA #0
GoSwitch STA PFSelect JMP Reset
NoPFSwitch
;***********************input Player***********************
LDX #1
;*****Strike phase*****
StartInputs LDA StrikeP0,X BEQ NoStrikeP0
CMP #1 BNE MainStrikeP0
LDA CXPPMM ORA CXP0FB,X BPL StopStrikeP0
INC StrikeP0,X JMP MainStrikeP0
StopStrikeP0 DEC StrikeP0,X JMP NoStrikeP0
MainStrikeP0 DEC StrikeP0,X INC RotP0,X TXA EOR #%00000001 TAY LDA RotP0,Y ASL TAY LDA VTankP0,X STA OldVTankP0,X CLC ADC CoefDeplacement,Y CMP #95 BMI NoTOPOOBP0 LDA #250
NoTOPOOBP0 CMP #250 BPL NoBOTOOBP0
LDA #95
NoBOTOOBP0 STA VTankP0,X INY LDA CoefDeplacement,Y STA HMP0,X STA STHMP0,X JMP SpriteSelectP0
NoStrikeP0
;*****Deplacement*****
DeplacementP0
LDA VTankP0,X STA OldVTankP0,X LDA #0 STA STHMP0,X DEC WaitDepP0,X BNE EndepP0
LDA SWCHA TXS TSX BNE AvantP1
AND #16 BNE ZeroWaitDepP0 JMP AvantP0
AvantP1 AND #1 BNE ZeroWaitDepP0
AvantP0 LDA RotP0,X ASL TAY LDA VTankP0,X CLC ADC CoefDeplacement,Y STA VTankP0,X INY LDA CoefDeplacement,Y STA HMP0,X STA STHMP0,X LDA BoostP0,X BEQ NoBoostDepP0
LDA #8 STA WaitDepP0,X JMP EndepP0
NoBoostDepP0 LDA #16 STA WaitDepP0,X JMP EndepP0
ZeroWaitDepP0 INC WaitDepP0,X
EndepP0
;*****Fire*****
LDA VMissP0,X BNE FireP0
DEC WaitFireP0,X BNE NoFireP0
LDA INPT4,X BMI ZeroWaitFireP0
ReculeP0 LDA RotP0,X EOR #%00001000 ASL TAY LDA VTankP0,X STA OldVTankP0,X CLC ADC CoefDeplacement,Y STA VTankP0,X INY LDA CoefDeplacement,Y STA HMP0,X STA STHMP0,X
initFireP0 LDA #0 STA RESMP0,X LDA #200 STA WaitFireP0,X LDA #16 STA AUDF1 LDA #16 STA AudioFire LDY OldVTankP0,X INY INY INY INY STY VMissP0,X
FireP0 DEC WaitFireP0,X LDA RotP0,X ASL TAY LDA VMissP0,X CLC ADC CoefDeplacement,Y STA VMissP0,X INY LDA CoefDeplacement,Y STA HMM0,X JMP NoFireP0
ZeroWaitFireP0 INC WaitFireP0,X
NoFireP0
;*****Rotation*****
InputRotP0 DEC WaitRotP0,X BNE EndRotP0
gaucheP0 LDA SWCHA TXS TSX BNE GinputP1
AND #64 BNE droiteP0 JMP GinputP0
GinputP1 AND #4 BNE droiteP0
GinputP0 INC RotP0,X JMP InitWaitRotP0
droiteP0 LDA SWCHA TXS TSX BNE DinputP1
AND #128 BNE ZeroWaitRotP0 JMP DinputP0
DinputP1 AND #8 BNE ZeroWaitRotP0
DinputP0 DEC RotP0,X
InitWaitRotP0 LDA BoostP0,X BEQ NoBoostRotP0
LDA #8 STA WaitRotP0,X JMP EndRotP0
NoBoostRotP0 LDA #16 STA WaitRotP0,X
EndRotP0
;*****Load Sprite*****
SpriteSelectP0 LDA RotP0,X AND #15 STA RotP0,X ASL ASL ASL TAY
TXS TSX BNE SpriteP1
LDX #7 LoadSpriteP0 LDA TankSprites,Y STA CurSpriteP0,X INY DEX BPL LoadSpriteP0
TSX JMP EndLoadSpriteP0
SpriteP1 LDX #7 LoadSpriteP1 LDA TankSprites,Y STA CurSpriteP1,X INY DEX BPL LoadSpriteP1
TSX JMP EndLoadSpriteP0
ZeroWaitRotP0 INC WaitRotP0,X
EndLoadSpriteP0
;*****Input Player 2*****
DEX BMI EndInputs
JMP StartInputs
EndInputs
;*************************Bonus Boost***************************
LDA CXBLPF BMI BoostCollision
LDA CurVBoost BPL BoostFlick
LDA HighFreq BNE BoostFlick
DEC WaitBoost BNE BoostFlick
;*****Random Select*****
BoostCollision LDA VTankP0 CLC ADC VTankP1 AND #%00001111 TAX LDA BoostIndex,X TAX LDA BoostCoord,X TAY STA WSYNC InitHBoost DEY BPL InitHBoost STA RESBL INX LDA BoostCoord,X STA HMBL INX LDA BoostCoord,X STA CurVBoost
;*****Boost Flickering*****
BoostFlick LDA HighFreq AND #%00001000 BNE BoostON
LDA #255 STA VBoost JMP BoostOFF
BoostON LDA CurVBoost STA VBoost
BoostOFF DEC HighFreq
;*****Player0 Flickering*****
LDA BoostP0 BEQ NoBoostP0
LDA HighFreq BNE FlickP0
DEC BoostP0 FlickP0 AND #%00000100 BNE NoBoostP0
LDA #56 STA COLUP0 JMP EndBoostP0
NoBoostP0 LDA #68 STA COLUP0
EndBoostP0
;*****Player1 Flickering*****
LDA BoostP1 BEQ NoBoostP1
LDA HighFreq BNE FlickP1
DEC BoostP1 FlickP1 AND #%00000100 BNE NoBoostP1
LDA #140 STA COLUP1 JMP EndBoostP1
NoBoostP1 LDA #134 STA COLUP1
EndBoostP1
;**********************Deplacement horizontal************************
STA WSYNC STA HMOVE
;***************************fin blanking****************************
blanking LDA INTIM BNE blanking STA VBLANK
;**************************construction image***********************
STA CXCLR
;*****Score*****
;InitScore
LDA #2 STA CTRLPF
LDA WaitFireP0 LSR LSR LSR LSR STA JaugeP0
LDA WaitFireP1 LSR LSR LSR LSR STA JaugeP1 LDA ScoreP0 AND #%00001111 ASL ASL ASL STA Digit1P0
LDA ScoreP0 AND #%11110000 LSR STA Digit2P0
LDA ScoreP1 AND #%00001111 ASL ASL ASL STA Digit1P1
LDA ScoreP1 AND #%11110000 LSR STA Digit2P1
LDY #4
LoadScorePF LDX Digit1P0 LDA AllDigits,X STA DigiTemp
LDX Digit2P0 LDA AllDigits,X ASL ASL ASL ASL ORA DigiTemp INC Digit1P0 INC Digit2P0 STA PFScoreP0,Y
LDX Digit1P1 LDA AllDigits,X STA DigiTemp
LDX Digit2P1 LDA AllDigits,X ASL ASL ASL ASL ORA DigiTemp INC Digit1P1 INC Digit2P1 STA PFScoreP1,Y
DEY BPL LoadScorePF
LDY #9
ScanScore STA WSYNC LDA #0 STA PF2
ScanScoreP0 TYA LSR TAX LDA PFScoreP0,X STA PF1
ScanJaugeP0 TYA SEC SBC JaugeP0 BPL ScanScoreP1 LDA #24 STA PF2
ScanScoreP1 TYA LSR TAX LDA PFScoreP1,X STA PF1 LDA #0 STA PF2
ScanJaugeP1 TYA SEC SBC JaugeP1 BPL NextScoreLine LDA #24 STA PF2
NextScoreLine DEY BPL ScanScore
STA WSYNC LDA #0 STA PF1 STA PF2
;*****Playfield*****
LDY #95 LDA #17 STA CTRLPF
Playfield TYA LSR LSR TAX LDA ArenePF0,X STA CurPF0 TXA CLC ADC PFSelect TAX LDA ArenePF1,X STA CurPF1 LDA ArenePF2,X STA CurPF2
Boost CPY VBoost BNE NoBoost
LDA #2 STA ENABL JMP TankP0
NoBoost LDA #0 STA ENABL
;*****Players*****
TankP0 TYA SEC SBC VTankP0 TAX AND #%11111000 BEQ ActiveP0
LDA #0 STA GRP0 JMP MissP0
ActiveP0 LDA CurSpriteP0,X STA GRP0
MissP0 CPY VMissP0 BNE ActiveMissP0
LDX #2 TXS JMP TankP1
ActiveMissP0 LDX #0 TXS
TankP1 TYA SEC SBC VTankP1 TAX AND #%11111000 BEQ ActiveP1
LDA #0 JMP MissP1
ActiveP1 LDA CurSpriteP1,X
MissP1 CPY VMissP1 BNE ActiveMissP1
LDX #2 JMP EndPlayers
ActiveMissP1 LDX #0
EndPlayers
;*****Remplissage des registres*****
STA WSYNC STA GRP1 LDA CurPF0 STA PF0 LDA CurPF1 STA PF1 STX ENAM1 TSX STX ENAM0 LDA CurPF2 STA PF2
DEY BPL Playfield
;******************************Overscan****************************
STA WSYNC LDX #19
TitleOverscan STA WSYNC
LDA #0 STA PF0 STA PF1 STA PF2 STA GRP0 STA GRP1 STA ENAM0 STA ENAM1 STA HMCLR
STX TIM64T overscan LDA INTIM BNE overscan LDA #2 STA VBLANK JMP Frame
;*********************************Data*****************************
;*****Deplacement*****
CoefDeplacement BYTE 254,0 BYTE 254,255 BYTE 254,239 BYTE 255,239 BYTE 0,239 BYTE 1,239 BYTE 2,239 BYTE 2,255 BYTE 2,0 BYTE 2,16 BYTE 2,32 BYTE 1,32 BYTE 0,32 BYTE 255,32 BYTE 254,32 BYTE 254,16
BoostCoord BYTE 8,239,47 BYTE 4,64,84 BYTE 12,143,10 BYTE 4,64,10 BYTE 12,143,84
BoostIndex BYTE 0,3,6,9,12,0,3,6,9,12,0,3,6,9,12,0
;*****sprites*****
TankSprites BYTE $63,$63,$7F,$7F,$7F,$6B,$08,$08 BYTE $04,$0E,$4E,$FF,$FF,$79,$64,$24 BYTE $18,$1C,$0E,$DF,$FF,$7C,$3A,$19 BYTE $18,$3E,$1F,$1C,$7C,$FB,$78,$1C BYTE $FC,$FC,$38,$3F,$38,$FC,$FC,$00 BYTE $1C,$78,$FB,$7C,$1C,$1F,$3E,$18 BYTE $19,$3A,$7C,$FF,$DF,$0E,$1C,$18 BYTE $24,$64,$79,$FF,$FF,$4E,$0E,$04 BYTE $08,$08,$6B,$7F,$7F,$7F,$63,$63 BYTE $24,$26,$9E,$FF,$FF,$72,$70,$20 BYTE $98,$5C,$3E,$FF,$FB,$70,$38,$18 BYTE $38,$1E,$DF,$3E,$38,$F8,$7C,$18 BYTE $3F,$3F,$1C,$FC,$1C,$3F,$3F,$00 BYTE $18,$7C,$F8,$38,$3E,$DF,$1E,$38 BYTE $18,$38,$70,$FB,$FF,$3E,$5C,$98 BYTE $20,$70,$72,$FF,$FF,$9E,$26,$24
TitlePF0Gauche BYTE $EF,$2F,$2F,$2F,$2F,$2F,$AF,$2F,$EF TitlePF1Gauche BYTE $FF,$00,$95,$95,$9D,$95,$DD,$00,$FF TitlePF2Gauche BYTE $FF,$00,$54,$56,$36,$55,$55,$00,$FF TitlePF0Droite BYTE $FF,$0F,$EF,$2F,$EF,$8F,$EF,$0F,$FF TitlePF1Droite BYTE $FF,$00,$77,$55,$75,$45,$77,$00,$FF TitlePF2Droite BYTE $3F,$20,$2E,$2A,$2A,$2A,$2E,$20,$3F
ArenePF0 BYTE $FF,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$FF
ArenePF1 BYTE $FF,$00,$00,$00,$00,$00,$00,$00,$60,$20,$20,$21,$21,$20,$20,$60,$00,$00,$00,$00,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$F0,$E0,$C1,$83,$06,$0C,$18,$18,$18,$18,$0C,$06,$83,$C1,$E0,$F0,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$00,$78,$78,$78,$78,$78,$00,$00,$00,$00,$78,$78,$78,$78,$78,$00,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$43,$40,$40,$40,$40,$7F,$00,$00,$00,$00,$7F,$40,$40,$40,$40,$43,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$FF,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$FF,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$00,$00,$06,$06,$06,$06,$07,$07,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF BYTE $FF,$80,$80,$80,$80,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$04,$04,$04,$04,$FF
ArenePF2 BYTE $FF,$00,$00,$00,$80,$80,$80,$80,$00,$00,$00,$07,$07,$00,$00,$00,$80,$80,$80,$80,$00,$00,$00,$FF BYTE $FF,$C0,$C0,$C0,$06,$03,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$03,$06,$C0,$C0,$C0,$FF BYTE $FF,$C0,$80,$00,$00,$30,$60,$C0,$82,$06,$0E,$1E,$1E,$0E,$06,$82,$C0,$60,$30,$00,$00,$80,$C0,$FF BYTE $FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C0,$C0,$C0,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$FF,$00,$00,$00,$00,$87,$80,$80,$80,$80,$87,$00,$00,$00,$00,$FF,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$1E,$1E,$1E,$1E,$FE,$FE,$FE,$FE,$FE,$FE,$9E,$9E,$80,$80,$80,$80,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$3F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$00,$00,$00,$FF BYTE $FF,$00,$00,$00,$78,$78,$06,$06,$FE,$FE,$FF,$FF,$F7,$F7,$FE,$FE,$18,$18,$06,$06,$00,$00,$00,$FF BYTE $FF,$80,$80,$00,$00,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$00,$00,$80,$80,$FF BYTE $FF,$04,$04,$04,$04,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$84,$80,$80,$80,$80,$FF
AllDigits BYTE %00001110 BYTE %00001010 BYTE %00001010 BYTE %00001010 BYTE %00001110 BYTE 0,0,0 BYTE %00000010 BYTE %00000010 BYTE %00000010 BYTE %00000010 BYTE %00000010 BYTE 0,0,0
BYTE %00001110 BYTE %00000010 BYTE %00001110 BYTE %00001000 BYTE %00001110 BYTE 0,0,0
BYTE %00001110 BYTE %00000010 BYTE %00000110 BYTE %00000010 BYTE %00001110 BYTE 0,0,0
BYTE %00001010 BYTE %00001010 BYTE %00001110 BYTE %00000010 BYTE %00000010 BYTE 0,0,0
BYTE %00001110 BYTE %00001000 BYTE %00001110 BYTE %00000010 BYTE %00001110 BYTE 0,0,0
BYTE %00001110 BYTE %00001000 BYTE %00001110 BYTE %00001010 BYTE %00001110 BYTE 0,0,0
BYTE %00001110 BYTE %00000010 BYTE %00000010 BYTE %00000010 BYTE %00000010 BYTE 0,0,0
BYTE %00001110 BYTE %00001010 BYTE %00001110 BYTE %00001010 BYTE %00001110 BYTE 0,0,0
BYTE %00001110 BYTE %00001010 BYTE %00001110 BYTE %00000010 BYTE %00001110 BYTE 0,0,0
org $F7FC WORD Start WORD Start
Un dernier truc interressant a constater. Le ratio Code/Data est de l'ordre de 60% code et 40% data. C'est moins que j'imaginais (en me limitant a 2Ko je pensais plutot me retrouver avec 80 a 90% de code) mais c'est bien sure infiniment plus que sur les jeux d'aujourd'hui qui sont constitués essentiellement de datas |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Sam 30 Nov 2013 - 18:53 | |
| par contre j'ai du utiliser 1 octet de RAM suplementaire, du coup j'ai dépassé la barre symbolique des 50% (65 sur 128) |
| | | manulelutin Wii U
Nombre de messages : 7303 Pseudo PSN : manulelutin Date d'inscription : 11/06/2006
| Sujet: Re: Hardcore Retrogaming Sam 30 Nov 2013 - 19:32 | |
| Putain, Good game, c'est vraiment impressionant comment t'as mené ça.
|
| | | Doc 42 Gamecube
Nombre de messages : 2175 Age : 49 Localisation : Planète lointaine 3CE.15.09.37.30 Consoles : PSP, PSVita Date d'inscription : 17/10/2006
| Sujet: Re: Hardcore Retrogaming Sam 30 Nov 2013 - 21:18 | |
| Testé et approuvé j'ai essayé différent truc pour tenter le bug... mais rien ! BRAVO Upsi Quality Guaranteed Par contre il y a un truc que tu pourrais changer : faire que l'option de speed puisse être prise par le char qui vient de se faire tirer dessus dans son déplacement lié à l'impacte... ça ferait des petite surprises genre : tu le shoot contre le mur à droite et il réaparait à gauche en passant au dessus de l'option de boost et en la prenant... (voire aussi une option de faux boost qui ralenti : curseur qui clignote diférement, lentement ou pas régulièrement...) Mais comme le but est de rester dans les 2K il faudrait enlever des niveaux pour cela... (sinon j'ai testé que le niveau space invader est chouette pour le clin d'oeuil mais injouable car si un joueur se met dans un des 3 recoins en bas, il n'a plus qu'a attendre que l'autre se pointe pour le shooter car il est protégé sur 3 cotés... mais c'est un détail, osf ) |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Sam 30 Nov 2013 - 23:50 | |
| - Doc 42 a écrit:
(sinon j'ai testé que le niveau space invader est chouette pour le clin d'oeuil mais injouable car si un joueur se met dans un des 3 recoins en bas, il n'a plus qu'a attendre que l'autre se pointe pour le shooter car il est protégé sur 3 cotés... mais c'est un détail, osf ) faudrait tester (manque le mode online), faut pas oublier que tu peux courber tes tires (gauche ou droite apres avoir tiré) ce qui permet des trajectoires asser surpenante (surtout si t'as un boost qui accelere aussi la courbure des tires) et celui qui est dehors c'est celui qui a acces aux boost et qui peut donc tenter des trajectoire de tire que l'autre ne peut pas reproduire, a mon avis vaut mieux etre dehors et vu qu'apres un tire l'adversaire est sans defense pendant quelque temps y a moyen de pousser l'autre a l'erreur edit: j'ai testé et meme sans boost t'as des angles de tire courbé qui te permettent de toucher l'autre joueur meme cacher au fond du trou alors que lui ne peux pas te toucher, c'est bien foutu |
| | | Terry 3DO
Nombre de messages : 433 Age : 74 Localisation : là bas Date d'inscription : 15/06/2006
| Sujet: Re: Hardcore Retrogaming Dim 1 Déc 2013 - 11:23 | |
| Impressionnant !
Même pour quelqu'un qui n'y connait rien, c'était passionnant de voir l'évolution de ta programmation. En plus sur une machine très simple qui évoque bien plus de choses à mes yeux que toutes les machines current ou next gen avec leur 3D bien trop souvent sans magie (montrer ce que pouvait faire une machine de l'époque - à peu près jusqu'aux 32, voire 128 bits maxi - ça avait davantage de charme et de magie que les machines actuelles avec tellement de capacités que ça en devient limite lassant). |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Dim 1 Déc 2013 - 23:29 | |
| dans le genre console americaine Atari il faisait fort, faut croire qu'a l'epoque avoir une grosse consoel c'etait classe quand tu l'ouvre elle est pleine de vide, sachant que l'essentiel de la console (CPU,GPU,IO,RAM) est dans le boitier en alu |
| | | manulelutin Wii U
Nombre de messages : 7303 Pseudo PSN : manulelutin Date d'inscription : 11/06/2006
| Sujet: Re: Hardcore Retrogaming Dim 1 Déc 2013 - 23:37 | |
| - upsilandre a écrit:
- dans le genre console americaine Atari il faisait fort, faut croire qu'a l'epoque avoir une grosse consoel c'etait classe
quand tu l'ouvre elle est pleine de vide, sachant que l'essentiel de la console (CPU,GPU,IO,RAM) est dans le boitier en alu Eh oui, tu rigoles, mais c'est ca, big is beautiful à l'époque. Il fallait en avoir pour son argent. |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Mar 3 Déc 2013 - 22:12 | |
| je me suis commandé ca une cartouche EEPROM pour y stocker les roms que je veux (tout le catalogue + mes programes) et les faire tourner sur une vrai console |
| | | Mikozer Playstation 3
Nombre de messages : 6165 Age : 48 Localisation : Sarthe (72) Pseudo PSN : Mikozer Consoles : PS3, PS4 pro, XBOX ONE X Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Mar 3 Déc 2013 - 22:23 | |
| Bienvenue dans la next-gen mec |
| | | Kaiser_Gun Xbox360
Nombre de messages : 4195 Age : 40 Localisation : Madagascar Date d'inscription : 08/07/2006
| Sujet: Re: Hardcore Retrogaming Mer 4 Déc 2013 - 10:14 | |
| Enorme. |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Jeu 5 Déc 2013 - 17:41 | |
| impossible de trouver le signal sur mon plasma meme en SECAM, les TV moderne on vraiment du mal avec les vieilles consoles. domage parce que le plasma garde quand meme un cachet CRT notement sur le flickering de certain element graphique des jeux 2600 heureusement j'ai reussi a trouver un bon signal sur ma vieille TV CRT de 13", j'avais pas vraiment reussit l'autre jour mais la ca marche et au moins c'est 100% oldshool (je me suis fait une partie de defender a defaut d'avoir le temps de jouer a resogun, je pourais meme lancer les 2 en meme temps les TV sont cote a cote) je vais mettre l'atari 2600 a la place de ma PS3 (et au dessus de ma PS4) et ma vieille TV au dessus du meuble y a de la place. me reste plus qu'a acheter 2 joystick comme a l'epoque http://www.priceminister.com/offer?action=desc&aid=672651279&productid=235386158car ceux qu'il y avait avec le model que j'avais recuperé sur une broquante y a quelques années sont affreux (par contre la console etait vraiment comme neuve, sans doute un des tout dernier model produit et qui n'a pas servie, la mienne je l'ai donné y a longtemps malheureusement avec tout mes jeux) |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Lun 16 Déc 2013 - 17:17 | |
| j'ai recu mes 2 joystick originaux, nickel c'est du neuf. j'aime vraiment bien cette manette, elle est agreable, content de la retrouver. j'ai recu aussi ma cartouche magique "HARMONY", nickel aussi, c'est du beau boulot, en aparence c'est exactement comme une vrai cartouche de jeu. pour la faire fonctionner me manquait une carte SD et un lecteur de carte SD. pour la carte SD finallement j'en ai retrouvé une de 1Go dans un vieux APN (sachant que l'integralité des ROMs officiel c'est 3.5Mo) et au moment d'acheter un lecteur de carte SD j'ai decouvert que j'en avais un sur mon PC Normalement faut changer le firmware de la cartouche car par defaut c'est du NTSC mais j'ai testé tout de suite la cartouche et c'est passé quand meme (ma TV suporte le 60hz) mais en noir et blanc et du coup j'ai pu tout de suite lancer mon jeu et le voir tourner sur une vrai console, magique Du coup ca a si bien fonctionné que j'ai tout de suite fait une adaptation PAL de mon jeu (a l'arrache comme on l'a toujours subit sur nos consoles de l'epoque, c'est a dire ajouter des bandes en haut et en bas, modifier la palette, et donc jeu ralentie de 20%) pour me rendre compte que c'etait pas une console PAL mais bien une console SECAM que j'avais (le privilege francais de l'epoque, les consoles sont ensuite rapidement passé au PAL mais comme c'est un model plus recent j'esperais que ca soit du PAL...) et la palette de couleur est une horreur en NTSC t'as une palette de 128 couleurs, en SECAM t'as... 8 couleurs (enfin 6 et un noir et un blanc). Toutes les 2600 ont un switch pour passer la console en Noir&blanc et en faite les 2600 SECAM est tout le temps en mode noir&blanc. elle n'utilise pas les 4bit de couleur du registre dédié a cela, juste les 3bit de luminance comme en mode noir et blanc sauf qu'elle remplace les 6 teintes de gris par quelques couleurs bien flashy, une horreur c'est pour ca que j'ai ete surpris de decouvrir qu'il y avait une palette de 128 couleurs en commancant la programmation car c'est pas le souvenir que j'en avais, tu m'etonnes en tout cas bravo a l'emulateur, mon jeu tourne pareille que sur l'emulateur. emulateur qui dailleurs emule bien aussi la palette SECAM si on veut. Et pouvoir programmer et en quelques secondes faire tourner son propre jeu sur une vrai console de l'epoque et une vieille TV c'est vraiment magique et excitant et d'une simplicité enfantine. ca marche super bien.
Dernière édition par upsilandre le Lun 16 Déc 2013 - 17:34, édité 1 fois |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Lun 16 Déc 2013 - 17:31 | |
| un exemple de jeu PAL sur une console PAL et sur une console francaise SECAM c'est en france qu'on a eu la 2600 la plus pouri au monde, c'est un peu triste je vais peut etre me prendre une 2600jr qui est la premier version francaise de l'atari2600 qui est bien PAL |
| | | Taxchim Xbox Serie X
Nombre de messages : 19410 Age : 51 Localisation : Aix-en-provence Pseudo PSN : Taxchim-STF Consoles : PSVita - Switch - PS5 Date d'inscription : 11/06/2006
| Sujet: Re: Hardcore Retrogaming Lun 16 Déc 2013 - 18:27 | |
| " tu joues trop près de l'écran avec ces couleurs tu vas te détruire les yeux !!! " ... une remarque typiquement française ? |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Mar 17 Déc 2013 - 18:15 | |
| Maintenant que je peux faire des tests sur une vrai TV et vu que sur la VCS c'est toi qui controle les scanlines et la Vsync le premier truc que t'as envie de tester c'est les limites de ta TV
- Premier constat quand j'affiche un nombre de scanline impair entre 2 Vsync ca bug un peu niveau couleur (une bande rose en haut de l'ecran) donc faut cibler un nombre pair de scanline a priori - Je peux monter jusqu'a 54hz sur ma TV ensuite je perd la couleur (j'ai pas testé jusqu'a ou je peux monter sans perdre la stabilité de l'image mais c'est au moins 60hz) - Je peux descendre jusuq'a 46hz ensuite je perd la stabilité
J'ai testé aussi la durée du signal de Vsync car dans les docs on te dit d'envoyer un signal de Vsync d'une durée de 3 scanlines pas plus ni moins donc envie de tester les limites de cette injonction.
- Avec une durée de 1 ou 2 scanlines ca passe toujours sur ma TV qui sont forcement moins capricieuse qu'a l'epoque. - Avec une durée la plus courte possible de seulement quelques cycles CPU ca ne marche plus, faut quand meme viser plutot une durée de 1 scanline minimum (mais vaut mieux sans doute s'en tenir a la regle de 3 pour une bonne compatibilité). - J'ai testé aussi une durée jusqu'a 20 scanlines et ca pose pas de probleme, y a pas de limite maximum je pense si ce n'est que ca finit par deborder de l'overscan et ca te trace des lignes vertes en haut de l'ecran et que ca n'a aucun interet de faire durer le signal de Vsync audela du necessaire
|
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Jeu 19 Déc 2013 - 17:58 | |
| Aparement on peut faire de l'entrelacé 480i en jouant avec la Vsync. une frame sur 2 tu balances la Vsync pile au milieu d'une scanline (donc entre 2 Hsync) pour avoir un decalage vertical d'une demi-ligne. Pas tres interressant a utiliser vu que meme sans cela c'est deja la resolution horisontal qui est largement a la traine donc ca ne fait que creuser le gap (et ajouter du flickering) mais bon a savoir
en faite toutes nos vieilles consoles de la VCS a la neogeo ont la meme resolution vertical qui est imposé par la technologie des TV, les differences de resolutions se font principalement sur l'horisontal qui elle est impacté par la velocité du chip graphique
|
| | | Kaiser_Gun Xbox360
Nombre de messages : 4195 Age : 40 Localisation : Madagascar Date d'inscription : 08/07/2006
| Sujet: Re: Hardcore Retrogaming Jeu 19 Déc 2013 - 18:41 | |
| Bon je vais essayer de me lancer dans le même délire parce que je n'ai pas eu le chance d'apprendre l'assembleur donc je me suis dit "Autant le faire de manière ludique et amusante".
Je serai en France fin décembre et donc ça sera la seule occasion de trouver une Atari + l'eeprom. J'ai donc une question simple : - Dois-je me contenter d'une Atari 2600 ou partir sur une 7800 et profiter à la fois de sa rétrocompatibilité avec la 2600 tout en pouvant grimper dans la next gen ? |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Jeu 19 Déc 2013 - 19:11 | |
| c'est selon ce que tu a envie, moi je sais qu'a ta place je prendrais pas une 7800, dabord parce que ca m'interresse pas de programmer sur 7800, pour moi la nextgen apres la VCS c'est la NES, je suis plutot dans une demarche historique et archeologique, la 7800 elle fait pas vraiment partie de l'histoire et donc a partir du moment ou c'est la 2600 qui m'interresse j'aurais trop peur que la compatibilité soit pas parfaite jusque dans les trick les plus tordu ce qui pourait compliquer les choses et puis c'est tellement plus classe d'avoir une 2600 toujours pour des raisons historique
par contre si tu prend une 2600 evite autant que possible la version SECAM, l'ideal c'est quand meme la version NTSC mais faut la TV qui va avec.
mais sinon je suis daccord avec toi, c'est la meilleur facon d'aprendre l'assembleur, si j'etais prof d'informatique dans un lycé je passerais l'année a leur faire faire un jeu sur Atari 2600, y a rien de mieux pour comprendre ce qu'est un CPU, de la rom, de la ram, un chip I/O, un ecran... car tout est reduit a sa plus simple expression(donc ca reste quand meme asser simple a comprendre) tout en etant toujours tres connecté a ce qu'est au final l'informatique d'aujourd'hui (du point de vue hardware tout du moins) |
| | | Kaiser_Gun Xbox360
Nombre de messages : 4195 Age : 40 Localisation : Madagascar Date d'inscription : 08/07/2006
| Sujet: Re: Hardcore Retrogaming Jeu 19 Déc 2013 - 20:04 | |
| - upsilandre a écrit:
- j'aurais trop peur que la compatibilité soit pas parfaite
C'est aussi ce que je me suis dit. - upsilandre a écrit:
- par contre si tu prend une 2600 evite autant que possible la version SECAM, l'ideal c'est quand meme la version NTSC mais faut la TV qui va avec.
Ah ouai, j'ai vu la comparaison que tu as posté, c'est sur que je vais pas prendre la version feat inferior - upsilandre a écrit:
- mais sinon je suis daccord avec toi, c'est la meilleur facon d'aprendre l'assembleur, si j'etais prof d'informatique dans un lycé je passerais l'année a leur faire faire un jeu sur Atari 2600, y a rien de mieux pour comprendre ce qu'est un CPU, de la rom, de la ram, un chip I/O, un ecran... car tout est reduit a sa plus simple expression(donc ca reste quand meme asser simple a comprendre) tout en etant toujours tres connecté a ce qu'est au final l'informatique d'aujourd'hui (du point de vue hardware tout du moins)
Ouai je crois que je vais partir sur la 2600. J'ai commencé à lire un peu à gauche et à droite. L'idée de la 7800 c'était à la base de pouvoir gagner un peu en puissance par rapport à la 2600, parce que bon la NES je vais devoir attendre 1 an si j'ai envie de m'en procurer une. Mais comme la rétro me fait flipper (surtout que je ne sais pas comment c'est branlé). Je ne vais pas tenter le diable. Sinon la super cartouche tu l'as trouvé où ? |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Jeu 19 Déc 2013 - 21:02 | |
| - Kaiser_Gun a écrit:
- Mais comme la rétro me fait flipper (surtout que je ne sais pas comment c'est branlé). Je ne vais pas tenter le diable.
le CPU reste un 6502 custom (mais y a peut etre des difference dans les "illegall opcode") et on retrouve aussi le TIA de la 2600 (mais qui est utilisé seulement pour l'audio, la partie video du TIA est utilisé uniquement quand il sagit de faire tourner les jeux 2600) donc c'est une retrocompatibilité hardware mais bon chaque fois que t'aura un truc qui fonctionne pas comme prevu y aura un doute... - Citation :
Sinon la super cartouche tu l'as trouvé où ? y a qu'un seul endroit pour ca http://harmony.atariage.com/order.html |
| | | Kaiser_Gun Xbox360
Nombre de messages : 4195 Age : 40 Localisation : Madagascar Date d'inscription : 08/07/2006
| Sujet: Re: Hardcore Retrogaming Jeu 19 Déc 2013 - 21:06 | |
| |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Dim 22 Déc 2013 - 14:16 | |
| Je me prépare doucement a attaquer un second projet sur la 2600 mais j'ai pas pu m'empecher de feuilleter les documents de la Channel F de Fairchild (ou VES), la premiere console de jeu sortie l'année precedent la 2600 et que j'ai dans ma collection Si j'avais le temps je m'amuserais bien a programmer un truc dessus mais ca a l'aire hard, a part les documents originaux de 1976 y a pas grand chose et pas de communauté. je sais juste que DASM qui me sert pour compiler le code 6502 serait capable aussi de compiler du code F8 (le cpu exotique de la channel F) mais c'est chaud. Faut savoir que Fairchild c'est un fabriquant de semi-conducteur, ils ont inventé le circuit integré et ce sont les fondateurs de Fairchild qui ont ensuite fondé le concurent Intel, ca c'est pour le contexte... Ils etaient donc la a la naissance des semi-conducteurs ce qui leur a donné cette position favorable pour commercialiser la toute premiere console de jeu en y mettant leur premier CPU qui est asser exotique d'ou la difficulté de la tache. Meme les mnemoniques de l'op-code ont rien a avoir avec ceux qu'on utilise en assembleur pour les autres cpu, a priori c'est vraiment pas acueillant. Pas vraiment de RAM pour le CPU mais un scratchpad qui est une sorte de RAM interne au CPU qu'on utilise comme des registres. y en a 64 ca represente la moitié de la RAM de la 2600 donc de ce coté ca reste asser proche mais la facon d'y acceder est un peu tordu, c'est pas vraiment de la RAM donc y a pas d'adressage mais on peut pas non plus acceder directement a ces 64 registres, y en a seulement 16 accessibles directement et ensuite y a une forme d'indexation avec un autre registre pour permettre d'acceder a l'ensemble donc un peu plus compliqué... Y a pas non plus vraiment de bus d'adressage direct pour la ROM avec des instructions dédiées. Pour acceder a une donnée dans la ROM faut dabord placer une valeur dans un registre 16bit qui va servir d'adresse pour ensuite utiliser une autre instruction qui ira chercher la donnée a cette adresse (en plusieurs cycles pour adresser la ROM, au moins 3 vu que sur les shema de cablage je vois seulement 5 lignes d'adressage pour la ROM) donc ca complique aussi un peu la tache par contre a priori y a moyen d'acceder a bien plus de ROM que sur la 2600 qui sans bank switching est limité a 4Ko. la je dirais que ca doit etre dans les 32Ko (mais bon au final les jeux Channel F sont tous sur des ROMs de 2Ko, + etait trop couteux) la tres grosse difference avec la 2600 (c'est le bute de ma demarche, identifier les differences) c'est la gestion de la video. Dans la Channel F y a de la VRAM contrairement a la 2600 qui n'en a pas du tout ce qui fait sa particularité. Et elle en a quand meme 2Ko ce qui est enorme pour l'epoque, c'est autant que la VRAM de la NES (c'est 16x plus que la Main RAM de la 2600) et non seulement elle a de la VRAM mais celle ci est utilisé tel qu'on l'utilise aujourd'hui c'est a dire pour contenir le framebuffer (donc pour stocker un par un le code couleur de chaque pixel a afficher) alors que meme les consoles 2D suivante qu'on connait comme la NES et les autres utiliseront plutot la VRAM de facon indirect pour construire une image en assemblant des tiles (des bloc de 8x8 pixels) pas vraiment sous la forme d'un framebuffer. Donc effectivement ca tranche fortement avec la 2600 mais la partie video de la Channel F s'arrete la. c'est a dire qu'en realité y a pas de fonction graphique, tu remplis cette memoire avec le CPU selon ce que tu veux afficher et puis c'est tout (dailleurs pour acceder a cette VRAM faut passer par des ports qui sont ceux utilisés aussi par les manettes, tu utilises ces ports en ecriture pour ecrire dans la VRAM que tu ne peux pas relire car la lecture sert pour lire les inputs des manettes) Alors que sur la 2600 y a quand meme le chip TIA (ou "stella") qui malgres son coté minimaliste propose de vrais fonctions graphiques (et audio) avec un semblant de gestion de sprite ou de collision deja plus dans l'esprit console de jeu (mais en meme temps ils avaient pas le choix en l'absence de VRAM), la channel F penche plus du coté micro-informatique ou le CPU est vraiment l'element central (meme si sur 2600 il le devient aussi de part l'absence de VRAM) Donc vraiment une aproche tres differente qui devrait permettre des choses differentes (mais difficile a jauger sans essayer vraiment). Niveau resolution c'est plutot du 96x58 donc evidement plus faible que sur la 2600 mais on fait ce qu'on veut de chaque pixel vu qu'il y a un vrai framebuffer (pas de limite tel que le "playfield" sur 2600 bridé a 40 pixels horisontal et avec une symetrie), y a pas besoin d'user de multiple trick. Niveau couleur la aussi ont est loin de la 2600 sauf si on prend en compte la version francaise "SECAM" c'est du meme ordre, 8 couleurs. Pour la partie audio la aussi on est tres loin de la 2600, juste un seul speaker dans la console (le son passe pas par la TV dans le premier model) avec seulement 3 tons et pas de gestion de volume alors que sur la 2600 on a une sorte de petite bibliotheque de son dont on peut ajuster la frequence (ce qui nous donne environ 300 sons differents) ainsi que le volume et sur 2 voix simultanées, c'est du caviar a coté de la channel F. Au niveau audio et video la 2600 a vraiment le droit a des fonctions custom tel qu'on l'attend d'une console de jeu, pourtant j'avais pas trop cette vision la de la 2600 avant de m'y interressé de plus pret. Reste un point fort de la Channel F, en plus de cette VRAM enorme elle a aussi un bios de 1Ko (y a rien dans la 2600). il a ete decompilé, on voit dedans juste quelques lignes de code pour initialiser la machine comme mettre a zero les registres/scratchpad, le genre de truc qu'il faut faire soit meme sur 2600 (effacer la RAM, initialiser la pile, mais bon c'est un detail) puis ensuite ca test si y a une cartouche valide et si c'est pas le cas ca lance un jeu interne (un pong avec 2 mode de jeu, tennis et hockey) donc ca c'est la classe! Y a aussi 2 ou 3 subroutines dans ce jeu integré auxquelles on doit pouvoir acceder a partir d'autre jeu, ca peut permettre d'economiser de la ROM sur la cartouche. En resumé la Channel F est mal pourvu en features audio et video par contre elle integre cette enorme quantité de VRAM et meme de la ROM mais un CPU qui aujourd'hui passe pour tres exotique alors que le 6502 de la 2600 est aujourd'hui celebre (2600, C64, AppleII, NES, SNES, PC-engine...) et documenté donc tres accessible (et un peu l'ancetre des CPU RISC comme les ARM) Y a eu seulement une vingtaine/trentaine de jeu sur Channel F, elle a ete comercialisé seulement au US a 250 000 exemplaires |
| | | upsilandre Playstation 5
Nombre de messages : 26060 Age : 49 Localisation : Creteil 94 Pseudo PSN : Upsilandre Consoles : X360 Date d'inscription : 10/06/2006
| Sujet: Re: Hardcore Retrogaming Lun 23 Déc 2013 - 21:05 | |
| Je viens de voir qu'il y a quand meme pas mal de jeux VCS officiels d'Atari qui utilisent des cartouches boostées pour faire du bank switching et proposer des jeux de 8Ko (y en a beaucoup) voir 16Ko. Un jeu celebre comme Defender (Resogun) utilise une cartouche de 16Ko (soit 4x plus que ce que la console suporte nativement) et integre 128 octets de RAM suplementaire pour doubler la RAM (faut dire aussi que c'est probablement le premier jeu console a scroling et avec une map et un radar) Par contre dans pitfall pas de triche, c'est du simple 4ko de base et sans boost RAM, ca le rend d'autant plus impressionnant avec son aventure de 256 ecrans (auto-généré)
Le Bank switching faudra de toute facon que j'y passe au moins une fois pour connaitre, c'est pas un truc evident a maitriser donc ca merite de s'y pencher (c'est un coup de main a prendre je pense et meme sur NES faudra sans doute y passer j'imagine, a vu de nez je dirais qu'on doit etre limité nativement a 32Ko sur NES je pense). |
| | | Doc 42 Gamecube
Nombre de messages : 2175 Age : 49 Localisation : Planète lointaine 3CE.15.09.37.30 Consoles : PSP, PSVita Date d'inscription : 17/10/2006
| Sujet: Re: Hardcore Retrogaming Mar 24 Déc 2013 - 1:14 | |
| toujours aussi passionnant de lire tout ça En fait si on grossi un peu le trait, la Channel F est un peu l'ancètre des CPU CISC (8086,286,etc..) et du PC (bios, RAM++, concentration des taches au niveau CPU) et la 2600 l'ancètre des machines à multiples copro types Atari ST , Amiga, et les consoles 8 et 16 bits. (surtout que la boite ayant fait ce proc -MOS Technology- a été racheté par commodore) marrant de voir comment tout a débuté... ce 6502 c'était un sacré proc... j'ai pas résisté à relire des trucs sur ce CPU et c'est vraiment le coup de génie de l'époque (74-75) aussi puissant mais bien moin cher que la concurrence (et a une fréquence inférieur ce qui est positif à plusieurs niveaux) sans compter qu'il pouvait s'utiliser avec des RAM peu rapide donc là aussi moin cher. une pub de l'année de notre naissance : - Spoiler:
Et je découvre que le T800 de Terminator (1984) affiche du code asm 6502 |
| | | Contenu sponsorisé
| Sujet: Re: Hardcore Retrogaming | |
| |
| | | | Hardcore Retrogaming | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |