PSX-FPKG

PS4 PSX-FPKG (by Jabu) - A Tool to convert PS1 (PSX) games for use on PS4 v0.3

Silent Hill works far better with the newly dumped Ridge Racer Type 4 emu. The previously poorly implemented mask bit has been fixed - mostly noticeable during night time, a rectangular aura around the player character or light source is gone now. It also fixed a transparency issue with the gun muzzle flash and blood particles during day time.

The only issue remaining seems to be the highlight around the items in the equipment menu and save tabs being thicker than they should. If you know any commands worth trying to fix this let me know but at least the game is 98% perfect now, I played until the school area just to be sure. And yes, I also tried other emus dropped today but none of them work with this game.

kVAjh2C.jpeg


Anyway, with new PSX/PSP emus being dropped, I expect to see more playable games or fix games that worked previously but had bugs.

some of us need to wait to test some games. because where on 5.05. hope ACE COMBAT 3 fog problem is also fixed.

That's interesting, you would think the emulator from Jet Moto 2 and Rally Cross (being the newest games of those released) would have even better compatibility and features than the RR4 emulator which is from ~December 2022.

i guess their are the same emu because fugazi also included the update files. which came to fix something on emu.

-edit: looks like we need the jet moto 2. i found new same option on psp resistance that is not available to oddysee and other ps1 emu
 
Last edited:
Just for reference, here are the CLI commands from the RRT4 and Jet Moto 2 emulators:

Code:
--50hz-to-60hz-conversion-enabled
--agerestrict
--app-artifacts-dir
--app-dir
--app-volume
--assets-dir
--autokill
--automated
--bios
--bios-dir
--bios-hide-sce-osd
--boot-disc-id
--boot-script
--brightness
--cdrom-cache-mode
--cdrom-cmd-time
--cdrom-fake-slow-async-read
--cdrom-max-seek
--clamp-line-thickness-max
--clamp-line-thickness-min
--config-local-dir
--contrast
--cwd-dir
--deterministic
--drawrect-fill-hack
--enable-change-disc-ui
--force-modchip-check
--force-pad-connect
--force-pad-disconnect
--gamedata-dir
--gamma
--globalgamedata-dir
--gpu-scanout-fps-override
--gpu-scanout-fps-override-ntsc
--gpu-scanout-fps-override-pal
--graph-fps-resolution
--has-shown-start-select-help
--host-audio
--hue
--id-engine
--image
--image%d
--image-dir
--imageName%d
--libcrypt
--load-scripts
--locale
--mcd-export
--mcd-export-dir
--mcd0
--mcd1
--mdec-dma-period%d
--metal-gear-solid
--ntsc-region-default
--opt-cache-isolation
--pace-gpu-dma
--present-delay-scanlines
--ps1-title-id
--ps4-trophies
--region
--region-dir
--replacement-texture-dir
--request-ntsc-region
--run-hook-msg
--saturation
--savestate-dir
--scale
--sce-executable-fullpath
--screenshot-dir
--screenshot-period
--show-fps-graph
--snap-entrypoint-filename
--snap-save
--snap-save-period
--snapshot-autokill
--snapshot-dir
--snapshot-entrypoint
--snapshot-restore
--snapshot-vram
--texreplace specified, but the path was not found
--throttle
--throttle-bios
--title-artifacts-dir
--title-dir
--trace-snap-compare
--trophies
--userui-region-selector
--userui-settings-graphics
--vault-dir
--vram-read-frame-delay
--wait
--xobuttonmode

Code:
--ctlanalog
--git-rev-gamedata
--guncon
--multitap
--remap
--savedata-mode
--sim-analog-pad
--state-restore
--title-id
--use-lopnor-spu
--vram-merge-no-delay
--waitForDebugger

