Language…
15 users online: Adriel_Isaque, Children's Digest 1950-2009, Dinkleberrg, GrenCarret, Hidincuzimsmokin, hoangng, Koopster, LadiesMan217, Minish Yoshi, Miscalc, MoghedienNinek, Nciktendo, Overcrow03, TenBlade, TheBourgyman - Guests: 104 - Bots: 169
Users: 55,667 (2,409 active)
Latest user: Skulltronixs

GPS V1.2.31 - Gopher Popcorn Stew

Tools → GPS V1.2.31 - Gopher Popcorn Stew

This file is obsolete. The latest version is GPS V1.4.3 - Gopher Popcorn Stew. For other versions, check the version history.

Submission Details

Name: GPS V1.2.31 - Gopher Popcorn Stew
Author: p4plus2
Added:
Version History: View
Operating System: Windows, Mac OS X, Linux
Platforms: SNES
Games: SMW
Source Available: Yes
Featured: Essential
Website: None
Description: This tool, as the name clearly doesn't imply, is a block inserter designed to replace the dated BTSD. It is backwards compatible with BTSD and will upgrade your ROM when using the tool. The readme has full details on benefits, and thanks to Alcaro for writing the included GUI. The GUI is much slower to use in my opinion but does exist. Use the GUI at your own risk.

Simple blocks, for example Mario-only, can be created with Blockreator.
Tags: block blocktool btsd gps sa-1
Comments: 41 (jump to comments)
Rating:
4.4 (25 ratings)
No rating
Download 326.69 KiB | 2,056 downloads

Comments (41)

Akutarex Link
Comentando só pra botar as estrelinhas
TomsMostHammed Link
@GhostBro Does lx5 hate BTSD?
Looney Balloon Link
how do I even use this?
NecrozmaSpin Link
"main.asm:26: error: A bank border was crossed somewhere prior to this point. [org $06F67B]"
Help anyone?
HammerBrother Link
Not only that, BTSD is a CLOSED SOURCE AND the author is INACTIVE, which means that its completely outdated permanently.

That is another reason why we moved to an open source alternative.

If FuSoYa did the same thing, we probably would analyze the code inserted by the program and make our own level (and overworld) editor (thanks for authorizing us to distribute it so we can keep testing its code in the ROM).

As everyone knows, if the author of the closed software is dead, the software will stop updating for good, unless if the author hires another person to be the next generation in line to support it.

I have to agree with LX5, you basically have limits on programming your blocks with this broken software:

-its counter-intuitive with the offsets (like why -1 on the offsets?), you can't know what code and hijacks it used due to being "proprietary-secret" unless you check the code that was mentioned in fusoya's readme about custom map16 tiles.

-it requires a .net framework (most modern pcs now days have them pre-installed), when its possible to program your game to have them without it

-It uses xkas to insert code into your ROM, yes XKAS. As in, the outdated patching program with numerous bugs and glitches combine with the software itself not having an ability to even set the freespace. We are now in the asar age.

-Everyone know this: inserting lots of blocks take FOREVER, almost every half-second is 1 block successfully inserted to your ROM. Imagine if you have 50+ custom blocks. I could possibly watch youtube and it gets done when the video is over.

-Each time you insert new blocks, its not as simple as adding a list like most modern tools here, you have to go on the menubar, hit "add new block", and fill out the information, ONE AT A TIME, PER BLOCK. This could make block packs that must be used together in levels TEDIOUS to insert, especially my screen scrolling pipes, just count blocks where in there. With GPS, you can copy the provided list in such packs and insert them all at once, which this will win the race in terms of inserting them into your ROM (combine this with how slow it insert blocks). Even romi's spritetool uses the list system, and I appreciate the invention of that.

-Finding errors is a guessing game when looking back at your code, because the way it reports is that it uses a pop-up window and doesn't say why the error happened. So testing is also tedious.

GPS does not have any of those issues and have better features, my most favorite is the %callRoutine() when you reuse the same code without having duplicate codes in your ROM (especially the long map16 change routine).
lx5 Link
>Blatantly worse than BTSD in every way possible.

