Jump to content
IGNORED

PiTrex: Any 2023 updates to the firmware or with many of the arcade games that have no sound?


RockLobster

Recommended Posts

There hasn't been a firmware update since 2021 I don't think. If you go to the Pitrex Discord you will see the developer recently discuss adding folders and slower scrolling, but that's about it. I just received my Pitrex a week ago, and like it, but some updates would be good. Who wants to play the arcade games with no sound?

Edit: upon closer inspection, it wasn't the developer discussing those features, just another Reddit user. The developer himself hasn't posted since August of last year.

Edited by livingonwheels
Link to comment
Share on other sites

  • 4 weeks later...

If I'm not wrong, Pitrex directly access to CRT beam control thru cart port and it controls how Vectrex display draws images, pausing own Vectrex CPU. That could be the reason why it's not possible to add audio directly on Vectrex, but it should be implemented directly on Pitrex allowing an alternative audio output on Pi card.

Link to comment
Share on other sites

6 hours ago, boulinha said:

If I'm not wrong, Pitrex directly access to CRT beam control thru cart port and it controls how Vectrex display draws images, pausing own Vectrex CPU. That could be the reason why it's not possible to add audio directly on Vectrex, but it should be implemented directly on Pitrex allowing an alternative audio output on Pi card.

Feel free to join into the project and add those features.

Link to comment
Share on other sites

On 1/1/2024 at 1:07 AM, RockLobster said:

it seems 2020-2021 were such fast moving years for the PiTrex project but progress has slowed down to where no much changed for 2023?

 

Now that it's 2024, where can one get the latest fixes to many of the mame games that have no audio or other issues?

Near the bottom of this page is a FREE Pitrex pre configured image (MICRO SD PITREX PLUG'N PLAY). It's the image I use and is nearly perfect. Many games with sounds, including Star Wars which, if you happen to do the "Buzz Off" mod you can actually hear the voices from the arcade during gameplay. Until I installed the Buzz Off kit, I had no idea it had voice. They are rather faint, but there. Image located here:

 

https://rpiteam.carrd.co/

Edited by livingonwheels
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 2 months later...
On 2/8/2024 at 6:56 AM, boulinha said:

If I'm not wrong, Pitrex directly access to CRT beam control thru cart port and it controls how Vectrex display draws images, pausing own Vectrex CPU. That could be the reason why it's not possible to add audio directly on Vectrex, but it should be implemented directly on Pitrex allowing an alternative audio output on Pi card.

You're right, however the Pi Zero doesn't support a sound output port, so you either have to add one or use HDMI and some module to extract the sound from the HDMI output.  We reckoned neither of these are likely to be done by the majority of Pitrex users.  One other option may be to use Bluetooth *if* you have the later Pi Zero that supports it but most existing users probably don't.  I do hold out a little hope for the possibility of interleaving the sound along with the graphics as done in StarWars but my understanding is that that would require an almost complete rewrite of how the graphics was driven, and it was hard enough getting it to the level of reliability that it now has. (it's very sensitive to timing issues and any multitasking activity on the Pi was likely to cause graphical glitches in the earlier versions of the graphics driver)

Link to comment
Share on other sites

On 4/22/2024 at 5:43 PM, TheCurlyBard said:

Forgive my ignorance, how does Vecfever run mame roms with sound, and could something similar not be developed?

Star Wars on the VecFever is a SBT (Static Binary Translation) and not just running a MAME emulator on the cart.  So all of the original Star Wars ROM code has been converted to natively run on the STM 32-bit processor on the cartridge.  Thomas has also converted the sound generation to run and produce those sounds on the Vectrex as well... somehow :D The whole thing is also adapted in various ways to run better on the Vectrex screen.  It's a little bit of black magic and voodoo skills to do these sorts of things.  Many many MANY hours of painstaking reverse engineering and coding.
https://www.vecfever.com/faq/star-wars/

 

And this is why these carts sell for $1k to $2k.

  • Like 2
