This commit is contained in:
Antoine Vignau 2023-09-03 19:47:55 +02:00
parent 10defd6b39
commit 50da8046af
11 changed files with 8322 additions and 0 deletions

1723
egerie/egerie.s Normal file

File diff suppressed because it is too large Load Diff

1
egerie/en/textes.txt Normal file

File diff suppressed because one or more lines are too long

1
egerie/fr/dedicaces.txt Normal file
View File

@ -0,0 +1 @@
Ë nos vieilles m<>res;(ˆ qui nous causons bien du souci) Ë nos lŽg<C5BD>res ŽgŽries;(diverses et respectives) Ë nos avocats;(reconnaissants) Ë toutes les rouquines; *;*

1
egerie/fr/soustitres.txt Normal file
View File

@ -0,0 +1 @@
Amandine dŽpasse le seuil de tolŽrance; Humphrey, mascotte du rŽgiment; Palmer Amandine, apte au service!; Amandine Palmer, la scandaleuse; Amandine Palmer commence ˆ bien faire; Qui es tu, Amandine?; La saute-aux-prunes; La rousse se rebiffe; Humphrey mon ami; Amandine Palmer plaide non-coupable; Amandine Palmer au coin du feu; Dans les griffes du bonheur; Amandine Palmer refuse de s'intŽgrer; Tous les chats en sont fous; Y'a pas que les rousses dans la vie; Amandine Palmer nous prend la t<>te; Les jeunes n'ont plus gožt ˆ rien; Humphrey en a jusque lˆ; Pas grave, on coupera au montage; Le parler-jeune, <20>a craint; C'est la faute aux journalistes; La soupe aux frites; Amandine, femme de t<>te; Personne ne m'aime; Comment j'avais la haine,;j'te raconte pas Comment instaurer un vŽritable;dialogue pluraliste Dans l'enfer du brainstorming; Humphrey ne se laisse pas;marcher sur les pieds Amandine s'en tire haut la main; La m™me Palmer, c'est une chic fille; Humphrey se vautre dans l'oisivetŽ; La gŽnŽration Palmer,;phŽnom<6F>ne de sociŽtŽ Amandine nous donne;le meilleur d'elle-m<>me Mon chat est un hystŽrique; Le chat dans la sociŽtŽ fran<61>aise;mythes et rŽalitŽs Tout <20>a,;c'est la faute aux fŽministes Le rendez-vous passion;du logiciel Žmotion Amandine, elle cause comme dans les livres; *;*

1
egerie/fr/textes.txt Normal file

File diff suppressed because one or more lines are too long

1
egerie/fr/textes2.txt Normal file

File diff suppressed because one or more lines are too long

5967
egerie/game.s Normal file

File diff suppressed because it is too large Load Diff

1
egerie/manuals/LisezMoi Normal file
View File

