Pages: 1
Posted on 06-10-19, 04:01 pm


Karma: 5
Posts: 4/6
Since: 05-03-19
I'm trying to make a custom level selector, instead of the worldmap. Most of it is in place but I just can't figure out how to draw to the screen. Are there any good tutorials for this. I want to be able to draw epngs and sections of .bin images.

_________________________
yep yep
Posted on 06-10-19, 04:35 pm (rev. 1 by  TruelyJohn64 on 06-10-19, 04:41 pm)
(Words)

Karma: 730
Posts: 213/265
Since: 01-03-16
You mean replace the world map with a level select screen? That requires custom code to do.

Regardless what you're trying to do you need to learn some ASM.
Though IIRC there are tools for making epngs
_________________________
"I strikingly thought you would know how but it clearly seems you have no knowledge of hacking" - MiiU 2017
Posted on 06-10-19, 04:57 pm


Karma: 5
Posts: 5/6
Since: 05-03-19
I know it requires ASM hacking. That's why I put it in this forum. Currently I'm already able to select a level by using the arrow keys. It's just that the screen is black and I don't know how to put anything on it.
_________________________
yep yep
Posted on 06-10-19, 05:17 pm
(Words)

Karma: 730
Posts: 214/265
Since: 01-03-16
Sorry about that, force of habit.

The best advice I have for you right now is what Kaze usually says "Look at the original game code and see how it works"

The NDSPY discord could probably help you out more, I can't do much on mobile.
_________________________
"I strikingly thought you would know how but it clearly seems you have no knowledge of hacking" - MiiU 2017
Posted on 06-10-19, 08:51 pm


Karma: 5
Posts: 6/6
Since: 05-03-19
Update, so I found some examples from devkitpro and was able to make this. It should work but it still doesn't. Could any of you tell me what's wrong?

// Runs as soon as you get in to the world map
void nsub_020CF108_ov_08()
{
videoSetMode(MODE_5_2D);
vramSetBankA(VRAM_A_MAIN_BG_0x06000000);
setBrightness(3, 0);

u8 *bitmap = (u8 *)allocFromGameHeap(66048);
u8 *palette = (u8 *)(bitmap);
palette += 0x10000;
loadFileByExtId_LZ_Dest(2088 - 0x83, bitmap);

int bg3 = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0, 0);
dmaCopy(bitmap, bgGetGfxPtr(bg3), 256 * 256);
dmaCopy(palette, BG_PALETTE, 256 * 2);
for (;;)
{
waitForVblank();
myScanKeys();
LevelLoaderUpdate();
}
}


_________________________
yep yep
Posted on 06-17-19, 08:09 am (rev. 2 by  TheGameratorT on 06-30-19, 10:28 am)
Shyguy
DMA problems.

Karma: 819
Posts: 34/89
Since: 07-19-18
Banana bread, I can help you with that. Contact me on my Discord (TheGameratorT#1850) I have a good experience with drawing ENPGs to the screen. I have pre-prepared functions and headers to help you with that.

- Or reply to me
_________________________
NSMB Hacking Discord
Pages: 1