Official hakchi2 - NES Mini very simple pimp tool

  • Thread starter Thread starter Cluster
  • Start date Start date
  • Views Views 4,389,865
  • Replies Replies 18,558
  • Likes Likes 138
This header info is probably even more complete, including the 0x3D offset for DSP enabling, looking into it now.

github com/ihaveamac/snes-vc-stuff/blob/master/data-bin-header.md
 
  • Like
Reactions: asper and Bin4ry
The WII VC header is documented very well here. I can understand that @ClusterM and others probably want to release a nice one click tool which works 100%.

abload.de/img/datebin-headerinfo70u58.jpg

It should be trivial to replace a game in the on-board emulator by ftp at this point, but i'm curious to see what we can learn from the ones installed. I'll dig into the 30 games now :)
I love the buttery smoothness of the device btw. Much better than anything i saw before.

That's actually for N3DS SNES VC as far as I can tell, which has a different header than the SNES classic games. The SNES classic games use the Wii U VC header, which is much more compact. Most of the details remain the same, but a few change:

As far as I can tell, the Wii U header (and footer, which is always included, at least on SNES classic) is like this (the footer is largely incomplete):

Code:
// All little-endian values
typedef struct WUP_SNES_VC_Header
{
  uint32_t magic; // Seems to always be 0x00000100
  uint32_t entire_file_size; // This is repeated once in the header
  uint32_t unk1; // padding, additional magic, or maybe a null entry of some kind, it's always 0x00000030
  uint32_t footer_begin_addr; // pointer to a footer at the end of the file
  uint32_t unk_addr_begin; // can be a repeat of footer_begin_addr, or a pointer into the file, maybe for the beginning of a patch? Some of the snes classic roms have a *lot of extra data* appended to the end of the file before the footer
  uint32_t unk_addr_end; // can be a repeat of footer_begin_addr, or a pointer into the file, seems to be the corresponding patch end address
  uint32_t entire_file_size_repeat; // repeat of entire_file_size
  uint32_t padding; // always zeroes
  uint32_t footer_end_addr; // file offset to the end of the footer (more specifically, it points to the first 0x01 at the end of the fotter)
  char product_code[12]; // 11 character product code goes here, with null terminator
}

typedef struct WUP_SNES_VC_Footer
{
  uint32_t magic_and_rom_size; // ROM size is in the upper byte: XX00003C, where XX is the size (see get_base_rom_size)
  uint32_t unk1; // Possibly flags, some games have it set to zero, others have it set to an absurd value that can't be a pointer in the file
  uint32_t unk2; // Seems to be either 0 or sometimes an absurd number
  uint32_t unk3; // flags?
  uint32_t unk4; // flags?
  uint32_t padding; // always zeroes
  uint32_t magic2; // Always 0x01000000
  uint32_t magic3; // Always 0x01000000
  uint8_t padding[16]; // 16 bytes of 0 padding
}

size_t get_base_rom_size(uint8_t size)
{
  switch (size)
  {
    case 0x40: return 4 * 1024 * 1024; // 4MB
    case 0x30: return 3 * 1024 * 1024; // 3MB
    case 0x20: return 2 * 1024 * 1024; // 2MB
    case 0x10: return 1 * 1024 * 1024; // 1MB
    case 0x08: return 512 * 1024; // 512KB
    case 0x06: return 384 * 1024; // 384KB
    case 0x04: return 256 * 1024; // 256KB
    case 0x02: return 128 * 1024; // 128KB
    case 0x01: return 64 * 1024; // 64KB
    case 0x00: return 32 * 1024; // 32KB
  }
}

Disclaimer: I'm terrible at reverse engineering, so it's very possible that I could be wrong about some fields, but I hope this might come in handy for someone.
 
Last edited by daxtsu,
To be sure to understand, for you EUR > 2 US ?!?

Why do you say that ?

The US one is a bit blocky but the EUR one is sleek, more pleasing to the eye.

