Homebrew Pyramids QR Code Hacking

duke_srg

Well-Known Member
Member
Joined
Mar 1, 2011
Messages
1,862
Trophies
0
Age
44
Location
Moscow
XP
807
Country
Serbia, Republic of
00 00 is double space
00 xx is copy 3 blocks from... At least for p7-1c

A bit more accurate - if copy source offset less than current offset - write bytes as is, otherwise perform a copy.
But still can't guess 0C and 0B bytes in p7-1c.
 

bailli

Well-Known Member
Member
Joined
Oct 16, 2006
Messages
228
Trophies
1
Website
Visit site
XP
2,484
Country
Gambia, The
DIssection of p2-1:

0x12 (player) 0x0D (fire) 0x00 (blank) 0x9001 (copy/write: offset 0x01 + 1; total count 0x9 + 3 => 12 tiles; since offset < 12 loop through offset till current pos) 0x00; end of first row
0x01 (sand block) 0x44 (some kind of control byte) 0x01 (sand block) 0xB001 (copy/write: offset < count: loop through last to tiles until 0xB+3 tiles are written); end of second row
0x0B (skull) 0x00 0x00 (two blanks) 0x9001 (copy/write offset < count: loop through last two bytes until 0x9+3 tiles are written) 0x0B (skull); end of row
0x1A (sand block covering coins) 0xEB (control byte?!) 0xD020 (copy: offset > count (0xD+3 tiles): copy sandblocks from second row); end of row
first sand block from this row got already copied 0xD02F (copy: offset > count (0xD+3 tiles): copy sandblocks from second row starting at the second tile => the skull from row three gets copied, too); end of row
skull already copied 0xB04F (copy: offset > count (0xB+3 tiles): copy fire/blank from first row (tile 2-15)) 0x0B (skull); end of row
0xE02E (copy 0xE+3 tiles from fourth row second tile); end of row
first sand block already copied 0x00 (blank) 0xA001 (copy/write offset < count: write sandblock/blank until 0xA+3 tiles are written) 0xE05F (copy 0xE+3 tiles from second row starting at tile 16); end of row
this row get already completly copied from row 3
0x48 (another control byte?!) 0x09 (amulet key) 0xB080 (copy 0xB+3 tiles from second row tile 1) 0x13 (door)

okay that's it.

only missing are the three (control?) bytes 0x44 0x48 0xEB

EDIT: hm the text is a bit unstructured but I hope it is understandable... :D
 

duke_srg

Well-Known Member
Member
Joined
Mar 1, 2011
Messages
1,862
Trophies
0
Age
44
Location
Moscow
XP
807
Country
Serbia, Republic of
Several problems in P7-1c -
at least 0C, 0B, BF is ignored
00 00 0A treated as 3 bytes whereas 00 00 0D - as 00 + repeat 3 bytes from offset 0x0D
FIVE 05 instead of four
 

bailli

Well-Known Member
Member
Joined
Oct 16, 2006
Messages
228
Trophies
1
Website
Visit site
XP
2,484
Country
Gambia, The
The three flag bytes after 0x10AA0000 are described as unkown, background, always1.
That is not true for p1-3. The always1 byte is 0x00.

Also in p1-3 the unkown byte is 0x04 and in p2-1 it is 0x12. Maybe this (or the always1 byte) is some
kind of mode setting concerning the copy/write mechanics - just a thought because our current
interpretation fits so well to p2-1 but isn't really convincing for p1-3.
 

elisherer

I ♥ 3DS
OP
Member
Joined
Dec 16, 2009
Messages
778
Trophies
0
Location
3dbrew.org
Website
www.sherer.co.il
XP
392
Country
Iceland
sorry i had a mistake on the 1st post...the right order is:

unknown, always1, background

p1-2 02 01 00
p1-3 12 01 00
p1-4 01 01 00
p1-5 16 01 00
p1-6 00 01 00
p1-7 09 01 01
p1-8 0A 01 01
p1-9 09 01 01
p2-1 04 01 01
p2-2 02 01 01
p2-3 09 01 01
p2-4 00 01 02
p2-5 00 01 02
p2-6 00 01 02
p2-7 05 01 02
p2-8 08 01 02
p7-1 00 01 04
p7-2 04 01 04
p7-3 09 01 04
 