The --[ps4]- and --[ps4pro]- type commands can be prefixed to any other command, and the emulator will only load those options on the appropriate platform.
Code:
--[msw]-
--[ps4]-
--[ps4pro]-
--[ps5]-
--[sce]-
--apply-scanout-half-pixel-shift
--budget-timeline
--cdrom-base-seek
--cdrom-pause-timing
--clear-vram-video-mode-switch
--cmaa-max-height
--cmaa-max-width
--config
--disable-maskpixel
--enable-user-color-adjustment
--enable-user-psp-right-stick-remapping
--enable-user-smc-check
--gamma-correction
--gpu-24-bit-color
--gpu-headless-render-size
--hid
--horiz-sync-tear-allowance
--host-player%d-controller
--host-snapshot-dir
--legacy-force-analog
--maskpixel-mode
--mtap-to-host-pad
--pace-gpu-dma-slow
--pad%d-device
--pad%d-plug-state
--pad-analog-button
--pad-analog-button=%s is an invalid analog button state. Expected values: analog/digital/0/1.
--postproc-aa
--postproc-aa has invalid argument '%s'. Allowed values are none, fxaa, cmaa, ssaa_4x.
--ps1-left-stick-action
--ps1-left-stick-deadzone-x
--ps1-left-stick-deadzone-y
--ps1-left-stick-semicircle-arc-range
--ps1-stress-ui-unlock-threshold
--psp-hack-multipad-to-player1-remap
--psp-right-stick-action
--psp-right-stick-deadzone-x
--psp-right-stick-deadzone-y
--psp-right-stick-lr
--psp-right-stick-lr has unknown remap mode '%s'
--psp-right-stick-semicircle-arc-range
--remap-lstick-to-digital
--remap-rstick-to-digital
--savedata-dir
--scanout-reset-maskpixel
--screenshot-png-compress-level
--show-dev-ui
--show-trophy-ui
--sio-allow-irq-during-irq
--skip-copyback-if-display-disabled
--skip-interlacing
--snapshot-restore-slot
--snapshot-restore-slot=%jd
--temp-dir
--throttle-catchup
--throttle-fps
--throttle-mode
--trace-host-msgs
--trace-hotload
--unattended
--uprender-scale
--uprender-scale has invalid argument '%s', valid range is int 1 to 16.
--userui-ps1-remap-pad has an unknown PS1 button name=%s
--userui-ps1-remap-pad has an unknown host button name=%s
--userui-psp-right-stick-remapping
--userui-remap-%s-pad%d
--uv-mirroring-fix
--wait-debug

Are you aware of the /temp0/reboot-params.txt trick which allows you to switch in different CLI commands without having to rebuild your package, useful for testing anyway.
 
Thrill Kill - (SLUS00752)

Code:
# Thrill Kill (all regions)

--sim-analog-pad=0x2020
--ps1-title-id=SLUS00752
--gpu-scanout-fps-override=ntsc

# PlayStation BIOS Dumps

--bios-hide-sce-osd=1
--has-shown-start-select-help=1

# Use the new multitap?

--multitap=always

# Use the new shared image directory

--image-dir=data

--force-pad-connect=0b1

# Enable LopnorSPU to fix some audio issues
--use-lopnor-spu=1

# following settings are machine-generated

--ps4-trophies=0
--ps5-uds=0
--trophies=0

--globalgamedata-dir=global
--force-frame-blend=false

# Allow the user to change between PAL and NTSC
--userui-region-selector=false

# Fixd Coning

--gamma=5
--brightness=9
--contrast=8

# Emu used = Syphon Filter 3
SLUS00752.lua
Code:
-- Title: Thrill Kill - USA (SLUS00752)
-- ported to PS4 lua by JSimesen
-- emu used= Legend of Dragoon - Syphon Filter 3

local patcher = function()

-- Disable dithering
R3K_WriteMem16(0x8006A808,0x0000) --E1000200
R3K_WriteMem16(0x8006AA90,0x0000) --E1000200
R3K_WriteMem16(0x8007C894,0x0000) --E1000200
R3K_WriteMem16(0x8007E1B0,0x0000) --E1000200
R3K_WriteMem16(0x8007F5E8,0x0000) --E1001000
end

