God I'm an idiot... How did I not see I forgot the "#" until just now, and how did I accidentally get rid of it in the first place?Espozo wrote: lda .LOWORD(ObjectTable)
How big is your object table? (addressing problems)
Moderator: Moderators
Forum rules
- For making cartridges of your Super NES games, see Reproduction.
- Drew Sebastino
- Formerly Espozo
- Posts: 3496
- Joined: Mon Sep 15, 2014 4:35 pm
- Location: Richmond, Virginia
Re: How big is your object table? (addressing problems)
Re: How big is your object table? (addressing problems)
Technically it's 3.58 MHz (3.55 PAL) with penalties. The internal speed is 6 master clocks per cycle regardless of the state of $420D; it's just that slow access cycles take an extra two master clocks of wait state.TOUKO wrote:i understand now why the snes's CPU was only clocked to 2,68 mhz ..
It's a shame that nintendo(ricoh in fact) has kept this half cycle access for memory, unlike hudson did for his HU6280 .
(This has the mildly interesting side effect that counting CPU cycles typically only gets you a rough estimate of the time taken by a procedure. To get an exact number you have to count master cycles.)
I suppose redesigning the 65C816 so radically was outside their budget... same with using 16-bit system busing with a smart interface to the 8-bit CPU bus, like the SA-1 did with its ROM... or maybe it was because they were going for backward compatibility with the Famicom until it was too late to make big changes. Either way, the CPU is definitely the least impressive of the three major subsystems.
I think that happens to every 65xx programmer at least once.Espozo wrote:God I'm an idiot... How did I not see I forgot the "#" until just now
One time I managed to convince myself that the description of $212E (TMW) was backwards, because when I tried to load #$1F (but without the "#") I got $1F, which was initialized to 00h. Attempting to load #$00 got me $00, which some previous code had set to 9Fh (note that $212E only uses bits 0-4)...
Re: How big is your object table? (addressing problems)
It's really strange because a small company like hudson did it .I suppose redesigning the 65C816 so radically was outside their budget...
I think nintendo knew that they could upgrade the snes's CPU easily and cheaper if needed,this is why they don't care to have a better CPU on a stock machine .
Costs were their main priority,and maybe they did not have the time to redoing it ??.
Ahaha, yes .I think that happens to every 65xx programmer at least once.
Re: How big is your object table? (addressing problems)
Not just amateur programmers, either.93143 wrote:I think that happens to every 65xx programmer at least once.
There are various points in Enix's Soul Blazer where a RNG output is read and then ANDed with some constant to get a random number within a small range, for example:
Code: Select all
LDA $0302
AND #$nn
... (several compares, branches, etc.)Except there's one place in the code where the programmer clearly made a typo:
Code: Select all
LDA #$0302
AND #$03
...I haven't figured out where that particular botched RNG call actually occurs in the game, though, so I'm not sure yet what exactly the player is missing out on because of those three potential "random" outcomes that aren't actually possible to trigger.
Re: How big is your object table? (addressing problems)
If you do figure it out, TCRF probably wants to know about which options were left on the cutting room floor.
Re: How big is your object table? (addressing problems)
That's actually most of the reason I was looking into it in the first place (I'm an admin there
) but it will probably be a while before I have enough time to look that deep into the game again.