ps5upload
탈옥된 PS5에 게임·앱·홈브류를 전송하고 컴퓨터·휴대폰·브라우저로 콘솔을 관리합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Polonaise – the disco conga line as a real Commodore 64 game (D64)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The disco conga line to dance along with – the browser version (../polonaise-remake) as a real C64 program,
on a D64 disk image for emulators and original hardware.
(The box, the manual and Discoware are made up – there never was a release in 1988. The game on the disk is real.)
The disk: polonaise.d64 (also build/polonaise.d64)
LOAD"POLONAISE",8,1
RUN
(or LOAD"*",8,1). With a stock 1541 loading takes about 45 seconds; with JiffyDOS, a fast loader
cartridge or a 1541 Ultimate it is correspondingly faster.
| Title screen | In the game | |
|---|---|---|
| Input | Effect |
|---|---|
| Joystick (port 2, also port 1) | steer the polonaise |
| Fire | start, continue; in the game: pause |
| Fire while paused | continue; hold fire: end the game |
| Joystick left/right on title | language German/English |
| Name entry | up/down: letter, left/right: position, fire: OK |
On the keyboard as well: RUN/STOP or P – pause, Q – end the game (while paused), F1 – language; in the name entry the name can also be typed (DEL, RETURN). Sound is always on, the game is always full screen.
The 10 best results are kept in the file POLONAISE.HI on the disk the game was loaded from
(with name, points, song reached, the last name entered and the language). It is rewritten after
a new entry – the disk must not be write-protected for that, otherwise "DISK ERROR: NOT SAVED"
appears and the list only lasts until the machine is switched off.
The game logic is the same: src/game.s is a port of game.ts with the same time base
(60 logic ticks per second, on PAL 6 ticks in 5 frames), the same songs, layouts, points, extra
lives and even the same random number generator. tests/logic_test.py runs both versions side by
side with the same inputs and compares the whole state after every tick.
The graphics are carried over to the C64: the playfield (19 × 12 cells of 16 × 16 pixels) is a multicolor bitmap, the status line and info panels are text lines, with a raster interrupt switching between them. The figures are built from the same descriptions as in the browser (hair styles, dresses, glasses, 63 guest looks), only at half the horizontal resolution and with the colors the C64 allows per 4 × 8 block. The polonaise jumps from cell to cell (the browser glides between cells – that is not feasible with up to 25 figures on the C64). The DJ, floating points, confetti, star sparkles, dizzy stars, "!" above fleeing guests and "JOYSTICK: GO!" are hardware sprites.
The music is the arcade's disco loop (16 bars, 120 bpm: bass drum, clap, hi-hats, octave bass,
chords, melody) as SID music, the effects are modeled on the sounds of the original. Bass and
drums share the first SID voice, chords and melody the second; the third belongs to the effects
alone, so they never interrupt the music.
tests/game_sound.py plays a game with music and effects and renders it with reSID to
build/game_sound.wav (needs pip install pyresidfp).
Not carried over: the mirror ball light spots, the glowing band under the polonaise, the semi-transparent panels (they cover the field behind them) and the top/bottom LED rows of the frame.
docs/ is also the project's GitHub Pages site: docs/index.html (in the style of the 1988 ad),
docs/impressum.html (legal notice and privacy policy, in German), the favicon (a mirror ball,
drawn by tools/favicon.py), the screenshots, the fonts
(Fira Sans Compressed and Condensed, Press Start 2P – all SIL Open Font License, served from the
site itself) and a copy of the disk, docs/polonaise.d64, which make keeps up to date.
To publish it: in the repository settings under Pages, choose Deploy from a branch, the
branch and the folder /docs. To look at it locally: python3 -m http.server --directory docs.
Requires: gcc/make (for cc65 and Exomizer), Python 3, for the tests Node.js and Denise.
git clone --depth 1 https://github.com/cc65/cc65.git tools/cc65 && make -C tools/cc65 bin
git clone --depth 1 https://bitbucket.org/magli143/exomizer.git tools/exomizer && make -C tools/exomizer/src
python3 -m venv tools/venv && tools/venv/bin/pip install pillow numpy py65
make
make generates the files in gen/ from tools/gfx.py (graphics, character set, sprites),
tools/text.py (texts) and tools/music.py (music, effects), assembles src/main.s into
build/polonaise.prg, packs it with Exomizer and writes build/polonaise.d64
(tools/mkd64.py). The source of the font (Press Start 2P) is ../polonaise-remake.
| File | Contents |
|---|---|
src/main.s | startup, includes all modules |
src/sys.s | memory, raster interrupts (text/bitmap lines), joystick, keyboard |
src/game.s | the game logic (port of game.ts) |
src/render.s | the playfield: floor, lights, furniture, figures, LED frame |
src/fx.s | sprites: DJ, texts, confetti, sparkles, hints |
src/text.s | texts, numbers, big letters, panels |
src/screens.s | flow: title, game, panels, pause, status line, name entry, list |
src/sound.s | SID: music and effects |
src/disk.s | load/save the high score list |
src/autopilot.s | only for tests: a player that plays by itself |
The promotional pictures in docs/ are drawn by tools/venv/bin/python tools/promo.py (SVG,
rendered with Inkscape and ImageMagick); the disco man and the glitter lettering come from the logo artwork of the
arcade version (../arcade-system/tools/logo-polonaise-source.webp). The screenshots in
docs/shot-*.png were taken with Denise.
tests/build_logic.sh && tools/venv/bin/python tests/logic_test.py 30000 1 2 3
tools/venv/bin/python tests/logic_test.py song=20 15000 3 # from song 20
make test # build/test.prg: plays by itself (autopilot)
make test SONG=5 # ... from song 5
make test SCRIPT=1 # ... with pause, continue and game over by a long fire press
make test SCRIPT=2 # ... and name entry by joystick
tools/shots.sh build/test.prg out.png 100 200 300 # screenshots after 10, 20, 30 million cycles
tests/sound_test.py checks the SID player (bass notes, timing of the steps) in py65.