From 71b954ca9bb5f1df823f13ae2fbf2e842627023e Mon Sep 17 00:00:00 2001 From: PC Date: Wed, 3 Sep 2025 14:35:18 +0200 Subject: [PATCH 01/11] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 548286c..8cef1c6 100644 --- a/index.html +++ b/index.html @@ -165,7 +165,7 @@ - + @@ -1059,7 +1059,7 @@

PROGRAMS

ClassPad with Python 🐍

It's finally time to break free from BASIC! Learn Python and build what you need, from educational tools to games. Creating amazing experiences has never been easier thanks to Python.

- Learn More About Python on ClassPad + Learn More About Python on ClassPad
From 3bf7233c804ac74448230ef29557d3bbd76688fb Mon Sep 17 00:00:00 2001 From: PC Date: Sun, 22 Feb 2026 22:12:56 +0100 Subject: [PATCH 02/11] test new V3 --- img/step1_system.png | Bin 0 -> 42164 bytes img/step2_launcher.png | Bin 0 -> 8895 bytes index.html | 3564 +++++++++++++++++++++++++++------------- 3 files changed, 2401 insertions(+), 1163 deletions(-) create mode 100644 img/step1_system.png create mode 100644 img/step2_launcher.png diff --git a/img/step1_system.png b/img/step1_system.png new file mode 100644 index 0000000000000000000000000000000000000000..a54653368a7402247f73f1c524c5f7e45a5b99db GIT binary patch literal 42164 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 literal 0 HcmV?d00001 diff --git a/img/step2_launcher.png b/img/step2_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..555d904916db859fd8b174f4fa10af36ba081a5d GIT binary patch literal 8895 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 + - - - + + + - - - - + content="https://res.cloudinary.com/s3ansh33p/image/upload/fl_lossy,f_auto/v1640786848/Classpad/classspad_2_grande_asfypp.webp" /> + + + + - - - + content="https://res.cloudinary.com/s3ansh33p/image/upload/fl_lossy,f_auto/v1640786848/Classpad/classspad_2_grande_asfypp.webp" /> + + + + content="https://res.cloudinary.com/s3ansh33p/image/upload/fl_lossy,f_auto/v1640786848/Classpad/classspad_2_grande_asfypp.webp" /> - + Classpad Dev - + - - - - - - - - - - - - - - - + + + + + + + + + +
+ + + +
+ +
+
+
+
+ Hollyhock-3 for fx-CP400 +

+ Unlock Your Classpad II + Superpowers ⚡ +

+

+ With one launcher, unlock a myriad of possibilities. From games to + emulators, explore our ever-expanding library of programs... You can + even create your own! +

+ +
+ + +
+
+ Classpad II +
+
+ + Term on the Classpad II +
+
+
+
+
+ + +
+
+
+

GET STARTED

+

+ First of all, Welcome! We look forward to you joining the + community.
Before you can run programs on the Classpad, install + the Hollyhock-3 launcher. +

+
+ +
+
+ 1. Press + + + + + Win + + + + R + to open the Run dialog. +
+ +
+ 2. Copy and paste the command below, then press OK. +
+ +
+ irm + https://get.classpad.dev/ | + iex + +
+ +

+ Not on Windows or having issues? Join our + Discord server + for help! +

+
+
+
+ + +
+
+
+ Classpad Instruction Graphic +
+ Step 1 System +
+
+
+
+
+
1
+
+

+ Copy run.bin an .hh3 to your calculator +

+

+ Copy the run.bin file to the root of your calculator's + storage. Also copy any hh3 games and python + apps you want to run. +

+
+
+ +
+ + + +
+ +
+
2
+
+

Launch Hollyhock

+

+ Go to the Main menu, select "System", open top left "System" menu, then "Hollyhock + Launcher" +

+
+
+ +
+ + + +
+ +
+
3
+
+

Run your App

+

+ In the launcher, pick the app you want to run from the list + and click "Run". +

+
+
+
+
+
+
+ + +
+
+
+

FEATURES

+

+ Hollyhock-3 is a feature-rich launcher. Here are a few features. +

+
+ +
+ +
+
+ +
+
Premade Apps
+

+ There are already some programs/games that you can just use + without programming knowledge. +

+
+
+
+ +
+
Experimental
+

+ You can write low level code, such as assembly if you wanted, + giving you access to all the hardware in the Classpad. +

+
+
+
+ +
+
Utilities
+

+ There a some utilities to take a low level look at the + Classpad, such as a hex editor of the loaded memory - in real + time. +

+
+
+
+ + +
+ Classpad II fx-CP400 +
+ + +
+
+ +
+
Documented
+

+ The launcher comes with example programs and documentation to + get you started. +

+
+
+
+ +
+
Fast
+

+ Programs are compiled to either binary or .hhk which allows + for greater performance compared to programs in CASIO basic. +

+
+
+
+ +
+
Easy to Use
+

+ Once installed, the launcher is intuitive and easy to + navigate. +

+
+
+
+
+
+
+ + +
+
+
+

PYTHON ON CLASSPAD

+

+ Unlock community-made games or write your own custom scripts. +