EM_AddVsyncHook(patcher)
app_boot.lua
Code:
require "disc-selection"

local pal_disc_map = {
    en = { "name_en_pal.bin" },
    de = { "name_de_pal.bin" },
    it = { "name_it_pal.bin" },
    es = { "name_es_pal.bin" },
    fr = { "name_fr_pal.bin" },
}

local ntsc_disc_map = {
    en = { "ThrillKill.bin" }
}

RegisterDiscs(pal_disc_map, ntsc_disc_map)
Pic1.png File

Does Multitap option work with this emu? Does anyone tried using 4 controllers?
 
Koudelka NTSC/PAL

Emu used: RR4

CFG:
--bios-hide-sce-osd=1
--sim-analog-pad=0x2020
--globalgamedata-dir=global
--enable-change-disc-ui=true

This game had 2 issues. At the start of an FMV, florescent colors popped up for a second and going into battle transitions had some transparency issues. Both are fixed by using the RR4 emu. The disc change is needed because it's a 4 disc game though it would be nice to have a proper "disc swap" without the emu rebooting entirely since this game is very picky with saves. Also, ctanalog=on doesn't work for this game, the controls will be buggy so you will need sim-analog instead, dpad/analog both work.

The fix:
https://imgur.com/a/kKVBwbi
 
Hola.
¿cómo puedo elegir el tipo de emulador para convertir las rom psx a travez del programa de Jabu?
emu RR4
emu Oddworld Abe's Oddysee v2
etc
Les agradecería su ayuda.
----------------------------------------------
Hello.
How can I choose the type of emulator to convert PSX roms through the Jabu program?
emu RR4
emu Oddworld Abe's Oddysee v2
etc
I would appreciate your help.
 
Also, ctanalog=on doesn't work for this game, the controls will be buggy so you will need sim-analog instead, dpad/analog both work.

That's interesting, as RRT4 appears to include no controller configuration (unlike every other release), yet the game does have analog available. Did you try leaving both ctanalog and sim-analog out of your own config to see if works then?

Also I think ctanalog should be true rather than on.

Edit: RRT4 does have ctanalog in its config, I missed it on first look.
 
Last edited:
That's interesting, as RRT4 appears to include no controller configuration (unlike every other release), yet the game does have analog available. Did you try leaving both ctanalog and sim-analog out of your own config to see if works then?

Also I think ctanalog should be true rather than on.

This game is a bit strange. So I first tried without any config to see how it works with the new emu. It worked great, both dpad/analog. Then I used a config to enable the disc change so I added the hide bios and ctanalog like usual and it's like it wasn't detecting my input half of the time, the main character couldn't walk on any direction but moved. Then I tried the config without it and the problem persisted, then I tried both - same thing and finally I only added sim-analog.

This happened on Syphonfilter emu as well but at the time I didn't bother trying to fix this because I was put off by the graphical bugs so it's some type of incompatibility from the game, not the emu. Thankfully you can workaround it thanks to that command.

Hola.
¿cómo puedo elegir el tipo de emulador para convertir las rom psx a travez del programa de Jabu?
emu RR4
emu Oddworld Abe's Oddysee v2
etc
Les agradecería su ayuda.
----------------------------------------------
Hello.
How can I choose the type of emulator to convert PSX roms through the Jabu program?
emu RR4
emu Oddworld Abe's Oddysee v2
etc
I would appreciate your help.

Like this you need to rip the eboot from the game:

Use 'pause before creating pkg (debug)' check mark. It will open a temp folder before creating a pkg. And you can just swap eboot file from different emu then click ok to create a package.
 
