Nothing seems to turn up on Google, so I once again turn to the Assembler forums. The NES and Genesis can be overclocked.. But what about the SNES? Games like Gradius III suffer major slowdown (I've heard) and I'd like to kill this possibility. So...? Possibility/parts needed (crystal or oscillator, etc.)/difficulty
on the snes, everything runs off a 21.4 mhz master clock, increasing it might result in faster program execution, but would also increase music and video speed, basically rendering the whole thing unusuable. the slowdowns you mentioned have two reasons: sloppy programming and games running with slowrom speed. the snes cpu can switch between 3 speed modes, 1.8, 2.4 and 3.5 (dont have the exact speeds here). older games that use roms with 200ns access speed can only be accessed with 2.4mhz. newer games with 120ns roms can run at 3.5mhz full-speed. older games can be hacked/converted to fastrom, i did this for super mario world once. its quite tedious, though. however, slowrom games could also copy their routines to wram and execute them there in order to run at full speed, so you could always blame the programmers.
What is involved in such a hack? Also, would doing so cause some games to run too fast or have distorted sound? Is your SMW hack been made public? What are the results of the hack, less slow down in a few areas of the game? A game that really needs such a hack is the original Harvest Moon. When you get 12 cows, the game really slows down in that area of the game. It becomes painful just to feed your cows because of all of the slow down.
no distorted sound, its not overclocking, it just allows the cpu to access rom data with the fastest mode possible. since the program code of most games (apart from super fx or sa1 games where the cpu has to share the rom bus with a co-cpu) runs directly from rom, theres a significant execution speed increase. writing a small routine that sets the fastrom flag of register $420d(iirc) and ideally converting all 24bit jumps and data fetches to access the upper fastrom-enabled mirror (thats bank $80 onwards for lorom and $80/$c0 for hirom, although hirom games almost alyways use the $c0 mirror already) is what you want to do. its not hard, just tedious, like i said before. i think i ended up manually changing 200-300 jml/jsl in mario world. ~_= when i was bored, i also added a full-fledged hdma handler to mario world that allows for multiple line-scrolling and color gradient effects per level, you can have a look at it here: http://board.acmlm.org/archive//thread.php?id=18489 oh, and be warned, that link above leads to a romhacking-kiddie-bbs. i have to admit that it was a total waste of time, but it was fun to code, nevertheless. here's a picture of that hdma handler in action (line-based color addition and line-scrolling):
d4s, A waste of time? It sounds like one hell of a hack to me. I thought that fastrom games ran the SNES CPU at a higher clock rate. I realize that it speeds up the ROM read speed. I'd love to see something like your mod done to Super Mario Kart, which to be honest, could use a better frame rate. It is my favorite game, but there are moments where you can tell that it isn't running at a solid 60 FPS. Also, maybe with such a hack, the game could be modified to allow more objects to stay in the world at the same time. In battle mode, eventually bananas and green shells start to disappear, as they are removed when some limit is reached. I am not sure if the SNES or ROM speed is the bottleneck, or if it is the DSP1 chip.
thanks both of you. well, "waste of time" is probably the wrong term. "pointless" fits better. that hdma stuff was LOTS of work though. i dont have the mario kart rom here, but iirc, its hirom/fastrom already, so there'd be nothing to improve. a real good example of a game that desperately needs a fastrom update is super r-type, imho.