Link to comment
Share on other sites

1 hour ago, playvectrex said:

...

And this is why these carts sell for $1k to $2k.

And also because of the,,,

Other original games by the VecFever creator running only on VecFever. 

Support for newer games running larger binary images that most other multicarts can run. (Vectorblade).

Extra RAM for various programs such as Spike's Circus, Animaction, etc.

High score memory save for the original era titles.

Support of add-on modules via external communication lines and its related program.  Such as a Real Time Clock (RTC).

And many other features VecFever supports the others current may not support. 

Edited by Vectrexer
  • Like 2
Link to comment
Share on other sites

5 hours ago, playvectrex said:

Star Wars on the VecFever is a SBT (Static Binary Translation) and not just running a MAME emulator on the cart.  So all of the original Star Wars ROM code has been converted to natively run on the STM 32-bit processor on the cartridge.  Thomas has also converted the sound generation to run and produce those sounds on the Vectrex as well... somehow :D The whole thing is also adapted in various ways to run better on the Vectrex screen.  It's a little bit of black magic and voodoo skills to do these sorts of things.  Many many MANY hours of painstaking reverse engineering and coding.
https://www.vecfever.com/faq/star-wars/

 

And this is why these carts sell for $1k to $2k.

I thought it might be something like that. I got the dev env set up and got distracted, and there's also a note about not accepting pull requests but I guess that's out of date as development has gone flat. So we'd be looking at reproducing all of this work to get games running natively on the arm... does sound quite painstaking tbh, but I'm still interested in helping as I'm not interested in paying the current prices for a Vecfever

  • Like 1
Link to comment
Share on other sites

Posted (edited)

To a small degree Thomas (VecFever) emulates Pokey chips (Atari sound chip).
But the emulation is not what makes the sounds good on the VecFever. The original sound of star wars is produced by 4 × Atari POKEY, each Pokey features 4 sound channels... that means in Star Wars it is possible to play 16 different sound channels at once.

Unless you use "modern" mixers and digital sound processing this can not be done by a Vectrex. There is also no "good" way to discern which of the sound channels at any given moment is producing the most audible sound.

 

What Tomas did for nearly all his emulations... is to reproduce the sound of the arcade machines with the means of the AY 8912 - which means he "composed/rebuild" those sounds from scratch.
Within the emulation he tracks the code, what sounds are played... and "emulates" the sounds by playing his own sounds.


He had to make decisions on what sounds to play, what not... and what should/could be played in parallel...
It is a painstaking process to do for only one arcade emulation - let alone the many emulations he did.

 

I myself am no "sound"-guy, never was, never will be. The technique Thomas used to intercept the emulation and play his own sounds... is easy to implement - and actually is also implemented for Star Wars on the PiTrex.
BUT: I myself never intended to create new sounds - or rebuild sounds on the AY to sound like arcades. For Star Wars I implemented place holders of sounds I had lying around (done by another person).

 

There always has been huge interest in having better sounds/better emulation/better graphics with the PiTrex.

 

Better emulation - I could do.
Better graphics - I very probably could do also - I even asked Thomas for his help, and he showed me a path to take (which I was already on... but he confirmed it).

Better sound - I am not willing - and probably could not do.

 

Be it as it may... I asked the "community" repeatedly for help with the sounds... one or two people offered to help... but I never actually got any feedback later.

I grew very much tired of the PiTrex... every now and then I dig it out... and think about the changes that I had planned (and started) - but the time needed to get back into the code grows from month to month... so due to other things in my life I postpone it further and further.

 

- as a small side node... Start Wars on PiTrex also uses SBT - which Graham provided...

 

 

PS
In the file starswars.c - last function... the sounds are "mapped":
(and you can see the few "sounds" the PiTrex actually "emulates"...)

 