Last edited:
@sargentfart
Gracias por responder. Dices que reemplace el "eboot.bin" antes de que empiece a crear el fpk.
¿hay otros archivos adicionales que deba incluir a parte del eboot.bin?
Intento lanzar Bloody Roar 2. Le incluí el config.txt, lua y "eboot.bin" (emu oddworldv2) y lanza error.
--------------------------------------------------------------------------------------------------------------------
@sargentfart
Thanks for answering. You say to replace the "eboot.bin" before you start creating the fpk.
Are there any additional files I should include besides eboot.bin?
I'm trying to launch Bloody Roar 2. I included the config.txt, lua and "eboot.bin" (emu oddworldv2) and it throws an error.
 
It looks like a future version of the emulator may include a menu option for remapping the controller.

The Jet Moto 2 emulator includes UI localisation for a new menu:

Code:
"i18nCustomButtonAssignments": "Customize Button Assignments",
"i18nController": "Controller",
"i18nPrevious": "Previous",
"i18nNext": "Next",
"i18nReset": "Reset",
"i18nPresets": "Presets",
"i18nUndo": "Undo",
"i18nApplyToAllControllers": "Apply to All Controllers",
"i18nPressButtonToAssign": "Press Button to Assign"

Then in the configuration files for Resistance Retribution there is mention of a command which would seemingly enable it:

Code:
--enable-customize-buttons-menu

However it doesn't appear to actually be fully implemented yet, as I cannot get the menu to appear in either version of the emulator (and that command isn't listed in their executables yet).

Also, this may be of interest to someone, but the emulator now also has a bunch of PlayStation Shader Language files distributed with it (these are plain text files).

Code:
└───assets
    ├───common
    │
    └───PS1HD
        ├───bios
        │       SCPH5500.bin
        │       SCPH5501.bin
        │       SCPH5502.bin
        │
        └───shaders
                basic_tex_p.pssl.glsl
                basic_tex_vv.pssl.glsl
                blit16_p.pssl.glsl
                blit_arcade_p.pssl.glsl
                blit_blur_p.pssl.glsl
                blit_cel_p.pssl.glsl
                blit_crt_p.pssl.glsl
                blit_fxaa_p.pssl.glsl
                blit_hsbc_p.pssl.glsl
                blit_interlace_p.pssl.glsl
                blit_interlace_v2_p.pssl.glsl
                blit_p.pssl.glsl
                blit_rgby_p.pssl.glsl
                blit_rgb_p.pssl.glsl
                blit_scanline_p.pssl.glsl
                blit_smoothing_p.pssl.glsl
                blit_srgb_p.pssl.glsl
                blit_tvdistort_p.pssl.glsl
                blit_vv.pssl.glsl
                CMAA2_cs_compute_dispatch_args_c.pssl.glsl
                CMAA2_cs_debug_edges_c.pssl.glsl
                CMAA2_cs_defered_color_apply_c.pssl.glsl
                CMAA2_cs_edges_color_c.pssl.glsl
                CMAA2_cs_process_candidates_c.pssl.glsl
                imgui_p.pssl.glsl
                imgui_vv.pssl.glsl
                pix_clear_p.pssl.glsl
                pix_mipmap_p.pssl.glsl
                video_p.pssl.glsl
                vramblit_p.pssl.glsl
 
I've been going through the various versions of the emulator, and I've created a table that shows which config commands are available in each version (ordered by build date in the emulator): https://ps1hd.pages.dev/cli

