Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,495,533
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-28-24 07:15 AM
Guest: Register | Login

0 users currently in SMW Hacking | 2 guests | 1 bot

Main - SMW Hacking - New block inserter in the works [UTILITY] [DEMO] [SS] [56K] New thread | New reply


smkdan
Posted on 04-24-08 02:45 PM (rev. 3 of 04-25-08 09:48 AM) Link | Quote | ID: 82305


Ninji
Level: 36

Posts: 136/238
EXP: 288692
Next: 19418

Since: 05-26-07

Last post: 4064 days
Last view: 4013 days
Cross post from SMWC

Technically it functions as it is, but it only inserts .asm blocks. Blocktool .bin functionality is promised and will be the next feature.

It doesn't suffer from slowdown with a jump table instead of an elseif style of searching blocktool uses. Two methods are / will be made avaliable for insertion blocks.

It's a .NET 2.0 app, you'll need the framework if you want to run this.

-xkas .asm files
-blocktool .bin files

Upon first time opening, you'll be told where it installed a hack. This is the same address you'd place in a hex editor (points to RATS tag). Then, you're free to add blocks and insert them. Save your changes and see how it works.

It generates two files at the moment. A "blocks.db" file which is the database for blocks avaliable for insertion and a ".bks" which keeps track of which blocks are inserted and what ID has been assigned to them. When you patch a blocktool patched ROM, it will just overwrite what it has previously placed there. It should pretty much behave like blocktool was never installed. If you'd like to try this, please make plenty of backups since I don't trust it much myself. I've tinkered with most of the hacks I have here and it seems to tolerate the new system just fine. Feedback much appreicated...

The pictures below should explain themselves.

The block data editor

The legacy tab

Choose a block

Currently inserted blocks


I mentioned an .asm block for xkas, which an example of is shown here.

;template block, this example simply blanks the screen when mario stands above the block

JMP MarioBelow : JMP MarioAbove : JMP MarioSide : JMP SpriteV
JMP SpriteH : JMP MarioCape : JMP MarioFireBall

MarioAbove:
STZ $2100 ;reset

MarioSide:
MarioBelow:
SpriteV:
SpriteH:
MarioCape:
MarioFireBall:
RTL


The JMPs MUST be there for it to function since that's what my code jumps to in the block (to replace the function of offsets). Basically what you have here is something that makes the screen partially black when mario is on top. The code always ends in RTL. Don't place header / lorom or orgs because the program does that automatically. There is no way for me to tell whether xkas has produced an error since it outputs a file uncondtionally, although testing a block in command line shouldn't be that much of a hassle at all.

Desptie that minor issue I chose xkas over TRASM because since TRASM is pretty much a fossil from the demoscene (1994) and as such has a few issues that really bugged me during sprite programming.

-Math system is busted. I remember trying to get some simple math going and had no success, then I gave up trying when not even the examples including in it's .doc were failing.
-Missing opcodes (ouch)
-Loopholes need to be taken when writing certain data to the output
-Errors which aren't caught at all (anyone here ever met the "wtf mate" error from sprite tool when TRASM outputs a different sized file between passes?). Really got on my nerves.

Let me know what you think.

http://smkdan.eludevisibility.org/other/btsd02.zip

Sukasa
Posted on 04-24-08 08:11 PM Link | Quote | ID: 82314


Red Birdo
Level: 92

Posts: 732/2112
EXP: 7690497
Next: 66440

Since: 02-19-07

Last post: 4450 days
Last view: 3221 days
Sounds nice, but logging on from school photobucket is blocked

At this rate nobody is even going to want me to finish my version of blocktool

pieguy1732
Posted on 04-25-08 03:39 AM Link | Quote | ID: 82335


Ptooie
Note: I wasn't here because I wasn't here, not because someone switched the 7 and the 3.
Level: 84

Posts: 926/1711
EXP: 5463401
Next: 198551

Since: 01-04-08

Last post: 5019 days
Last view: 4948 days
HELL YES.

I've been waiting for an alternate block inserter without slowdown for so long, and here it is. I hope this is completed to the end.

____________________
"There are 3 types of people in this world: Those who can count and those who can't."
Neritic Net

smkdan
Posted on 04-25-08 09:47 AM Link | Quote | ID: 82346


Ninji
Level: 36

Posts: 137/238
EXP: 288692
Next: 19418

Since: 05-26-07

Last post: 4064 days
Last view: 4013 days
Sukasa: I assume you were authoring the version of blocktool I heard about before. I remember reading a SMWC thread about it a while ago.

From SMWC:
I tried adding .bin support and updated the link with it. What it does is provide a 'wrapper' for the blocks (they use RTS and BT defined offsets) and apply everthing else accordingly. These blocks will not slowdown for being .bin for anything. I tested the sensitive brick (see in the pic in the edit, just copy everything over (yes offsets are in decimal adn relocs are in hex). It seems to work fine. Whole page isn't there, but apart from that it should run .bin blocks fine.

Sukasa
Posted on 04-25-08 03:02 PM Link | Quote | ID: 82358


Red Birdo
Level: 92

Posts: 734/2112
EXP: 7690497
Next: 66440

Since: 02-19-07

Last post: 4450 days
Last view: 3221 days
Blocktool omega? Yes, that's the one.

Main - SMW Hacking - New block inserter in the works [UTILITY] [DEMO] [SS] [56K] New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.020 seconds. (349KB of memory used)
MySQL - queries: 57, rows: 82/82, time: 0.016 seconds.