mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-10-04 23:51:47 +02:00
Update to bsnes v018 release.
I began working on bsnes on October 14th, 2004. I am releasing bsnes v0.018 today to celebrate bsnes' two year anniversary. Please note that this release incurs a ~15% speed reduction since v0.017, due to IRQ and S-SMP timing improvements. Changelog: - Fixed many critical errors in IRQ timing, should be *very* close to real hardware now - Corrected major CPU timing bug involving CPU I/O condition 4 - Corrected bug with generic HiROM / LoROM memory maps - Corrected bug involving HDMA indirect channel termination [anomie] - OAM address reset now occurs when screen display is enabled, per recent research - Readded full DMA, HDMA and HDMA init bus sync timing - Added preliminary emulation of S-SMP $00f0 TEST register (6 of 8 bits are supported) - Readded emulation of known timing differences between CPU revisions 1 and 2 - Config file can now control scanline-based PPU render position. This will only be needed until a proper dot-based PPU renderer is added - Removed core debugging hooks so that debugging console can remain in public releases, it now functions as a tracer and memory editor - Config file paths once again work correctly even if missing trailing backslash - Video configuration simplified, sorry in advance to those who enjoyed the profile mode used before - Added new configuration screen to control some emulation settings - Replaced bsnes program icon with a much nicer one [FitzRoy] - Optimized memory speed detection algorithm - Preliminary UPS soft-patching support (do not use this yet!) - Decreased memory usage and optimized generic libraries used by bsnes (/src/lib) - Now caching OAM by one line, somewhat similar to a real SNES. Fixes Winter Gold, but causes line rendering error in Mega lo Mania - Lots more, as usual The following games have been fixed since v0.017 by the above bugfixes: - Battle Blaze (J, U) - Circuit USA (J) - F1 Grand Prix (J) - Funaki Masakatsu no Hybrid Wrestler - Tougi Denshou (J) - Jumbo Ozaki no Hole in One (J) - Mahjongg Taikai II (J) - RPG Tsukuru - Super Dante (J) - Robocop Versus The Terminator (U, E) - Sink or Swim (U, E) - Street Racer (J) - Touge Densetsu Saisoku Battle (J) - Winter Olympics (U, E)
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
#include "../base.h"
|
||||
|
||||
Cheat cheat;
|
||||
|
||||
/*****
|
||||
* string <> binary code translation routines
|
||||
* decode() "7e1234:56" -> 0x7e123456
|
||||
@@ -7,7 +9,7 @@
|
||||
*****/
|
||||
|
||||
bool Cheat::decode(char *str, uint32 &addr, uint8 &data, uint8 &type) {
|
||||
string t, part;
|
||||
stringarray t, part;
|
||||
strcpy(t, str);
|
||||
strlower(t);
|
||||
if(strlen(t) == 8 || (strlen(t) == 9 && strptr(t)[6] == ':')) {
|
||||
@@ -270,15 +272,15 @@ bool Cheat::load(Reader &rf) {
|
||||
if(!rf.ready())return false;
|
||||
|
||||
uint8 *raw_data = rf.read();
|
||||
string data;
|
||||
stringarray data, line;
|
||||
raw_data[rf.size()] = 0;
|
||||
strcpy(data, (char*)raw_data);
|
||||
SafeFree(raw_data);
|
||||
replace(data, "\r\n", "\n");
|
||||
string line;
|
||||
|
||||
split(line, "\n", data);
|
||||
for(int i = 0; i < ::count(line); i++) {
|
||||
string part;
|
||||
stringarray part;
|
||||
uint8 en = *(strptr(line[i]));
|
||||
if(en == '+') {
|
||||
strltrim(line[i], "+");
|
||||
|
Reference in New Issue
Block a user