On button remapping, that is available via config using the Jet Moto 2 emulator (should be in Rally Cross as well but I haven't tested).

The syntax is:

Code:
--userui-remap-ps1-pad[0-3]=host_button:ps1_button, host_button:ps1_button

An example to swap the cross and triangle button for player 1:

Code:
# Remap Player 1        DS4   PS1       DS4      PS1
--userui-remap-ps1-pad0=cross:triangle, triangle,cross

Another example which works well with Quake 2. That game has a "Both Sticks" control scheme which has strafe and turn on the wrong analog sticks, relative to a modern control scheme. So with the remap you can swap the x-axis on the analog sticks with each other, and now you have Quake 2 using a modern style control scheme.

Code:
# Remap Player 1        DS4         PS1          DS4          PS1           DS4          PS1         DS4          PS1
--userui-remap-ps1-pad0=lstick.left:rstick.left, lstick.right:rstick.right, rstick.left:lstick.left, rstick.right:lstick.right

It looks like there should be options for adjusting the deadzone on the analog sticks, but I'm not sure they are fully implemented yet (there is a command for left stick, but the command for right stick references PSP).

I've added more details for this to my site here: https://ps1hd.pages.dev/cli#--userui-remap-s-padd

---

Lastly the new multitap config using the Jet Moto 2 emu --mtap-to-host-pad

An example for multitap connected to port 1 (1A), 1B, 1C, 1D, with nothing connected to port 2. Tested with Quake 2:
Code:
#                 PORTS  MULTI 1   MULTI 2
#                  1  2  1B 1C 1D  2B 2C 2D
#     PS4 Player   1  -   2 3 4     - - -   
--mtap-to-host-pad=0,-1,  1,2,3,   -1,-1,-1

Then the example from the official Rally Cross config which is player 1 connected to port 1, multitap connected to port 2 (2A), 2B, 2C:
Code:
#                 PORTS  MULTI 1   MULTI 2
#                  1 2   1B 1C 1D  2B 2C 2D
#     PS4 Player   1 2    - - -     3 4 
--mtap-to-host-pad=0,1,  -1,-1,-1,  2,3,4

This seems to supersede the old --multitap command.

More details here: https://ps1hd.pages.dev/cli#--mtap-to-host-pad
 
Street Fighter Collection 1 & 2 (SLUS VERSION)

CONFIG-REGION TXT

--gpu-scanout-fps-override=ntsc
--scale=1
--texrecent=true
--cdrom-cmd-time=100
--cdrom-max-seek=true
--host-audio=noisedivider

CONFIG-TITLE TXT

--sim-analog-pad=0x2020
--bios=SCPH1001.bin
--ctlanalog=on
--xobuttonmode=ocancel

emu used=syphon filter 2
 
Last edited:
@Megaman X

hola.
¿comó haces para crear el multidisc en Street Fighter Collection 1?
Uso el programa de Jabu y me dice que no encuentra el .toc
Con el programa de Markus me tira error al lanzar el juego multisic.
 
@Megaman X

hola.
¿comó haces para crear el multidisc en Street Fighter Collection 1?
Uso el programa de Jabu y me dice que no encuentra el .toc
Con el programa de Markus me tira error al lanzar el juego multisic.

Markus program is only for 1 disk, to do multi-disk you need to manually edit the pkg file, editing the CONFIG-REGION TXT with this command:

--image0="data/Street Fighter Collection (Disc 1).bin"
--image1="data/Street Fighter Collection (Disc 2).bin"
 
ISS Pro Evolution 1 & 2 (SLES VERSION)

CONFIG-REGION TXT

--gpu-scanout-fps-override=pal
--scale=1
--cdrom-cmd-time=100
--cdrom-max-seek=true
--host-audio=noisedivider
--userui-settings-graphics=1

CONFIG-TITLE TXT

--sim-analog-pad=0x2020
--bios=SCPH1002.bin
--ctlanalog=on
--xobuttonmode=ocancel

emu used=syphon filter 2
 
Widescreen and No Dither for Silent Hill


LUA
Code:
-- Silent Hill  [NTSC U] (SLUS-00707)
-- Widescreen hack by demilich
-- Disable dithering hack by ShaolinAssassin
-- ported to PS4 lua by Stayhye
-- emu used=syphonfilter v2

if true then

end

local PS1_Mods = function()
--16:9 Widescreen
R3K_WriteMem16(0x800C6FE0,0x0C00)
R3K_WriteMem16(0x800C6FF0,0x0C00)
--Disable dithering
local no_dither = R3K_ReadMem16(0x019810)
if no_dither == 0x0200 then
R3K_WriteMem16(0x30019811,0x0000)
end


end

EM_AddVsyncHook(PS1_Mods)


gracias funcionando perfectamente.
 
hola podrias
Metal Gear Solid (SLUS00594) (v1.1)

config-title.txt
Code:
--gpu-scanout-fps-override=ntsc
--scale=6
--gamma=5
--brightness=9
--contrast=8
--cdrom-cmd-time=100
--cdrom-max-seek=true
--ctlanalog=on
--metal-gear-solid=true
--globalgamedata-dir=global
--enable-change-disc-ui=true

LUA.
Code:
-- Metal Gear Solid (NTSC) (v1.1)
-- ported to PS4 lua
-- emu used=syphonfilter 3
if true then
end
local patcher = function()
--Disable dithering
local no_dither = R3K_ReadMem16(0x017C24)
if no_dither == 0x0000 then
R3K_WriteMem16(0x80017C24,0x41E8)
end
local no_dither = R3K_ReadMem16(0x017C26)
if no_dither == 0x0000 then
R3K_WriteMem16(0x80017C26,0xA420)
end
local no_dither = R3K_ReadMem16(0x017C3C)
if no_dither == 0x0000 then
R3K_WriteMem16(0x80017C3C,0x4228)
end
local no_dither = R3K_ReadMem16(0x017C3E)
if no_dither == 0x0000 then
R3K_WriteMem16(0x80017C3E,0xA420)
end
--Have SOCOM Pistol
R3K_WriteMem16(0x800B753A,0x03E7)
R3K_WriteMem16(0x800B754E,0x03E7)
--Widescreen
R3K_WriteMem16(0x8001F6E0,0x4415)
R3K_WriteMem16(0x8001F6E2,0x0800)
R3K_WriteMem16(0x80011054,0x0000)
R3K_WriteMem16(0x80011056,0x84A2)
R3K_WriteMem16(0x80011058,0x0000)
R3K_WriteMem16(0x8001105A,0x0000)
R3K_WriteMem16(0x8001105C,0xD883)
R3K_WriteMem16(0x8001105E,0x0002)
R3K_WriteMem16(0x80011060,0x1043)
R3K_WriteMem16(0x80011062,0x0002)
R3K_WriteMem16(0x80011064,0x1021)
R3K_WriteMem16(0x80011066,0x005B)
R3K_WriteMem16(0x80011068,0x0000)
R3K_WriteMem16(0x8001106A,0xA4A2)
R3K_WriteMem16(0x8001106C,0x0004)
R3K_WriteMem16(0x8001106E,0x84A2)
R3K_WriteMem16(0x80011070,0x0000)
R3K_WriteMem16(0x80011072,0x0000)
R3K_WriteMem16(0x80011074,0xD883)
R3K_WriteMem16(0x80011076,0x0002)
R3K_WriteMem16(0x80011078,0x1043)
R3K_WriteMem16(0x8001107A,0x0002)
R3K_WriteMem16(0x8001107C,0x1021)
R3K_WriteMem16(0x8001107E,0x005B)
R3K_WriteMem16(0x80011080,0x0008)
R3K_WriteMem16(0x80011082,0x03E0)
R3K_WriteMem16(0x80011084,0x0004)
R3K_WriteMem16(0x80011086,0xA4A2)
end
EM_AddVsyncHook(patcher)

app_boot.lua
Code:
require "disc-selection"

local default_disc_map = {
   en = { "disc01.bin" , "disc02.bin"  }
     
}

RegisterDiscs(default_disc_map)


Metal Gear Solid. Second Disc Test!
VIDEO


Metal Gear Solid. First Person Mod Test! (Just for fun!)
VIDEO


I also attach saves to get acess for 2nd disc!

hola podrias hacer lo mismo para la version Pal Spanish cheats widescreen? saludos.
 
New psx emu detected on PS Store!

Alone in the Dark: The New Nightmare (2001)
PPSA18070 Release: 4/16/2024

Well, i bet no more annoyed bug (VIDEO) with freeze screen? (On other emus).

PS5 Gameplay
 
Back
Top