void play_sw_sound(int a)
{
  if (usePSGSamples) return;
  int channel = 0;
  
//  printf("Sound: %02x\n", a);
  
  if (a == 0x1c) v_initYM(cantina, cantinaRows, 0);
  if (a == 0x3a) v_playSFXStart(playerShot_data, channel, 0);
  if (a == 0x24) v_initYM(jingle1, jingle1Rows, 0);
  if (a == 0x22) v_initYM(jingle2, jingle2Rows, 0);
  if (a == 0x26) v_playSFXStart(deathStar1_data, 1, 0);
  if (a == 0x27) {v_playSFXStart(deathStar1_data, 0, 0);v_playSFXStart(deathStar2_data, 1, 0);}
  if (a == 0x33) v_playSFXStart(shieldHit_data, 1, 0);
  if (a == 0x34) v_playSFXStart(enemyHit_data, 1, 0);
  if (a == 0x35) v_playSFXStart(deathStar2_data, 1, 0);
  if (a == 0x36) v_playSFXStart(fighterShot_data, 2, 0);
  if (a == 0x39) v_playSFXStart(longerShot_data, 2, 0);
  
  // 1b - high score
  // 1d - Imperial March
  // 20 - Towers 1 music
  // 21 - Towers 2 music
  // 22 - Trench music
  // 24 - Space wave 1 music
  // 25 - Space Wave 2 music
  // 26 - Explosion
  // 32 - R2 beeps entering Death Star
  
/* http://www.wardclan.f9.co.uk/136021_Sound.html
 * see also: https://github.com/historicalsource/star-wars/blob/main/SNDPBX.MAC
00 ROM:7F61 off_7F61:       fdb Reset_Vector        ; Sound/speech function pointer table
01 ROM:7F63                 fdb FX_loc_743C
02 ROM:7F65                 fdb Mus_sub_7686
03 ROM:7F67                 fdb Spch_loc_7BAB
04 ROM:7F69                 fdb Spch_loc_7C0D
05 ROM:7F6B                 fdb Spch_loc_7BBA
06 ROM:7F6D                 fdb Spch_loc_7BB3
07 ROM:7F6F                 fdb Spch_loc_7C14
08 ROM:7F71                 fdb Spch_loc_7BC2
09 ROM:7F73                 fdb Spch_loc_7BDB
0a ROM:7F75                 fdb Spch_loc_7C1B
0b ROM:7F77                 fdb Spch_loc_7B7E
0c ROM:7F79                 fdb Spch_loc_7BFF
0d ROM:7F7B                 fdb Spch_loc_7BE3
0e ROM:7F7D                 fdb Spch_loc_7BD4
0f ROM:7F7F                 fdb Spch_loc_7B6D
10 ROM:7F81                 fdb Spch_sub_7B65       ; $10 Red five standing by
11 ROM:7F83                 fdb Spch_loc_7BA3       ; Remember
12 ROM:7F85                 fdb Spch_loc_7BF1       ; I can't shake him
13 ROM:7F87                 fdb Spch_loc_7C06       ; Look at the size of that thing
14 ROM:7F89                 fdb sub_7C40            ; Stay in attack formation
15 ROM:7F8B                 fdb Spch_loc_7BCB
16 ROM:7F8D                 fdb Spch_loc_7B90       ; Force is strong in this one
17 ROM:7F8F                 fdb Spch_loc_7B76       ; Red five I'm going in
18 ROM:7F91                 fdb Spch_loc_7BF8       ; $18 Luke trust me
19 ROM:7F93                 fdb Spch_loc_7B88       ; Use the force Luke
1a ROM:7F95                 fdb Spch_loc_7B9A       ; Yahoo you're all clear kid
1b ROM:7F97                 fdb Mus_sub_753C        ; High score
1c ROM:7F99                 fdb Mus_sub_755D        ; High score Cantina
1d ROM:7F9B                 fdb Mus_sub_7665        ; Imperial march
1e ROM:7F9D                 fdb Mus_sub_7644        ; Enter Death Star
1f ROM:7F9F                 fdb Mus_sub_757E        ; Death Star destroyed
20 ROM:7FA1                 fdb Mus_sub_7602        ; $20 Towers 1
21 ROM:7FA3                 fdb Mus_sub_759F        ; Towers 2
22 ROM:7FA5                 fdb Mus_sub_75C0        ; Trench
23 ROM:7FA7                 fdb Mus_sub_751B        ; Exhaust port hit torpedo
24 ROM:7FA9                 fdb Mus_sub_75E1        ; Space wave 1
25 ROM:7FAB                 fdb Mus_sub_7623        ; Space wave 2

26 ROM:7FAD                 fdb FX_loc_7401         ; Explosion
27 ROM:7FAF                 fdb FX_loc_73F5         ; Death Star explosion
28 ROM:7FB1                 fdb FX_loc_740D         ; $28 R2 dead
29 ROM:7FB3                 fdb FX_loc_7435         ; Memory fail boop
2a ROM:7FB5                 fdb FX_loc_73C5         ; Tie fighter pass
2b ROM:7FB7                 fdb FX_loc_73CB	    ; STOP PASSBY SOUND
2c ROM:7FB9                 fdb FX_loc_73D7         ; Tower pass
2d ROM:7FBB                 fdb FX_loc_7419         ; Laser fire ;PORTHOLE (ASSISTS PMSF2)
2e ROM:7FBD                 fdb FX_loc_73FB         ; Tie pass 2
2f ROM:7FBF                 fdb FX_loc_7407         ; R2 increasing power
30 ROM:7FC1                 fdb FX_loc_73B7         ; $30 R2 answer
31 ROM:7FC3                 fdb FX_loc_7420         ; R2
32 ROM:7FC5                 fdb FX_sub_73B0         ; R2 enter Death Star
33 ROM:7FC7                 fdb FX_loc_73D1         ; Shield hit
34 ROM:7FC9                 fdb FX_loc_7413		;PLAYER SHOT ALIEN SHOTS
35 ROM:7FCB                 fdb FX_loc_73EF		;ALIEN SHIP EXPLODE
36 ROM:7FCD                 fdb FX_loc_73E3		;TIE FIGHTER CANNON
37 ROM:7FCF                 fdb FX_loc_73E9		;TIE FIGHTER CANNON END SOUND
38 ROM:7FD1                 fdb FX_loc_7427		;THRUST TO DETH STAR
39 ROM:7FD3                 fdb FX_loc_73DD		;TOWER LAZARS
3a ROM:7FD5                 fdb snd_Fire_Guns		;X-WING LAZARS
3b ROM:7FD7                 fdb FX_loc_742E;YAY - TEST PASS
  */  
}

 

Edited by Malban
  • Like 5
  • Thanks 1
Link to comment
Share on other sites

On 5/2/2024 at 4:51 AM, Malban said:

I grew very much tired of the PiTrex... every now and then I dig it out... and think about the changes that I had planned (and started) - but the time needed to get back into the code grows from month to month... so due to other things in my life I postpone it further and further.

Drats. I love the PiTrex. Thank you for your efforts.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

@Malban thank you for the detailed answer! I'm not really a PSG guy either, and have also become distracted with other things in life but I'm going to get back to coding for fun very soon, I can feel the itch. I'm going to update my image right now and find a game with no sound that I care about, see how far I get, might have a chance with this new information

  • Like 4
Link to comment
Share on other sites

I just thought I would chime in.  Like others have already said, @Malban thank you  for your excellent efforts and contributions to the Vectrex over the years, including PiTrex.  Even with all of my carts and muticarts, the PiTrex is by far my most used.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
On 5/2/2024 at 12:51 PM, Malban said:

Be it as it may... I asked the "community" repeatedly for help with the sounds... one or two people offered to help... but I never actually got any feedback later.

 

I am guilty of this, apologies. I got so engrossed in working on my game I didn't get anywhere with the Pitrex sounds.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...