@ -0,0 +1 @@
L'ƒgŽrie_____________________________________________________________ RŽalisŽ par Fran<61>ois Coulon et Laurent Cotton dans l'obscuritŽ en 1990 pour l'Atari ST, adaptŽ en 1993 pour Mac, se jouant en ligne depuis 2018, l'ƒgŽrie fait partie des toutes premi<6D>res expŽriences de littŽrature Žlectronique, rompant avec l'univers des jeux d'aventure. Qui es-tu Amandine Palmer ?___________________________________________ Parisien en 1990, vous auriez pu la conna”tre... Et quelques-uns nous soup<75>onnent d'avoir ŽtŽ amoureux d'elle... Tentez de diriger et de suivre les destins d'une jeune Parisienne rousse et intrŽpide, accompagnŽe de son Žternel chat Humphrey. Amandine Palmer finira m<>re, muse, reporter, amoureuse, au soleil ou en eau de boudin. Si elle exploitait le m<>me support informatique et certains codes du jeu d'aventure illustrŽ, l'ƒgŽrie prŽfigure bien davantage une forme de roman graphique, analogique ou numŽrique : une Žvolution narrative ˆ la fois dans le temps et dans l'espace, une action dŽcrite au passŽ, l'accent mis sur l'histoire et les personnages. Sans parler d'un univers contemporain et, tout militantisme mis ˆ part, d'un personnage principal fŽminin -partis-pris pratiquement inconcevables ˆ l'Žpoque. Parfois mal compris dans sa premi<6D>re incarnation sur Atari ST par qui s'attendait ˆ un score ˆ battre, des Žnigmes ˆ rŽsoudre ou un but explicite ˆ atteindre, l'ƒgŽrie est, depuis sa premi<6D>re conversion sur Mac trois ans plus tard et son introduction dans le milieu bourgeonnant de l'art numŽrique, l'objet d'une attention souterraine jamais dŽmentie. Trente ans apr<70>s sa naissance, il Žtait temps de programmer l'ƒgŽrie pour l'Apple IIgs, en respectant scrupuleusement l'intŽgritŽ des ŽlŽments d'origine -un rendu vintage qui surprendra les plus jeunes et ravira les plus nostalgiques. Rousse assumŽe, Amandine revendiquera toujours ses gros pixels. Comment jouer ?______________________________________________________ Pour jouer, rien de plus simple : vous interagissez avec le jeu en dŽpla<6C>ant votre souris sur l'Žcran et en cliquant o<> vous le souhaitez. Parfois, cela entra”ne une rŽaction du jeu : ¥ un dialogue entre personnages, ¥ un dŽplacement vers un autre lieu. Voici les touches du jeu : ¥ Command-O : charger la partie en cours ¥ Command-Q : quitter le jeu ¥ Command-R : dŽmarrer une nouvelle partie ¥ Command-S : enregistrer la partie en cours Au lancement du jeu, vous pouvez appuyer sur Command pour jouer plus rapidement. Les spŽcificitŽs de la version Apple IIgs_______________________________ Pour une meilleure lisibilitŽ des textes, installez la police Courier.09 dans votre rŽpertoire */System/Fonts/ Grand intŽr<C5BD>t de la version Apple IIgs, vous pouvez traduire L'ƒgŽrie dans votre langue. Ouvrez le dossier */data/textes/xx o<> xx reprŽsente votre code de langue (par exemple, de pour Deutsch (allemand)) et traduisez les fichiers suivants : ¥ dedicaces.txt ¥ soustitres.txt ¥ textes.txt N'oubliez pas que le saut de ligne sur Apple IIgs est le seul code CR (OD). Nous proposons l'ƒgŽrie en fran<61>ais et en anglais. Quand vous aurez rŽalisŽ une autre traduction, nous serons ravis de l'hŽberger sur brutaldeluxe.fr Remerciements_______________________________________________________ Nous remercions Fran<61>ois Coulon qui a acceptŽ que nous portions L'ƒgŽrie sur Apple IIgs. Un disclaimer________________________________________________________ Un jeu de Fran<61>ois Coulon et des dessins de Laurent Cotton. Les images et les sons viennent de la version en ligne sur francoiscoulon.com, ˆ l'exception des quelques sons de fin en provenance de fiftysounds.com Version Apple IIgs par Brutal Deluxe Software : Antoine Vignau & Olivier Zardini. Programmation assembleur Merlin 32 ˆ partir du code source GFA d'origine. Plus d'informations__________________________________________________ Visitez nos sites web respectifs : francoiscoulon.com brutaldeluxe.fr

1
egerie/manuals/ReadMe Normal file
View File