+
- .lds-dual-ring:after { - content: " "; - display: block; - width: 64px; - height: 64px; - margin: 8px; - border-radius: 50%; - border: 6px solid #fff; - border-color: #fff transparent #fff transparent; - animation: lds-dual-ring 1.2s linear infinite; - } + +
+
+
+ + + + + +
+

Explore Python Apps

+

+ Download Python to unlock community-made games or write your own + custom programs and scripts directly on your ClassPad II. +

+ + Explore Store + +
- @keyframes lds-dual-ring { - 0% { - transform: rotate(0deg); - } +
+
+ + + + +
+

Learn to Code

+

+ Want to make your own apps? Check out our extensive Wiki + documentation containing templates, APIs, and guides for + developing Python for Hollyhock. +

+ + Read the Wiki + +
+
- 100% { - transform: rotate(360deg); - } - } + +
+
+
+

Python Landing Page

+

+ Everything about Python on CP +

+
+ Visit +
+
+
+

Browser Emulator

+

+ Test drawing code instantly +

+
+ Try REPL +
+
+
+
- .python-banner { - background: linear-gradient(135deg, #4B8BBE 0%, #306998 100%); - border-radius: 10px; - box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); - transition: transform 0.3s ease, box-shadow 0.3s ease; - margin: 2rem 0; - } + +
+
+
+
+

JOIN THE DISCORD

+
+

+ Looking for more? Join our Discord server! Whether you are new + to modding / programming or an expert, we are sure you'll find + something there that interests you. If you ever need help with + installing, running or developing programs, we are here to help! +

+ + + DISCORD + +
+
+
+ +
+
+
+
- .python-banner:hover { - transform: translateY(-5px); - box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); - } + +
+
+
+

SPECIFICATIONS

+

+ Deep dive into the hardware details of the ClassPad fx-CP400. +

+
- .python-section { - background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); - border-radius: 15px; - padding: 3rem; - margin: 3rem 0; - text-align: center; - } +
+ Diagram of Classpad +
- .python-section h2 { - color: #306998; - font-weight: 700; - margin-bottom: 1.5rem; - } +
+ +
+

General

- .python-section p { - font-size: 1.1rem; - line-height: 1.6; - color: #495057; - } - - - +
+
+ + + + + + +
+
+

Color

+

White

+
+
- - -
-
-
- - -
- -
- - -
- -
-
-
-
- Hollyhock-2 - for fx-CP400 -

Unlock Your Classpad - II Superpowers

-

With one launcher, unlock a myriad of - possibilities. From games to emulators, explore our ever-expanding library of - programs... You can even create your own!

- - -
-
-
-

Python on the ClassPad is here!

-

Learn more about this exciting new development

-
- Learn more -
-
+
+
+ + + + + +
+
+

Weight

+

315 grams

+
+
- +
+
+ + + + + + + +
+
+

CPU

+

SuperH 4 (SH7305) processor

-
-
-
- Classpad II - - Doom on the Classpad II -
+ +
+
+ + + + +
+
+

Total Memory

+

64 MB

+
+
+ +
+
+ + + + +
+
+

User Memory

+

512 KB

+
+
+ +
+
+ + + + + +
+
+

Connector

+

USB Mini-B / 3pin cable (up to 115.2 kilobits/s)

-
+ +
+

Screen

- -
-
- - - -
-
-
-

GET STARTED

-

First of all, Welcome! We look forward to you joining the community!

-

Before you can run programs on the Classpad, you need to install some software. The - launcher used for our programs is hollyhock-2.

- GitHub Repo Preview -

If you have issues with installing the Launcher, you can join the Discord and ask - for - help, or watch the video below.

- -
-
-
- -
-
-

FEATURES

-

Hollyhock-2 is a feature-rich launcher. - Here are a few features.

-
-
-
-
- +
+
+ + + + + + + +
-
-
Premade Apps
-

There are already some programs/games that you can just use without - programming knowledge.

+
+

Size

+

4.8-inch diagonal

-
-
- + +
+
+ + + +
-
-
Experimental
-

You can write low level code, such as assembly if you wanted, - giving you access to all the hardware in the Classpad.

+
+

Resolution

+

320 × 528

-
-
- + +
+
+ + +
-
-
Utilities
-

There a some utilities to take a low level look at the Classpad, such - as a hex editor of the loaded memory - in real time.

+
+

Type

+

TFT LCD

-
-
- Classpad II fx-CP400 -
-
-
-
- + +
+
+ + + + + +
-
-
Documented
-

The launcher comes with example programs and documentation to get you - started.

+
+

Colors

+

65 536

-
-
- + +
+

Battery

+ +
+
+ + + +
-
-
Fast
-

Programs are compiled to either binary or .hhk - which allows for greater performance compared to programs in CASIO basic.

+
+

Power

+

4 AAA alkaline or nickel-metal hydride batteries

-
-
- + +
+
+ + + + +
-
-
Easy to Use
-

Once installed, the launcher is intuitive and easy to navigate. -

+
+

Power Consumption

+

1.0 W - 100 hours in use1

+ + +
- -
-
-
-

JOIN THE DISCORD

-

Looking for more? Join our Discord server! Whether you are new to modding / programming - or an expert, we are - sure you'll find something there that interests you. If you ever need help with installing, running - or developing programs, - we are here to help!

- - - DISCORD - + + +
+
+
+

PROGRAMS

+

+ Discover community-made programs and games for Hollyhock-3. +

+
+
+
-
-
-
-
- -
-
-

SPECIFICATIONS

-
-
- Diagram of Classpad -
-
-
-
-

- General -

-
-
- - - - - -
-
-

Color

-

White

-
-
-
-
- - - - -
-
-

Dimensions

-

20.6 × 8.9 × 2.11 cm

-
-
-
-
- - - - -
-
-

Weight

-

315 grams

-
-
-
-
- - - - - - -
-
-

CPU

-

SuperH 4 (SH7305) processor

-
-
-
-
- - - -
-
-

Total Memory

-

64 MB

-
-
-
-
- - - -
-
-

User Memory

-

512 KB

-
-
-
-
- - - - -
-
-

Connector

-

USB Mini-B / 3pin cable (up to 115.2 kilobits/s)

-
-
-
-
-

- Screen -

-
-
- - - - - - - -
-
-

Size

-

4.8-inch diagonal

-
-
-
-
- - - -
-
-

Resolution

-

320 × 528

-
-
-
-
- - -
-
-

Type

-

IPS LCD ?

-
-
-
-
- - - - - -
-
-

Colors

-

65 536

-
-
-
-

- Battery -

-
-
- - - -
-
-

Power

-

4 AAA alkaline or nickel-metal hydride batteries

-
-
-
-
- - - - -
-
-

Power Consumption

-

1.0 W - 100 hours in use1

-
-
-
-
-
-
+ +
+
+
+

+ Without Hollyhock +

+

+ Games and tools that run on an unmodified Classpad via CASIO Basic. +

+
-
-
1. Computed based on typical classroom usage (repeat of 1,2,3 sequence below each hour): -
-
1) Application Menu display for 5 minutes, start of display at "Medium" display brightness, - dimmed automatically after 30 seconds.
-
2) Program application calculation for 5 minutes, "Medium" display brightness.
-
3) Program application display for 50 minutes, display brightness same as 1, above.
-
-
+
+
-
- - -
-
-
-

PROGRAMS

-

