Updated to v067r21 release.
byuu says:
This moves toward a profile-selection mode. Right now, it is incomplete.
There are three binaries, one for each profile. The GUI selection
doesn't actually do anything yet. There will be a launcher in a future
release that loads each profile's respective binary.
I reverted away from blargg's SMP library for the time being, in favor
of my own. This will fix most of the csnes/bsnes-performance bugs. This
causes a 10% speed hit on 64-bit platforms, and a 15% speed hit on
32-bit platforms. I hope to be able to regain that speed in the future,
I may also experiment with creating my own fast-SMP core which drops bus
hold delays and TEST register support (never used by anything, ever.)
Save states now work in all three cores, but they are not
cross-compatible. The profile name is stored in the description field of
the save states, and it won't load a state if the profile name doesn't
match.
The debugger only works on the research target for now. Give it time and
it will return for the other targets.
Other than that, let's please resume testing on all three once again.
See how far we get this time :)
I can confirm the following games have issues on the performance
profile:
- Armored Police Metal Jacket (minor logo flickering, not a big deal)
- Chou Aniki (won't start, so obviously unplayable)
- Robocop vs The Terminator (major in-game flickering, unplayable)
Anyone still have that gigantic bsnes thread archive from the ZSNES
forum? Maybe I posted about how to fix those two broken games in there,
heh.
I really want to release this as v1.0, but my better judgment says we
need to give it another week. Damn.
2010-10-20 11:22:44 +00:00
|
|
|
#ifdef CPU_CPP
|
|
|
|
|
|
|
|
void CPU::serialize(serializer &s) {
|
2012-04-29 06:16:44 +00:00
|
|
|
R65816::serialize(s);
|
2012-03-23 10:43:39 +00:00
|
|
|
Thread::serialize(s);
|
Updated to v067r21 release.
byuu says:
This moves toward a profile-selection mode. Right now, it is incomplete.
There are three binaries, one for each profile. The GUI selection
doesn't actually do anything yet. There will be a launcher in a future
release that loads each profile's respective binary.
I reverted away from blargg's SMP library for the time being, in favor
of my own. This will fix most of the csnes/bsnes-performance bugs. This
causes a 10% speed hit on 64-bit platforms, and a 15% speed hit on
32-bit platforms. I hope to be able to regain that speed in the future,
I may also experiment with creating my own fast-SMP core which drops bus
hold delays and TEST register support (never used by anything, ever.)
Save states now work in all three cores, but they are not
cross-compatible. The profile name is stored in the description field of
the save states, and it won't load a state if the profile name doesn't
match.
The debugger only works on the research target for now. Give it time and
it will return for the other targets.
Other than that, let's please resume testing on all three once again.
See how far we get this time :)
I can confirm the following games have issues on the performance
profile:
- Armored Police Metal Jacket (minor logo flickering, not a big deal)
- Chou Aniki (won't start, so obviously unplayable)
- Robocop vs The Terminator (major in-game flickering, unplayable)
Anyone still have that gigantic bsnes thread archive from the ZSNES
forum? Maybe I posted about how to fix those two broken games in there,
heh.
I really want to release this as v1.0, but my better judgment says we
need to give it another week. Damn.
2010-10-20 11:22:44 +00:00
|
|
|
PPUcounter::serialize(s);
|
|
|
|
|
Update to v074r11 release.
byuu says:
Changelog:
- debugger compiles on all three profiles
- libsnes compiles on all three platforms (no API changes to libsnes)
- memory.cpp : namespace memory removed (wram -> cpu, apuram -> smp,
vram, oam, cgram -> ppu)
- sa1.cpp : namespace memory removed (SA-1 specific functions merged
inline to SA1::bus_read,write)
- GameBoy: added serial link support with interrupts and proper 8192hz
timing, but obviously it acts as if no other GB is connected to it
- GameBoy: added STAT OAM interrupt, and better STAT d1,d0 mode values
- UI: since Qt is dead, I've renamed the config files back to bsnes.cfg
and bsnes-geometry.cfg
- SA1: IRAM was not syncing to CPU on SA-1 side
- PPU/Accuracy and PPU/Performance needed Sprite oam renamed to Sprite
sprite; so that I could add uint8 oam[544]
- makes more sense anyway, OAM = object attribute memory, obj or
sprite are better names for Sprite rendering class
- more cleanup
2011-01-24 09:03:17 +00:00
|
|
|
s.array(wram);
|
|
|
|
|
Updated to v067r21 release.
byuu says:
This moves toward a profile-selection mode. Right now, it is incomplete.
There are three binaries, one for each profile. The GUI selection
doesn't actually do anything yet. There will be a launcher in a future
release that loads each profile's respective binary.
I reverted away from blargg's SMP library for the time being, in favor
of my own. This will fix most of the csnes/bsnes-performance bugs. This
causes a 10% speed hit on 64-bit platforms, and a 15% speed hit on
32-bit platforms. I hope to be able to regain that speed in the future,
I may also experiment with creating my own fast-SMP core which drops bus
hold delays and TEST register support (never used by anything, ever.)
Save states now work in all three cores, but they are not
cross-compatible. The profile name is stored in the description field of
the save states, and it won't load a state if the profile name doesn't
match.
The debugger only works on the research target for now. Give it time and
it will return for the other targets.
Other than that, let's please resume testing on all three once again.
See how far we get this time :)
I can confirm the following games have issues on the performance
profile:
- Armored Police Metal Jacket (minor logo flickering, not a big deal)
- Chou Aniki (won't start, so obviously unplayable)
- Robocop vs The Terminator (major in-game flickering, unplayable)
Anyone still have that gigantic bsnes thread archive from the ZSNES
forum? Maybe I posted about how to fix those two broken games in there,
heh.
I really want to release this as v1.0, but my better judgment says we
need to give it another week. Damn.
2010-10-20 11:22:44 +00:00
|
|
|
queue.serialize(s);
|
|
|
|
s.array(port_data);
|
|
|
|
|
|
|
|
for(unsigned i = 0; i < 8; i++) {
|
|
|
|
s.integer(channel[i].dma_enabled);
|
|
|
|
s.integer(channel[i].hdma_enabled);
|
|
|
|
|
|
|
|
s.integer(channel[i].direction);
|
|
|
|
s.integer(channel[i].indirect);
|
|
|
|
s.integer(channel[i].unused);
|
|
|
|
s.integer(channel[i].reverse_transfer);
|
|
|
|
s.integer(channel[i].fixed_transfer);
|
|
|
|
s.integer(channel[i].transfer_mode);
|
|
|
|
|
|
|
|
s.integer(channel[i].dest_addr);
|
|
|
|
s.integer(channel[i].source_addr);
|
|
|
|
s.integer(channel[i].source_bank);
|
|
|
|
|
|
|
|
s.integer(channel[i].transfer_size);
|
|
|
|
|
|
|
|
s.integer(channel[i].indirect_bank);
|
|
|
|
s.integer(channel[i].hdma_addr);
|
|
|
|
s.integer(channel[i].line_counter);
|
|
|
|
s.integer(channel[i].unknown);
|
|
|
|
|
|
|
|
s.integer(channel[i].hdma_completed);
|
|
|
|
s.integer(channel[i].hdma_do_transfer);
|
|
|
|
}
|
|
|
|
|
|
|
|
s.integer(status.nmi_valid);
|
|
|
|
s.integer(status.nmi_line);
|
|
|
|
s.integer(status.nmi_transition);
|
|
|
|
s.integer(status.nmi_pending);
|
|
|
|
|
|
|
|
s.integer(status.irq_valid);
|
|
|
|
s.integer(status.irq_line);
|
|
|
|
s.integer(status.irq_transition);
|
|
|
|
s.integer(status.irq_pending);
|
|
|
|
|
|
|
|
s.integer(status.irq_lock);
|
|
|
|
s.integer(status.hdma_pending);
|
|
|
|
|
|
|
|
s.integer(status.wram_addr);
|
|
|
|
|
|
|
|
s.integer(status.joypad_strobe_latch);
|
|
|
|
|
|
|
|
s.integer(status.nmi_enabled);
|
|
|
|
s.integer(status.virq_enabled);
|
|
|
|
s.integer(status.hirq_enabled);
|
|
|
|
s.integer(status.auto_joypad_poll_enabled);
|
|
|
|
|
|
|
|
s.integer(status.pio);
|
|
|
|
|
|
|
|
s.integer(status.wrmpya);
|
|
|
|
s.integer(status.wrmpyb);
|
|
|
|
s.integer(status.wrdiva);
|
|
|
|
s.integer(status.wrdivb);
|
|
|
|
|
|
|
|
s.integer(status.htime);
|
|
|
|
s.integer(status.vtime);
|
|
|
|
|
|
|
|
s.integer(status.rom_speed);
|
|
|
|
|
|
|
|
s.integer(status.rddiv);
|
|
|
|
s.integer(status.rdmpy);
|
|
|
|
|
|
|
|
s.integer(status.joy1l);
|
|
|
|
s.integer(status.joy1h);
|
|
|
|
s.integer(status.joy2l);
|
|
|
|
s.integer(status.joy2h);
|
|
|
|
s.integer(status.joy3l);
|
|
|
|
s.integer(status.joy3h);
|
|
|
|
s.integer(status.joy4l);
|
|
|
|
s.integer(status.joy4h);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|