@ -0,0 +1 @@
L'ト屍ie_____________________________________________________________ Written by Fran腔is Coulon and Laurent Cotton in the dark in 1990 for the Atari ST, adapted in 1993 for Mac, played online since 2018, L'ト屍ie is one of the very first experiments in electronic literature, breaking with the universe adventure games. Who are you Amandine Palmer? ___________________________________________ Parisian in 1990, you could have known her ... And some suspect us of having been in love with her ... Try to direct and follow the destinies of a young red-haired and intrepid Parisian, accompanied by her eternal cat, Humphrey. Amandine Palmer will end up mother, muse, reporter, lover, in the sun or in blood sausage. If it used the same computer support and certain codes of the illustrated adventure game, the L'ト屍ie prefigures much more a form of graphic novel, analog or digital: a narrative evolution both in time and in space, an action described in the past tense, the emphasis on the story and the characters. Not to mention a contemporary universe and, all militancy aside, a female main character -parties practically inconceivable at the time. Sometimes misunderstood in its first incarnation on Atari ST by who expected a score to beat, puzzles to solve or an explicit goal to achieve, L'ト屍ie has been, since its first conversion on Mac three years later and its introduction in the burgeoning world of digital art, the object of an undeniable underground attention. Thirty years after its birth, it was time to program L'ト屍ie for the Apple IIgs, scrupulously respecting the integrity of the original elements - a vintage rendering that will surprise the youngest and delight the most nostalgic. Redhead assumed, Amandine will always claim her large pixels. How to play ?______________________________________________________ To play, nothing could be simpler: you interact with the game by moving your mouse on the screen and clicking where you want. Sometimes this causes the game to react: ・ a dialogue between characters, ・ a move to another place. Here are the keys of the game: ・ Command-O: load a previously-played game ・ Command-Q: quit the game ・ Command-R: start a new game ・ Command-S: save the current game When launching the game, you can press Command to play faster. The specifics of the Apple IIgs version_______________________________ For better text readability, install the Courier.09 font in your */System/Fonts/ directory The great feature of the Apple IIgs version is that you can translate L'ト屍ie in your language. Open the */data/texts/ xx folder where xx is your language code (for example, de for Deutsch (German)) and translate the following files: ・ dedicaces.txt ・ soustitres.txt ・ textes.txt Remember that the line break on Apple IIgs is the only CR (OD) code. We provide L'ト屍ie in French and English. If you have translated it into another language, we would be happy to host it on brutaldeluxe.fr Thanks_______________________________________________________ We would like to thank Fran腔is Coulon who accepted that we port L'ト屍ie on Apple IIgs. A disclaimer________________________________________________________ A game by Fran腔is Coulon and images by Laurent Cotton. The images and sounds are from the online version at francoiscoulon.com, except for a few end sounds from fiftysounds.com Apple IIgs version by Brutal Deluxe Software: Antoine Vignau & Olivier Zardini. Merlin 32 assembler programming from original GFA source code. More information__________________________________________________ Visit our respective websites: francoiscoulon.com brutaldeluxe.fr

View File

@ -0,0 +1,56 @@
Accents
131 ƒ- 83
136 ˆ- 88 @ 40
137 ‰- 89
138 Š- 8A
141 <09>- 8D \ 5C
142 Ž- 8E { 7B
143 <09>- 8F } 7D
144 <09>- 90
145 - 91
148 ”- 94
149 •- 95
153 ™- 99
154 š- 9A
157 <09>- 9D I 7C
158 ž- 9E
159 Ÿ- 9F
opt-^ 5B/DB
a 61 89
e 65 90
i 69 94
o 6F 99
u 75 9E
A 41 E5
E 45 E6
I 49 EB
O 4F EF
U 55 F3
opt-u 75/F5
Š 61 8A
65 91
• 69 95
š 6F 9A
Ÿ 75 9F
€ 41 80
è 45 E8
ì 49 EC
… 4F 85
† 55 86
opt-n 6E/EE
61 8B
6E 96
6F 9B
Ì 41 CC
„ 4E 84
Í 4F CD
opt-e 65/E5

569
egerie/midi.s Normal file
View File