These games have been well emulated for a long time so why buy a SNES mini at all? Because it's cool to play the game on an official replica of the original so it should look as sleek as possible otherwise may as use emu
 
Can we stay on subject guys?
Sent from my iPhone using Tapatalk Pro
Which subject ? Ask every 5 posts if HakChi2 is SNES compliant ?!?

The US one is a bit blocky but the EUR one is sleek, more pleasing to the eye.

These games have been well emulated for a long time so why buy a SNES mini at all? Because it's cool to play the game on an official replica of the original so it should look as sleek as possible otherwise may as use emu
I already have an european one and I hope it will be cool to exchange my second one by an US or JAP model ;)
 
Which subject ? Ask every 5 posts if HakChi2 is SNES compliant ?!?


I already have an european one and I hope it will be cool to exchange my second one by an US or JAP model ;)

You feeling salty huh skid? I only asked twice, please show me where I asked if SNES is compliant every 5 posts. I’ll wait..... can’t huh? Pipe down, stay on subject


Sent from my iPhone using Tapatalk Pro
 
iDon

Just joke, I probably don't use the right words or tone ...
And I don't tell that YOU are asking every 5 posts ;)

Be sure that even if we're out of subject, when "hakChi3" will be released, you'll know it, the world will shake :p
 
  • Like
Reactions: TxFxL and flinto
iDon

Just joke, I probably don't use the right words or tone ...
And I don't tell that YOU are asking every 5 posts ;)

Be sure that even if we're out of subject, when "hakChi3" will be released, you'll know it, the world will shake :p

No, you were just trying to be a smart ass and it backfired on you, that’s what it was. And you did imply that I was asking every 5 posts. Better read what you wrote brother


Sent from my iPhone using Tapatalk Pro
 
Could be no news for hours, days or weeks for all we know.

What was the topic that we drifted off from anyway?
 
No, you were just trying to be a smart ass and it backfired on you, that’s what it was. And you did imply that I was asking every 5 posts. Better read what you wrote brother
Sent from my iPhone using Tapatalk Pro

Write "Ask every 5 posts if HakChi2 is SNES compliant ?!?" ... does mean that YOU are asking every 5 posts ?!?

Sorry, I haven't Shakespear's style.

And begin with "insult" (smart ass) don't make you more intelligent in the debate !!! Be aware to exchange with some people that are not fluant in English
 
The US one is a bit blocky but the EUR one is sleek, more pleasing to the eye.

These games have been well emulated for a long time so why buy a SNES mini at all? Because it's cool to play the game on an official replica of the original so it should look as sleek as possible otherwise may as use emu

I have both a European and a American one... I prefer the American one for nostalgia reasons, and I like the concave set of buttons. Also I plan to hack both use one for extra memory space in case I can't fit all the games I want onto one (still have space for save states, etc), as well as possibly using one for Sega Genesis emulation with the Wireless Fighting Commander controller.
 
  • Like
Reactions: flinto
Write "Ask every 5 posts if HakChi2 is SNES compliant ?!?" ... does mean that YOU are asking every 5 posts ?!?

Sorry, I haven't Shakespear's style.

And begin with "insult" (smart ass) don't make you more intelligent in the debate !!! Be aware to exchange with some people that are not fluant in English

Didn’t understand one word but ok, I’ll change the subject.


Sent from my iPhone using Tapatalk Pro
 
Already have NES Classic Mini (EUROPE as well). Soon we are going to buy Super NES Classic Mini (EUROPE version preferably) and have them ship it to our hometown in America. :) Can't wait!
 
The US one is a bit blocky but the EUR one is sleek, more pleasing to the eye.

These games have been well emulated for a long time so why buy a SNES mini at all? Because it's cool to play the game on an official replica of the original so it should look as sleek as possible otherwise may as use emu

Not to mention no need to lug around a USB keyboard with you like you do with RetroPie (which still doesn't have an OSK).
 
The US one is a bit blocky but the EUR one is sleek, more pleasing to the eye.

1118rao.jpg
 

Site & Scene News

Popular threads in this forum