Skip to content

Commit

Permalink
solved frame diffing, update readme, other fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
NotImplementedLife committed Mar 7, 2021
1 parent 0116cd8 commit b218253
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 165 deletions.
33 changes: 23 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# FSPDS


# <img src="icon.bmp"></img> FSPDS V0.1

## Flipnote Studio Player for Nintendo DS

Expand All @@ -10,29 +12,40 @@ This simple ROM allows you to play flipnotes on Nintendo DS (Lite) using your fl

- Create a new folder named ```/flipnotes``` at the root of your SD card
- Copy your favorite flipnotes to ```/flipnotes``` directory
- Copy ```FSPDS.nds``` anywhere on your SD card
- Copy ```FSPDS.nds``` anywhere to your SD card
- Insert your flashcard into the DS, then turn on the console
- Launch ```FSPDS.nds```
- Select a file from the menu using the D-pad
- Press ```A``` to play it
- Use ```L```/```R``` buttons to navigate through bottom-screen tabs

## Screenshots
<p align="center">
<img width="600" src="README_Resources/ss01.png" alt="ROM in action: show thumbnail"></img>
<br/>
<i>Thumbnail of one of the sample flipnotes (Cat on a skateboard) displayed by FSPDS</i>
</p>

![ROM in action: show thumbnail](https://github.com/NotImplementedLife/Resources/blob/master/FSPDS/images/ss01.png "Show thumbnail")

*Thumbnail of one of the sample flipnotes (Cat on a skateboard) displayed by FSPDS*

![ROM in action: playing a flipnote](https://github.com/NotImplementedLife/Resources/blob/master/FSPDS/images/ss02.png "Playing a flipnote")

*Capture of "eBay Song" flipnote by RANDOM☆GUY played by FSPDS*
<p align="center">
<img width="600" src="README_Resources/ss02.png" alt="ROM in action: show thumbnail"></img>
<br/>
<i>Capture of "eBay Song" flipnote by RANDOM☆GUY played by FSPDS</i>
</p>

## Bugs/Limitations

- FSPDS doesn't detect/play flipnotes larger than 1MB (this is intentional behavior)
- Don't place more than 1024 files in ```/flipnotes``` directory, otherwise FSPDS won't be capable to see them all
(also intentional behavior, probably will be changed in the future)
- No sound currently
- It's possible to encounter some graphical glitches (they'll be fixed soon)
- ~~It's possible to encounter some graphical glitches (they'll be fixed soon)~~ [*Hopefully not!*]

### Tested on DeSmuMe emulator and R4(i) flashcards

## Credits

- Tested on R4(i) flashcards
- Guys from [DSiBrew](https://dsibrew.org/wiki/Flipnote_Files/PPM "PPM Format") and [Flipnote Collective](https://github.com/Flipnote-Collective/flipnote-studio-docs/wiki/PPM-format "PPM Format") for their awesome documentation on .PPM file format.
- [devkitPro](https://github.com/devkitPro) for their compiler, ndslib and examples
- The authors behind [GodMode9i](https://github.com/DS-Homebrew/GodMode9i "GodMode9i") for the idea of overwriting character fonts
- [Drenn1/GameYob](https://github.com/Drenn1/GameYob "Drenn1/GameYob") for helping me figure out how to work with makefiles.
Binary file added README_Resources/ss01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added README_Resources/ss02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion arm9/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ CFLAGS := -Wall -Wno-psabi -DNO_VIZ \
-march=armv5te -mtune=arm946e-s -fomit-frame-pointer\
-ffast-math -O3 $(ARCH) $(DEBUG) \
-DVERSION_STRING=\"`git describe --always --abbrev=4`\"\
-DC_IO_FUNCTIONS -DNIFI \
-DC_IO_FUNCTIONS \
-include "nds/ndstypes.h"

CFLAGS += $(INCLUDE) -DARM9 -DDS
Expand Down
18 changes: 13 additions & 5 deletions arm9/include/console.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ void c_writeFrame()
iprintf("\025");
for(int i=1;i<31;i++) iprintf("\004");
iprintf("\023");
c_goto(23,4);
iprintf("V0.1 - Created by N\032I\032L");
//for(i=32;i--;) iprintf("\x02");
}

Expand Down Expand Up @@ -98,7 +100,7 @@ static inline void initConsole()
dmaFillWords(0xFFFFF000, (void*)0x62002B4, 4);
dmaFillWords(0x00000000, (void*)0x62002B8, 8);

// Char #26
// Char #26 - Play Triangle Up 1
void* address=(void*)0x62002C0;
u32 word=0x000000FF;
for(u8 i=3;i--;)
Expand All @@ -109,7 +111,7 @@ static inline void initConsole()
}
dmaFillWords(word, address,20);

// Char #27
// Char #27 - Play Triangle Up 2
address=(void*)0x62002E0;
word=0x00000000;
dmaFillWords(word,address,16);
Expand All @@ -122,7 +124,7 @@ static inline void initConsole()
address+=0x4;
}

// Char #28
// Char #28 - Play Triangle Bottom 1
address=(void*)0x6200300;
word=0xFFFFFFFF;

Expand All @@ -136,7 +138,7 @@ static inline void initConsole()
address+=0x4;
}

// Char #29
// Char #29 - Play Triangle Bottom 2
address=(void*)0x6200320;
word=0xFFFFFFFF;
for(int i=4;i--;)
Expand All @@ -147,6 +149,12 @@ static inline void initConsole()
}
dmaFillWords(word,address,16);

// Char #30 - Bullet
dmaFillWords(0x00000000, (void*)0x6200340, 8);
dmaFillWords(0x000FF000, (void*)0x6200348, 4);
dmaFillWords(0x00FFFF00, (void*)0x620034C, 8);
dmaFillWords(0x000FF000, (void*)0x6200354, 4);
dmaFillWords(0x00000000, (void*)0x6200358, 8);

BG_PALETTE[ 0]=BG_PALETTE_SUB[ 0]=0x7FFF; // used when clear screen
BG_PALETTE[ 15]=BG_PALETTE_SUB[ 15]=0x7FFF; // used by \x1b[30m
Expand Down Expand Up @@ -183,7 +191,7 @@ void c_loadingBox()
for(int i=10;i<13;i++)
{
c_goto(i,10);
for(int j=0;j<10;j++) iprintf(" ");
for(int j=0;j<12;j++) iprintf(" ");
}
consoleSelect(&consoleFG);
iprintf("\x1b[39m");
Expand Down
Loading

0 comments on commit b218253

Please sign in to comment.