Below are some programs that have been developed for the Classpad II.

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name Description Author Release Date Format Installation / Loader Download
hollyhock-2 The actual launcher needed to run all other programs and games. The6P4C (and SnailMath) July 2020 .bin OS update download
Games using hollyhock-2
Doom (CPDoom)A Doom source port for the Classpad II (fx-CP400)diddyholzMarch 2024.bin + assetshollyhock-2download
CPBoyA Game Boy (DMG) emulator for the Classpad II (fx-CP400). Forked on ClasspadDev GitHub to automatically recompile using - GitHub actions if you just want the binary and don't want to build it - yourself.diddyholz (and s3ansh33p)Aug 2021.binhollyhock-2download
CP 3D CarGoWroom3D racing game experiment using fixed point mathimHenry + community2024.bin + assetshollyhock-2included
Tetris (CPoldTetris)The very first game written by SnailMathSnailMathJuly 2020.hhk / .binhollyhock-2included
Minesweeper / MineSnailJust a Minesweeper clone for the fx-cp 400 by SnailMathSnailMathMarch 2021.hhkhollyhock-2included
SnakeJust a Snake clone.The6P4CAug 2018.hhkhollyhock-2included
CPsudokuJust a Sudoku game for the fx-cp 400 by SnailMath. Want to solve sudokus? - Use this - program. Want to get sudokus solved for you? This program will work as well. - (The - solve function isn't completely working...)SnailMathOct 2021.bin / .elfhollyhock-2 / Linuxdownload
ponggers2A pong game for the fx-cp 400 by InterChan, with AI opponent and with highly - advanced graphics (This led to the development of the hhk game engine, see - below.) - InterChan374Nov 2021.bin / .hhkhollyhock-2download -
CPpongJust a simple 2 player Pong game for the fx-cp 400 by SnailMathSnailMathSept 2021.bin / .hhk / .elfhollyhock-2 / Linuxdownload
CP 3D renderTransform your ClassPad II into a mini 3D playgroundimHenryNovember 2023.bin + assetshollyhock-2download
MineFXMineFx is a Minecraft styled 3d isometric rendererAdrian8115February 2024.bin + assetshollyhock-2download
CPFlappyBirdA port of the famous Flappy Bird game for the fx-cp 400 by s3ansh33p. - Runs at about 20 FPS.s3ansh33pJan 2022.hhkhollyhock-2download
Games and stuff WITHOUT hollyhock-2 - ON - AN - UNMODIFIED CALCULATOR
OldTicTacToeJust a TicTacToe game for the fx-cp 400 by SnailMath. It runs in Casio - Basic, so you - don't even need to install hollyhock, this works on the Classpad II and the - old - classpad (with the monochrome screen.)SnailMathMarch 2021.xcp'Program' sub menudownload
UndertaleThis is a port of the dungeon game Undertale for the calculator, it uses - casio - basic, so hollyhock-2 is not needed. It uses images displayed as backgrounds - for the - map, so only the player needs to be displayed, making it playable even - though games - written in basic are slower than C games. Essentially a technical preview as - CASIO - basic files have a limit.s3ansh33p aka mcgintygamesDec 2011 / Oct 2019.xcp'Program' sub menudownload
txt2xcpJust a program to convert text files to the .xcp format, no hollyhock - needed. Want - to read ebooks on your calculator?SnailMathNov 2020.elf / .exeLinux / Windowsdownload
txt2xcp (WEB)Same as txt2xcp but in a web interface.s3ansh33pNov 2021.html / .jsBrowserview
Tools and stuff using hollyhock-2
CPvidJust a video player for the fx-cp 400 by SnailMath... Watch - short videos on your calculator. Even with sound, if you connect an - amplifier to the serial port... (NOT RECOMMENDED!!!)SnailMathDec 2020 / Nov 2021.binhollyhock-2download
CPfilemgrJust a file manager for the fx-cp 400 by SnailMath. View your .png and .jpg - images - on your calculator or play .wav files...SnailMathMay 2021.binhollyhock-2download
CPhexEditorJust a hex editor for the fx-cp 400 by SnailMath. With this program, you can - peek - and poke the ram of the running calculator. (This can't be used to - circumvent exam - mode, because hollyhock-2 is disabled in exam mode.) You can use this to - access - hardware like the RTC, but for that, you can also use CPclock. (Poke at your - own - risk...)SnailMathNov 2020.hhkhollyhock-2download
CPclockJust a simple clock using the internal RTC for the fx-cp 400 by SnailMath. - You can - use this to set the time on the calc. (The clock is reset after the calc is - on - standby for a few minutes, so it isn't very useful...)SnailMathJun 2021.hhkhollyhock-2download
TarrasKReverse Engineering Toolkit, with disassembly features planned, aiming to - provide a - native toolset with GUI. Includes a software breakpoint manager, and - register dumping when the breakpoint is hit. - TheRainboxPhoenixJan 2022.bin / .hhkhollyhock-2download
CPShellA calculator shell for the fx-cp 400 by s3ansh33p. - Includes basic commands like ls, cd, cat, echo and history, with more to be - added. - Also has a command to change date and time, config files, with plans for - memory tools. - Note that I recommend changing the structure of the calculator, which is - explained in the readme, though it is not required. - More info - s3ansh33pJul 2022.hhkhollyhock-2download
App templates and game engines for - hollyhock-2 -
Online templatesA complete guide to get startedClassPadDev team2024.bin / .hhkhollyhock-2read -
app_templateAn empty app as a base for your own creationsThe6P4C and SnailMathMay 2021.bin / .hhkhollyhock-2download -
CPappTemplateAn empty app as a base for your own creations, can also be compiled for a pc - as a - quick way to test (Doesn't work currently, because I have problems with - X11...)SnailMathMarch 2021.hhk / .elfhollyhock-2 / Linuxdownload
hhkEngineSome kind of game engine for the Classpad, contains some kind of physics, - particles, - texture loading stuff, and more, similar to app_template, but much more - advanced. - s3ansh33p (and InterChan374)Dec 2021.hhkhollyhock-2download
Newlib CP2A newlib port for the Classpad II. Use this for stdlib supportdiddyholzMarch 2024.binhollyhock-2download
CP_fixfloat_templateCP template with fixed point values (16.16)imHenryOctober 2023.binhollyhock-2download
CP-Raycaster-DemoAbout - A very simple demo of a fixed-point raycaster for the fx-CP400 with texture and sprite support.diddyholzDecember 2022.binhollyhock-2download
-
-
-
+
+
+ + +
+
+
+

PYTHON GAMES

+

+ Games written entirely in Python, ready to play natively. +

-
- - -
-

ClassPad with Python 🐍

-

It's finally time to break free from BASIC! Learn Python and build what you need, from educational tools to games. Creating amazing experiences has never been easier thanks to Python.

- Learn More About Python on ClassPad -
- - -
-
- -
-
-

Made with ❤︎ by Sean McGinty

-

Last Updated: Loading...

-

- Content licensed - CC BY 4.0. -

-
-
-

Classpad-dev is a community project not affiliated with - Casio.
- The programs and other online content on Classpad-dev remain the property of their authors and - may be subject to licenses or copyrights.
- CASIO is a registered trademark of CASIO Computer Co., Ltd. in Japan.

-
+
+ +
+
+
+ + +
+
+
+

+ Want to make your own apps? +

+

+ We have extensive documentation, templates, and tools ready to help + you write your first C/C++ or Python program for the ClassPad. +

+ + Check out the Wiki + +
+
+
+ + -
- - - - - - - + + - + \ No newline at end of file From 70c93d23264abe3de8ca81b7e8e215574c9a173b Mon Sep 17 00:00:00 2001 From: PC Date: Sun, 22 Feb 2026 22:26:44 +0100 Subject: [PATCH 03/11] add mock YAL --- img/step3_yal.png | Bin 0 -> 1650 bytes index.html | 103 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 94 insertions(+), 9 deletions(-) create mode 100644 img/step3_yal.png diff --git a/img/step3_yal.png b/img/step3_yal.png new file mode 100644 index 0000000000000000000000000000000000000000..64565bf7ac10e43fd482b84fb5fa8f98af334d15 GIT binary patch literal 1650 zcmeAS@N?(olHy`uVBq!ia0y~yV02+%U=rbA0*btScjz~e;wzp=+P75^5 zU^HY-VmrbE!fWI{e_Z`)+5GGf8D%ZqMD9`R%DdOON-l z2XghDH!tcxYd>Q1W3KS#yOCDU{x2@D*N`u^vOC%L^Y6+@Uyr>D{BbM)-hzqqxAESN z{E=`>L)Y$;_mP-Vljle8Y@3+;O{3!y7?t~k{pcOBlfOSz8phYX zFv(B9BzHE}Ncq{eNYCOkv-Ng*oq0HU#ggI~ha_FD6pB@xoAWE-GspE~Zw@j}e*0s_ z`{g^5_-wvZ+Zi4|vM1r;^u^mRo_KyN=2K;`^;3_oow*CF?_ar+|7_dK*AHe)UUsw5 zJj_h$XMVrsW972%GmhUm?P;5S&*WKYzOQIr`P(?vqcU|KXL~FEc-TFdQ~7G2K56aT`TWd%iO*|R-_))V)hRXoJv%wBAZ|nUnT_9{R&UF_arfMnZima~XIAHJ z=AUhAoB8DV@jDmN%g#*q-x@ou=hot$t?z|C&-}1IiF@BO=Onw=_1m{poOxJ1W#hM< zhVgkR$K*oKb{>lV9Qgdqfs!OPNX&Fd9^vVb6fjmu17U|VpeSobjy8}aL;*aZ~jkHewKcu=GRq`q&lB7%kLX2!;=g=s9>prq<|(d!Ql>Q vlHw3wKyOxLfcb>N+(CQC4!TTcabEu77v+|RQ`imyD-i}yS3j3^P6img#htu-img { + width: 100%; height: auto; - width: 350px; filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.5)); border-radius: 12px; - margin-top: 18%; + display: block; + } + + .htu-overlay { + position: absolute; + top: 7.25%; + left: 12.5%; + width: 75%; + aspect-ratio: 320 / 528; + border-radius: 4px; + overflow: hidden; + } + + .htu-overlay img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + opacity: 0; + transition: opacity 0.5s ease-in-out; + } + + .htu-overlay img.active { + opacity: 1; } .htu-right { @@ -1296,9 +1327,16 @@

GET STARTED

- Classpad Instruction Graphic -
- Step 1 System +
+ Classpad Instruction Graphic +
+ Step 1 System + Step 2 Launcher + Step 3 App + Step 4 Run +
@@ -2058,16 +2096,63 @@

PYTHON GAMES

// 8. Horizontal Scroll for App Gallery setTimeout(() => { - // "How To Use" Image hover effect (replacing scroll scroll) + // "How To Use" Image entrance const htuImg = document.getElementById("htu-img"); if (htuImg) { - // Just a subtle entrance or hover if needed. We don't need the motion loop anymore inView(htuImg, () => { htuImg.style.transform = "scale(1)"; - htuImg.style.backgroundColor = "transparent"; }); } + // Slideshow logic for How To Use based on scroll + const htuSteps = document.querySelectorAll('#how-to-use .step'); + const overlayImgs = document.querySelectorAll('.htu-overlay img'); + let slideIndex = 0; + let autoSlideInterval = null; + let isUserScrolling = false; + let scrollTimeout = null; + + const showSlide = (index) => { + overlayImgs.forEach(img => img.classList.remove('active')); + const targetImg = overlayImgs[index % overlayImgs.length]; + if (targetImg) { + targetImg.classList.add('active'); + } + }; + + const startAutoSlide = () => { + if (autoSlideInterval) clearInterval(autoSlideInterval); + autoSlideInterval = setInterval(() => { + if (!isUserScrolling) { + slideIndex++; + showSlide(slideIndex); + + // Check if we just showed the last slide in the set + if ((slideIndex + 1) % overlayImgs.length === 0) { + clearInterval(autoSlideInterval); + setTimeout(startAutoSlide, 10000); // 10s pause after full loop + } + } + }, 2000); // 2s per slide + }; + + htuSteps.forEach((step, index) => { + inView(step, () => { + isUserScrolling = true; + if (scrollTimeout) clearTimeout(scrollTimeout); + + slideIndex = index; + showSlide(slideIndex); + + // Resume auto-slideshow if no scroll-triggered changes for 4 seconds + scrollTimeout = setTimeout(() => { + isUserScrolling = false; + }, 4000); + }, { amount: 0.5 }); + }); + + startAutoSlide(); + const appGroup = document.getElementById("apps-container"); // Translate by the total width of the content, subtracting 100vw so the very end aligns perfectly with the right edge. // This is completely decoupled from card numbers or sizes, and is fully responsive! From 624ca40259ac582247f93476e0c14442213a48a9 Mon Sep 17 00:00:00 2001 From: PC Date: Sun, 22 Feb 2026 23:23:12 +0100 Subject: [PATCH 04/11] add dynamic JSON store and pull data from python store --- img/step3_yal.png | Bin 1650 -> 4227 bytes index.html | 341 +++++++++++++++++++++++----------------------- store/meta.json | 104 ++++++++++++++ 3 files changed, 272 insertions(+), 173 deletions(-) create mode 100644 store/meta.json diff --git a/img/step3_yal.png b/img/step3_yal.png index 64565bf7ac10e43fd482b84fb5fa8f98af334d15..bad592c95e0d64aab807c5bf1527f5c943923fca 100644 GIT binary patch literal 4227 zcmeHLX*3(?8cw9OZ>_OZEj3+qrh}qIZJAb4l=N!FzE>?FqIMyn)tc4_rqh}>1cNHE zmLy1tR%t7Z6txpkA-0G;BS>y%?%aFNz31L@?(*~Azwi5<^PT5?p67kv@4I)!$yP>E zRT2OI$k<)F=nMb=zXbq9j}zm|~CnE+#!h(IxB6jLgEHMR6I z?1*(se!F!`>86B8A^W8^0=r>(o)3UuJ<)z@OY$q$TaSCCCo!}1NZ!uM{gKB9>}c<~ zxqTsTYkep$d{Qq{5@SHAQNG|7;L238U~2v0@nj*1TYgwXTJE$qqTN7v_k;Z9RIOnw zfRdb)xV_QWR{m7@xHIC7(Ng5Qvotfj43Bq=#*EXL1VIW<7aCeN)i1Bp?5c+JYWt1) z^E&#wsCxJFI%zyT?l|1whHkKKvdb*OK~&PqsKjkHH7<4x{KhATQ<6OabBZq#!%Ys& z*oGz27q*HG^vawP__fz}<`51TrQ!9t)G3jSF`+clacm)Wc}Z#rh;sxa+keE)Kp{Q%Gjw(npnht>7$gv%Q8LbG>N`-V=?i4MlZw z&h)r(>{*YdU36W1fa2aVG%_k={iHKL9CM?Xr;=dyZDjJAYzk6ehRz4uWymTfdE5*c z>KQ=Em`NRi2|>IkPtw+9#hd~NVsoGlo_{%sWs_AXnJ+tvzzEQ9pBej?H@QRhT0VHah`&-;6fObSDjaSlv-p@7Zq zX};ljN{V}N3RcQ(OIZhfr-?R2JV_djBiOC>z^Xh<=D!hcbj1vsG(TsIdiFCax(=Ie zeb|!VC0n>xqU6k5k58uTtWA*g=-XT7!FcGS-j=maud>F5#x7`}TtSppx6u_e8ZR8EpjoV`YYMs z)}Bb#+EzHkLAVpo8XWrVrezM8|ZWA`oo+I&7NwEq3atwspbIgO}*B}*6GM9m?~psjtEjD z*is7i6X{3W-7Br;K7|fYec0n4hU-?(E*XIO_sCXrQ%XiQYM}kH#vncclLjkn{xxPRV3R;`4cI*j_%OrJnONOnqogECvKNZ@C>D0?H3zsU-0B zt)<*}2XMmX29B(5Y5FS#*O-J2aIj*xv!@Yq$$QDlco|m^_tW{cApN7Z8bmoGH~8ff$8$Aq zZdyYIbo*F#`P)dQmF8T~xhP7{=GBY1*FF4pPIf3gqp6ohbYK`2>EmqzEps?f*B%9D z?6K=bl1+UP*=dozGz_g$f6w;=#cp~#>uBcd-hI7sBICbAd}t4j@nenPdY@C;OEzU= zij%yTYgL(Bkx8Zx4C8G(w_}os9Ezr85f*ZaZ2H~Vt77@j&Zf5s5b*HQlpv63SQU*Z z23dapz-{bt6x3>tI(9yRQw*f`In7TUR@m@92b9kb2^LQYx%sZ-s{e+jHP4)~^&a$@_5$6V^MVs}^Gn{+Bs6I%Ju- z!WS>APQ*w5@)CSX~5EslE zX849*FQHRz3bN{zj815UHrCmetafH}t=)h=@T6jMr=QJ0@-o4JHMG)R9Dn-twsDe& zTll+S)-g_3VUzETv(2{)v^E?NhPo*RC_RBj3bH)vjajbuadz-`C==ltxYD^i&d2I`v1 zI_d_iX=(Eyd8e`d))oj#$eGlZLXRKubdAvEbx}7B(Bbx0~~5<=Z4?I9RyIo}VoHB9viav0`@Sc;a$S9=eCbZd@dl z%%_2Wjufn9p>|T_nc0_Wci<`)f<3ni1Ga(lX$`ca{+1_zC^=Qz2HB`dV<0MH)*PaZ z*O*X)ztu-nx)>Zr55gmb$1oayUa9^@!4#C-i+udS?^XsD^MhIvJRpL&KdM{q# zQQzoWru$SJkBi0Fw=gd*0&2e`b&q|!`v`mH5!5s@(9iP6j!dj0Iu6A%Tv7bPj)|Jv z*LrYhrsEC^QGcta;X|IIZ>wi+`0W7+t)Cpe`mapa4b*UZUTSi?>Y>=wQ%RtYE^ME9 z1Eb7EHQGS0q|K~&WBBWIf(-2*RgAQp274FoR-+B|@~k4_nC&+++WRb=0ye)9AYz)W z@ba%_9@8&SwU?37U1gT|`)5LuFE6H>T5l8|uF4zD12uHU`*%SVs_;+Qq bgyv2!uZ!J!@bL5J0>IAN>0-?VzgvFzp=+P75^5 zU^HY-VmrbE!fWI{e_Z`)+5GGf8D%ZqMD9`R%DdOON-l z2XghDH!tcxYd>Q1W3KS#yOCDU{x2@D*N`u^vOC%L^Y6+@Uyr>D{BbM)-hzqqxAESN z{E=`>L)Y$;_mP-Vljle8Y@3+;O{3!y7?t~k{pcOBlfOSz8phYX zFv(B9BzHE}Ncq{eNYCOkv-Ng*oq0HU#ggI~ha_FD6pB@xoAWE-GspE~Zw@j}e*0s_ z`{g^5_-wvZ+Zi4|vM1r;^u^mRo_KyN=2K;`^;3_oow*CF?_ar+|7_dK*AHe)UUsw5 zJj_h$XMVrsW972%GmhUm?P;5S&*WKYzOQIr`P(?vqcU|KXL~FEc-TFdQ~7G2K56aT`TWd%iO*|R-_))V)hRXoJv%wBAZ|nUnT_9{R&UF_arfMnZima~XIAHJ z=AUhAoB8DV@jDmN%g#*q-x@ou=hot$t?z|C&-}1IiF@BO=Onw=_1m{poOxJ1W#hM< zhVgkR$K*oKb{>lV9Qgdqfs!OPNX&Fd9^vVb6fjmu17U|VpeSobjy8}aL;*aZ~jkHewKcu=GRq`q&lB7%kLX2!;=g=s9>prq<|(d!Ql>Q vlHw3wKyOxLfcb>N+(CQC4!TTcabEu77v+|RQ`imyD-i}yS3j3^P6PYTHON GAMES } // --- Store Data Definitions --- - const appsData = [ - { - name: "Doom (CPDoom)", - author: "diddyholz", - description: - "A Doom source port for the Classpad II (fx-CP400). Experience the classic FPS right on your calculator.", - format: ".bin + assets", - image: "https://classpaddev.github.io/img/doom.png", - link: "https://github.com/diddyholz/CPDoom", - tags: ["Game", "FPS", "Port"], - }, - { - name: "CPBoy", - author: "diddyholz & s3ansh33p", - description: - "A Game Boy (DMG) emulator. Play classic Game Boy titles on the go.", - format: ".bin", - image: "https://classpaddev.github.io/img/gb.png", - link: "https://github.com/diddyholz/CPBoy", - tags: ["Emulator", "Game"], - }, - { - name: "CP 3D CarGoWroom", - author: "imHenry", - description: "3D racing game experiment using fixed point math.", - format: ".bin + assets", - image: "https://placehold.co/240x396/1f2325/00dc68?text=CarGoWroom", - link: "https://github.com/ClasspadDev/CP-3D-CarGoWroom#readme", - tags: ["Game", "3D"], - }, - { - name: "Tetris (CPoldTetris)", - author: "SnailMath", - description: - "The very first game written by SnailMath for Hollyhock. A classic Tetris clone.", - format: ".hhk / .bin", - image: "https://placehold.co/240x396/1f2325/00dc68?text=Tetris", - link: "https://github.com/SnailMath/CPoldTetris/releases", - tags: ["Game", "Puzzle"], - }, - { - name: "MineFX", - author: "Adrian8115", - description: - "MineFx is a Minecraft styled 3d isometric renderer. Build and explore.", - format: ".bin + assets", - image: "https://placehold.co/240x396/1f2325/00dc68?text=MineFX", - link: "https://github.com/Adrian8115/MineFX/", - tags: ["Game", "3D"], - }, - { - name: "CPFlappyBird", - author: "s3ansh33p", - description: - "A port of the famous Flappy Bird game running at a smooth 20 FPS.", - format: ".hhk", - image: "https://classpaddev.github.io/img/flappy.png", - link: "https://github.com/s3ansh33p/CPFlappyBird/releases", - tags: ["Game", "Arcade"], - }, - { - name: "CPShell", - author: "s3ansh33p", - description: - "A calculator shell supporting basic commands like ls, cd, cat, echo and history.", - format: ".hhk", - image: "https://classpaddev.github.io/img/term.png", - link: "https://github.com/s3ansh33p/CPShell", - tags: ["Utility", "System"], - }, - { - name: "CPhexEditor", - author: "SnailMath", - description: - "Peek and poke the RAM of the running calculator. Advanced low-level utility.", - format: ".hhk", - image: "https://placehold.co/240x396/1f2325/00dc68?text=Hex+Editor", - link: "https://github.com/SnailMath/CPhexEditor/releases", - tags: ["Utility", "Advanced"], - }, - { - name: "CPvid", - author: "SnailMath", - description: - "Watch videos on your calculator! Even supports sound via serial port modifications.", - format: ".bin", - image: "https://placehold.co/240x396/1f2325/00dc68?text=CPVid", - link: "https://github.com/SnailMath/CPvid/releases", - tags: ["Utility", "Media"], - }, - ]; - const noHhkData = [ { name: "OldTicTacToe", @@ -2453,107 +2365,190 @@

PYTHON GAMES

}, ]; - const pythonAppsData = [ - { - name: "EncloseHorse", - author: "Phoebe", - description: - "Enclose the horse in the biggest possible pen! Click grass tiles to place walls. You have limited walls. Horses can't move diagonally or over water. Enclosed golden apples give +10! Portals connect distant cells - the horse can teleport through them!", - format: "Python", - image: - "https://placehold.co/240x396/1f2325/00dc68?text=Enclose+Horse", - link: "https://github.com/TheRainbowPhoenix/enclose.horse", - tags: ["Game", "Puzzle", "Strategy"], - }, - { - name: "Snake Python", - author: "Community", - description: - "Classic snake game rewritten in Python using the ClassPad Python drawing API. A great resource for learning how games are constructed.", - format: "Python", - image: "https://placehold.co/240x396/1f2325/00dc68?text=Snake", - link: "https://classpaddev.github.io/python/store/", - tags: ["Game", "Arcade", "Educational"], - }, - { - name: "Mandelbrot Explorer", - author: "Community", - description: - "A Python script that generates and lets you zoom into the Mandelbrot set using the Classpad's color display.", - format: "Python", - image: "https://placehold.co/240x396/1f2325/00dc68?text=Mandelbrot", - link: "https://classpaddev.github.io/python/store/", - tags: ["Utility", "Math", "Drawing"], - }, - ]; - // Render Apps Function - function renderApps() { + async function renderApps() { + // Bypass data for local-only, featured, or pinned apps + const pythonBypass = [ + { + "name": "CED", + "description": "Classpad Editor - A Python code editor for the calculator. Needs CInput.", + "author": "Phoebe", + "releaseDate": "2026-02-09", + "installation": "https://github.com/TheRainbowPhoenix/MiscPythonExtra/blob/master/ced_new.py", + "download": "https://raw.githubusercontent.com/TheRainbowPhoenix/MiscPythonExtra/master/ced_new.py", + "image": "images/CED/cover.png", + "tags": ["Utility", "Development"] + }, + { + "name": "HarmoniExtra", + "description": "A music chord viewer for Classpad. Needs CInput.", + "author": "Phoebe", + "releaseDate": "2026-02-15", + "installation": "https://github.com/TheRainbowPhoenix/MiscPythonExtra/blob/master/HarmoniExtra.py", + "download": "https://raw.githubusercontent.com/TheRainbowPhoenix/MiscPythonExtra/master/HarmoniExtra.py", + "image": "images/HarmoniExtra/cover.png", + "tags": ["Utility", "Music", "Education"] + }, + { + "name": "CPaint", + "description": "A paint program for Classpad. Needs cinput and cgui.", + "author": "Phoebe", + "releaseDate": "2026-02-14", + "installation": "https://github.com/TheRainbowPhoenix/MiscPythonExtra/blob/master/CPaint.md#cpaint", + "download": "https://github.com/TheRainbowPhoenix/MiscPythonExtra/releases/download/rolling-releases/cpaint-beta.zip", + "image": "images/CPaint/cover.png", + "tags": ["Utility", "Art", "Graphics", "Education"] + } + ]; + + // Helper to process, merge, and prioritize app lists + const processApps = (list, bypassList = [], limit = 10, forceTopIdOrName = null) => { + // Get top 10 from source first + let base = list.slice(0, limit); + + // Add bypass apps to the end if they aren't already in the top 10 + bypassList.forEach(b => { + if (!base.find(m => m.name === b.name)) { + base.push(b); + } + }); + + // Move specific ID or Name to the very top (index 0) + if (forceTopIdOrName) { + const idx = base.findIndex(a => a.name === forceTopIdOrName || a.id == forceTopIdOrName); + if (idx > -1) { + const [app] = base.splice(idx, 1); + base.unshift(app); + } + } + return base; + }; + // Main HHk apps const container = document.getElementById("apps-container"); - let html = ""; - appsData.forEach((app) => { - const tagsHtml = app.tags - .map((t) => `${t}`) - .join(""); - html += ` -
-
- ${app.name} - by ${app.author} -
-
-
-
-
- ${tagsHtml} - ${app.format} -
-

${app.description}

- -
-
-
- `; - }); - container.innerHTML = html; + try { + const response = await fetch('/store/meta.json'); + const appsData = await response.json(); - // Python apps - wrapped in 100vw slide blocks - const pyContainer = document.getElementById("python-apps-container"); - let pyHtml = ""; - pythonAppsData.forEach((app) => { - const tagsHtml = app.tags - .map((t) => `${t}`) - .join(""); - pyHtml += ` -
+ let html = ""; + // Processed apps for HHk (Force CP Doom to top) + const hhkProcess = processApps(appsData, [], 10, "CP Doom"); + + hhkProcess.forEach((app) => { + const tagsHtml = (app.tags || []) + .map((t) => `${t}`) + .join(""); + + const bgPos = app.position ? `background-position: ${app.position};` : ""; + const downloadBtn = app.downloadUrl || app.link || app.download; + const detailsBtn = app.detailsUrl || app.link || app.installation; + + html += `
${app.name} - by ${app.author} + by ${app.author || 'Community'}
-
+
${tagsHtml} - ${app.format} + ${app.format || '.hh3'}

${app.description}

+ `; + }); + container.innerHTML = html; + } catch (err) { + console.error("Error fetching main apps:", err); + } + + // Python apps - wrapped in 100vw slide blocks + const pyContainer = document.getElementById("python-apps-container"); + try { + const response = await fetch('https://classpaddev.github.io/python/store/meta.json'); + const pythonAppsData = await response.json(); + const pythonBaseUrl = 'https://classpaddev.github.io/python/store/'; + + // Process Python list with bypass at the end + const pyProcess = processApps(pythonAppsData, pythonBypass, 10); + + let pyHtml = ""; + pyProcess.forEach((app) => { + const tagsHtml = (app.tags || []) + .map((t) => `${t}`) + .join(""); + + const imageUrl = app.image.startsWith('http') ? app.image : pythonBaseUrl + app.image; + const detailsUrl = app.installation || app.download || app.detailsUrl; + const downloadUrl = app.download || app.downloadUrl || app.link; + + pyHtml += ` +
+
+
+ ${app.name} + by ${app.author || 'Community'} +
+
+
+
+
+ ${tagsHtml} + Python +
+

${app.description}

+ +
+
+
+
+ `; + }); + + // Add Explore More card + pyHtml += ` +
+
+
+
+ + + + + +
+
+

Explore Python Apps

+

Download Python to unlock community-made games or write your own custom programs and scripts on your ClassPad.

+ +
+
+
`; - }); - pyContainer.innerHTML = pyHtml; + pyContainer.innerHTML = pyHtml; + } catch (err) { + console.error("Error fetching python apps:", err); + } // Non-HHk apps const noHhkContainer = document.getElementById("no-hhk-container"); diff --git a/store/meta.json b/store/meta.json new file mode 100644 index 0000000..520de1b --- /dev/null +++ b/store/meta.json @@ -0,0 +1,104 @@ +[ + { + "id": 4, + "name": "CP Doom", + "author": "QBos07", + "description": "A Doom source port for the Classpad II. You also need the WAD. Check the details", + "image": "https://classpaddev.github.io/img/doom.png", + "downloadUrl": "https://github.com/QBos07/CPDoom/releases/download/v1.1.0/CPDoom.hh3", + "detailsUrl": "https://github.com/QBos07/CPDoom/", + "position": "0 19%", + "format": ".hh3", + "tags": [ + "Game", + "FPS" + ] + }, + { + "id": 5, + "name": "CPBoy", + "author": "QBos07", + "description": "A Game Boy (DMG) emulator for the Classpad II. You need roms. Check the details", + "image": "https://classpaddev.github.io/img/gb.png", + "downloadUrl": "/first-run/apps/CPBoy.hh3", + "detailsUrl": "https://github.com/QBos07/CPBoy/", + "position": "0 28%", + "format": ".hh3", + "tags": [ + "Emulator", + "Classic" + ] + }, + { + "id": 1, + "name": "Snake Game", + "author": "Hollyhock Team", + "description": "Classic snake game", + "image": "https://classpaddev.github.io/first-run/apps/snake.png", + "downloadUrl": "/first-run/apps/snake.hh3", + "detailsUrl": "https://github.com/ClasspadDev/hollyhock-3/blob/master/demos/snake/", + "format": ".hh3", + "tags": [ + "Game", + "Classic" + ] + }, + { + "id": 2, + "name": "Python", + "author": "Hollyhock Team", + "description": "The REAL snake game. Python interpreter for the Classpad II, create apps and games.", + "image": "https://classpaddev.github.io/python/demo1.png", + "downloadUrl": "https://classpaddev.github.io/python/PythonExtra.hh3", + "detailsUrl": "https://classpaddev.github.io/python/", + "format": ".hh3", + "tags": [ + "Programming", + "Python", + "Game" + ] + }, + { + "id": 3, + "name": "CP Pong", + "author": "PyCSharp", + "description": "A simple Ping Pong Game for the Casio FX-CP400.", + "image": "https://raw.githubusercontent.com/PyCSharp/CPPong-For-HHK3/refs/heads/main/image.jpg", + "downloadUrl": "https://github.com/PyCSharp/CPPong-For-HHK3/releases/latest/download/CPPong.hh3", + "detailsUrl": "https://github.com/PyCSharp/CPPong-For-HHK3", + "format": ".hh3", + "tags": [ + "Game", + "Sports" + ] + }, + { + "id": 6, + "name": "Hex Editor", + "author": "PyCSharp", + "description": "A hex editor that can modify values in the RAM of the calculator.", + "image": "https://raw.githubusercontent.com/PyCSharp/HexEditor-For-HHK3/refs/heads/main/image.png", + "downloadUrl": "https://github.com/PyCSharp/CPHexEditor-For-HHK3/releases/latest/download/CPHexEditor.hh3", + "detailsUrl": "https://github.com/PyCSharp/CPHexEditor-For-HHK3", + "position": "top", + "format": ".hh3", + "tags": [ + "Utility", + "System" + ] + }, + { + "id": 7, + "name": "Tetris", + "author": "Hollyhock Team", + "description": "Simple Tetris game.", + "image": "https://classpaddev.github.io/first-run/apps/tetris.png", + "downloadUrl": "/first-run/apps/tetris.hh3", + "detailsUrl": "https://github.com/ClasspadDev/hollyhock-3/tree/master/demos/tetris", + "format": ".hh3", + "tags": [ + "Game", + "Puzzle" + ] + } +] \ No newline at end of file From a50f9d1c89fea3a5bdc66abc72142b24e6ddc550 Mon Sep 17 00:00:00 2001 From: PC Date: Thu, 26 Feb 2026 14:40:18 +0100 Subject: [PATCH 05/11] Update download URLs to use HTTPS --- store/meta.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/store/meta.json b/store/meta.json index 520de1b..d2b278e 100644 --- a/store/meta.json +++ b/store/meta.json @@ -20,7 +20,7 @@ "author": "QBos07", "description": "A Game Boy (DMG) emulator for the Classpad II. You need roms. Check the details", "image": "https://classpaddev.github.io/img/gb.png", - "downloadUrl": "/first-run/apps/CPBoy.hh3", + "downloadUrl": "https://classpaddev.github.io/first-run/apps/CPBoy.hh3", "detailsUrl": "https://github.com/QBos07/CPBoy/", "position": "0 28%", "format": ".hh3", @@ -35,7 +35,7 @@ "author": "Hollyhock Team", "description": "Classic snake game", "image": "https://classpaddev.github.io/first-run/apps/snake.png", - "downloadUrl": "/first-run/apps/snake.hh3", + "downloadUrl": "https://classpaddev.github.io/first-run/apps/snake.hh3", "detailsUrl": "https://github.com/ClasspadDev/hollyhock-3/blob/master/demos/snake/", "format": ".hh3", "tags": [ @@ -93,7 +93,7 @@ "author": "Hollyhock Team", "description": "Simple Tetris game.", "image": "https://classpaddev.github.io/first-run/apps/tetris.png", - "downloadUrl": "/first-run/apps/tetris.hh3", + "downloadUrl": "https://classpaddev.github.io/first-run/apps/tetris.hh3", "detailsUrl": "https://github.com/ClasspadDev/hollyhock-3/tree/master/demos/tetris", "format": ".hh3", "tags": [ @@ -101,4 +101,4 @@ "Puzzle" ] } -] \ No newline at end of file +] From f49bf8fb506b3fde45171f7b7c53d5428e9ebd23 Mon Sep 17 00:00:00 2001 From: PC Date: Sat, 7 Mar 2026 18:24:13 +0100 Subject: [PATCH 06/11] Update index.html --- index.html | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index d149580..272125a 100644 --- a/index.html +++ b/index.html @@ -527,6 +527,11 @@ overflow-x: auto; } + .mini-code { + padding: .4rem .8rem; + margin: 0; + } + .copy-btn { background: rgba(0, 220, 104, 0.15); border: 1px solid rgba(0, 220, 104, 0.4); @@ -1295,12 +1300,13 @@

GET STARTED

Win + - R - to open the Run dialog. + X + and choose + Windows PowerShell
- 2. Copy and paste the command below, then press OK. + 2. Copy and paste the command below, then press Enter
@@ -2573,4 +2579,4 @@

${app.name}

- \ No newline at end of file + From a7633f3be8124da676a239fcc162adc6039d1a2b Mon Sep 17 00:00:00 2001 From: PC Date: Sat, 7 Mar 2026 18:36:18 +0100 Subject: [PATCH 07/11] bump images --- img/step1_system.png | Bin 42164 -> 55033 bytes img/step3_yal.png | Bin 4227 -> 5354 bytes img/step4_run.png | Bin 0 -> 5968 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/step4_run.png diff --git a/img/step1_system.png b/img/step1_system.png index a54653368a7402247f73f1c524c5f7e45a5b99db..f41a9e8ac6aa980f7bf6c7cfcd3c01e293532e33 100644 GIT binary patch literal 55033 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π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 diff --git a/img/step3_yal.png b/img/step3_yal.png index bad592c95e0d64aab807c5bf1527f5c943923fca..720da732be9e0a37ed4c83e5708bf7b4c5894dfd 100644 GIT binary patch literal 5354 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 Date: Sat, 7 Mar 2026 18:42:20 +0100 Subject: [PATCH 08/11] slower slideshow --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 272125a..29a2467 100644 --- a/index.html +++ b/index.html @@ -2140,10 +2140,10 @@

PYTHON GAMES

// Check if we just showed the last slide in the set if ((slideIndex + 1) % overlayImgs.length === 0) { clearInterval(autoSlideInterval); - setTimeout(startAutoSlide, 10000); // 10s pause after full loop + setTimeout(startAutoSlide, 5000); // 5s pause after full loop } } - }, 2000); // 2s per slide + }, 4000); // 4s per slide }; htuSteps.forEach((step, index) => { From e5c8b7f11a014e64e2769e6d6da0da7b941e2790 Mon Sep 17 00:00:00 2001 From: PC Date: Sun, 22 Mar 2026 19:50:37 +0100 Subject: [PATCH 09/11] Update index.html --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 29a2467..356c5ac 100644 --- a/index.html +++ b/index.html @@ -2350,7 +2350,7 @@

PYTHON GAMES

author: "s3ansh33p", format: ".xcp", desc: "A dungeon game port for Casio Basic. Uses background images for maps so only the player is drawn, improving speed.", - link: "http://mcgintygames.epizy.com/undertale.html", + link: "https://github.com/s3ansh33p/classpad-old-programs/tree/main/undertale", type: "Basic Game", }, { @@ -2366,7 +2366,7 @@

PYTHON GAMES

author: "s3ansh33p", format: "Web Tool", desc: "Same robust txt2xcp conversion tool, completely hosted inside a web interface for instant access everywhere.", - link: "https://share.seanmcginty.space", + link: "https://s3ansh33p.github.io/ClasspadCompiler/website/", type: "Browser", }, ]; From 6833001c97c17a992b11502700cb278308ca83ba Mon Sep 17 00:00:00 2001 From: PC Date: Tue, 23 Jun 2026 12:31:53 +0200 Subject: [PATCH 10/11] Add files via upload --- index.html | 567 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 475 insertions(+), 92 deletions(-) diff --git a/index.html b/index.html index 356c5ac..f487a84 100644 --- a/index.html +++ b/index.html @@ -710,6 +710,7 @@ flex: 0 0 auto; margin-bottom: 1rem; position: static; + align-self: center; } .htu-left img { @@ -1049,6 +1050,7 @@ } .app-slide { + width: auto; padding: 0 1.5rem; } } @@ -1206,6 +1208,358 @@ color: #666; font-size: 0.8rem; } + + /* ============================================================ + MOBILE-ONLY TUNING (max-width: 768px) + ============================================================ */ + @media (max-width: 768px) { + /* Kill the expensive hero hex mask + ripple */ + .hero-hex-base, + .hero-hex-ripple { + display: none !important; + } + + .anim-mobile-push { + margin-top: 64px; + } + + /* Drop navbar backdrop blur (GPU cost) */ + header.navbar { + backdrop-filter: none !important; + -webkit-backdrop-filter: none !important; + background: rgba(31, 35, 37, 0.98) !important; + padding: 0.85rem 0 !important; + } + + /* Restore navigation: stack logo + nav links */ + .navbar .header-content { + flex-direction: column; + align-items: flex-start; + gap: 0.6rem; + } + .nav-links { + display: flex !important; + flex-wrap: wrap; + gap: 0.5rem 1rem; + } + .nav-link { + font-size: 0.8rem; + } + + /* Hero: smaller type, less padding */ + .hero { + padding: 2.5rem 0 !important; + min-height: auto !important; + } + .hero-layout { + gap: 2rem !important; + } + .hero h1 { + font-size: 2.1rem !important; + letter-spacing: -0.5px !important; + margin-bottom: 1rem !important; + } + .hero p { + font-size: 1rem !important; + margin-bottom: 1.5rem !important; + } + .badge { + font-size: 0.65rem; + padding: 0.3rem 0.7rem; + margin-bottom: 1rem; + } + /* Hero screenshot + svg: shrink so they don't overflow */ + .screenshot-container { + padding-right: 16px; + padding-left: 2px; + padding-top: 14px; + } + .screenshot-container img { + max-width: 240px !important; + } + .hero-layout .position-relative > img[alt="Classpad II"] { + /* max-width: 280px !important; */ + width: 125% !important; + } + + /* Sections: tighter padding + smaller titles */ + .section { + padding: 2.75rem 0 !important; + } + .section-header { + margin: 0 auto 2rem !important; + } + .section-title { + font-size: 1.65rem !important; + } + .section-subtitle { + font-size: 0.95rem !important; + } + + /* Installer box */ + .installer-container { + padding: 1.5rem !important; + animation: none !important; /* ripple box-shadow animation */ + } + .installer-steps { + font-size: 0.85rem; + gap: 0.5rem; + } + .code-box { + font-size: 0.85rem !important; + padding: 0.8rem !important; + } + .mini-code { + padding: 0.3rem 0.6rem !important; + } + .key-btn { + padding: 0.3rem 0.6rem; + font-size: 0.85rem; + } + + /* How-to-use: kill 140vh min-height, shrink device */ + .htu-container { + padding: 2rem 0 !important; + } + .htu-split { + min-height: auto !important; + gap: 1.5rem !important; + } + .htu-left { + margin-bottom: 0.5rem !important; + } + .htu-device-wrapper { + width: 220px !important; + margin-top: 1rem !important; + } + .htu-left img { + width: 220px !important; + } + .step { + padding: 1rem 1.2rem !important; + gap: 1rem !important; + } + .step-title { + font-size: 1.1rem !important; + } + .step-subtitle { + font-size: 0.9rem !important; + } + .step-number { + width: 32px; + height: 32px; + font-size: 1rem; + } + + /* app galleries: replace scroll-jacking with native swipe */ + .app-group-container { + height: auto !important; + } + .app-sticky-wrapper { + position: relative !important; + height: auto !important; + padding: 1rem 0 2rem; + } + .app-group { + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + scroll-snap-type: x mandatory; + width: 100%; + /* padding: 0 1rem !important; */ + padding: 0; + gap: 1rem !important; + scrollbar-width: thin; + display: flex; + flex-direction: column; + align-items: center; + } + .app-slide { + scroll-snap-align: center; + padding: 0 0.5rem !important; + } + .app-card { + width: 88vw !important; + max-width: 360px !important; + } + .app-body { + padding: 1rem !important; + gap: 1rem !important; + } + /* .app-image { + width: 160px !important; + height: 264px !important; + } */ + .app-title { + font-size: 1.15rem !important; + } + .app-description { + font-size: 0.88rem !important; + margin-top: 0.5rem !important; + } + .app-actions { + gap: 0.6rem !important; + margin-top: 1rem !important; + } + .app-actions .btn { + padding: 0.55rem !important; + font-size: 0.85rem !important; + } + + /* Features grid: trim padding */ + .feature-item { + padding: 1rem !important; + gap: 0.75rem !important; + } + .feature-item h5 { + font-size: 1.05rem !important; + } + .feature-item p { + font-size: 0.85rem !important; + } + .features-center-img img { + width: 200px !important; + } + + /* Python cards */ + .python-card { + padding: 1.5rem !important; + } + .python-card h3 { + font-size: 1.25rem !important; + } + .python-card-small { + padding: 1rem !important; + } + + /* Discord section */ + .discord-container { + padding: 1.5rem !important; + gap: 1.5rem !important; + } + .discord-content h2 { + font-size: 1.6rem !important; + } + .discord-content p { + font-size: 1rem !important; + margin-bottom: 1.25rem !important; + } + .discord-iframe iframe { + height: 320px !important; + } + + /* Specs section */ + .specs-grid { + gap: 2rem !important; + margin-top: 2rem !important; + } + .spec-category h2 { + font-size: 1.25rem !important; + } + .spec-item { + gap: 1rem !important; + margin-bottom: 1.1rem !important; + } + .spec-data h4 { + font-size: 1rem !important; + } + .spec-data p { + font-size: 0.85rem !important; + } + /* Specs background image: drop the heavy neon-startup drop-shadow filter */ + #specs-img { + opacity: 0.25 !important; + filter: none !important; + } + .neon-active { + animation: none !important; + } + + /* 13. Wiki catch banner */ + .wiki-catch { + padding: 2rem 1rem !important; + margin-top: 2rem !important; + } + .wiki-catch h2 { + font-size: 1.5rem !important; + } + .wiki-catch p { + font-size: 1rem !important; + } + + /* Footer */ + .footer { + padding: 2rem 0 !important; + } + .footer-links { + display: flex !important; + flex-wrap: wrap; + justify-content: center; + gap: 0.4rem 0.75rem; + } + .footer-links a { + margin: 0 !important; + font-size: 0.85rem; + } + + /* Disable hover transforms on touch (avoids sticky hover + repaints) */ + .btn:hover, + .btn-primary:hover, + .btn-secondary:hover, + .feature-item:hover, + .app-card:hover, + .step:hover, + .python-card:hover, + .copy-btn:hover { + transform: none !important; + box-shadow: none !important; + } + + /* InView one-shot animation elements: ensure visible if JS skipped */ + .gs-anim-target, + .gs-anim-fade, + .scroll-anim-slide, + .scroll-anim-fade { + opacity: 1 !important; + transform: none !important; + } + + /* Container: tighter side gutters */ + .container { + padding: 0 1rem !important; + } + } + + /* ============================================================ + Very small phones (<=380px) : extra tightening + ============================================================ */ + @media (max-width: 380px) { + .hero h1 { + font-size: 1.75rem !important; + } + .section-title { + font-size: 1.4rem !important; + } + .app-card { + width: 92vw !important; + } + /* .app-image { + width: 140px !important; + height: 231px !important; + } */ + } + + /* Respect users who prefer reduced motion (any screen size) */ + @media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } + } @@ -1257,8 +1611,7 @@

- -
+
PYTHON GAMES stagger, } from "https://cdn.jsdelivr.net/npm/motion@12.34.0/+esm"; - // 1. Progress Bar Scroll Animation + // Mobile detection — used to skip heavy scroll-linked animations on small screens. + // Mobile already gets native overflow-x swipe carousels via CSS, so the + // scroll-jacking transform animations would just fight the user's swipe. + // The elements targeted by skipped animations have no inline opacity:0, + // so they remain visible by default. + const isMobile = window.matchMedia("(max-width: 768px)").matches; + + // 1. Progress Bar Scroll Animation (cheap, keep on mobile) scroll(animate("#progress", { scaleX: [0, 1] }), { offset: ["start start", "end end"], }); - // 2. Hero Sequential animations + // 2. Hero Sequential animations (one-time, keep on mobile) animate( ".hero-anim-elem", { opacity: [0, 1], y: [30, 0] }, { duration: 0.8, delay: stagger(0.15) }, ); - // 3. Get Started InView (Horizontal Sliding texts) + // 3. Get Started InView (one-shot triggers, keep on mobile) inView(".gs-anim-target", (element) => { animate( element, @@ -2004,84 +2364,97 @@

PYTHON GAMES

}); // 4. Feature Cards sliding out from center (reversible) - document.querySelectorAll(".feature-slide-left").forEach((card) => { - scroll( - animate(card, { - opacity: [0, 1], - scale: [0.6, 1], - x: [100, 0], - y: [50, 0], - }), - { target: card, offset: ["start 90%", "start 40%"] }, - ); - }); - document.querySelectorAll(".feature-slide-right").forEach((card) => { - scroll( - animate(card, { - opacity: [0, 1], - scale: [0.6, 1], - x: [-100, 0], - y: [50, 0], - }), - { target: card, offset: ["start 90%", "start 40%"] }, - ); - }); + // Scroll-linked transform animation — skip on mobile for perf. + if (!isMobile) { + document.querySelectorAll(".feature-slide-left").forEach((card) => { + scroll( + animate(card, { + opacity: [0, 1], + scale: [0.6, 1], + x: [100, 0], + y: [50, 0], + }), + { target: card, offset: ["start 90%", "start 40%"] }, + ); + }); + document.querySelectorAll(".feature-slide-right").forEach((card) => { + scroll( + animate(card, { + opacity: [0, 1], + scale: [0.6, 1], + x: [-100, 0], + y: [50, 0], + }), + { target: card, offset: ["start 90%", "start 40%"] }, + ); + }); + } // 5. Discord Animation Sequencing (White-space safe) - const heading = document.getElementById("discord-heading"); - const headingText = heading.textContent; - heading.innerHTML = ""; - headingText.split("").forEach((char, i) => { - const span = document.createElement("span"); - span.innerHTML = char === " " ? " " : char; - span.style.opacity = 0; - span.style.display = "inline-block"; - heading.appendChild(span); - - scroll(animate(span, { opacity: [0, 1], y: [20, 0] }), { - target: heading, - offset: [`start ${80 - i * 1}%`, `start ${70 - i * 1}%`], + // Char-by-char scroll animation creates ~16 spans each with their own + // scroll-linked animation — skip on mobile for perf. + if (!isMobile) { + const heading = document.getElementById("discord-heading"); + const headingText = heading.textContent; + heading.innerHTML = ""; + headingText.split("").forEach((char, i) => { + const span = document.createElement("span"); + span.innerHTML = char === " " ? " " : char; + span.style.opacity = 0; + span.style.display = "inline-block"; + heading.appendChild(span); + + scroll(animate(span, { opacity: [0, 1], y: [20, 0] }), { + target: heading, + offset: [`start ${80 - i * 1}%`, `start ${70 - i * 1}%`], + }); }); - }); - scroll(animate("#discord-text", { opacity: [0, 1], x: [-50, 0] }), { - target: document.querySelector(".discord-container"), - offset: ["start 65%", "start 40%"], - }); - scroll(animate(".discord-iframe", { opacity: [0, 1], scale: [0.8, 1] }), { - target: document.querySelector(".discord-container"), - offset: ["start 45%", "start 25%"], - }); + scroll(animate("#discord-text", { opacity: [0, 1], x: [-50, 0] }), { + target: document.querySelector(".discord-container"), + offset: ["start 65%", "start 40%"], + }); + scroll(animate(".discord-iframe", { opacity: [0, 1], scale: [0.8, 1] }), { + target: document.querySelector(".discord-container"), + offset: ["start 45%", "start 25%"], + }); + } // 6. Specs icons & Neon Startup - document.querySelectorAll(".spec-anim-target").forEach((item) => { - scroll(animate(item, { opacity: [0, 1], x: [-30, 0] }), { - target: item, - offset: ["start 85%", "start 60%"], + // Scroll-linked animations on every spec row — skip on mobile. + // Neon-startup uses drop-shadow filter animation — heavy, skip on mobile. + if (!isMobile) { + document.querySelectorAll(".spec-anim-target").forEach((item) => { + scroll(animate(item, { opacity: [0, 1], x: [-30, 0] }), { + target: item, + offset: ["start 85%", "start 60%"], + }); }); - }); - document.querySelectorAll(".spec-title").forEach((item) => { - scroll(animate(item, { opacity: [0, 1] }), { - target: item, - offset: ["start 90%", "start 70%"], + document.querySelectorAll(".spec-title").forEach((item) => { + scroll(animate(item, { opacity: [0, 1] }), { + target: item, + offset: ["start 90%", "start 70%"], + }); }); - }); + } inView("#specs-footer", (el) => { animate(el, { opacity: [0, 1] }, { duration: 1, delay: 0.5 }); return () => animate(el, { opacity: 0 }); }); - // Re-playable Neon Blink - inView("#specs-img", (info) => { - const img = document.getElementById("specs-img"); - // Force reflow to restart animation - img.classList.remove("neon-active"); - void img.offsetWidth; - img.classList.add("neon-active"); + // Re-playable Neon Blink — skip on mobile (filter animation is GPU-heavy) + if (!isMobile) { + inView("#specs-img", (info) => { + const img = document.getElementById("specs-img"); + // Force reflow to restart animation + img.classList.remove("neon-active"); + void img.offsetWidth; + img.classList.add("neon-active"); - return () => img.classList.remove("neon-active"); - }); + return () => img.classList.remove("neon-active"); + }); + } - // 7. General slide up and fades + // 7. General slide up and fades (one-shot InView, keep on mobile) document.querySelectorAll(".scroll-anim-slide").forEach((element) => { element.style.opacity = 0; inView(element, () => { @@ -2163,29 +2536,35 @@

PYTHON GAMES

startAutoSlide(); - const appGroup = document.getElementById("apps-container"); - // Translate by the total width of the content, subtracting 100vw so the very end aligns perfectly with the right edge. - // This is completely decoupled from card numbers or sizes, and is fully responsive! - scroll( - animate(appGroup, { - transform: ["none", "translateX(calc(-100% + 100vw))"], - }), - { target: document.querySelector("#programs") }, - ); + // App gallery horizontal scroll-jacking — desktop only. + // On mobile, CSS converts .app-group into a native overflow-x swipe + // carousel with scroll-snap, so the Motion One transform animation + // would conflict with the user's swipe and cause jank. + if (!isMobile) { + const appGroup = document.getElementById("apps-container"); + // Translate by the total width of the content, subtracting 100vw so the very end aligns perfectly with the right edge. + // This is completely decoupled from card numbers or sizes, and is fully responsive! + scroll( + animate(appGroup, { + transform: ["none", "translateX(calc(-100% + 100vw))"], + }), + { target: document.querySelector("#programs") }, + ); - // Python Games Scroll - const pyAppGroup = document.getElementById("python-apps-container"); - scroll( - animate(pyAppGroup, { - transform: ["none", "translateX(calc(-100% + 100vw))"], - }), - { target: document.getElementById("python-games") }, - ); + // Python Games Scroll + const pyAppGroup = document.getElementById("python-apps-container"); + scroll( + animate(pyAppGroup, { + transform: ["none", "translateX(calc(-100% + 100vw))"], + }), + { target: document.getElementById("python-games") }, + ); + } }, 300);