Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,514,040
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 05-02-24 06:34 PM
Guest: Register | Login

Main - Posts by Hamtaro126

Pages: 1 2 3 4 5 6 7 8 9 10

Hamtaro126
Posted on 12-07-09 04:26 AM, in The General Project Screenshot/Videos Thread... Link | Quote | ID: 121691


Cheep-cheep
Level: 33

Posts: 124/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by messiaen
Posted by Hamtaro126
P.S. to Messiean: Also a nice job hacking SM64 to use Banjo-Kazooie Levels, And I think you also ported one of B-K's Songs to SM64 complete with matching samples.

(The other video mentioned to Messiean is not shown, look at the end where the other video is shown within the youtube video selector.)


Actually, that's a video by VL-Tone showing an early version of his .obj importer. The Banjo song was only a background effect, it isn't a port.


Well, VL-Tone gets the credit then.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 12-18-09 03:55 AM, in Reuben: Not so final (but it's being worked on again) stage. (rev. 5 of 12-19-09 06:18 PM) Link | Quote | ID: 123278


Cheep-cheep
Level: 33

Posts: 125/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by DahrkDaiz
I need a couple more beta testers. In order to be a good beta tester, right now, I need strictly bug reports, not UI suggestions, feature suggestions, etc. I will get plenty of those once it reaches 1.0. As a beta tester you will be able test your levels in an actual rom. You need to be able to give good descriptions of bugs and report them promptly. KP9000's been an excellent beta tester, so you guys have quite a bit of a standard to meet if you want to be a good beta tester for me.


I'll give you luck, Your editor is very good so far.

EDIT: Sorry if I bumped, I had a typo to fix.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 02-11-10 02:14 AM, in LoZ (nes) stuff (rev. 2 of 02-11-10 02:16 AM) Link | Quote | ID: 126958


Cheep-cheep
Level: 33

Posts: 126/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Pure and EPIC WIN! This will help me get these darn text routines for my next mario hack! Plus a hack of Zelda since I have the disassembly.

EDIT: Thanks, Never-Obsolete!

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 02-23-10 10:09 PM, in General SMB3 Hacking Thread (rev. 2 of 02-23-10 10:13 PM) Link | Quote | ID: 127507


Cheep-cheep
Level: 33

Posts: 127/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
(This post is BIG because of the following code and data! Just a warning.)

*Sigh* Bumping, But for a good reason:

DahrkDaiz's Notes in 2004

from: http://acmlm.no-ip.org/archive2/thread.php?id=2380&ppp=20&page=0#46896:

=======================================

Super Mario Bros. 3 Hacking Notes:

Terminology: $ denotes a ram address in hex, 0x denotes a ROM address in the .nes file

Button Press Status Format, a 1 indicates it's pressed, 0 means it's not.

(NOTE from Hamtaro126: the controller data bits are 0-7, not 1-8. Just to make sense in a technical matter)

0123 4567
| | | | | | | |
| | | | | | | - Right
| | | | | | --- Left
| | | | | ----- Down
| | | | ------- Up
| | | --------- Start
| | ----------- Select
| ------------- B
--------------- A


Sound and music explanation:

4F1 through 4F6 are bytes used to initiate sound effects.
Each bite in these RAM bytes plays a different sound
(except for 4F2). A byte is stored in these locations, then the game
will reset them after the sound routines are initiated. So if you're ASM hacking
and would like to play a new sound, do 1 store to the appropriate location and the
game takes care of the rest.


RAM MAP:

$0E = Current level page.

$14 = Setting this byte to 1 ends a level
$15 = This byte is increased once every game cycle and used as a timer.

$17 = Controller status for held buttons.
$18 = Controller status for just pressed buttons.

$5E = PPU Buffer loading offset. This will determine where to read a pointer
in a table to load the PPU buffer from.

$69 & $6A = PPU Buffer pointer.

$75 = Vertical position on the map screen.

$79 = Horizontal position on the map screen.

$BD = Direction and speed of Mario. 00-7F is moving right, 80-FF (FF is slowest) is moving
left.

$CF = Direction and speed of Mario verticlaly. 00-7F is moving down, 80-FF (FF is slowest)
is moving up.

$E4 = The vertical tile offset in the current level page
$E5 = Current Tile Number Mario is on.

$ED = Current Power Up

$160 = Debug mode enable/disable. If it's $80, then debug controls are enabled (select
switches power-ups, B+select toggles Kuribo's shoe on/off, etc).

$300~$350 = PPU Buffer. The buffer works as follows. $300 is the current size of the
buffer. $301 and beyond is data for the PPU in the following format: AA AA SS XX XX XX 00
AA = address of PPU to write to, this is written in big endian format.
SS = Size of the data to write.
XX = The actual data itself
00 = End of the PPU Buffer.

When writing to the buffer, always end it with 00 and update the buffer size.

$3DD = This byte is the Turbo running speed. At FF, Mario can start flying.
This byte is also used to draw the P-Meter. Each bit depicts the tile type. There
are 8 tiles [|>|>|>|>|>|>(p)] the (p) is two tiles. Lets say $3DD were 0000 0101 then the
first and 3rd arrow tiles will light up.

$3EC = Coin addition byte. Any coin grabbing you do causes this to go up by 1.

$462 = This byte keeps track of the current level music for when invincibility or p-switch
music switches back to the level music

$4F1 = Another sound play switch byte.
01 = Deep jump sound
02 = Block bounce
04 = Swim sound
08 = Shell kicked
10 = Down a pipe
20 = Fireball throwing
40 = nothing
80 = high pitched jump sound.

$4F2 = This is the sound play switch byte. If it's 00, no sound effect plays, but
if it's not 00, then a sound effect will play.
01 = Coin sound.
02 = Power-up coming out/vine grow
04 = longer sound of 02
08 = Boom sound (cannon fireing)
10 = 'Tick' sound
20 = Powerup!
40 = 1-up
80 = Poof sound
90 = Odd "poof" sound
A0 = Lost Kuribo Shoe
B0 = Tail Wag
C0 = dragged out 1-up sound

$4F3 = Another sound byte
01 = broken bricks
02 = fire sound
04 = Going through Brush?
08 = Woosh! Sound Airship makes when it moves on map.
10 = Hammer Bros. moving on map.
20 = no sound
40 = no sound
80 = Skidding sound.

$4F4 = Fanfare music player.
01 = Death
02 = Game Over/Continue
04 = Classic Ending
08 = King Rescued
10 = Bowser Defeated
20 = Level Complete
40 = Time's running out!
80 = Play current level song.

$4F5 = This is the music change switch byte. If it's 00, the music doesn't change (current
music continues to play). But if it's not 00, then the music will change.

01 = World 1 Map Screen
02 = World 2 Map Screen
03 = World 3 Map Screen
04 = World 4 Map Screen
05 = World 5 Map Screen
06 = World 6 Map Screen
07 = World 7 Map Screen
08 = World 8 Map Screen
09 = World 9 Map screen/Coin heaven
0A = Star Power
0B = Warp Whistle
0C = Music Box
0D = Returning to Earth with the wand
0E = Game Theme
0F = Princess Saved
10 = Plains
20 = Underground
30 = Water
40 = Dungeon
50 = Boss Battle
60 = Doomship
70 = Hammer Bros. Stage
80 = Mushroom House
90 = Hilly Theme
A0 = P-Switch
B0 = Bowser Fight
C0 = Glitched Boss fight
D0 = Theme Song rotation (ends with music box infinite loop)
E0 = Underground to Song rotation
F0 = Water to Song rotation

$4F6 = Another Sound byte
01 = Sound made when Mario is generated on the start tile of a world map.
02 = Moved on the map
04 = Enter a level
08 = Status bar flip
10 = Secret revealed on the map
20 = nothing
40 = nothing
80 = Error sound

$4F7 = Another sound byte
01 = Pause (stops music)
02 = Resume music
All other values = pause.

$516 = This is the timer for multi-coin blocks. If $581 reaches 0 first, getting more coins
stops.

$552 = Invisibility timer for after you get hit.
$553 = Invincibility Timer

$566 = Enemy generator byte. This will generator a pre-set enemy based on the value.
$567 = P-switch effect timer

$56E = Flight timer for Racoon/Tanooki Mario
$56F = Pressing down indicator
$570 = Timer when holding down on a magical white block to let you go behind the bg.

$575 = Indicates you're in water and what you're doing in water (coming out of, going into,
swimming, just walking, etc). Not sure what values tell what though.

$577 = Kuribo Shoe indicator (0 = no shoe, 1 = shoe)
$578 = This is the transformation byte. When Mario gets a power-up or is injured, this
byte contains the power-up he will go to + 1. Thus, if he's going to be small, this
byte is 0x01. A value of 00 means there's no change. A value of 0x80 will give you the shoe.\

$57A = Tanooki's Statue Timer.

$581 = This is the max number of coins you can get in a multi-coin blocks. If $516 reaches 0
first, getting more coins stops.

$588 = Behind the background timer
$589 = Traction byte: 0 = no slip, 1 = slip, 2 = extra slip

$5EE = Hundreds place of timer
$5EF = Tens place of timer
$5F0 = Ones place of timer

$602 = Current tile to the left and above Mario
$603 = Current tile to the left and under Mario
$604 = Current tile to the right and under Mario
$605 = Current somewhere under Mario
$606 = Current tile to the right and above Mario

$676 = Power up sprite number. This byte is seperate from the other sprite buffer. When
another power-up appears, this byte is over written, thus the first power up disappears.

$69C & $69D = Score addition bytes. When these bytes are set, then that amount of the score
will be added to your main score. $69C = high byte, $69D = low byte

$70A = Current Object Set/Level Type

$711 = Timer used during World/Lives status screen before Mario generates onto
the map.

$713 = This is level beaten byte. 1 means that the level is being beaten. It's changed
to 0 when you die, so when you return to the map screen, the level you were on doesn't flip over.

$715-$717 = Score (24-bit value)

$719 = First 2K Bank of GFX (upper left of pattern table, $0000-$07FF)
$71A = Second 2K Bank of GFX (lower left of pattern table, $0800-$0FFF)
$71B = First 1K bank of GFX (upper right of pattern table, $1000-$13FF)
$71C = Second 1K bank of GFX (second from upper right of pattern table, $1400-$17FF)
$71D = Third 1K bank of GFX (second from lower right of pattern table, $1800-$1BFF)
$71E = Fourth 1K bank of GFX (lower right of pattern table, $1C00-$1FFF)
$71F = Current bank @ 0xA000
$720 = Current bank @ 0xC000

$726 = Current player (0 = player 1, 1 = player 2)
$727 = Current World

$736 = Player 1's Lives Counter
$737 = Player 2's Lives Counter

$73A = This is where the palette for the current level is stored. The palette is loaded
before the level is drawn, so changing this byte doesn't have any effect after the level
loads.

$7C1-$7E0 = This is where the palette current stored. Changing this won't have much effect on the
palette. To force a change, set $5E to 0x06

$6000-$794f = This is where the 16x16 block numbers are kept that corresponds directly to
the level. An example is that 0x40 is the value for a coin. This also applies to the map screen.

$7965 = White Mushroom House indicator, if it's 1, your coins are checked to see if they meet
the requirements
$7966 = Number of coins needed to make a white mushroom house appear
$7967 = Number of coins obtained in the current level

$7A0A and $7A0C = used in combination to determine the current scrolling point in an
autoscroll level.

$7CF4 = Frozen Mario byte. 01 = Mario can't move. 00 = Mario can move.

$7CFB = Flash timer, this will make the bg flash through rainbow colors. If it's above 80, then
the 9th palette instead.

$7B41 - $7C40 (?) = Sprite data buffer. All sprites found in a level are stored here for
easy reference.

$7D80-$7D9B = Player 1's item inventory
$7D9C-$7D9E = Goal cards for player 1. 00 = no card, 01 = mushroom, 02 = flower, 03 = star

$7DA2 = Player 1's Coin counter
$7DA3-7DBE = 2nd Player's Inventory box
$7DBF-$7DC1 = Goal cards for player 2. 00 = no card, 01 = mushroom, 02 = flower, 03 = star

$7DE0 - $7DFF = Current Palette.

$7EB6 = Stop scrolling byte (stops scrolling altogether).

$7F3E-$7F43 = Arrow tile numbers.
$7F44 and $7F45 = ( P ) Bar tile numbers.
$7F46 and $7F47 = Coin tiles (not the coins counter, but the tiles used to display it)
$7F48 and $7F49 = Lives counter tiles (not the lives counter, but the tiles used to display it)
$7F4A-$7F4F = Score tiles (note, not the score itself, just the tiles displayed for it)
$7F50-$F52 = Timer tiles (same for score tiles)

$7F9A = Seems to be the start of some buffer. Setting this to anything but 2 will prevent bricks
from animating when broken.

Lock Data:

I kept this seperate since everyone is so eager to get their hands on the data, thus
I kept this a seperate section for quicker reference.

0x14877 = Start of a table of tiles used to replace lock blocks.
0x1498E = Start of a table of locations used to determine where the lock block will
be (or any tile to replace).
Format: XXXX SSSS
X = X co-ordinate of the tile (relative to the current screen)
S = Screen to change it on.

0x14955 = Start of table of locations used to determine where the lock block will
be (or any tile to replace).
Format: YYYY 0000
Y = Y co-ordinate
0 = Nothing.

In ROM Data:

Some routines/data tables used the global item table, which is a table that indicates
an item number directly into your inventory.

00 = Nothing
01 = Mushroom
02 = Fire Flower
03 = Leaf
04 = Frog Suit
05 = Tanooki Suit
06 = Hammer Bros. Suit
07 = Jugem's Cloud
08 = P-Wing
09 = Starman
0A = Anchor
0B = Hammer
0C = Whistle
0D = Music Box

This is used for things like Mushroom House item values or Princess gift item values.

0x3F0-0x3F6 = This is a properties table for power-ups. The bits do the following:
xxxx xxSF

S = Sliding disabled. If this is 1, you can't slide on hills.
F = Flying ability. If this is 1, you can fly.

Each index into the table corresponds to a power-up status. Thus, if you change 0x3F2
to 03 (0000 0011), then Fire Mario (index here is 2, 2 is fire power) will be able to fly
and not be able to slide on hills.

The x's have no effect.

0x133C = Amount of stay-in-shell time for most enemies who have shells.

0x1A3E = What Mario turns into after getting hit while having a power above Super Mario.

0x24EE = Table of sprites to output from certain ? blocks.
0x24EF = Sprite to put out of blocks that normally output a Flower
0x24F0 = Sprite to put out of blocks that normally output a Leaf
0x24F1 = Sprite to put out of blocks that normally output a Star
0x24F2 = Sprite to put out of blocks that normally output a Mushroom
0x24F3 = Sprite to put out of blocks that normally output a Vine
0x24F4 = Sprite to put out of blocks that normally output a 1-Up

0x2A56 = The bounce force to the right when hitting a 4 way bouncing
note block from the left.

0x2A50 = The bounce force to the left when hitting a 4 way bouncing
noteblock from the right.

0x6EA9 = Sprite that Boom-boom will leave behind when he explodes.

0x80A4 = This is the sprite that a Green Koopa Para-Troopa will turn into when they
lose their wings.

0x80AE = This is the sprite that a Para-Goomba will turn into when it's wings are
destroyed.

0x9368 = Left speed of many enemies
0x9369 = Right speed of many enemies

0xA837 = Amount of time a Venus Fire Trap will take from going into a pipe
and going back into it divided by 2. (default is 30, but it's multiplied by 2
for a total time of 60).

0xBDC3 = ParaBeetle right flying speed (x2 for "fast" beetles)

0xBDCD = ParaBeetle left flying speed (x2 for "fast" beetles)

0xFD75 = Sprite number that's generated from a Goomba generator.

0x103F1 = Amount of time Tanooki Mario can be a statue.

0x104F8 = Maximum running speed (must be atleast 7F to be able to fly).

0x10CAA = Amount of time Raccoon/Tannoki Mario can fly

0x11618 = Which tile acts like a coin.

0x11634 = Which tile acts like a P-switch.

0x11653 = Amount of time the P-switch will last. (default: 0x80)

0x11657 = The song value to be played during the P-Switch effect. (default: 0xA0)

0x1167E = Amount of time needed for an ice block to melt.

0x118A5 = Max number of coins you can get from the multi block coin.

0x118BA = Amount of time you have to get coins from a multi block coin.

0x11E6A = Amount of time required to hold down on magic white blocks to take effect.

0x11E6F = Amount of time the Magic white blocks take effect for.

0x1451F = Amount of time delay between the start of a world and when
Mario generates onto the screen.

0x14DF8 = Sound used when Mario moves over the map screen. (4F1 sound byte useD)

0x14DFA = Sound byte used when Mario goes over a map screen.

0x16190 = Hammer Bros. Item table. Here there is a big chunk of 00s and a few bytes that
are not 00. The groups of bytes that are _not_ 00 represent the items you receive from a
Hammer Bros. Examples are the first byte, 09, is world 1's Hammer Bros. item (a star).
Next is 0D0B0C which is world 2's (music box, hammer, whistle) and so on. The item values
are the exact same for the item values listed above. Note, world 8 has NO Hammer Bros. item
groups. Instead, the items in the treasure chests found there are defined by enemy level
data. When using the Help Sprite as a Hammer Bros. the item control is 2 bytes before the
normal Hammer Bros. group for that world. The Airship sprite uses the one after that

0x1625B = Horizontal starting position on every map screen (applies to all maps).

0x17C35 = Table of graphics banks used to animate map screen tiles.

0x1D233-0x1D235 = 16x16 tile id's that are used to draw the mushroom, star and flower
background in some plains levels.

0x2D1AD-0x2D1b0 = Number of 1-Ups you will receive from the roulette game. There are two
bytes that are 02, this is because there are two mushroom pictures in the roulette you can
match up.

0x2D721-0x2D732 = N-Spade card matching game initial deck. The deck is always shuffled
from code, so there's only 1 deck you can modify without ASM hacking. The values for each
card is as follows:
00 = Mushroom
01 = Flower
02 = Star
03 = 1-Up
04 = 10 Coins
05 = 20 Coins

0x309B0 = This is the left side of the curtains tile. This must be an even number, then
the tile to the right of this one will be the right side of the curtain. You cannot change
the number of tiles used to draw the curtains without ASM hacking.

0x309D5 = Debug mode activation/deactivation
Activated = 0xCC
Deactivated = 0x35

0x30C68 = Button to press to change game type.

0x30C6C = Sound to play when you press select at title screen. (4F6 sound byte)

0x30C6E = Sound byte to write to when you press select.

0x30C99 = Button to Press to start the game.

0x30C9D = The Sound to play when you start the game. (4F2 Sound byte)

0x30C9F = The sound byte to write to when you start the game (can change to music bytes too).

0x34123 = Status Bar's palette on the map screen after returning from the inventory box.

0x3509B = Number of coins needed for a 1-Up.

0x350AB = Sound played when you receive 100 coins (1up sound) (4F2 sound byte used)

0x350AD = Sound byte used when 100 coins are obtained.

0x360DE = Table of items the Princess will give you after completing a world. There are
7 bytes in all, but the 7th byte is 00, you can change this so that you gain an item for
beating world 7. For values, see Global item table.

0x3B14B = Table of items used to create Mushroom House treasure chests.
Some bytes affect the "all same items" mushroom houses. Meaning, if all the chest have
the same items, then only 1 byte is needed to define the chests, rather than 3. The first
5 bytes affect these type of mushroom houses. The 3rd is for all Frogs, 4th is all
Tanooki, 5th is all Hammer. 1st is All Whistles (never seen in the game), 2nd is all
P-Wings (also never seen in the game).I believe these two are used for White Mushroom
houses. The rest are 3 item houses. One type is 0A 0A 0A, all three anchors. This is the
ONLY exception to the same-type house rule. And remember, the definitions come in groups
of three. Example: The second set (bytes 9, 10, and 11) is 01, 02, 03, a set of three
defining the Mushroom, Flower, and Leaf type houses. For item values, see global item table.

0x3C474 = Graphics bank used for the title screen (upper half, bg side)

0x3C479 = Graphics bank used for the title screen (lower half, bg side)

0x3C47E = Graphics bank used for the title screen (first 1/4th, sprite side)

0x3C483 = Graphics bank used for the title screen (second 1/4th, sprite side)

0x3C488 = Graphics bank used for the title screen (third 1/4th, sprite side)

0x3C47D = Graphics bank used for the title screen (fourthg 1/4th, sprite side)

Routine Explanations:

BG tile animation routine: Used for action stages (not maps) for animating common objects, such as
bricks, coins, munchers, water, lava, etc.
$8E35 (0x3C345)

$8E35:AC 1A 07 LDY $071A ; This loads the current bank from lower left corner of the pattern table
$8E38:C0 6A CPY #$6A ; 6A is the bank for the Airship, which doesn't have animated bg tiles
$8E3A:F0 21 BEQ $8E5D ; thus skip the animating routine
$8E3C:A5 15 LDA $15 ; This loads the constant timer
$8E3E:29 03 AND #$03 ; used for battleship animated tiles
$8E40: D0 1B BNE $8E5D ; but skips it on xxxx xx00 since there's only 3 frames of animation
$8E42:C8 INY
$8E43:C8 INY
$8E44:C0 76 CPY #$76 ; 74 is the last bank for the battle ship animated tile sequence (70, 72, 74)
$8E46: D0 02 BNE $8E4A ; a table isn't used here, thus, Y (from 71A) is increased twice
$8E48:A0 70 LDY #$70 ; if it reaches 76, loop back to the first animation sequence (70)
$8E4A:8C 1A 07 STY $071A ; and store it into the gfx bank
$8E4D: D0 0E BNE $8E5D
$8E4F:A5 15 LDA $15 ; this loads the constant timer and indexes it for the global
$8E51:29 18 AND #$18 ; animated tiles (coins, ? blocks, munchers, etc)
$8E53:4A LSR
$8E54:4A LSR
$8E55:4A LSR
$8E56:AA TAX
$8E57: BD FC 83 LDA $83FC,X ; Loads a bank from the animation sequence (60, 62, 64, 66)
$8E5A:8D 1A 07 STA $071A ; and finally stores it into the ram for the lower left gfx bank

Bank swapping routine
$FC6F (0x3FC7F)
$FC6F:A9 46 LDA #$46
$FC71:8D 00 80 STA $8000 = #$00 ; Set up the $8000 register for $A000 swapping
$FC74:AD 1F 07 LDA $071F = #$00
$FC77:8D 01 80 STA $8001 = #$60 ; swap $A000 bank with value in 71F
$FC7A:A9 47 LDA #$47
$FC7C:8D 00 80 STA $8000 = #$00 ; Set up the $8000 register for $C000 swapping
$FC7F:AD 20 07 LDA $0720 = #$1A
$FC82:8D 01 80 STA $8001 = #$60 ; swap $A000 bank with value in 720
$FC85:60 RTS

Curtain drawing routine:

$A990 (0x309A0)
$A990:AD 02 20 LDA $2002 = #$09 ; Set up the PPU for drawing
$A993:A9 20 LDA #$20
$A995:8D 06 20 STA $2006 = #$40
$A998:A9 00 LDA #$00
$A99A:8D 06 20 STA $2006 = #$40
$A99D:A2 02 LDX #$02 ; The routine goes through 512 times *
$A99F:A9 08 LDA #$08 ; This is the first tile (left side) used to draw the curtain
$A9A1:A0 FF LDY #$FF ; * which is 256 from Y and twice from X
$A9A3:8D 07 20 STA $2007 = #$00
$A9A6:49 01 EOR #$01 ; This toggles from 08 and 09 (0000 1000 and 0000 1001)
$A9A8:88 DEY ; Thus using this routine, you can only use 2 tiles, side
; by side
$A9A9: D0 F8 BNE $A9A3
$A9AB:8D 07 20 STA $2007 = #$00
$A9AE:49 01 EOR #$01
$A9B0:CA DEX
$A9B1:10 EE BPL $A9A1
$A9B3:60 RTS

==========================================

I hope this is very refreshing for most people, and Happy Hacking!

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 04-11-10 02:54 AM, in Super Mario 64 Level Importer (rev. 2 of 04-11-10 02:58 AM) Link | Quote | ID: 129735


Cheep-cheep
Level: 33

Posts: 128/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Semi Related - Video of the future of N64 Hacking (Note, Not Mine, Just a reference):

This video belongs to Flotonic! Might as well look him up, Messiaen!





____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 04-11-10 09:45 PM, in Super Mario 64 Level Importer Link | Quote | ID: 129765


Cheep-cheep
Level: 33

Posts: 129/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by messiaen
That's not the guy to "look up", but rather the people that wrote the tools/documentation he used.

But yeah, it's a nice model replacement. Something similar could be done in Mario64, it's all a matter of respecting the body hierarchy/layout so that animations will look right.

Anyway, a screenshot of a new module of this importer tool:

(IMG)



This MusicXML format is only usable for music ''Written In Scratch for MusicXML'' right now, because MIDI Converters to export this sucks unless you buy a decent converter, But I can't buy until next month!

*Sigh* Even then, lots of modifications needed to be made to MusicXML music files for use in hacks,

A perfect MML to MusicXML is better than that, but does not exists right now!

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 04-11-10 09:57 PM, in Converting .GBS files? Link | Quote | ID: 129766


Cheep-cheep
Level: 33

Posts: 130/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
You can ask Gigo for the NSF2MIDI source code, Who knows, He may or may not give it to you,

There is another option, get the source from the VGM2MID homepage, **SMSPower Forums, or Zophar's Domain.

**= SMS means Sega Master System

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 04-12-10 07:45 AM, in Converting .GBS files? Link | Quote | ID: 129781


Cheep-cheep
Level: 33

Posts: 131/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by YamiMario
So, apparently, after doing a bit of research on the internet, there is a method to do it.

It involves taking a .GBS file, and injecting it into a GB Music Player .GB rom, then using Goomba to convert that file into a .GBA rom, and then manually ripping the music from there.

Sappy won't work, since it doesn't use the official Nintendo music engine, and I have no clue on how to rip the music manually.


Only solution now is to convert it by hand, Sorry. But that is all we can do to help with this situation.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 04-12-10 08:01 AM, in Super Mario 64 Level Importer (rev. 2 of 04-12-10 08:08 AM) Link | Quote | ID: 129782


Cheep-cheep
Level: 33

Posts: 132/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by messiaen
There is no such thing as music "written in scrach for musicXML", the format was created for exchange between music notation programs. Being aimed towards music notation, it brings a few problems, but with a few adaptations it can be used for many purposes.


Did not think before I talk, so Yes and I Apologize,

Posted by messiaen
MML just sucks, unless you alter it so extensively to the point it won't barely resemble the basic MML format.


I even had trouble with MML, So that is good. *Throws away MML*

Posted by messiaen
MuseScore (open-source) can perfectly convert any MIDI file to MusicXML. Finale and Sibelius can handle it too, but not sure if the free versions can handle it.


I tried Finale, It's Better, but Super-expensive! $600-$200 for a great MIDI to MusicXML tool? Makes the economy even worse, The Pro edition has a aproxximate price of IDA PRO Disassembler,

And I tried that Musescore for Jasp's SMB3 MusicXML utility, And all because of Musescore, It doesn't convert my Midis properly, Free sometimes does not mean good, and because of that, I have to wait next month.

Posted by messiaen
One of the very nice things about MusicXML is that you can easily read chords or other simultaneous stuff which would requer tons of work in MIDI (which, in this case, is handled by the music notation program).


Yes, But with the format having a tendency to give me headaches, It is daunting for any newcomers to read unless there is a scheme for it to view and edit notes without any errors.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 04-21-10 06:07 AM, in A new, Upcoming hack in Progress for Gumshoe (Please Close if possible.) (rev. 3 of 04-21-10 06:28 AM) Link | Quote | ID: 130257


Cheep-cheep
Level: 33

Posts: 133/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
EDIT: Please Delete, Gumshoe is actually already hacked, Just a bad hack though.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 04-25-10 02:07 AM, in General SMB3 Hacking Thread Link | Quote | ID: 130484


Cheep-cheep
Level: 33

Posts: 134/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
What about in this order, QC?:

Board2
Romhacking.net
SMW Central (Super Mario World Hacking Forums)
SMS Power (Sega 8-bit forum including Hacking.)
Jul (Rusted Logic)
Sonic Retro (Sonic the Hedgehog Hacking forums)

And for world 8:

Lost Levels

Warp Zone: ''Google''

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 04-25-10 07:22 PM, in Tell length in seconds of SPC? (rev. 2 of 04-25-10 07:24 PM) Link | Quote | ID: 130527


Cheep-cheep
Level: 33

Posts: 135/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by Traffic Light
You probably used a version full of bloatware and ads, other things you can't opt out that you don't need, and full of bugs.

I suggest version 5.34


Not unless he got it from a illegal bittorent site, it may contain a modded version if so.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 05-16-10 07:16 PM, in Tecmo music (rev. 4 of 05-16-10 07:18 PM) Link | Quote | ID: 131249


Cheep-cheep
Level: 33

Posts: 136/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by Kawa
- Can I swap the music from another Tecmo into my game? Say Tecmo NBA Basketball...
If Tecmo NBA Basketball has the same music format as Tecmo Super Bowl, which seems fairly likely to me, and you know the locations in that game too...


Not to mention that Japanese Samurai Pizza Cats game, That is a Tecmo Classic!

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 05-28-10 02:40 AM, in Which games would you like to see a editor for? (rev. 2 of 05-31-10 01:36 AM) Link | Quote | ID: 131517


Cheep-cheep
Level: 33

Posts: 137/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Top 10 to hack or/and make a editor in my opinion:

#1 Hebereke/Ufouria
#2 Mickey 3 - Dream Balloon/MM3DB Proto Version/Kid Klown (NES)
#3 Crazy Castle Series (NES,GB,GBA),
#4 Super Mario 2/USA/DDP
#5 Super Mario 1 and 2/Japan
#6 Kid Kool (NES)
#7 Psycho Fox (Master System)
#8 Magical Hat and Decap Attack (Genesis)
#9 Journey to Silius - Rough World (NES)
#10 Garfield's Labyrinth (GB)

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 06-05-10 06:14 AM, in CHR-RAM Trouble (rev. 2 of 06-05-10 06:15 AM) Link | Quote | ID: 131744


Cheep-cheep
Level: 33

Posts: 138/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Here is a old topic from the NESDEV BBS:

http://nesdev.parodius.com/bbs/viewtopic.php?t=4921&postdays=0&postorder=asc&start=0

At the very last post is animation code by Celius. Also, Celius included a demonstration of the explained code. The code might need to be modified for your own prefrence.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 06-28-10 03:25 AM, in The General Project Screenshot/Videos Thread... Link | Quote | ID: 132454


Cheep-cheep
Level: 33

Posts: 139/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by messiaen
A small modification of the Project64 emulator to play external .wav and .mid files (Mario64-specific):

[A Cool Video]

More for LOL value than anything.


Better than any hack made for SM64.

It may need some working on, I see the slowdowns. Optimization is one of my suggestions

BTW: I am trying to do the same with a NES emulator.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 07-04-10 10:47 AM, in SMB 2 to Doki doki panic progress Link | Quote | ID: 132631


Cheep-cheep
Level: 33

Posts: 140/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by Kiokuffiib11
I"ve made major progress on the ROM.

If anyone can help with any of this, I'd greatly appreciate it.

I hate to bother you guys with this, but I seriously AM trying to make this rom good.



Look on Data crystal, as with ASM and MUSIC:

1: Choose a basic 6502 assembler

2: Code yourself a MUSIC program/converter with your favorite programming language on your current PC, such as C++ or C# (MML or MUSICXML is a good opinion for music)

3: It's proven that SMB2's music is a variant of SMB3's music format (Jasp said so), and nothing else.

4: Learn how to code your own (or hack into) ASM and MUSIC/SFX as well as formats.

5: Use the unused graphics to make more of the player
(For replacement of the 1-UP depending on player, Use the certain old, unused Albatross reminants at the end of each player CHR-ROM page)

6. DDP Ending: Applys to ASM. May need IDA Pro at least.

7. Recommended for 2 different animation speeds, use Sunsoft 5-B (Mapper Hacking) to split Animation to use 2 copies of animation engina along with a Mapper and CHR Switch hacks, Can also handle ROM or RAM $6000

And Finally, If also doing 7, Download Disch's Mapper Documents at ROMHacking.net, It should be useful.

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 07-05-10 08:59 AM, in SMB 2 to Doki doki panic progress (rev. 2 of 07-05-10 09:01 AM) Link | Quote | ID: 132649


Cheep-cheep
Level: 33

Posts: 141/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by Kiokuffiib11
How do you use the MusicXML program. The only XML file in there opens a description file in Microsoft works, and, that's the only file I can get to work there, aside from the licence.html


As I said, Code a converter for it, Or you can see info from Jasp's MusicXML inserter for SMB3/Reuben. It is archived somewhere in the board with source code!

The MusicXML to MIDI converter (or any other program) is terrible on NSF2MIDI generated MIDIS, because NSF2MIDI is crap, So maybe using a MIDI composer helps with it

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 07-07-10 02:43 AM, in how to make hacking tools? (rev. 2 of 07-07-10 02:47 AM) Link | Quote | ID: 132711


Cheep-cheep
Level: 33

Posts: 142/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by Kawa

Oh, and Kioku is seriously wrong, but justifiably so.


No, He is right to a point, There is actually certain types of data input used in ASM or other languages,

For Hex: $00 (#$00 in Rom Value) is in Motorola/MOS Technologies HEX syntax, usually used in 6502 and 68000-based machines.

While in Intel, GBA/DS, ect. The equivlent to $00 from Motorola is known as 0x00 in Intel in ROM

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?

Hamtaro126
Posted on 07-11-10 07:56 PM, in SMB2j skid sound into SMB1 (rev. 3 of 07-11-10 08:01 PM) Link | Quote | ID: 132885


Cheep-cheep
Level: 33

Posts: 143/194
EXP: 212946
Next: 16233

Since: 05-02-07
From: Shelton, WA

Last post: 2479 days
Last view: 2322 days
Posted by Trax
Hmmm, I'm perplex. Super Mario Bros. (JU) [!].nes has no trailer, a length of A010 bytes, and virtually no free space at all...


We all can get by with using doppleganger's SMB disassembly (SMBDis) via Romhacking.net.
http://www.romhacking.net/docs/344/

Mske sure you have a prebuilt header, and 8k CHR from the SMB ROM

And even though it breaks compatibility with current SMB tools (AND normal IPS patch format), you can still make a new hack out of it, via UPS, Binary Diff, or better yet, Xdelta.

Just make sure to know what you are doing and possibly learn bankswitching too, For that, get Disch's Mapper Documentation collection:

http://www.romhacking.net/docs/157/
http://www.romhacking.net/docs/353/
http://www.romhacking.net/docs/362/

Beware of the Sprite 0 detection near the end of Non Maskable Interrupt (NMI) code, I could not even hack it without corrupting the whole game, making it glitch!

Trainers are a outdated and stupid feature that is mainly for compatiblity reasons, Do not even use it unless you want to get criticized by Romhacking.Net and such!

____________________
Mah boi, romhacking is what all true warriors strive for!

I wonder what's for dinner?
Pages: 1 2 3 4 5 6 7 8 9 10


Main - Posts by Hamtaro126

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

Page rendered in 0.256 seconds. (350KB of memory used)
MySQL - queries: 139, rows: 171/171, time: 0.245 seconds.