young indiana jones new ppu discovery, nestopia help...
Moderator: Moderators
- *Spitfire_NES*
- Posts: 306
- Joined: Fri May 21, 2010 4:10 pm
Well, I wouldn't say "super", but $7C1F sounds more accurate, even if isn't a major impact after all.tepples wrote:I'll superimpose $FC1F on the bit definitions for the current VRAM pointer (loopy_V)
Zepper
RockNES author
RockNES author
- plasturion
- Posts: 63
- Joined: Thu Jun 02, 2011 2:05 am
- Contact:
Hi, guys. I just wanna say hi and thanks for discover a way to fix problem with this game. I've only wrote some kind of emu friendly patch, that helped me fceux and breakpoints, and also was amazed what the reading $2007 is really doing. This threat is interesting, so thanks a lot. Now nice be seeing Nestopia or FCEUX doing the same what nemulator does.
- *Spitfire_NES*
- Posts: 306
- Joined: Fri May 21, 2010 4:10 pm
Code: Select all
updateVramAddress: function() {
if (this.scanline >= 21 && this.scanline <= 260 && (this.f_bgVisibility || this.f_spVisibility) ) {
if(this.f_addrInc == 1) {
if((this.vramAddress & 0x7000) == 0x7000) {
this.vramAddress &= 0x0FFF;
switch(this.vramAddress & 0x03E0) {
case 0x03A0: this.vramAddress ^= 0x0800; break;
case 0x03E0: this.vramAddress &= 0xFC1F; break;
default: this.vramAddress += 0x20; break;
}
} else {
this.vramAddress += 0x1000;
}
} else {
this.vramAddress += 1; // possibly wrong
}
} else {
// Increment by either 1 or 32, depending on d2 of Control Register 1:
this.vramAddress += (this.f_addrInc==1?32:1);
this.vramAddress &= 0x7FFF;
}
},
- plasturion
- Posts: 63
- Joined: Thu Jun 02, 2011 2:05 am
- Contact:
I know these are FCEU formats... but I thinka you asking for description.
You can find some info in docs of source code FCEUX. ... here what the first lines of these files contains.
now im trying find out where to put a rule. You thinka should be made maybe in NstCore.cpp, NstPpu.cpp, NstVideoReneder.cpp or somwhere else? Damn.. it looks preety difficult... and where's a docs...
You can find some info in docs of source code FCEUX. ... here what the first lines of these files contains.
FM2 is ascii plain text.
It consists of several key-value pairs followed by an inputlog section.
The inputlog section can be identified by its starting with a | (pipe).
The inputlog section terminates at eof.
Newlines may be \r\n or \n
about Nestopia... source 1.40 just need VC++ 2005 Express, SP1, SDK, and DXSDK to compile, it works - yay. : >FCE Ultra Save State Format
Updated: Mar 9, 2003
---------------------------------------
FCE Ultra's save state format is now designed to be as forward and backwards
compatible as possible. This is achieved through the (over)use of chunks.
All multiple-byte variables are stored LSB(least significant byte)-first.
Data types:
(u)int8 - (un)signed 8 bit variable(also referred to as "byte")
(u)int16 - (un)signed 16 bit variable
(u)int32 - (un)signed 32 bit variable
-- Main File Header:
The main file header is 16-bytes in length. The first three bytes contain
the string "FCS"...
now im trying find out where to put a rule. You thinka should be made maybe in NstCore.cpp, NstPpu.cpp, NstVideoReneder.cpp or somwhere else? Damn.. it looks preety difficult... and where's a docs...
- *Spitfire_NES*
- Posts: 306
- Joined: Fri May 21, 2010 4:10 pm
The docs are in the HTML Help file (.chm) that comes with FCEUX. FCEUX can also convert .fcm -> .fm2.Zelex wrote:Off-topic, any idea where I can get info on the .fm2 and .fcm formats, so I can play back TAS videos in my emu?
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
- plasturion
- Posts: 63
- Joined: Thu Jun 02, 2011 2:05 am
- Contact:
Not sure but thinka maybe this method in NstPpu.cpp we should change, but how i'm still wonder.*Spitfire_NES* wrote:so is that code the fix to put into nestopia? i can compile it just fine. lol. :0
let me know. and thanks!
***Original***
Code: Select all
NES_PEEK_A(Ppu,2007)
{
Update( cycles.one, address );
NST_VERIFY( IsDead() );
address = scroll.address & 0x3FFF;
scroll.address = (scroll.address + ((regs.ctrl[0] & Regs::CTRL0_INC32) ? 32 : 1)) & 0x7FFF;
UpdateScrollAddressLine();
io.latch = (address & 0x3F00) != 0x3F00 ? io.buffer : palette.ram[address & 0x1F] & Coloring();
io.buffer = (address >= 0x2000 ? nmt.FetchName( address ) : chr.FetchPattern( address ));
return io.latch;
}
***Modified***
Code: Select all
NES_PEEK_A(Ppu,2007)
{
Update( cycles.one, address );
// NST_VERIFY( IsDead() );
address = scroll.address & 0x3FFF;
//scroll.address = (scroll.address + ((regs.ctrl[0] & Regs::CTRL0_INC32) ? 32 : 1)) & 0x7FFF;
if ((scanline >= 21 && scanline <= 260 ) && (regs.ctrl[1] & Regs::CTRL1_BG_SP_ENABLED)) {
if (regs.ctrl[0] & Regs::CTRL0_INC32) {
if((scroll.address & 0x7000) == 0x7000) {
scroll.address &= 0x0FFF;
switch(scroll.address & 0x03E0) {
case 0x03A0: scroll.address ^= 0x0800; break;
case 0x03E0: scroll.address &= 0x7C1F; break;
default: scroll.address += 0x20;
}
} else {
scroll.address += 0x1000;
}
} else {
scroll.address ++;
}
} else {
scroll.address = (scroll.address + ((regs.ctrl[0] & Regs::CTRL0_INC32) ? 32 : 1)) & 0x7FFF;
}
UpdateScrollAddressLine();
io.latch = (address & 0x3F00) != 0x3F00 ? io.buffer : palette.ram[address & 0x1F] & Coloring();
io.buffer = (address >= 0x2000 ? nmt.FetchName( address ) : chr.FetchPattern( address ));
return io.latch;
}
Update:
- Now Battle Toads it works.
- Ice Climber works (i just needed to rebuild all project)
- GI JOE, Batman Return of The joker works - condition (address increment check added)
Check this out what nestopia now can http://www.youtube.com/watch?v=fXPGTNZ2EK4
...and here is the new release...
==============================================
Nestopia 1.40.1 beta 1 - unofficial build
Nestopia-1.40.1b(IndyFix)
==============================================
Last edited by plasturion on Sun Jun 12, 2011 6:47 am, edited 2 times in total.
- *Spitfire_NES*
- Posts: 306
- Joined: Fri May 21, 2010 4:10 pm