Nope.
- Its GUI wasn't good either, it was horrible.
- Databases were horrible to work with. Slower as a snail to add blocks. They were even worse with collaborative projects.
- Developing for it was bad too; it wasn't good at reporting errors.
- It doesn't support WallRun offsets.
- It's slow at inserting blocks.
 MarioFanGamer Link
Originally posted by Roadhog360 Gaming
Blatantly worse than BTSD in every way possible.

Faster insertion speed, ROM space saving, merging block and Map16 list, discription from blocks and Asar (at least for coders) is worse for you?

Originally posted by Roadhog360 Gaming
you can't replace anything on 00 or 01

Actually... Well, you actually have got a point there. But it is possible to do some workaround. Of course, one have to ask p4 why he did that.

Originally posted by Roadhog360 Gaming
I'm trying to simply insert blocks and I'm getting errors for no reason. Ridiculous. Would rate 0 if I could.

What kind of errors?
 Roadhog360 Gaming Link
Blatantly worse than BTSD in every way possible. I cannot believe this horrible tool replaced BTSD.
This tool will give errors for no reason, you can't replace anything on 00 or 01, and has a broken GUI.
Did I mention BTSD also has NONE of these issues and has always worked fine for me?
I'm trying to simply insert blocks and I'm getting errors for no reason. Ridiculous. Would rate 0 if I could.
PRIVATEGAMER23 Link
So I am relatively new to ROM hacking, and don't know some things.

When I try to insert the ROM, I get this error message: main.asm:26: error: A bank border was crossed somewhere prior to this point. [org $06F67B]
I don't know what a bank border is. Can someone please help?
Imnever Link
I putted the following in the list.txt file, Just like this,

200:130 ConveyorBlockRight.asm
210:130 BreakableBelowBlock.asm

Then when I inserted them to My ROM, I checked the Map16 Page 2, This happened, Does anyone know how to fix this? https://i.gyazo.com/1dae78006be7669ad2239784e205ca68.mp4
TheBiob Link
What even. I could've sworn it was there when I submitted it. And it probably wouldn't have gotton past moderation if it was missing.

Either way, I uploaded it here
And sorry in case of it being my fault. Though I don't even have a zip file which doesn't contain the exe and I don't delete stuff I upload (Usually anyway)
Murphmario Link
It dosen't come with the app to run it.
TheBiob From older version: GPS V1.2.3 - Gopher Popcorn Stew Link
Wait how did I accidentally set the game to YI?? I thought I never touched anything besides the description and file itself...
leod From older version: GPS V1.2.3 - Gopher Popcorn Stew Link
Perfect! Thank you!
TheBiob From older version: GPS V1.2.2 - Gopher Popcorn Stew Link
Okay, I'm done modifying gps
Everything works *in theory* but I'm unable to compile the source code so I can't test it.
If anyone that is able to compile the source would do that then I could test if what I've written works. (I don't expect it to break but you never know.)

Edit: Nvm got it compiled myself. Will test it and then submit.

Changes I made:
== GPS ==
- The block pointers now point to the db at the start of the block instead of the first JMP like they used to
- Now allows db $37 as a valid header
- Changed "<file> lacks a db $42 header" message to "<file> lacks a db $42 or db $37 header"
== main.asm ==
- Runs the "wallrun" offset only if it contains a db $37 header. Otherwise returns without running that offset
TheBiob From older version: GPS V1.2.2 - Gopher Popcorn Stew Link
Originally posted by GreenHammerBro
So, you can put any number for the db to indicate the offset group type.

Yes... and no. Depends on what you mean.
The number that determines what offset group it uses is decided by the programmer. The programmer can choose any number though.
I looked at gps' source and it shouldn't be difficult to make gps see db $37 as a valid header.
You'd simply have to add checks to determine wether or not to run the offset
I could do that but that'll have to wait until tomorrow.
HammerBrother From older version: GPS V1.2.2 - Gopher Popcorn Stew Link
So, you can put any number for the db to indicate the offset group type.
 MarioFanGamer From older version: GPS V1.2.2 - Gopher Popcorn Stew Link
Originally posted by GreenHammerBro
Where did you get the db $37?