@ -0,0 +1,569 @@
*
* Midi routines
*
* (c) 2020, Brutal Deluxe Software
* Antoine Vignau & Olivier Zardini
*
dpSEQ = $f8
seqOFFSET = $006
seqTEMPO = $18A
seqTPB = $190
*--------------------------------------
mx %00
stopMIDI
lda fgMIDI
bne stopMIDI99
_KillAllNotes ; Stop MidiSynth
_MSShutDown
PushWord #35 ; unload MidiSynth
_UnloadOneTool
_SoundShutDown
stopMIDI99
rts
*--------------------------------------
initMIDI
pha ; Check for AppleTalk
_GetIRQEnable
pla
and #$20
beq initMIDI1
inc fgMIDI
rts
initMIDI1
lda myDP
clc
adc #$100
pha
_SoundStartUp
PushWord #35 ; Load MidiSynth
PushWord #0
_LoadOneTool
bcc initMIDI2
inc fgMIDI
rts
initMIDI2
_MSStartUp ; Start MidiSynth
bcc musicMEMORY
inc fgMIDI
rts
*-------------------------------------- Now, get RAM
musicMEMORY
PushLong #0
PushLong #$10000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrSEQ
ldy #2
lda [3],y
sta ptrSEQ+2
pld
pla
pla
bcc musicMEMORY1
inc fgMIDI ; cannot assign memory for MIDI sequences
rts
musicMEMORY1
PushLong #0
PushLong #$10000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrBNK
ldy #2
lda [3],y
sta ptrBNK+2
pld
pla
pla
bcc musicMEMORY2
inc fgMIDI ; cannot assign memory for MIDI sequences
rts
musicMEMORY2
PushLong #0
PushLong #$10000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrWAV
ldy #2
lda [3],y
sta ptrWAV+2
pld
pla
pla
bcc loadWAV
inc fgMIDI ; cannot assign memory for MIDI sequences
rts
*-------------------------------------- Load WAV
loadWAV
lda #pWAV
sta midiOPEN+4
jsl GSOS
dw $2010
adrl midiOPEN
sta midiERR
lda midiOPEN+2
sta midiSETMARK+2
sta midiREAD+2
sta midiCLOSE+2
jsl GSOS
dw $2016
adrl midiSETMARK
lda ptrWAV
sta midiREAD+4
lda ptrWAV+2
sta midiREAD+6
stz midiREAD+8
lda #1
sta midiREAD+10
jsl GSOS
dw $2012
adrl midiREAD
sta midiERR
jsl GSOS
dw $2014
adrl midiCLOSE
lda midiERR ; check err
beq loadBNK
inc fgMIDI ; exit
rts
*-------------------------------------- Load BNK
loadBNK
lda #pBNK ; load the MIDI bank
ldx ptrBNK+2
ldy ptrBNK
jsr loadGSOS
lda midiERR ; check err
beq loadSEQUENCE
inc fgMIDI
rts
*-------------------------------------- Load Sequence
loadSEQUENCE
lda #pSEQ
ldx ptrSEQ+2
ldy ptrSEQ
jsr loadGSOS
lda midiERR ; check err
beq initMUSIC
inc fgMIDI
rts
*-------------------------------------- Play sequence
initMUSIC
lda ptrSEQ
sta playMUSIC5+1 ; save pointers
sta playMUSIC55+1
lda ptrSEQ+2
sta playMUSIC6+1
sta playMUSIC66+1
_KillAllNotes
lda myDP
tcd
playMUSIC5
lda #$bdbd ; patched
sta dpSEQ
playMUSIC6
lda #$bdbd ; patched
sta dpSEQ+2
ldy #seqOFFSET
lda [dpSEQ],y
clc
playMUSIC55
adc #$bdbd ; patched
sta seqPlayRec
lda #0
playMUSIC66
adc #$bdbd ; patched
sta seqPlayRec+2
ldy #seqTEMPO
lda [dpSEQ],y
asl
sec
sbc #10
pha
_SetTempo
ldy #seqTPB
lda [dpSEQ],y
pha
_SetBeat
*--- Toutes les pistes sont actives
lda ptrBNK
clc
adc #$400
sta ptrINST
lda ptrBNK+2
adc #0
sta ptrINST+2
stz myINDEX
]lp PushWord myINDEX
PushWord #$8000
_SetPlayTrack
PushWord myINDEX
PushWord #-1
_TrackToChannel
PushWord myINDEX
PushWord #2
_SetTrackOut
PushLong ptrINST
PushWord myINDEX
_SetInstrument
lda ptrINST
clc
adc #$120
sta ptrINST
lda ptrINST+2
adc #0
sta ptrINST+2
inc myINDEX
lda myINDEX
cmp #16
bne ]lp
*---
sei
PushLong ptrWAV
PushWord #0 ; docStart
PushWord #0 ; byteCount (=64ko)
_WriteRamBlock
PushLong #callBackRec
_SetCallBack
PushWord #0
PushWord #0
PushLong seqClock
PushLong seqPlayRec
_Locate
PullLong seqPlayRec
cli ; end of the long init!
rts
*--------------------------------------
doMUSIK
lda fgMIDI ; can we play?
bne nozik99
lda fgMIDIPLAY
eor #1
sta fgMIDIPLAY
beq doSOUNDON
bne doSOUNDOFF
nozik99
rts
fgMIDIPLAY ds 2
*--------------------------------------
doSOUNDON
lda fgMIDI ; can we play?
bne playMUSIC99
lda #$0100 ; no, let's start playing!
sta seqPlay
PushLong #seqPlayRec
_SeqPlayer
stz fgLOOP
playMUSIC99
rts
*--------------------------------------
doSOUNDOFF
lda fgMIDI
bne stopMUSIC99
stz seqPlay
PushLong #seqPlayRec
_SeqPlayer
_KillAllNotes
stopMUSIC99
rts
*-------------------------------------- Suspend music
suspendMUSIC
lda fgMIDI
ora fgMIDIPLAY
bne suspendMUSIC9
_MSSuspend
suspendMUSIC9
rts
*-------------------------------------- Resume music
resumeMUSIC
lda fgMIDI
ora fgMIDIPLAY
bne resumeMUSIC9
_MSResume
resumeMUSIC9
rts
*--------------------------------------
checkREPLAY
lda fgMIDI
bne checkREPLAY99
lda fgLOOP
beq checkREPLAY99
jsr doSOUNDON
checkREPLAY99
rts
*--------------------------------------
replayMUSIC
lda #-1
stal fgLOOP
rtl
fgLOOP dw -1
*-------------------------------------- Select random sequence
randomMIDI
jsr Random ; get random 0-7
and #7
bcc randomMIDI
jsr midi_setit ; check file exists
bcc mr_ok ; it is ok, it is the sequence
lda #0 ; force sequence 1
jsr midi_setit
mr_ok rts
*-------------------------------------- Check a sequence
midi_setit
clc
adc #'1'
sep #$20
sta pSEQ+26
rep #$20
lda #pSEQ ; check file exists
sta midiOPEN+4
jsl GSOS
dw $2010
adrl midiOPEN
bcs midi_setit99
lda midiOPEN+2
sta midiCLOSE+2
jsl GSOS
dw $2014
adrl midiCLOSE
midi_setit99
rts
*-------------------------------------- Load a file
loadGSOS
sta midiOPEN+4
sty midiREAD+4
stx midiREAD+6
stz midiERR
jsl GSOS
dw $2010
adrl midiOPEN
bcs loadGSOSERR
lda midiOPEN+2
sta midiREAD+2
sta midiCLOSE+2
lda midiEOF
sta midiREAD+8
lda midiEOF+2
sta midiREAD+10
jsl GSOS
dw $2012
adrl midiREAD
bcs loadGSOSERR
loadGSOS2
jsl GSOS
dw $2014
adrl midiCLOSE
rts
loadGSOSERR
jsr loadGSOS2
inc fgMIDI
rts
*-------------------------------------- DATA
myINDEX ds 2
*--- GS/OS
midiERR ds 2
midiOPEN dw 12
ds 2
adrl pSEQ
ds 2
ds 2
ds 2
ds 2
ds 4
ds 2
ds 8
ds 8
ds 4
midiEOF ds 4
midiREAD dw 4
ds 2
ds 4
ds 4
ds 4
midiCLOSE dw 1
ds 2
midiSETMARK dw 3
ds 2
ds 2
adrl $900 ; +$900 pour WAV
*--- GS/OS Strings (+26 pour le random de la musique)
pSEQ strl '1/data/musiques/sequence1'
pWAV strl '1/data/musiques/piano.wav'
pBNK strl '1/data/musiques/piano.bnk'
*--- Memory
ptrSEQ ds 4
ptrWAV ds 4
ptrBNK ds 4
*--- Flags
fgMIDI ds 2 ; can play MIDI if 0
*--- Instruments
ptrINST ds 4
*--- MidiSynth
seqPlayRec
ds 4
ds 4
ds 4
ds 4
seqPlay ds 2 ; Play
seqClock ds 4
callBackRec adrl replayMUSIC ; When sequence ends !
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4