RIP to BT Garner of MindRec.com... BT passed away early 2023 from health problems. He was one of the top PCE homebrew developers and founder of the OG Turbo List, then PCECP.com. Condolences to family and friends.
IMG
IMG
Main Menu

HuExpress, a new PCEngine emulator.

Started by kallisti5, 08/07/2013, 02:49 PM

Previous topic - Next topic

0 Members and 0 Guests are viewing this topic.

kallisti5

Good afternoon,

I've been working on a new PCEngine / TurboGrafx emulator.  It was mainly a fork of Hu-GO! as development seems to have stopped since 2005.

Here are some of the changes i've made since Hu-GO 2.12...
  * Display PCE ROM info on startup (based on CRC)
  * Add internal PC Engine / TurboGrafx CRC database
  * Fix memory leaks through static analysis
  * Compile with clang and GCC possible
  * Ogg support for audio tracks in HCD
  * Improved HCD format
  * Type size cleanup
  * Improved stability on non-x86 architectures
  * Haiku operating system support
  * Add vector icons
  * Add on-screen volume bar
  * Removal of non-SDL code
  * Removal of rarely used and messy translations
  * Removal of DOS Allegro code
  * Removal of outdated GTK+ GUI code
  * Removal of unused code
  * Code style cleanup to follow KnR
  * Code cleanup and reorganization
  * Move to Scons build system


My current OS targets are Linux, and Haiku.   BSD should be an easy leap as well as MacOS X (though I have no personal plans to port it).  I've been removing the Windows stuff out of personal preference.  I also dropped the old GTK code as it was fairly hacked on and had a lot of issues.

The last feature i'm working on at the moment is moving to using libzip vs the miniunz Hu-GO! used.  Hu-GO! couldn't load HCD formatted games if they were in ZIP files (you had to extract them first)... i'm working to correct that.


Please feel free to try it out!  My long term plans are to make a simple SDL-based GUI as it will port easier than GTK or QT.


https://github.com/kallisti5/huexpress


No binaries are available yet, but some should be available after I get the first release out.


 -- Alex

kallisti5

#1
A quick side note, I *HIGHLY* recommend making any CDROM2/SuperCDROM2 images in HCD format going forward.  HuExpress retains compatibility with the old HCD format, and adds a few nice extras such as OGG support.

I've also included a CDROM2/SuperCDROM2 ripping tool in the tools directory.. it will rip the game, split the tracks apart, OGG Encode the audio, create an HCD metadata file, and zip it up for you :D

CDROM2/SuperCDROM2 Games go from 500MB+ to ~44MB each fairly easily by encoding the audio tracks in OGG or MP3.

kallisti5

#2
Also, for those who have never seen the Hu-GO! HCD format before.. generally you pack a .HCD file with all of the CD tracks. Hu-GO! and HuExpress use it to play the game and to read each track file in (think of it like a cue file with game metadata :D)

Here is one for the Bonk III CD. The files mentioned are included along side the HCD file:

[main]
id=TGXCD1052
media=SuperCDROM2
country=USA
title=Bonk III CD
developer=Red Company
release=1993-04-02
price=unknown
genere=Platform
first_track=1
last_track=16
minimum_bios=1

[artwork]
front=TGXCD1052_1.jpg
back=TGXCD1052_2.jpg

[track1]
type=AUDIO
filename=Track01.ogg

[track2]
type=CODE
filename=Track02.iso

[track3]
type=AUDIO
filename=Track03.ogg

[track4]
type=AUDIO
filename=Track04.ogg

[track5]
type=AUDIO
filename=Track05.ogg

[track6]
type=AUDIO
filename=Track06.ogg

[track7]
type=AUDIO
filename=Track07.ogg

[track8]
type=AUDIO
filename=Track08.ogg

[track9]
type=AUDIO
filename=Track09.ogg

[track10]
type=AUDIO
filename=Track10.ogg

[track11]
type=AUDIO
filename=Track11.ogg

[track12]
type=AUDIO
filename=Track12.ogg

[track13]
type=AUDIO
filename=Track13.ogg

[track14]
type=AUDIO
filename=Track14.ogg

[track15]
type=AUDIO
filename=Track15.ogg

[track16]
type=AUDIO
filename=Track16.ogg

Arkhan Asylum

You going to have a debugger/VRAM viewer?

and Windows support?
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

spenoza

You might want to look at the source code for mednafen and Ootake as well. Mednafen is command-line, but it is *nix buildable, and boasts a very high level of accuracy. Also, the BizHawk project might be of interest to you as well.