That's just an example ($37 because of 1337).
HammerBrother From older version: GPS V1.2.2 - Gopher Popcorn Stew Link
Where did you get the db $37?
leod From older version: GPS V1.2.2 - Gopher Popcorn Stew Link
I actually meant to make it so each block can enable the wallrun offset individually by changing the "db $42" at the top with, say, "db $37" instead of making it a global change.

So you would put db $37 at the top and the block would be treated as having a wallrun offset, but if it doesn't have that then it will be treated as not having one, just like how BTSD used to treat the topcorner offset.


If you could change it to that, that would be really great because then people could download wallrun specific blocks from the section and have them just work without having to adjust ALL other blocks.
TheBiob From older version: GPS V1.2.0 - Gopher Popcorn Stew Link
Originally posted by Mariofan64
It is not really that big of a deal, as it is really easy to get things working, but I often wonder why you have to save a level in LM before this tool can do anything.

Because LM installs ASM hacks which are required for this to work. If you don't save first LM never installs these codes. LM also expands the rom which is usually required since there isn't much space for custom stuff in an unedited rom.
Mariofan64 From older version: GPS V1.2.0 - Gopher Popcorn Stew Link
It is not really that big of a deal, as it is really easy to get things working, but I often wonder why you have to save a level in LM before this tool can do anything.
 Vitor Vilela From older version: GPS V1.2.0 - Gopher Popcorn Stew Link
Notable changes:
- Added SA-1 support to both tool and base .asm files.
- Added a couple of standard defines in defines.asm, which gets assembled together every single block.
- Made the shared routines use the FastROM area on non-SA-1 ROMs.
- Added glitter.asm to the shared routines.
- Added spawn_bounce_sprite.asm to the shared routines.
- Converted all shared routines to hybrid (SA-1) support.
- Updated Asar core (asar.dll).
- Fixed crash when using too many blocks, due an asar.dll bug.
- Applied https://paste.ee/p/UIpMm (by Alcaro) to GPS GUI.
- Recompiled GPS GUI to fix a compilation issue which made it throw error when trying to run GPS console.

The version number has been raised to 1.2.0.
 Erik From older version: GPS V1.2.0 - Gopher Popcorn Stew Link
sa1, vitor sux and never uploaded it by himself
TheBiob From older version: GPS V1.2.0 - Gopher Popcorn Stew Link
Originally posted by Luansilva12
What's new on this version?

It's probably the sa-1 thing judging by the tags
Green Jerry From older version: GPS V1.2.0 - Gopher Popcorn Stew Link
What's new on this version?
TheBiob From older version: GPS V1.1.0 - Gopher Popcorn Stew Link
The code works fine for me. What errors does it give you? Also you might want to use "CLC : %spawn_sprite() : TAX : LDA #$D0 : STA $AA,x : TXA : %move_spawn_into_block()" instead of JSR SpawnSpriteFromBlock and having the whole routine in your block.
TheOrangeToad From older version: GPS V1.1.0 - Gopher Popcorn Stew Link
I Try to make my first Custom Blocks made by Blockreator v1.1. Then I Try to install The Blocks with GPS V1.1.0 - Gopher Popcorn Stew. Then It give me a error. its the code look bad or good.
Code
db $42
JMP MarioBelow : JMP MarioAbove : JMP MarioSide
JMP SpriteV : JMP SpriteH
JMP Cape : JMP Fireball
JMP MarioCorner : JMP MarioBody : JMP MarioHead

MarioBelow:
MarioAbove:
MarioSide:
SpriteV:
SpriteH:
Cape:
Fireball:
MarioCorner:
RTL

MarioBody:
	LDA #$14				; \ Play the "unused?" sound effect.
	STA $1DFC				; /
	LDA #$04				; \ Spawn sprite #$04 (04 Green Koopa)
	STA $00					; |
	JSR SpawnSpriteFromBlock		; /


MarioHead:
RTL



SpawnSpriteFromBlock:
	LDX #$0B		; \ Find a last free sprite slot from 00-0B 
CODE_028907:			; |
	LDA $14C8,X		; | 
	BEQ CODE_028922		; | 
	DEX			; | 
	CPX #$FF		; | 
	BNE CODE_028907		; / 
	DEC $1861		; \
	BPL CODE_02891B		; | Get an "emergency" slot if necessary.
	LDA #$01		; |
	STA $1861		; /