bailli

Well-Known Member
Member
Joined
Oct 16, 2006
Messages
228
Trophies
1
Website
Visit site
XP
2,484
Country
Gambia, The
Another dissection (but sadly not as thourogh) p1-3:

If i say "discard" it doesn't mean it is not necessary, but we don't know what to do with it...

1st row:
0x00 (blank) 0x2001 (copy/write: last "two" (only 1 byte available) tiles; count 5)
0x05 0x05 (two blocks) 0x4001 (loop 0x05 0x05; count 7)
0x32 (pillar top)
end of row; unaccounted: 0x00

2nd row:
0x12 (player) 0x00 (blank) 0x27 0x28 (top of 4cat) 0x02 (ammo)
0x00 (blank) 0x05 (block) 0x19 (coins)
now it gets messy: 0x00 0x00 0x15 0x15 0x01 0x01 (somehow
correspond to blank-4*sand as duke_srg pointed out)
0x00 (blank) 0x0F (dog left) 0x33 (pillar)
end of row; unaccounted: 0x08

3rd row:
0x2B 0x2C (top of 4twofig) 0x29 0x2A (bottom of 4cat)
0x000F (copy 3 tiles (ammo-blank-block) from above - why not blank-dog?)
0x05 (block) 0x00 (blank) 0x14 (fly)
0x80 (unkown) 0x0001 (copy 3 tiles (from offset -2 => blank-fly-blank)
0x05 0x05 0x33 (two blocks-pillar)
end of row;

4th row:
0x2D 0x2E (bottom of 4twofig) 0x00 (blank) 0x02 (ammo)
0x30 (unkown - discard) 0x02 (ammo) 0x0D (fire)
0x001F (copy 3 tiles from two rows above - (block-coins-blank)
0x2020 (copy 5 tiles row 2/starting tile 9: blank-4*sand)
0F (dog left) 0x33 (pillar)
end of row;

5th row:
0x23 024 (top 4block) 0x60 (discard) 0x00 (blank)
0x000E (copy 3 tiles from above+1tile: ammo-fire-block))
0x401F (copy 7 tiles from two rows above: (2*block-blank-fly-
blank-fly-blank)
0x14 (fly) 0x13 (door) 0x33 (pillar)
end of row;

6th row:
0x25 0x26 (bottom 4block) 0x3F (discard) 0x00 (blank) 0x02 (ammo)
0x004D (copy 3 tiles from 5 rows above(1st row)+2tiles: 3*block)
0x001F (copy 3 tiles from 2 rows above: coins-2*blank)
0x2056 (copy 3 tiles from first row/tile4: 3*blank)

now we have a problem again:
0x201F should result in: (copy 5 tiles from 2 rows above: sand-dog-pillar)
but that is obviously wrong. Additionally the next byte already
describes the 7th tile of the next row:

7th row (starting 7th tile):
0x105F (copy 4 tiles from 2 rows above: (2*block-blank)
0x301F (copy 5 tiles from 2 rows above: fly-blank-fly-blank-fly)
0x4E (discard) 0x00 (blank)
0x001F (copy 3 tiles from 2 rows above: pillar-bottom 4block)
end of row;


8th row:
bottom 4block from last copy; 0x0D (fire) 0x0D (fire)
0x005F (copy 3 blocks from 6 rows above: ammo-blank-block)
0x78 (discard)

here we are again 0x003F should be copy 3 tiles form 4 rows above
but the next byte is already next row tile 3....

9th row (starting tile 3):
0x23 (0x70 discard) 0x24 (top 4block)
0x0010 (copy 3 tiles from above+1tile: fire-ammo-blank)
0x5081 (copy 8 tiles from 1st row tile6: blank-7*block)
0x003F (copy 3 tiles from 4 rows above: (pillar-bottom 4block)

10th row:
first bottom 4block from last copy
0x25 0x26 (bottom 4block)
0x05 (block) 0x02 (ammo) 0x09 (amulet key)
0x501F (copy 8 blocks from 2 rows above: 7*blank-pillar)
end of row;
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • TwoSpikedHands @ TwoSpikedHands:
    I just found out that the EU version is better in literally every way, better sound quality, better lighting, and there's even a patch someone made to make the text look nicer
  • TwoSpikedHands @ TwoSpikedHands:
    Do I restart now using what i've learned on the EU version since it's a better overall experience? or do I continue with the US version since that is what ive been using, and if someone decides to play my hack, it would most likely be that version?
  • Sicklyboy @ Sicklyboy:
    @TwoSpikedHands, I'll preface this with the fact that I know nothing about the game, but, I think it depends on what your goals are. Are you trying to make a definitive version of the game? You may want to refocus your efforts on the EU version then. Or, are you trying to make a better US version? In which case, the only way to make a better US version is to keep on plugging away at that one ;)
  • Sicklyboy @ Sicklyboy:
    I'm not familiar with the technicalities of the differences between the two versions, but I'm wondering if at least some of those differences are things that you could port over to the US version in your patch without having to include copyrighted assets from the EU version
  • TwoSpikedHands @ TwoSpikedHands:
    @Sicklyboy I am wanting to fully change the game and bend it to my will lol. I would like to eventually have the ability to add more characters, enemies, even have a completely different story if i wanted. I already have the ability to change the tilemaps in the US version, so I can basically make my own map and warp to it in game - so I'm pretty far into it!
  • TwoSpikedHands @ TwoSpikedHands:
    I really would like to make a hack that I would enjoy playing, and maybe other people would too. swapping to the EU version would also mean my US friends could not legally play it
  • TwoSpikedHands @ TwoSpikedHands:
    I am definitely considering porting over some of the EU features without using the actual ROM itself, tbh that would probably be the best way to go about it... but i'm sad that the voice acting is so.... not good on the US version. May not be a way around that though
  • TwoSpikedHands @ TwoSpikedHands:
    I appreciate the insight!
  • The Real Jdbye @ The Real Jdbye:
    @TwoSpikedHands just switch, all the knowledge you learned still applies and most of the code and assets should be the same anyway
  • The Real Jdbye @ The Real Jdbye:
    and realistically they wouldn't

    be able to play it legally anyway since they need a ROM and they probably don't have the means to dump it themselves
  • The Real Jdbye @ The Real Jdbye:
    why the shit does the shitbox randomly insert newlines in my messages
  • Veho @ Veho:
    It does that when I edit a post.
  • Veho @ Veho:
    It inserts a newline in a random spot.
  • The Real Jdbye @ The Real Jdbye:
    never had that i don't think
  • Karma177 @ Karma177:
    do y'all think having an sd card that has a write speed of 700kb/s is a bad idea?
    trying to restore emunand rn but it's taking ages... (also when I finished the first time hekate decided to delete all my fucking files :wacko:)
  • The Real Jdbye @ The Real Jdbye:
    @Karma177 that sd card is 100% faulty so yes, its a bad idea
  • The Real Jdbye @ The Real Jdbye:
    even the slowest non-sdhc sd cards are a few MB/s
  • Karma177 @ Karma177:
    @The Real Jdbye it hasn't given me any error trying to write things on it so I don't really think it's faulty (pasted 40/50gb+ folders and no write errors)
  • DinohScene @ DinohScene:
    run h2testw on it
    +1
  • DinohScene @ DinohScene:
    when SD cards/microSD write speeds drop below a meg a sec, they're usually on the verge of dying
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Samsung SD format can sometimes fix them too
  • Purple_Heart @ Purple_Heart:
    yes looks like an faulty sd
  • Purple_Heart @ Purple_Heart:
    @Psionic Roshambo i may try that with my dead sd cards
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    It's always worth a shot
    Psionic Roshambo @ Psionic Roshambo: It's always worth a shot