--- efp-1.4.orig/efp.asm +++ efp-1.4/efp.asm @@ -55,16 +55,37 @@ JOY1 equ $4016 ARENA equ $0200 ; describes the structure of the arena -;THRUST equ $000a ; standard control +#ifndef REVTHRUST +THRUST equ $000a ; standard control +#else THRUST equ -$000a ; "intuitive" control (accelerate in direction pressed) +#endif MAXX_ equ $7c MAXY_ equ $74 PADLIMX_ equ $0c PADLIMY_ equ $21 +; ********* iNES header (after Joe Nahmias) +; SEG header +; org $8000-16 +; iNES magic + BYTE $4e,$45,$53,$1a ; "NES",$1a + +; Number of PRG-ROM blocks + BYTE $01 + +; Number of CHR-ROM blocks + BYTE $00 + +; ROM control bytes: Horizontal mirroring, no SRAM or trainer, Mapper #0 + BYTE $00, $00 + +; Padding + BYTE $00, $00, $00, $00, $00, $00, $00, $00 + ; *********** DATA SEGMENT - SEG.U data + SEG zero org $0000 ; Rules for using temp vars: @@ -113,24 +134,6 @@ PADLIMY BYTE LASTV -; ********* iNES header (after Joe Nahmias) - SEG header - org $8000-16 -; iNES magic - BYTE $4e,$45,$53,$1a ; "NES",$1a - -; Number of PRG-ROM blocks - BYTE $01 - -; Number of CHR-ROM blocks - BYTE $00 - -; ROM control bytes: Horizontal mirroring, no SRAM or trainer, Mapper #0 - BYTE $00, $00 - -; Padding - BYTE $00, $00, $00, $00, $00, $00, $00, $00 - ; ************ TEXT SEGMENT ; why is the code segment always called text? @@ -761,18 +764,18 @@ ; x = high byte patblk subroutine clc ; carry flag used to alternate between low and high byte -.loop2 +ploop2 ldy #$08 -.loop +ploop sta VRAMIO dey - bne .loop - bcs .end + bne ploop + bcs pend patblkhalf txa sec - bcs .loop2 ; always true -.end + bcs ploop2 ; always true +pend rts ; Many of these manipulations can be applied anywhere in memory... @@ -796,11 +799,11 @@ cmp MAXX,x - bmi .end + bmi dmend .offscr lda #$01 ; set level flag sta LEVFLAG -.end +dmend rts ; x = dimension to reflect across (0=x, 2=y) @@ -937,7 +940,7 @@ ; level 13 (grav reversed and lower) (ultra hard!) BYTE $12,$60 WORD $0100,$0000 - BYTE -$06 + BYTE $FA ; work-around for xa65 problem with -$06 BYTE $e8,$00 BYTE $40 @@ -959,7 +962,7 @@ BYTE PADLIMX_ BYTE PADLIMY_ - org $bffa,$00 ; THIS LINE SUPPLIES FILLER! +DSB ($bffa - *) ; THIS LINE SUPPLIES FILLER! WORD mainloop ; NMI WORD start ; RESET --- efp-1.4.orig/debian/README.Debian +++ efp-1.4/debian/README.Debian @@ -0,0 +1,19 @@ +efp for Debian +-------------- + +This game was created for play on the Nintendo Entertainment System (NES) +and is distributed as a ROM with a standard iNES header. Therefore, you +will need an NES emulator to play the game. I have tested (hard work, I +know ;-) the game on a bunch of different emulators for linux with these +results: + +FCE Ultra (0.97.5) -- good +nestra (0.66) -- black screen +tuxnes (0.75) -- segmentation fault +fakenes (0.1.5) -- good +InfoNES (0.92) -- good +iNES (2.3) -- good (though very fast) + +Enjoy! + + -- Joe Nahmias , Sat, 31 Jan 2004 22:58:59 -0500 --- efp-1.4.orig/debian/changelog +++ efp-1.4/debian/changelog @@ -0,0 +1,39 @@ +efp (1.4-2) unstable; urgency=low + + * Ack NMU, thanks Steinar! closes: #397828. + * Add binary-arch target to debian/rules for policy compliance. + Thanks to Aurelien Jarno , closes: #395594. + * Bump debhelper to v5, std-ver to 3.7.2.2 + + -- Joe Nahmias Mon, 25 Dec 2006 06:52:08 +0000 + +efp (1.4-1.1) unstable; urgency=high + + * Non-maintainer upload. + * Depend on the emulators instead of recommending them; also, fceu-sdl has + been renamed to fceu, so rename in the dependency too. + (Closes: #397828) + + -- Steinar H. Gunderson Fri, 17 Nov 2006 02:29:18 +0100 + +efp (1.4-1) unstable; urgency=low + + * New upstream release + + fixes over-acceleration cheat in -rev version, closes: #234660. + + adds level 13. + + NES header is now in the source (removes header.bin). + * debian/control: updated description. + * debian/menu: add quotes around section to quiet lintian. + + -- Joe Nahmias Fri, 27 Feb 2004 01:26:19 -0500 + +efp (1.3-1) unstable; urgency=low + + * Initial Release, closes: #230663. + * Many thanks to Adam for his help in porting the code from DASM to xa. + * README.Debian: added NES emulator compatibility/testing info. + * Also, include an additional ROM with the controls reversed for ease of + use. + + -- Joe Nahmias Tue, 3 Feb 2004 21:32:30 -0500 + --- efp-1.4.orig/debian/rules +++ efp-1.4/debian/rules @@ -0,0 +1,61 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +build: build-stamp +build-stamp: + dh_testdir + + # Add here commands to compile the package. + perl debian/trans.pl efp.asm > efp.a65 + xa -v5 -M efp.a65 -o efp.nes -l efp.lst + xa -v5 -M -DREVTHRUST=TRUE efp.a65 -o efp-rev.nes -l efp-rev.lst + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp + + rm -f efp.a65 efp.lst efp-rev.lst efp.nes efp-rev.nes + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/efp. + dh_install + +# No architecture-dependant files to build; however, +# binary-arch target is needed for policy (4.9) compliance +binary-arch: build + +# Build architecture-independent files here. +binary-indep: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installmenu + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep +.PHONY: build clean binary-indep binary install --- efp-1.4.orig/debian/control +++ efp-1.4/debian/control @@ -0,0 +1,20 @@ +Source: efp +Section: games +Priority: optional +Maintainer: Joe Nahmias +Build-Depends: debhelper (>= 5.0.0) +Build-Depends-Indep: xa65 +Standards-Version: 3.7.2.2 + +Package: efp +Architecture: all +Depends: fceu | nes-emulator +Description: Escape from Pong NES game + Escape from Pong is a very small NES game which introduces the concept + of playing Pong from the ball's point of view. You mission is to escape + from 13 difficult levels, despite the paddle trying to beat you at + every turn. + . + This game is distributed as an NES ROM. You will need an NES emulator + in order to play it. A list of tested emulators is in README.Debian. + FCE Ultra is recommended --- efp-1.4.orig/debian/compat +++ efp-1.4/debian/compat @@ -0,0 +1 @@ +5 --- efp-1.4.orig/debian/watch +++ efp-1.4/debian/watch @@ -0,0 +1,3 @@ +# Site Directory Pattern Version Script +version=2 +http://hcs.freeshell.org/efp.html files\/efp-source-(.*)\.tar\.gz debian uupdate --- efp-1.4.orig/debian/trans.pl +++ efp-1.4/debian/trans.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl -w + +while (<>) { + + /processor/ && next; + + # "#[FOO + BAR]" ==> "#(FOO + BAR)" + s/#\[(.*)\]/#($1)/; + + # "FOO equ BAR" ==> "FOO = BAR" + s/^\s*(\w+)\s+equ\s+(.*)$/$1 = $2/; + + # "org FOO" ==> "*=FOO" + s/\s*org\s+/*=/; + + # remove beginning dot (.) from labels + s/^\.(\w+)/-$1/; + s/\s+\.(\w+)/ $1/; + + # "FOO subroutine" ==> "FOO" + s/^\s*(\w+)\s+subroutine/$1/; + + s/\s*SEG(\.U)?\s+/./; + + s/^\s*BYTE\s+([%\$]\w+)/\.byte $1/; + s/^\s*BYTE\s+(-?[%\$]?[0-9a-fA-F]+)/\.byte $1/; + s/^\s*WORD\s+(-?[%\$]?[0-9a-fA-F]+)/\.word $1/; + s/^\s*WORD\s+/.word /; + s/^\s*BYTE\s+/.byte /; + s/^\s*ASCII\s+("[-=\w< >]+")/\.asc $1/; + s/^\s*DSB\s+(\(?[#%\$]?[0-9a-fA-F]+)/\.dsb $1/; + + # "WORD FOO" ==> "FOO .word" + s/^\s*BYTE\s+([-\w_]+)/$1 \.byte /; + s/^\s*WORD\s+([-\w+]+)/$1 \.word /; + + # "FOO BYTE" ==> "FOO .byte 0" + s/(\s*\w+)\s+BYTE/$1 .byte 0/; + + # "LABEL WORD foo,bar,baz" ==> "LABEL .word foo,bar,baz" + s/(\s*\w+)\s+WORD\s+((\w+)\s*(,\s*\w+)*\s*(;.*)?)$/$1 .word $2/; + + # "FOO WORD" ==> "FOO .word 0" + s/(\s*\w+)\s+WORD/$1 .word 0/; + + print; +} --- efp-1.4.orig/debian/manpages +++ efp-1.4/debian/manpages @@ -0,0 +1 @@ +debian/efp.nes.6 --- efp-1.4.orig/debian/install +++ efp-1.4/debian/install @@ -0,0 +1 @@ +*.nes usr/share/nes/ --- efp-1.4.orig/debian/menu +++ efp-1.4/debian/menu @@ -0,0 +1,2 @@ +?package(efp):needs="X11" section="Games/Arcade" \ + title="efp" command="/usr/bin/nes /usr/share/nes/efp.nes" --- efp-1.4.orig/debian/copyright +++ efp-1.4/debian/copyright @@ -0,0 +1,33 @@ +This package was debianized by Joe Nahmias on +Sat, 31 Jan 2004 22:58:59 -0500. + +It was downloaded from: . + +Upstream Author: Adam Gashlin + +Copyright: + +Copyright (c) 2004 Halley's Comet Software +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --- efp-1.4.orig/debian/docs +++ efp-1.4/debian/docs @@ -0,0 +1 @@ +efp.txt --- efp-1.4.orig/debian/efp.nes.6 +++ efp-1.4/debian/efp.nes.6 @@ -0,0 +1,52 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH EFP.NES 6 "February 2, 2004" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +efp \- Escape from Pong NES game +.SH SYNOPSIS +.I nes +.RI [ options ] +.BR /usr/share/nes/efp.nes " | " /usr/share/nes/efp-rev.nes +.br +.SH DESCRIPTION +This manual page documents briefly the game +.B Escape from Pong. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +.P +.B efp +is a game of pong for the +.IR "Nintendo Entertainment System" " (NES)" +with a twist. In this version you control the \fBball\fP, and your objective +is to escape the board safely. You will need to fake out the paddle, fight +against gravity, and avoid the (red) wall of death to survive. +.P +The two ROMs +.BR efp " and " efp-rev +differ only in the direction of the thrust when using the arrow keys. +This is so that you can use whichever way is more comfortable for you. +.SH NOTES +You will need an emulator for the NES in order to play this game. +Unfortunately, I have found that it doesn't work correctly with all emulators. +One that I have tested is \fBFCE Ultra\fP, so try that if your regular one +doesn't work. See \fI/usr/share/doc/efp/README.Debian\fP for more details. +.SH SEE ALSO +.BR fceu-sdl (1), +.BR nes (1). +.SH AUTHOR +This manual page was written by Joe Nahmias , +for the Debian project (but may be used by others).