Skip to content

Commit b218253

Browse files
solved frame diffing, update readme, other fixes
1 parent 0116cd8 commit b218253

9 files changed

Lines changed: 85 additions & 165 deletions

File tree

README.md

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# FSPDS
1+
2+
3+
# <img src="icon.bmp"></img> FSPDS V0.1
24

35
## Flipnote Studio Player for Nintendo DS
46

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

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

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

22-
![ROM in action: show thumbnail](https://github.com/NotImplementedLife/Resources/blob/master/FSPDS/images/ss01.png "Show thumbnail")
23-
24-
*Thumbnail of one of the sample flipnotes (Cat on a skateboard) displayed by FSPDS*
2529

26-
![ROM in action: playing a flipnote](https://github.com/NotImplementedLife/Resources/blob/master/FSPDS/images/ss02.png "Playing a flipnote")
27-
28-
*Capture of "eBay Song" flipnote by RANDOM☆GUY played by FSPDS*
30+
<p align="center">
31+
<img width="600" src="README_Resources/ss02.png" alt="ROM in action: show thumbnail"></img>
32+
<br/>
33+
<i>Capture of "eBay Song" flipnote by RANDOM☆GUY played by FSPDS</i>
34+
</p>
2935

3036
## Bugs/Limitations
3137

3238
- FSPDS doesn't detect/play flipnotes larger than 1MB (this is intentional behavior)
3339
- Don't place more than 1024 files in ```/flipnotes``` directory, otherwise FSPDS won't be capable to see them all
3440
(also intentional behavior, probably will be changed in the future)
3541
- No sound currently
36-
- It's possible to encounter some graphical glitches (they'll be fixed soon)
42+
- ~~It's possible to encounter some graphical glitches (they'll be fixed soon)~~ [*Hopefully not!*]
43+
44+
### Tested on DeSmuMe emulator and R4(i) flashcards
45+
46+
## Credits
3747

38-
- Tested on R4(i) flashcards
48+
- 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.
49+
- [devkitPro](https://github.com/devkitPro) for their compiler, ndslib and examples
50+
- The authors behind [GodMode9i](https://github.com/DS-Homebrew/GodMode9i "GodMode9i") for the idea of overwriting character fonts
51+
- [Drenn1/GameYob](https://github.com/Drenn1/GameYob "Drenn1/GameYob") for helping me figure out how to work with makefiles.

README_Resources/ss01.png

870 KB
Loading

README_Resources/ss02.png

915 KB
Loading

arm9/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ CFLAGS := -Wall -Wno-psabi -DNO_VIZ \
3131
-march=armv5te -mtune=arm946e-s -fomit-frame-pointer\
3232
-ffast-math -O3 $(ARCH) $(DEBUG) \
3333
-DVERSION_STRING=\"`git describe --always --abbrev=4`\"\
34-
-DC_IO_FUNCTIONS -DNIFI \
34+
-DC_IO_FUNCTIONS \
3535
-include "nds/ndstypes.h"
3636

3737
CFLAGS += $(INCLUDE) -DARM9 -DDS

arm9/include/console.h

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ void c_writeFrame()
3131
iprintf("\025");
3232
for(int i=1;i<31;i++) iprintf("\004");
3333
iprintf("\023");
34+
c_goto(23,4);
35+
iprintf("V0.1 - Created by N\032I\032L");
3436
//for(i=32;i--;) iprintf("\x02");
3537
}
3638

@@ -98,7 +100,7 @@ static inline void initConsole()
98100
dmaFillWords(0xFFFFF000, (void*)0x62002B4, 4);
99101
dmaFillWords(0x00000000, (void*)0x62002B8, 8);
100102

101-
// Char #26
103+
// Char #26 - Play Triangle Up 1
102104
void* address=(void*)0x62002C0;
103105
u32 word=0x000000FF;
104106
for(u8 i=3;i--;)
@@ -109,7 +111,7 @@ static inline void initConsole()
109111
}
110112
dmaFillWords(word, address,20);
111113

112-
// Char #27
114+
// Char #27 - Play Triangle Up 2
113115
address=(void*)0x62002E0;
114116
word=0x00000000;
115117
dmaFillWords(word,address,16);
@@ -122,7 +124,7 @@ static inline void initConsole()
122124
address+=0x4;
123125
}
124126

125-
// Char #28
127+
// Char #28 - Play Triangle Bottom 1
126128
address=(void*)0x6200300;
127129
word=0xFFFFFFFF;
128130

@@ -136,7 +138,7 @@ static inline void initConsole()
136138
address+=0x4;
137139
}
138140

139-
// Char #29
141+
// Char #29 - Play Triangle Bottom 2
140142
address=(void*)0x6200320;
141143
word=0xFFFFFFFF;
142144
for(int i=4;i--;)
@@ -147,6 +149,12 @@ static inline void initConsole()
147149
}
148150
dmaFillWords(word,address,16);
149151

152+
// Char #30 - Bullet
153+
dmaFillWords(0x00000000, (void*)0x6200340, 8);
154+
dmaFillWords(0x000FF000, (void*)0x6200348, 4);
155+
dmaFillWords(0x00FFFF00, (void*)0x620034C, 8);
156+
dmaFillWords(0x000FF000, (void*)0x6200354, 4);
157+
dmaFillWords(0x00000000, (void*)0x6200358, 8);
150158

151159
BG_PALETTE[ 0]=BG_PALETTE_SUB[ 0]=0x7FFF; // used when clear screen
152160
BG_PALETTE[ 15]=BG_PALETTE_SUB[ 15]=0x7FFF; // used by \x1b[30m
@@ -183,7 +191,7 @@ void c_loadingBox()
183191
for(int i=10;i<13;i++)
184192
{
185193
c_goto(i,10);
186-
for(int j=0;j<10;j++) iprintf(" ");
194+
for(int j=0;j<12;j++) iprintf(" ");
187195
}
188196
consoleSelect(&consoleFG);
189197
iprintf("\x1b[39m");

0 commit comments

Comments
 (0)