CODE_02891B:			; 
	LDA $1861		;
	CLC			;
	ADC #$0A		;
	TAX			;
	STX $185E		;
	LDY $05			;
CODE_028922:			;
	LDA #$01		; \ Set sprite status 
	STA $14C8,X		; / 

	LDA $00			; \ Set sprite number 
	STA $9E,X		; / 
	STA $0E			;
	JSL $07F7D2		;
	INC $15A0,X 		;
	
	LDA $9A			; \
	STA $E4,X		; |
	LDA $9B			; |
	STA $14E0,X		; | Set the sprite's position.
	LDA $98			; |
	STA $D8,X		; |
	LDA $99			; |
	STA $14D4,X		; /
	LDA $1933		;
	BEQ CODE_0289A5		;
	LDA $9A			; \
	SEC			; |
	SBC $26			; |
	STA $E4,X		; |
	LDA $9B			; |
	SBC $27			; | Modify the position if it's on layer 2.
	STA $14E0,X		; |
	LDA $98			; |
	SEC			; |
	SBC $28			; |
	STA $D8,X		; |
	LDA $99			; |
	SBC $29			; |
	STA $14D4,X		; /
CODE_0289A5:			;
	LDA #$D0		; \ Make the sprite "jump" a bit.
	STA $AA,X		; /
	LDA #$2C		; \ Disable interaction with the player.
	STA $154C,X		; /
	LDA $190F,X		; \
	BPL Return028A29	; | Something about getting stuck in walls?
	LDA #$10		; |
	STA $15AC,X		; /
Return028A29:			;
	RTS			; Return 



Edit The error Give me is that.
block_boilerplate.asm:4: error: Unknown command. [insrc Blocks/Green Koopa Block.asm]
Mogu94 From older version: GPS V1.1.0 - Gopher Popcorn Stew Link
I keep getting this error when trying to insert any block:
'.' is not recognized as an internal or external command, operable program or batch file.
 Erik From older version: GPS V1.1.0 - Gopher Popcorn Stew Link
H.carrell on an ipad From older version: GPS V1.1.0 - Gopher Popcorn Stew Link
Love it
Not block tool super deluxe
Alcaro From older version: GPS V1.1.0 - Gopher Popcorn Stew Link
The command prompt does not use -.

Nearly all programs treat it as a "this is not a filename, I'm overriding your default settings" flag, but only if it's at the start of the word; if any program whines about - as non-first character, that program is buggy.
Luigi_master1 From older version: GPS V1.1.0 - Gopher Popcorn Stew Link
Can you please make it so it doesn't remove the BTSD blocks?
HammerBrother From older version: GPS V1.1.0 - Gopher Popcorn Stew Link
If you try to run this using the command prompt, several file names that contain special characters (" " (space), "-" etc. ) won't work; since the command prompt itself uses them for a different purpose.
 Sayuri From older version: GPS V1.0.1 - Gopher Popcorn Stew Link
R.I.P. Gopher Popcorn Stew GUI
HammerBrother From older version: GPS V1.0.1 - Gopher Popcorn Stew Link
I found a print glitch on my screen scrolling pipes: certain blocks are using the wrong description of another block even though the asm blocks are correct.
HammerBrother From older version: GPS V1.0.1 - Gopher Popcorn Stew Link
I made my own screen scrolling pipes:
link
bwal From older version: GPS V1.0.1 - Gopher Popcorn Stew Link
Awesome, I'll try it.
p4plus2 Author From older version: GPS V1.0.1 - Gopher Popcorn Stew Link
The patch needs fixed. It will happen at some point, but the majority before the minority.
 Vitor Vilela From older version: GPS V1.0.1 - Gopher Popcorn Stew Link
It's a known issue, but apparently he won't fix it. You will have to stick with screen scrolling pipes blocks, even if they're not perfect :(
HammerBrother From older version: GPS V1.0.1 - Gopher Popcorn Stew Link
I notice a problem: it breaks on fusoya's screen scrolling pipes patch (it eithers crash on game startup, or the pipes are "un-enterable")