Page 6 of 6

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

Posted: Mon May 22, 2017 1:57 pm
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.

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

Posted: Mon May 22, 2017 5:29 pm
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.

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

Posted: Mon May 22, 2017 5:34 pm
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!! :-)

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

Posted: Mon May 22, 2017 5:50 pm
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

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

Posted: Mon May 22, 2017 5:55 pm
by ccovell
This is great. IPS plz. ;-)

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

Posted: Mon May 22, 2017 7:26 pm
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.

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

Posted: Mon May 22, 2017 11:40 pm
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 ;)