Language…
18 users online:  AmperSam, asterkafton, ClaireChan, DanMario24YT, Everest, Gamet2004, h4shcat, Hayashi Neru, Jaiden, LightAligns, MorrieTheMagpie, PaceTheAce, Rhubarb44230,  Segment1Zone2, ShadowMistressYuko, signature_steve, simon.caio,  zuccha - Guests: 257 - Bots: 348
Users: 64,795 (2,378 active)
Latest user: mathew

SA-1 Patch Released (Final version released)

It should actually really help with the OAM. SMW's routine that compresses $0420+ down into the $0400 area eats up a good amount of time. Same with the one that shoves all sprites tiles offscreen at the end of every frame.

Don't see it helping too much with anything else sprite related, unless you've got a really slow custom one. Collision maybe?
Here it: http://bin.smwcentral.net/u/8251/oam_optimization.zip.

This patch optimizes the two routines that you said. It is not very difficult to optimize a few things when the SA-1 can access (in this case, with my oam remap). As for the sprites, I'm thinking of a way to SNES copy all the information required to SA-1 stratch RAM and SA-1 return information already processed.

In addition to the sprites, I'm also creating a version of LC_LZ2 with SA-1.
GitHub - Twitter - YouTube - SnesLab Discord
Can this SCALE sprites? I wanna know, because I wanna make some sprites like DKC. Also, what about that X = (.....?
I don't understand that so specify math. Can you make an example of rotating it 1, 2, 3 pixels?
If I remember... with SA-1, you can scale and rotate sprites (and layers, too), but I don't know if this patch do this.
Originally posted by Luigi370
Can this SCALE sprites? I wanna know, because I wanna make some sprites like DKC. Also, what about that X = (.....?
I don't understand that so specify math. Can you make an example of rotating it 1, 2, 3 pixels?

Also, I wanna know:
- which addmusic works with this shit patch?
SA-1 can manipulate any kind of bitmap (graphics) (not sprites or layers). Although it is possible do everything you said, you need someone to make first. But it is very difficult to do this.

About addmusic, they worked just fine if you change the definitions !EXB to $00, !FXB to $01 and expand the ROM to 2MB, or you will need to implement the SA-1 Memory Map on them.
GitHub - Twitter - YouTube - SnesLab Discord
Originally posted by Vitor Vilela
About addmusic, they worked just fine if you change the definitions !EXB to $00, !FXB to $01 and expand the ROM to 2MB, or you will need to implement the SA-1 Memory Map on them.


What would be required to do this? What exactly is the SA-1 memory map for 4MB ROMs?
I should get a new layout.

Probably won't, though.
Well, LoROM games normally have this memory map:

$00-$6F:$8000-$FFFF -> all parts of rom (max 3.5 MiB)

or in FastROM:
$80-$FF:$8000-$FFFF -> all parts of rom (max 4.0 MiB)

But SA-1 is a bit different:

$00-$3F:$8000-$FFFF -> part 1 of rom (1-2 mb)
$80-$BF:$8000-$FFFF -> part 2 of rom (3-4 mb)

Addmusics normally use FastROM. Because of this, when the snes tries to access the ROM in banks $80-$FF, will return data from another location and so a crash will occur.

Changing EXB and FXB to $00 and $01 will typically make banks $80-$BF to access the first part of the ROM, but doing so would limit the size of a 2MB ROM.

An easy way to implement SA-1 Memory Map is to remove all the |$800000 in jumps and remake the lorom2pc and pc2lorom in tools.
GitHub - Twitter - YouTube - SnesLab Discord
Originally posted by wiiqwertyuiop
Originally posted by Luigi370
Can this SCALE sprites? I wanna know, because I wanna make some sprites like DKC.


DKC doesn't use the SA-1 (or anything).

I did say:
Originally posted by Luigi370
I wanna make some sprites like DKC.

REMAKE, not rip-off. I wanna do it with not 3D GFX.



EDIT:
Can anyone make a rotation example? For example, I want the sprite from SA-1 rotation takes.
My understanding is to rotate a sprite tile, you have to rotate it manually. As in, rearrange the pixels yourself. With mathematics.


Might as well just use a dynamic sprite. Takes a ton of ROM space but a hell of a lot easier.
I wanna know an example of rotation.

ViViela, please, post your rotating sprite here.(the one you uused for rotation takes)
Awesome! Now someone do Super FX...

What exactly can this patch make possible besides the general description of making the ROM able to do more.
Re-registered as Roadsguy.
Originally posted by Roads1
What exactly can this patch make possible besides the general description of making the ROM able to do more.


Originally posted by Vitor Vilela
SA-1 can manipulate any kind of bitmap (graphics) (not sprites or layers).


That sums up the most common use of the chip. Often it's used for scaling and rotating sprites.
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Cool! So it's like Mode 7 everything, right?
Re-registered as Roadsguy.
@Luigi370: I'm doing a better code of rotation/scaling, because the current is not fast. So while I unable to create a good, I cannot post here.

@Roads1: This patch allows to run ASM code ~5x faster than normal. SA-1 is a processor very similar to the SNES, except that it has a clock of 10 MHz, instead 2 MHz of SNES. The main purpose is to speed but it comes with additional features that allows you to do things like editing bitmap (in other words: sprite/graphics scaling/rotation, "3D" (via software, obvious), etc.)

@RPG Hacker: The main purpose of the SA-1 is not really rotate/scale graphics. It is mostly used to speedup code. Unlike SuperFX, SA-1 has its own indexing, stack, direct page, data bank, AXY, where SuperFX not.

Edit: ninja'd

@Roads1: No. He is just a high-speed CPU, but has features that allows editing of bitmap.
GitHub - Twitter - YouTube - SnesLab Discord
Originally posted by Vitor Vilela
The main purpose of the SA-1 is not really rotate/scale graphics.


That's why I said "often" and not "usually".
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Do LevelASMtool works with this?

I think levelASM is worse than the tool.
With some modifications in the tool, it's possible because the tool doesn't have the "SA-1 Processing" code, so it's better to stick with LevelASM until someone sends the LevelASMTool compatible with SA-1.