Why did Super Mario RPG and Kirby Super Star use an SA-1?

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
User avatar
MottZilla
Posts: 2835
Joined: Wed Dec 06, 2006 8:18 pm

Re: Why did Super Mario RPG and Kirby Super Star use an SA-1

Post by MottZilla »

He seems to talk briefly and vaguely about these things. Example here: viewtopic.php?f=12&t=15794

He seemed to have an example that could actually be tested but then never seemed to revisit it. The idea of optimizing games that suffer bad slowdowns is a nice idea but I haven't really seen anyone do that.
User avatar
rainwarrior
Posts: 8062
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Why did Super Mario RPG and Kirby Super Star use an SA-1

Post by rainwarrior »

I think it would be really great if psycopathicteen managed to optimize an old game and make it run better. That'd be pretty neat, and something I'd like to see the process of.

I even wouldn't mind a post that was like "why is this code in (insert game name) so stupid?" with a concrete example in its real context that we could look at and discuss. That stuff's totally cool.

This post, however, is none of that. It's some kind of challenge based on a false premise. Of course someone who knows 65XX would be very stupid to consider both those choices, and choose the former. Nobody would make that choice directly; it can happen naturally from process and iteration though, which I and others have been saying all along but you keep insisting that it's purely intentional. IT IS NOT. You're not even asking a question, you're just making some statement that you think you could have done their job better. Big deal. :P There are things that could be improved in any game that's ever shipped.
User avatar
Fisher
Posts: 1173
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Why did Super Mario RPG and Kirby Super Star use an SA-1

Post by Fisher »

Since you're talking about optimising old games to remove slowdown, can I suggest this one as a candidate for this experience?
If someone can remove the slowdown in this game only changing its PRG ROM I would be VERY happy!! :-)
psycopathicteen
Posts: 3001
Joined: Wed May 19, 2010 6:12 pm

Re: Why did Super Mario RPG and Kirby Super Star use an SA-1

Post by psycopathicteen »

I made a ROM patch for Super Ghouls and Ghosts a while ago.

Code: Select all

arch snes.cpu

macro seek(n) {
origin (({n} & 0x7f0000) >> 1) | ({n} & 0x7fff)
base {n}
}

seek($01a43a)
and #$00ff
asl
asl
sta $0010
sep #$20
bra +

seek($01a44e)
+;

seek($0185aa)
lda #$0001
sta $420d
nop
nop


seek($01871f)
xba
lsr
ror $42
clc
lda $0004,y
adc $04
cmp #$00e0
bcc +
cmp #$fff0
bcs + 
lda #$00e0
+;
sta $f101,x
lda $0006,y
adc $1a
and $10
ora $12
sta $f102,x
lda $0006,y
asl
asl
asl
ror $42
dec $44
bne +



seek($018766)
+;


seek($018780)
xba
lsr
ror $42
clc
lda $0004,y
adc $04
cmp #$00e0
bcc +
cmp #$fff0
bcs + 
lda #$00e0
+;
sta $f101,x
lda $0006,y
adc $1a
and $10
ora $12
eor #$4000
sta $f102,x
lda $0006,y
asl
asl
asl
ror $42
dec $44
bne +



seek($0187ca)
+;




seek($01b213)
jsl $8185bb

seek($01b20f)
jsl $8184c3

seek($008b09)
jml $82827a

seek($01d973)
jsl $81a50e

seek($02f26c)
jsl $818459

seek($02f0da)
jsl $8189d9

seek($02f0b3)
jsl $818459

seek($028fc3)
jsl $818e73 

seek($028fbf)
jsl $818459

seek($028f0f)
jsl $81a4e8

seek($02f0da)
jsl $8189d9

seek($028fcd)
jsl $81a5af

seek($028f86)
jsl $8188b7

seek($80826d)
jml +
+;
rep #$20
phd
lda #$2100
tcd
lda $02e2
sta $26
lda $02e4
sta $28
lda $02dc
sta $07
ldy $02de
sty $09
lda $02e6
sta $23
ldy $02e8
sty $25
lda $02e9

sta $2a

lda $02eb
sta $30

ldy $02ee

sty $32
lda $02d5
sta $2c
lda $02c7
sta $2e
lda $02e0
sta $0b
pld
sep #$20
bra +

seek($8082eb)
+;

seek($01d978)
jsl $81a508

seek($02879e)
jsl $81d090

seek($01b1c8)
jsl $82821b


seek($0188ea)
rep #$21
lda $1e
adc $16
sta $1e
sep #$20
lda $20
adc $18
sta $20
rts

seek($0188fd)
rep #$20
sec
lda $1e
sbc $16
sta $1e
sep #$20
lda $20
sbc $18
sta $20
rts

seek($0188cd)
rep #$21
lda $21
adc $19

sta $21
sep #$20
lda $23

adc $1b
sta $23
rtl


seek($018a44)
rep #$21
lda $1e
adc $0000
sta $1e
sep #$20
lda $20
adc $0002
sta $20
rep #$21
lda $21
adc $0004
sta $21
sep #$20
lda $23
adc $0006
sta $23
sep #$30
rtl

seek($01d95f)
jsl $81a5af

seek($81b271)
jml +
+;
rep #$20
phd
lda #$1f00
tcd
lda $02de
sta $63
sta $68
lda $02e0
sta $65
sta $6a
lda $02d7
sta $79
sta $7c
sep #$20
lda $02d9
sta $6e
sta $70
pld
rts
ccovell
Posts: 1041
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: Why did Super Mario RPG and Kirby Super Star use an SA-1

Post by ccovell »

This is great. IPS plz. ;-)
User avatar
rainwarrior
Posts: 8062
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Why did Super Mario RPG and Kirby Super Star use an SA-1

Post by rainwarrior »

psycopathicteen wrote:I made a ROM patch for Super Ghouls and Ghosts a while ago.
Hey now that's pretty neat, worth having its own thread too BTW.
Oziphantom
Posts: 1163
Joined: Tue Feb 07, 2017 2:03 am

Re: Why did Super Mario RPG and Kirby Super Star use an SA-1

Post by Oziphantom »

The good thing is if you patch one Konami game you could probably patch them all ;)

psycopathicteen should team up with OmegaMax and make a website together. First step in patching is doing the archaeology to work out what needs to be patched ;)
Post Reply