Arkhan Asylum

#5
I just grabbed and took a look at the source/etc.

An immediate nitpick:

"Core-GraphX / PC Engine / Turbo GraphX Emulator"


If you're going to do something for PCE/TG, can you please at least spell it right in your document that accompanies the source?


Also, if you expect people besides developers to give it a shot, you're probably going to want to support and provide binaries for Windows and OSX.   Normal people generally don't sit on *nix machines, and don't feel like doing anything except double clicking something and launching a game ASAP.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

kallisti5

#6
Quote from: guest on 08/07/2013, 05:58 PMAn immediate nitpick:

"Core-GraphX / PC Engine / Turbo GraphX Emulator"
If you're going to do something for PCE/TG, can you please at least spell it right in your document that accompanies the source?
You're 100% correct there.. Will fix. I think I wrote that quite a few years ago when I first started the port.

Quote from: guest on 08/07/2013, 05:58 PMAlso, if you expect people besides developers to give it a shot, you're probably going to want to support and provide binaries for Windows and OSX.   Normal people generally don't sit on *nix machines, and don't feel like doing anything except double clicking something and launching a game ASAP.
Yup on the binaries part I still haven't created a release version yet.. thus I haven't put in the time to build binaries yet.  I generally keep the code building though, at any time the code should be stable + easily buildable.  I'm not an OS X user... however as it is posix-like it shouldn't be too hard.

On the windows side... eh.  I just don't care enough about windows anymore to put the time in. As it is open source, feel free to fork it and port it to windows :P


come to the Un*x side, we have cookies and PC Engine emulation :P

Tatsujin

www.pcedaisakusen.net - home of your individual PC Engine collection!!
PCE Games countdown: 690/737 (47 to go or 93.6% clear)
PCE Shmups countdown: 111/111 (all clear!!)
Sega does what Nintendon't, but only NEC does better than both together!^^
<Senshi> Tat's i'm going to contact the people of Hard Off and open a store stateside..

kallisti5

Quote from: guest on 08/07/2013, 05:43 PMYou might want to look at the source code for mednafen and Ootake as well. Mednafen is command-line, but it is *nix buildable, and boasts a very high level of accuracy. Also, the BizHawk project might be of interest to you as well.
Thanks, will look :)

The emulation quality of Hu-Go! was actually pretty good, I've tested a *lot* of roms on HuExpress and see few issues. (except maybe a few sound issues, my CoreGrafx has a slighly different sound to it vs HuExpress.)

kallisti5

Quote from: guest on 08/07/2013, 03:25 PMYou going to have a debugger/VRAM viewer?
Thats actually a good idea.  It wouldn't be too hard to make an additional tool to hook into the shared memory used by HuExpress. I think Hu-GO! was going that direction as per the 2.12 README.

I created an enhancement for that on github:
https://github.com/kallisti5/huexpress/issues/4

esadajr

thanks for the hard work and showing *nix love. I'll be happy to give it a shot under Ubuntu.
Gaming since 1985

Arkhan Asylum

Quote from: kallisti5 on 08/07/2013, 08:46 PMAs it is open source, feel free to fork it and port it to windows :P
Too busy making games for PCE to work on porting an emulator.


Quotecome to the Un*x side, we have cookies and PC Engine emulation :P
So does Windows.  ;)


I wouldn't mind a new, accurate emulator with GUI + debugging tools for Windows.   I don't feel like pissing around in Unix.  The stuff I use for PCE game programming are Windows based.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

Prime

I too would like to see a pce emulator with gui,debugger,vram viewer,hex editor(think fceux)windows based.

kallisti5

#13
Just a quick update.  I put some additional work into HuExpress and it now has the following neat features:

* Utilize OpenGL for scaling rendered images
* Utilize OpenGL for rendering displayed images
* Updated to use the new SDL 2.0 release
* Script to automatically "backup" your PCEngine game CD's to HCD archives (Linux)
* Zip files containing an HCD definition can be left compressed and no longer need to
   be expanded to play.  (HuExpress will expand them to a temporary directory and clean
   up afterwards)

The OpenGL support should help performance a bit on modern hardware.  At this point HuExpress is  more useful than Hu-Go. (well, minus a pretty gui) The new hcd format also enables reducing PCEngine iso images down to tens of MB's vs hundreds of MB's.

https://github.com/kallisti5/huexpress

Build requirements are:
pkg-config
libzip
sdl2
sdl2_ttf


I also tagged the first "release" 3.0.1.  Things are early, so don't except too much polish.