Homebrew Picroxx!, the ultimate Picross clone!

  • Thread starter Thread starter Substance12
  • Start date Start date
  • Views Views 40,470
  • Replies Replies 176
  • Likes Likes 61
to use updated versions, do I just replace the boot.3dsx or are the changes also in the other files and do I have to download and unpack the entire rar archive?
 
This is normal, it's loading the music files which are pretty big.
Are you confined to them being that way because of the programming environment or it will be possible to move to a more compact format in the future? I haven't the slightest idea of what sound formats you can use =[
 
I'm a big fan of Picross/nonogram-type games, but I'd question the legality of creating a 'free' open-source game where both the art assets and the puzzles are ripped wholesale from copyrighted works.

If it were me, I'd focus on getting the engine entirely operational, adding a basic set of original art assets (with the option to load the Picross DS versions if the original files are located somewhere on the device, but not bundled with the app), and adding some original puzzles (by using some sort of nonogram generator if you don't want something entirely random).

Regarding the game crash if the timer rolls over - I haven't looked at the code to see if/how you've fixed this, but rather than a 'graceful' exit it doesn't sound like it should be too hard to add in a catch for a rollover - if time >= 99:99:59 draw 00:00:00, etc., maybe add a rollover counter (although in just about any sane case it won't be used).

If .wav files are causing long load times, wouldn't it be a better idea to use some sort of compressed format? I don't know what's been implemented in LÖVEPotion, but LÖVE should have support for MP3 and OGG files.
 
Great to see, the world literally can't have enough picross :D Keep up the good work!

Once you've nailed the engine and everything, my suggestion/request would be adding support for downloading puzzles from one of those picross websites, where they have daily puzzles and people can make their own etc, so you'll basically have unlimited puzzles to play.
 
You know, when I downgraded my 2ds I thought that I would spend so much time playing pirated games like monster hunter, all those mario games, hyrule warriors, etc. But you know what's happened? I spend hours a day just playing picross, I had never heard of it, even though I'm a pretty big nintendo fan, but I downloaded all of the picross e titles and have been having a blast, and now someone releases a picross homebrew that will potentially combine all the picross games into one! Count me in, this is super amazing and you've done a great job!
 
@Noelemahc @FireEmblemGuy I can't use MP3 or OGG files since LÖVEPotion only supports .WAV files as of now. When it gets support for compressed formats, i'll switch to one of them.

If I were to get in trouble, i'd just delete the Nintendo puzzles and use some custom ones. And at some point i'll change the assets, but I like how they look right now.

@hippy dave mind giving a link to one of these?
 
New version! :D Sorry for the delay. This includes some juicy gameplay and QoL changes, as well as a new course, filled with 15x15 puzzles!

To update, remove everything on your Picroxx folder, except for the "/game/courses/" folder and paste the new files replacing everything.

Changelog:
  • Added the Kinoko course from Mario's Picross.
  • Now you can paint the grid by dragging the stylus around, instead of clicking the cells one by one.
  • Custom skin support! Click on the button on the level selection screen to switch between the regular skin and the custom one.
  • Quitting a puzzle will now put you back on the level selection screen, instead of the main menu.
  • Now the music won't stop on the level selection screen.
  • Slightly reduced loading times.
  • Reworked the parser (thanks @andre111!)
  • When a row or column is completed, they'll get marked as grey.
  • Empty rows or columns (with a 0) will get automatically filled with Xs.
  • Minor changes and bugfixes.
  • Other things I may have forgotten about.
Download it here:

https://github.com/Substance12/Picroxx/releases/tag/v0.2
 
Last edited by Substance12,
Thank you so much for creating this. Can't for it to be finished. If I knew enough about LÖVEPotion I would help you port some of the puzzles. Ohh well, maybe one day...

EDIT: After looking at some of the code, I might be able to help out with some of the level creation/replication.
 
Last edited by Jinnial,
  • Like
Reactions: Substance12
Thank you so much for creating this. Can't for it to be finished. If I knew enough about LÖVEPotion I would help you port some of the puzzles. Ohh well, maybe one day...

Porting puzzles is reaaaaaaaaaaaally simple. Here's an example:

Code:
leveldata.gridsize = 15
leveldata.gamemode = "normal"
leveldata.number = 5
leveldata.letter = "F"

