X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=nsf.c;h=2db647cac7d8fb47c0bd6db782c4fca862d48b44;hp=cadb7264d6284209b74a2611878e2c5bcdf4d696;hb=c0bf6f9f02a2b6afb961a7e9195e2168d7e9cecf;hpb=c62d28102c77e19c291c78bf6bf7f0a81abd54b9 diff --git a/nsf.c b/nsf.c index cadb726..2db647c 100644 --- a/nsf.c +++ b/nsf.c @@ -123,7 +123,7 @@ static INLINE void BANKSET(uint32 A, uint32 bank) bank&=NSFMaxBank; if(NSFHeader.SoundChip&4) memcpy(FDSMEM+(A-0x6000),NSFDATA+(bank<<12),4096); - else + else setprg4(A,bank); } @@ -157,7 +157,7 @@ int NSFLoad(int fp) FCEU_fseek(fp,0x80,SEEK_SET); memset(NSFDATA,0x00,NSFMaxBank*4096); FCEU_fread(NSFDATA+(LoadAddr&0xfff),1,NSFSize,fp); - + NSFMaxBank--; BSon=0; @@ -189,7 +189,7 @@ int NSFLoad(int fp) for(x=0;x<32;x++) { double ta,no; - + ta=sin(fruit)*7; ta+=modf(ta,&no); sinetable[x]=ta; @@ -282,7 +282,7 @@ void NSF_init(void) SetReadHandler(0x4020,0x5fff,NSF_read); - if(NSFHeader.SoundChip&1) { + if(NSFHeader.SoundChip&1) { VRC6_ESI(0); } else if (NSFHeader.SoundChip&2) { VRC7_ESI(); @@ -305,7 +305,7 @@ DECLFW(NSF_write) switch(A) { case 0x5FF2:if((X.PC&0xF000)==0x3000) DoUpdateStuff=V;break; - + case 0x5FF6: case 0x5FF7:if(!(NSFHeader.SoundChip&4)) return; case 0x5FF8: @@ -318,6 +318,7 @@ switch(A) case 0x5FFF:if(!BSon) return; A&=0xF; BANKSET((A*4096),V); + X6502_Rebase(); break; } } @@ -343,12 +344,13 @@ DECLFR(NSF_read) BWrite[0x4011](0x4011,0x40); BWrite[0x4015](0x4015,0xF); BWrite[0x4017](0x4017,0x40); - if(NSFHeader.SoundChip&4) + if(NSFHeader.SoundChip&4) BWrite[0x4089](0x4089,0x80); if(BSon) { for(x=0;x<8;x++) BANKSET(0x8000+x*4096,NSFHeader.BankSwitch[x]); + X6502_Rebase(); } return (CurrentSong-1); } @@ -383,13 +385,13 @@ void DrawNSF(uint8 *XBuf) tmpb=NSFBG+8; z=(z+1)&127; - DrawTextTrans(XBuf+10*272+4+(((31-strlen(NSFHeader.SongName))<<2)), 272, NSFHeader.SongName, 38); - DrawTextTrans(XBuf+30*272+4+(((31-strlen(NSFHeader.Artist))<<2)), 272, NSFHeader.Artist, 38); - DrawTextTrans(XBuf+50*272+4+(((31-strlen(NSFHeader.Copyright))<<2)), 272, NSFHeader.Copyright, 38); + DrawTextTrans(XBuf+10*272+4+(((31-strlen((char *)(NSFHeader.SongName)))<<2)), 272, NSFHeader.SongName, 38); + DrawTextTrans(XBuf+30*272+4+(((31-strlen((char *)(NSFHeader.Artist)))<<2)), 272, NSFHeader.Artist, 38); + DrawTextTrans(XBuf+50*272+4+(((31-strlen((char *)(NSFHeader.Copyright)))<<2)), 272, NSFHeader.Copyright, 38); - DrawTextTrans(XBuf+90*272+4+(((31-strlen("Song:"))<<2)), 272, "Song:", 38); + DrawTextTrans(XBuf+90*272+4+(((31-strlen("Song:"))<<2)), 272, (uint8 *)"Song:", 38); sprintf(snbuf,"<%d/%d>",CurrentSong,NSFHeader.TotalSongs); - DrawTextTrans(XBuf+102*272+4+(((31-strlen(snbuf))<<2)), 272, snbuf, 38); + DrawTextTrans(XBuf+102*272+4+(((31-strlen(snbuf))<<2)), 272, (uint8 *)snbuf, 38); GetSoundBuffer(&Bufpl); for(x=0;x<256;x++) @@ -397,7 +399,7 @@ void DrawNSF(uint8 *XBuf) } void NSFControl(int z) -{ +{ if(z==1) { if(CurrentSong