irow1 =  {".", ".", "O", ".", ".", ".", ".", ".", ".", ".", ".", "O", ".", ".", "."}
irow2 =  {".", ".", "O", "O", ".", ".", ".", ".", ".", "O", "O", "O", ".", ".", "."}
irow3 =  {".", ".", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", ".", ".", "."}
irow4 =  {".", ".", "O", ".", ".", ".", "O", ".", ".", ".", "O", "O", ".", ".", "."}
irow5 =  {".", ".", "O", ".", "O", ".", "O", ".", "O", ".", "O", "O", "O", ".", "."}
irow6 =  {".", "O", "O", ".", ".", ".", "O", ".", ".", ".", "O", "O", "O", ".", "."}
irow7 =  {".", "O", "O", "O", "O", "O", ".", "O", "O", "O", "O", "O", "O", "O", "."}
irow8 =  {".", "O", "O", ".", ".", "O", ".", "O", ".", ".", "O", "O", "O", "O", "."}
irow9 =  {".", "O", "O", ".", ".", ".", "O", ".", ".", ".", "O", "O", "O", "O", "."}
irow10 = {".", "O", "O", ".", "O", ".", ".", ".", "O", ".", "O", "O", "O", "O", "."}
irow11 = {".", "O", "O", ".", "O", ".", "O", ".", "O", ".", "O", "O", "O", "O", "."}
irow12 = {".", "O", "O", ".", ".", ".", "O", ".", ".", ".", "O", "O", "O", ".", "."}
irow13 = {".", ".", "O", "O", ".", ".", ".", ".", ".", "O", "O", "O", "O", ".", "."}
irow14 = {".", ".", ".", "O", "O", "O", "O", "O", "O", "O", "O", "O", ".", ".", "."}
irow15 = {".", ".", ".", "O", ".", "O", "O", "O", ".", "O", ".", ".", ".", ".", "."}

leveldata.gridsize will determine the size of the puzzle, leveldata.gamemode should stay on "normal" for now. and leveldata.number and leveldata.number determines which puzzle it is. For example this would be the puzzle 5-F.

On the irows, an "O" would be a cell that needs to be marked, and an "." would be one that needs to remain unmarked. After importing a puzzle, the game will take care of the rest.
 
Porting puzzles is reaaaaaaaaaaaally simple. Here's an example:

Code:
leveldata.gridsize = 15
leveldata.gamemode = "normal"
leveldata.number = 5
leveldata.letter = "F"

irow1 =  {".", ".", "O", ".", ".", ".", ".", ".", ".", ".", ".", "O", ".", ".", "."}
irow2 =  {".", ".", "O", "O", ".", ".", ".", ".", ".", "O", "O", "O", ".", ".", "."}
irow3 =  {".", ".", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", ".", ".", "."}
irow4 =  {".", ".", "O", ".", ".", ".", "O", ".", ".", ".", "O", "O", ".", ".", "."}
irow5 =  {".", ".", "O", ".", "O", ".", "O", ".", "O", ".", "O", "O", "O", ".", "."}
irow6 =  {".", "O", "O", ".", ".", ".", "O", ".", ".", ".", "O", "O", "O", ".", "."}
irow7 =  {".", "O", "O", "O", "O", "O", ".", "O", "O", "O", "O", "O", "O", "O", "."}
irow8 =  {".", "O", "O", ".", ".", "O", ".", "O", ".", ".", "O", "O", "O", "O", "."}
irow9 =  {".", "O", "O", ".", ".", ".", "O", ".", ".", ".", "O", "O", "O", "O", "."}
irow10 = {".", "O", "O", ".", "O", ".", ".", ".", "O", ".", "O", "O", "O", "O", "."}
irow11 = {".", "O", "O", ".", "O", ".", "O", ".", "O", ".", "O", "O", "O", "O", "."}
irow12 = {".", "O", "O", ".", ".", ".", "O", ".", ".", ".", "O", "O", "O", ".", "."}
irow13 = {".", ".", "O", "O", ".", ".", ".", ".", ".", "O", "O", "O", "O", ".", "."}
irow14 = {".", ".", ".", "O", "O", "O", "O", "O", "O", "O", "O", "O", ".", ".", "."}
irow15 = {".", ".", ".", "O", ".", "O", "O", "O", ".", "O", ".", ".", ".", ".", "."}

leveldata.gridsize will determine the size of the puzzle, leveldata.gamemode should stay on "normal" for now. and leveldata.number and leveldata.number determines which puzzle it is. For example this would be the puzzle 5-F.

On the irows, an "O" would be a cell that needs to be marked, and an "." would be one that needs to remain unmarked. After importing a puzzle, the game will take care of the rest.
Nice job for making it easy. I guess I will fork it and start with picross e since I have actually played that one and do all the 15x15 ones.
 
Last edited by Jinnial,

Site & Scene News

Popular threads in this forum